# Sicherheit im Internet II
## KE 1
### Sniffing
- z.b. Wireshark
- gemeinsames Medium nötig
- Wifi einfacher als Hubs, einfacher als switches
### Spoofing
- IP Spoofing über ARP (ARP Poisoning)
- Man gibt sich selbst die IP eines anderen Hosts und fängt die Pakete ab
- Wenn man sich als Router ausgibt, dann muss man die Pakete weiterleiten
- DNS Spoofing durch Manipulation der reverse zone
- Man erlangt Zugriff auf Systeme die über DNS Authtifizieren, da man seine IP als die des vertrauenswürdigen Hosts ausgibt
- DNS Spoofing durch Manipulation der forward zone
- Reputationsschaden
- Durch willkürliche Änderung von Ihnahlten wird der Angegriffene verunglimpft
- Umsatzschaden
- Umsätze die eigentlich dem Angegriffenen zugestanden hätten gehen auf den Angreifer über
- Vertraulichkeitsschaden
- Geheime Informationen fallen dem Angreifer in die Hände indem er sich als der Angegriffene ausgibt
- DNS muss für korrekte Funktion des Internets korrekt arbeiten
- Authentizität und Integrität der Anfragen und Antworten sind nicht gesichert
- DNSSEC soll dieses Problem lösen
- DNS-Daten sind signiert und Empfänger kann diese prüfen
- DNS ist jedoch ein verteiltes System, deshalb gestaltet sich die verbreitung schwierig
- Es gibt zwei Arten von Keys
- key signing key -> Signiert die Schlüssel anderer Domänen
- zone signing key -> Signiert die DNS-Daten
- Zur Überpfünfung gibt es öffentliche Schlüssel welche mit Hilfe einer Chain of Trust von der Wurzeldomäne aus überprüft werden
### Wörterbuchangriffe
- Systematisches Ausprobieren von Passwörtern
1. Ausprobieren von bekannten wörtern und deren Abwandlungen
2. Ausprobieren aller möglichen Zeichenketten
- Hashwerte der geratenen Passwörter werden mit dem Hash des echten Passworts verglichen
- Passworthashes unter Windows können aus der Registry, der SAM-Datei oder dem Netzwerkverkehr ausgelesen werden
- Passworthashes unter unix stehen in /etc/passwd
### Buffer Overflow Angriffe
- Es werden Daten in einen begrenzen Speicherplatz geschrieben, ohne, dass deren Länge überprüft wird
- Sind die Daten zu lang wird anderer Speicher überschrieben
- Drei Szenarien
- Programm absturz
- Manipulation des Codes
- Manipulation der Daten
### URL Hacking und Phising
- Tippfehler in URLs ausnutzen. Bsp: wwwgmx.de
- Suchmaschinen Manipulieren
- Per Mail Links verschicken (Getarnt mit HTML Links, bei denen der Text sich vom Link unterscheidet)
- Ziel ist es immer die Originalseite nachzubauen, den Nutzer zu täuschen und z.B. Zugangsdaten abzugreifen
### Gefährliche Benutzereingaben
- Cross-Site-Scripting
- SQL-Injection
### Spezielle Werkzeuge
- Host Scanner
- Untersuchen die Konfiguration eines Rechners
- Zugiffsrechte von Dateien
- Besitzer von Dateien
- Unbefugte Modifikation (Integritätsprüfung der Dateien)
- Inhalte von Konfigurationsdateien
- Versionen der Software
- Bsp: lynis für Linux und MSBA für Windows
- Network Scanner
- Untersucht Netzwerkhosts auf offene Ports oder angreifbare Anwendungen
- NMap
- Nessus und OpenVAS
- Intrusion Scanner
### Backdoor
- Ziele
- Aussperren weiterer Angreifer um Aufmerksamkeit auf das System zu vermeiden
- Updates installieren und Sicherheitslücke schließen
- Schaffung einfacher Weiterverwendungsmöglichkeiten, falls der Administrator die Sicherheitslücke schließt soll es weiterhin eine Zugriffsmöglichkeit geben
- Installiert einen eigenen Zugang (Backdoor)
- z.B. Benutzer für SSH anlegen
- Entdeckung verhindern. Der Administrator soll nicht merken, dass das System infiziert ist
- Einfacher SSH Zugriff leicht durch Admin erkennbar
- Rootkit nutzen
- Angreifer nimmt oft nach erfolgreichem Angriff die Aufgaben eines Administrators wahr
- Rootkit
- Modifizierung von Systemaufrufen
- Z.b. Verstecken aus der Prozessliste oder abgreifen von Tastataureingaben
- User Mode
- Modifizieren einer oder mehrerer Anwendung
- Rootkit hängt sich mittels DLL zwischen Anwendung und Betriebssystemaufruf
- Kernel Mode
- Modifizieren des Kernels
- Hängt sich direkt in die SSDT und betrifft somit alle Anwendungen, auch Antivierensoftware
### Angriffe auf Verschlüsselung
#### Klassifikationen
- Ciphertext only
- Nur Informationen über verschlüsselte Texte und das Verschlüsslungsverfahren
- Wörterbuchangriffe
- Statistische Angriffe
- Versuch Warscheinlichkeitsrechnung zu nutzen um Verschlüsslung zu knacken
- Known Plaintext
- Hierbei ist zusätzlich ein Teil des Plaintexts und des dazugehörigen Ciphertextes bekannt
- Hierbei können ggf. Rückschlüsse auf den Schlüssel gefunden werden
- Chosen Plaintext
- Hierbei ist es dem Angreifer möglich bestimmte Klartexte verschlüsseln zu lassen
- Es ist somit möglich bestimmte Klartextmuster verschlüsseln zu lassen, welche Rückschlüsse auf den geheimen Schlüssel erlauben
- Chosen Ciphertext
- Hierbei ist es dem Angreifer möglich eigene geheimtexte Entschlüsseln zu lassen und danach die Klartexte zu analysieren
- Chosen Key
- Der Angreifer kann Informationen über den Schlüssel vorgeben oder beeinflussen
- Kryptoanalyse mit Gewalt
- Man versucht den Schlüssel mit Gewalt von einer Person zu erhalten die diesen Schlüssel kennt
#### Brute Force Angriffe
- Hierbei werden systematisch alle Schlüssel durchprobiert
- Computern fällt dieses Verfahren bei kurzen Schlüsseln sehr leicht
- Abwehrmöglichkeiten:
- Sperren des Zugangs nach X Versuchen
- Verzögern der Überprüfung, Verzögerung wird bei jedem Fehlversuch länger
- Einsatz eines Intrusion Detection Systems
- Schlüssellänge erhöhen
#### Lineare Kryptoanalyse
- Known Plaintext
- Man xor-ed Bits aus Klartext und Geheimtext: Bsp: g1 xor g2 xor k1 xor k3
- Wenn bei deutlich weniger oder mehr als 50% der Klartext und Geheimtextkombinationen das Ergebnis = 0 ist, dann ist es möglc Rückschlüsse auf den Schlüssel zu ziehen
- Da die S-Boxen bei DES sehr klein sind ist dies dort Praktikael
- Man versucht dabei Ausdrücke zu finden, bei welchen die Ein- und Ausgabekombinationen der S-Boxen dieser Form entsprechen
- Danach kombiniert man die Ausdrücke für die einzelnen Runden, sodass diese sich eliminieren.
- Neue Verfahren werden auf Widerstandsfähigkeit gegen Lineare Kryptoanalyse getestet
#### Differentielle Kryptoanalyse
- Chosen Plaintext
- Man wählt die Klartexte so, dass sich diese sehr ähnlich sind
- Nach der Verschlüsslung vergleicht man die Geheimtexte und schaut, welche Stellen sich unterscheiden
- Man versucht per XOR zwischen zwei Klartextblöcken Stellen zu finden die sich unterscheiden
- Dann versucht man Geheimtexte dazu zu finden, deren Unterschied sehr unwarscheinlich ist
- Diese Geheimtext Blöcke werden kombiniert, sodass sich in der nächsten Runde wieder ein spezieller Geheimtext ergibt
#### Faktorisierung großer Zahlen
- Es muss schwierig sein große Zahlen in ihre Primfaktoren zu zerlegen, ansonsten ist das RSA Verfahren nicht sicher
- Bester aktueller Alorithmus: Quadratic Sieve
- Man sucht zwei Zahlen x und y, die folgenden Gleichungen genügen. (n ist die zu zerlegende Zahl)
- x² == y² mod n
- x !== +-y mod n
- Hierzu sucht man zuerst eine Quadratzahl x > n
- bei n=119 also z.B. 11² = 121
- Dann testet man ob x² - n wieder eine Quadratzahl ist
- bei 11² - 119 = 2 -> keine Quadratzahl
- Wenn es keine Quadratzahl ist sucht man die nächstgrößere Quadratzahl x und startet von vorn
- bei 11² -> 12²
- 12² - 119 = 25 -> 25 = 5²
- Hat man eine Quadratzahl x gefunden, welche wieder eine Quadratzahl ergibt, so ist diese zweite Quadratzahl y
- x = 12 und y = 5
- Als nächstes berechnet man ggT(x - y, n) und ggT(x + y, n), welche zwei Primfaktoren sind
- 12 - 5 = 7 und 12 + 5 = 17
#### Quatencomputer
- Es ist möglich durch die Polarisation von Licht Daten zu verschlüsseln
- Es gibt zwei Polariatzionsebenen x und +
- Der sender sendet zufällig mit x oder +
- Der Empfänger empfängt zufällig mit x oder mit +
- Danach werden Informationen über die Stellung ausgetauscht. Dieser Austausch muss Authtentifiziert geschehenen um MitM zu verhindern
- Ergebnisse bei gleicher Stellung werden verwendet unterschiedliche Stellung wird verworfen.
- Ohne Angriff ist die Fehlerquote bei 50% mit bei 25%
- Mit Hilfe von Probablistenschen algorithemn von Short und einem Quatencomputer, der stark genug ist kann RSA, DH, DSA und ECDH sowie ECDSA ausgehebelt werden
## KE 2
### E-Commerce
- Parteien
- B2C
- Versandhandel
- B2B
- Automatischer Abruf von Lagerinformationen
- Automatische Bestelleung von Waren
- Güter
- Materiell
- Vorausetzungen: Versand, Lagerung, In der Hand haben
- Immateriell
- Können über das Internet geliefert werden
- Tickets, Downloads, Musik, Filme
- Streaming
- Wertigkeit
- Nimmt Einfluss auf Bezahlverfahren
- Sicherheit und Kosten und Aufwand in Abhängigkeit zum Wert
- Bezahlverfahren
- Anforderungen
- Käufer: Einfach, Schnell, Anonymität
- Verkäufer: Geringe Kosten, Sicherheit an Geld zu kommen
- Finanzdienstleister: Einfacher und Kostengünstiger betrieb, Gute skalierbarkeit
- Bequemlichkeit
- Wichtig für Käufer und Händler
- Bedienbarkeit, aber auch Installationsaufwand, Registierungszwang oder Benötigte Hardware
- Akzeptanz
- Wichtig für Käufer, da diese nicht viele Verschiedene Bezahlsysteme haben wollen
- Indirekt also auch wichtig für Händler
- Transaktionskosten
- Wichtig für Händler, da diese die Marge schmälern
- Auch einmalige Kosten wie Installation
- Sicherheit
- Integrität: Daten müssen Fälschungssicher sein, also Bezahlsystem sollte nicht duplizier oder modifizierbar sein
- Verfügarkeit: Sicherheit vor technischen Problemen, Auch vor Datenverlust
- Authentizität: Betrug sollte ausgeschlossen werden können (Beidseitig, also Kunde möchte Ware, Händler Geld)
- Vertraulichkeit: Anonymität, Beachtung gesetlicher Anforderungen
- Nachnahme
- Vorteile: Ware gegen Geld wie im Klassischen Einzelhandel, also Sicherheit
- Nachteile: Hohe Kosten, Hoher Verwaltungsaufwand
- Überweisung
- Vorteile: Automatisierbar, Kostengünstig, Relativ schnell (1-2 Tage), Europaweit möglich
- Nachteile: Kontozwang, Eine Partei muss in Vorleistung treten (Rechnung bzw. Vorkasse), Kosten unabhängig vom Betrag der Rechnung
- Lastschrift
- Es muss zuvor eine Einzugsermächtigung erteilt werden
- SEPA Lastschriftmandat
- Name, Adresse, GläubigerIdentifikationsnummer
- Mandatsreferenz
- Wiederkehrend oder Einmalig?
- Name, Adresse und Kontoverbindung des Zahlenden
- Name und BIC der Bank des Zahlenden
- Empfänger gibt Auftrag zum Einzug an seine Bank (InkassoBank)
- Diese leitet Auftrag weiter
- Erhält das Geld direkt unter Vorbehalt der tatsächlichen Abbuchung
- Bank des Zahlenden prüft Auftrag und überweist geld an InkassoBank
- Vorteile: Geld wird fristgerecht gezahlt, Kostengünstig, Rücklastschriften können automatisch in Mahnverfahren umgewandelt werden, Zahlender braucht sich nicht um fristgerechte Zahlung zu kümmern
- Nachteile: Missbrauch durch Händler möglich, Keine Sicherheit für Empfänger der Zahlung, Konto kann nicht bei Erteilung des Mandats geprüft werden
- Kartenzahlung
- Kundenkarte, Geldkarte oder Maestro/ec-Karte
- Ablauf:
1. Karte lesen, legitimierung durch Pin -> Betrug durch Zahlenden ausgeschlossen
2. Pin und Zahlungsdaten werden zum Netzbetreiber geleitet
3. Dieser leitet die Daten zur Autorisierung durch ausgebendes Kreditinstitut weiter. Hierbei wird Guthaben geprüft und Zahlung garantiert
4. Nun reicht der Zahlungsempfänger Lastschrift bei seiner Bank ein
5. Betrag wird gutgeschrieben
6. Betrag wird von der Bank des Zahlenden eingezogen
7. Bank des Zahlenden belastet das Konto
- Vorteile: Sicherheit für Zahlungsempfänger, einfach automatisch verarbeitbar
- Nachteile: Höhere Kosten für Zahlungsempfänger, Nicht Onlinefähig, da Kartenleser benötigt wird
- Gebühren:
- ec = max(0,3% des Umsatzes, 0,08 EUR)
- Maestro = ca. 0,95% des Umsatzes
- ELV = ???
- Geldkarte = max(0,3% des Umsatzes, 0,01 EUR)
- Kreditkarte = ca. 2-4% des Umsatzes
- Geldkarte
- Vorteile: Geld ist direkt auf der Karte gespeichert, keine Autorisierung notwendig
- Nachteile: Hohe Kosten für Kartenlesegerät, da die Sicherheitsanforderungen hoch sind
- Kreditkarte
- Zahlungsempfänger verkauft seine Forderung an Herausgeber
- Ablauf:
1. Karte vorlegen und unterschreiben
2. Prüfung auf Sperre und Verfügungslimit
3. Kartenherausgeber hat sich gegenüber Zahlungsempfänger verpflichtet Forderung zu kaufen
4. Herausgeber schreibt empfänger Forderung abzüglich Disagio gut
5. Kartenherausgeber zieht Forderung von Zahlendem ein
- Vorteile:
- Zahlungsempfänger hat Garantie, dass Geld ankommt
- Zahlender hat kurzfristigen Kredit erhalten
- Zahlungen auch im Ausland möglich
- Zahlung ohne physische Vorlage möglich
- Nachteile:
- Recht hohe Gebühren
- Missbrauch relativ einfach insbes. ohne Vorlage der Karte
- Reduzierung der Schäden durch Missbrauch
- MOTO Vertrag (Mail-order Telephone-order): Größeres Disagio, Datei mit gesperrten Karten muss abgefragt werden
- Weitere Prüfnummern: Hierdurch wird Betrug durch achtlos weggeworfene Belege verhindert, da diese Nummern nur auf der physischen Karte stehen
- SET-Verfahren
- Parteien: Kunde, Issuer (Bank des Kunden), Händler, Acquirer (Bank des Händelers), Kreditkartenfirmen
- Need to know Prinzip durch duale Signatur
1. Kunde bekommt Zertifikat des Händlers, signiert von der Bank
2. Kunde fordert Händler zu Angebot auf
3. Händler antwortet mit dem Angebot, dem Zertifikat des Händlers und dem der Bank. Angebot wurde mit dem Privaten Schlüssel des Händlers signiert
4. Kunde prüft Zertifikate, entschlüsselt das Angebot und prüft dessen Integrität. Nun erstellt der Kunde eine Payment- und eine Order-Instruction. Es wird (H(H(OI) + H(PI))) berechnet. OI wird mit privatem Schlüssel des Händlers verschlüsselt, PI mit dem der Bank des Händlers
5. Händler entschlüsselt und prüft Bestellung, Leitet PI an Bank weiter
6. Bank prüft PI und sendet dem Händler eine Bestätigung inkl. Betrag, welcher vom Händler geprüft wird
7. Bank des Händlers holt sich das Geld von der Bank des Kunden
8. Bank des Kunden belastet das Konto
9. Bank des Händlers schreibt Geld gut
- 3D Secure, Verified by Visa, Mastercard Secure Code
- Passwort und Floskel werden bei Herausgeber hinterlegt
- Bei der Bestellun öffnet sich Seite des Herausgebers, auf der Kunde das Passwort eingeben muss
- Kunde verifiziert Herausgeber über Floskel
- Digitales Geld
- Fälschungssicher: Durch Bank signiert, nur einmal verwendbar, muss beim Empfang von einer Bank kontrolliert werden
- Anonym: Bank signiert blind 100 Münzen, Kunde muss 99 von der Bank ausgewählte wieder entschlüsseln. Falls eine davon einen falschen Betrag hat wird der Betrug erkannt. Ist also nur in einem von 100 Fällen möglich
- Eideutig: Zufällige Seriennummer, die lediglich beim Einlösen entwertet wird
- Nachteile: Kein Gewinn für die Banken möglich, da Kosten hoch, Nachfrage gering und Beträge zu klein, Technischer Aufwand zu hoch für Kunden und Banken, Politische Anpassunen nötig
- Bitcoin
- Identifizierung: Über öffentliche Schlüssel, welche Bitcoins empfangen können aber nicht direkt mit einer Realen Person verknüpft sind
- Transaktion:
- Öffentlicher Schlüssel des Empfängers
- Anzahl der Bitcoins
- Eine Bestätigung des vorherigen Besitzers (Signatur mit private Key)
- Hierdurch entsteht eine Kette, mit welcher der Ursprung und die Legitimität überprüft werden können
- Eine Transaktion kann mehrere Ursprünge enthalten und man kann sich selbst als Empfänger eintragen, sodass man Bitcoins teilen und zusammenführen kann
- Besitz: Der Besitz eines Teilnehmers kann durch zusammenrechnen aller ihn betreffenden Transaktionen errechnet werden
- Missbrauch verhindern: Damit jemand den gleichen Bitcoin nicht 2x ausgeben kann muss es eine öffentliche einheitliche Transaktionshistorie geben
- Miner bestätigen Blöcke
- Block: Hashwert des Vorgängers, Transaktionen die zu bestätigen sind, Nonce als Prüfwert
- Block ist bestätigt, wenn sein Hashwert kleiner als eine vorgegeben Zahl ist
- Wenn neuer Block gefunden wurde wird dieser per Broadcast an alle verteilt, die diesen nur akzeptieren, wenn sie ihn nachrechnen
- Längste Kette wird als gültig angesehen, da es schwierig ist Blöcke zu erstellen kann man sein Geld nicht nochmal ausgeben
- Quellen:
- Ersteller des Blocks zahlt sich selbst Bitcoins für erfolgreiche Erstellung
- Neue Bitcoins: Mining
- Bestehende Bitcoins: Transaction Fee
- Verbindung zu normalen Wärungen: Man muss mit jemandem Tauschen, hierdurch ist ggf. eine deanonymisierung möglich
- PayPal
### Gesetzliche Rahmenbedingungen
#### Vorschriften für Jedermann
- BGB (Bürgerliches Gesetzbuch)
- Allgemeine Rechte und Pflichten
- Vertragsrecht
- Bsp: Willenserklärung nötig, Was ist eine Willenserklärung im Internet?
- Schuldverhältnisse
- Enthält auch Reglungen des ehem. FernAbsG
- Informationsrecht -> Vor Kauf ausreichende Informationen
- Widerrufs- und Rückgaberecht -> 14 Tage rückgabe ohne Grund möglich
- StGB (Strafgesetzbuch)
- Was ist kriminell?
- Computerbetrug
- Erschleichen von Leistungen (bsp: Verschlüsselte Sendungen gucken)
- Datenveränderung
- Sabotage von Computern (auch DoS)
- Wie wird bestraft?
- AGB (Gesetz zu AGB)
- BDSG (Bundesdatenschutzgesetz)
- Datenvermeidung, Datensparsamkeit
- Verbotsprinzip mit Erlaubsnisvorbehalt
- Es ist grundsätzlich ohne Erlaubnis verboten pers. Daten zu sammeln, erheben oder nutzen
- Nur bei Gesetzesgrundlage oder expliziter Erlaubnis
- UrhG (Urhebergesetz)
- Urheberrechtsschutz
- Automatisch
- Texte, Musik, Bilder, Filme, Statuen, Programme
- Erlaubnis des Urh. nötig für
- Verfielfältigung
- Verbreitung
- Verarbeitung
- Einige Nutzungen sind erlaubt
- Kopien für Privatgebrauch
- Zitat (auch Wörtlich)
- Umgehungen von Kopierschutz sind strafbar
- Urherberrecht ist international ählich (Berner Übereinkunft)
-
- SigG / SigVO (Signaturgesetz)
- Willenserklärung für digitale Prozesse
#### Vorschriften für ISPs
- TKG (Telekommunikationsgesetz)
- Nutzer- und Verbraucherinteresse müssen Gewahrt werden (Fernmeldegeheimnis, etc.)
- chancengleichheit im Wettbewerb zwischen Anbietern
- Funkfreq. sollen effizient und störungsfrei genutzt werden
- TKÜV (Telekommunikationsüberwachungsverordnung)
- Überwachung durch Behörden möglich
#### Vorschriften für Dienstanbieter
- E-Commerce-Richtlinie der EU (2011)
- Widerrufsrecht
- 14 Tage
- Hinsendekosten trägt Händler
- Rücksendekosten Käufer
- Außnahmen für versiegelte Hygieneartikel
- Zuschläge auf Zahlungsarten
- Informationen über Lieferbeschränkungen (Vorher angeben)
- Kundenhotlines (Nicht teurer als Grundtarif nach Vertragsschluss)
- Schutz vor Abofallen
- TMG (Telemediengesetz)
- Datenschutz
- Welche Daten -> Unterrichtung
- Welcher Zweck -> Unterrichtung
- Von Wem -> Impressum
- ICANN und DENIC verwalten Namen und Nummern im Internet
- MarkenG
- Inhaber einer Marke oder eines Unternehmenskennzeichens sind geschützt
- Auch bei ähnlichen Namen (Verwäserungs- oder Verwechslungsgefahr)
- UWG (Gesetz gegen unlauteren Wettbewerb)
- Name darf nicht in die Irre führen
- Urhebergesetz
- Fremde Bilder dürfen nicht einfach auf der eigenen Seite eingebettet werden -> Auch wenn das Bild vom fremden Server geladen wird
- Frames
- BGB
- Schaden durch Beleidiung, Viren etc. können zur Haftung führen
- HGB (Handelsgesetzbuch) und AO (Abgabenordnung)
- Buchführung
- Belegfunktion -> Nachvollziehbarkeit der Geschäftsvorfälle
- Buchungen -> Müssen vollständig und richtig sein
- Kontrollsystem -> Sicherstellung der Richtigkeit der Daten
- Aufbewahrungsfristen
- JuSchG (Jugenschutzgesetz)
- Wenn Inhalte sich an jugendliche wenden oder für diese Gefährlich werden können
## KE 3
### VPNs
- Anwendungsfälle
- Site-To-Site / Intranet
- Remote Access / End-to-Site
- Schutz von Verbindungen im Wifi
- Extranet (B2B / Partner erhalten Zugriff auf Teile des Netzes)
- Arten
- trusted VPN -> Netzbetreiber garantiert exklusive Leitung
- secure VPN -> Kryptografie stellt sicher, dass Daten nur von beiden Endpunkten des VPNs gelesen werden können
- hybrid VPN -> Mischform
- Anforderungen an VPNs
- Vertraulichkeit -> Nicht Abhörbar
- Authentizität -> Nur Autorisierte Benutzer dürfen senden
- Integrität -> Keine Manipulation der Daten möglich
- Verfügbarkeit -> VPN darf nicht ausfallen -> SLA
- Einfache Bedienbarkeit
- Einfache Administrierbarkeit
- Effizient und Skalierbarkeit
- Kostengünstig
#### Technische Grundlagen
- Tunneling -> Pakete eines Protokolls in einem anderen Verpacken und am Ziel wieder auspacken
- Ebene 0 -> Ein eigenes Kabel
- Ebene 2
- PPP (Point to Point Protocol)
- Verbindung von IP-Netzen über Serielle verbindungen
- PAP (Password Authentication Protocol) -> Nutzername und Passwort werden zur Authetifizierung genutzt
- CHAP (Challenge Handshake Authentication Protocol) -> Hash von Benutzername, Passwort und Challenge wird geprüft
- PPTP (Point to Point Tunneling Protocol)
- PPP Verbindung zwischen Client und PAC (PPTP Access Concentrator) über Telefonnetz
- PPTP Verbindung zwichen PAC und PNS (PPTP Network Server) über IP-Netz
- IP Verbindung zwischen PNS und Server
- Die beiden Gateways sind über zwei Verbindungen verbunden (TCP-Kontrollkanal und GRE-Tunnel)
- Für den Client ist es eine gewöhnliche PPP Verbindung für den Server eine gewöhnliche IP-Verbindung. Nur PAC und PNS müssen konfigurert werden
- Verschlüsslung über MPPE
- Authentifizierung ver MS-CHAP
- L2TP (Layer 2 Tunneling Protocol)
- IETF Standard von PPTP
- Trägernetz ist frei wählbar (Also nicht nur IP)
- Nur eine Verbindung zwischen PAC und PNS
- Beliebig viele Tunnel
- Ebene 3
- IPsec
- Möglichkeiten der Verbindung
- Endgerät zu Endgerät
- Endgerät zu Security Gateway
- Security Gateway zu Security Gateway
- Basis: 3 Standards
- IP Authentication Header (AH)
- Kann angeboten werden
- Zusätzlicher Protokollkopf
- Integrität und Authentizität
- Verschlüsselter Hashwert
- IP Encapsulating Security Payload (ESP)
- Muss angeboten werden
- Vertraulichkeit
- Paket oder Teile werden symmetrisch verschlüsselt
- Kann auch Integrität und Authentizität sichern
- Internet Key Exchange Protocol (IKEv2)
- Handelt Protokolle und Schlüssel für Verbindung aus
- Übertragungsmodi
- Transportmodus
- Sichert die Daten eines Pakets
- Wird nicht zwischen Security Gateways verwendet
- IP Header bleibt unverändert
- Zusätzlich: AH Header und/oder ESP Verschlüsselung mit head und trailer
- Tunnelmodus
- Komplettes Paket wird verarbeitet und als Nutzlast in ein neues Paket verpackt
- Neuer IP-Kopf (äußerer Kopf)
- AH nicht einsetzbar wenn sich zwischen den Verbindungen ein Router mit NAT befindet
- Security Association (SA)
- Beschreibt die Absicherung einer Datenrichtung
- Entweder AH oder ESP -> Für beides sind zwei SAs nötig
- Also bei bidirektionaler Verbindung mit ESP und AH vier SAs
- Zur Verwaltung wird eine Datenbank eingesetzt (SAD)
- Security Parameter Index (SPI)
- Für jeden Eintrag wird ein vergeben
- Diese Index referenziert die SA und beschreibt also was mit dem Teil des Pakets geschehen muss
- Zusätzlich können noch Empfänger und Absender IP-Adressen als weitere Primärschlüssel für die DB verwendet werden
- Wenn ein Paket ankommt wird nach einem Eintrag in der SAD gesucht
1. Absender, Empfänger und SPI
2. Empfänger und SPI
3. SPI
- Der erste Eintrag wird verwendet
- Security Policy Database (SPD)
- Definiert was mit einem eingehenden Paket geschehen soll
- DISCARD -> Paket wird verworfen
- BYPASS -> Paket wird unverändert weitergeleitet
- PROTECT -> Paket wird mit IPsec geschützt
- Zusätzlich werden Verfahren definiert, also AH, ESP, Modus (Tunnel, Transport), Algorithmen, Schlüssellängen
- Schlüsselaustausch
- Beim Schlüsselaustausch werden die Daten aus der SPD gelesen und mit Hilfe von IKEv2 SAs erzeugt
- Zuvor wird eine Authetisierung durchgeführt und es werden die Algorithmen ausgehandelt
- Phase 1: Schlüsselaustausch, Algorithmenaushandlung und Authentisierung
- Phase 2: Spätere neuaushandlung der Schlüssel per neuen Child SAs
- Authentisierung:
- Public Key Kryptographie mt X.509
- Pre shared Secret
- Zur weiteren Authetisierung z.B. durch Passwort wurde Extensible Autentication Protocol (EAP) definiert
#### Realisierung
- Security Gateway in DMZ
- OpenVPN
- SSH
### Intrusion Detection Systeme
#### Motivation
- Angriffe erkennen
- Anomalien erkennen
- Bei Abwehr unterstützen
#### Prinzipien
- Sensoren erkennen Angriffe oder deren Auswirkungen
- Host-based Intrusion Detection System
- Ist auf einem Rechner installiert, der sowieso existiert hätte -> Rechner überwacht sich selbst
- Beobachtet Events, Log files, wichtige Systemdateien
- nicht kontinuierlich sondern in regelmäßigen Abständen
- Vorteile
- Kann Angriffe erkennen, welche nicht über das Netz gehen
- Nachteile
- Logskönnten ggf. manipuliert werden
- Network-based Intrusion Detection System
- Ist an das Übertragungsmedium des Netzes angeschlossen
- Beobachtet alle Pakete des Netzwerks
- Bspw: Rechner mit NIC in promiscuous mode
- Beobachtung in nahezu Echtzeit
- Vorteile:
- In Echtzeit
- Kann den Angriff beenden bevor er überhaupt gestartet ist
- Nachteile:
- Verschlüsslung erschwert analyse Enorm
- In einem switched Network ist extra aufwand nötig (mirror port)
- Mischform: Network-based IDS auf einem Host, welcher sich selbst überwacht
#### Aufbau
- Mehrere Sensoren
1. Vor der Hauptfirewall im Internet
2. Auf der Hauptfirewall
3. Auf Hosts der DMZ
4. Im Netzwerk der DMZ
5. Im Internen Netzwerk bzw. dessen Hosts
- Grenzen der Sensoren
- Abstürze (Währenddessen der Sensor nicht arbeitet)
- Platzprobleme (Platte voll?)
- Verarbeitungsgeschwindigkeit -> Analyse von Gigabittraffic ist sehr aufwendig, Es könnten also Pakete verworfen werden
#### Network-based IDS
- Implementierungen
- TCPdump
- Protokolliert alle Pakete am Netzwerkinterface
- Datei oder Standardout
- Snort
- Kann Dumps erstellen, ähnlich TCPdump
- Vergleichen mit konfigurierten Regeln um Muster zu erkennen
- Auslösen von Aktionen bei Erkennung von Regeln
- Alert -> Admin bekommt einen Warnhinweis
- Log -> Wird protokolliert ohne warnung des Admin
- Pass -> Lässt das Paket passieren
- Activate -> Aktiviert weitere Regeln bei auslösung
- Dynamic -> Regel muss mit activate aktiviert werden
- Drei Teile:
- packet decoder
- detection engine
- logging and alerting
- Bsp: `alert tcp !192.168.0.0/16 any -> 192.168.0.0/16 any (flags: SF; msg: "SYN-FIN gesetzt";)`
- Es können auch Variablen mit `var [NAME] [WERT]` gesetet werden
- Es gibt darüber hinaus Präprozessoren und Ausgabeplugins z.B. Datenbankplugins
- `include` auch möglich
- Man kann auch Inhalt (payload) untersuchen
- Optionen für Regeln:
- Msg -> Nachricht für die Logdatei
- TTL -> Einschränkungen bzgl. TTL
- Dsize -> Größe des Rumpfs
- Flags -> Bestimmte TCP Flags
- Content -> Inhalt des Pakets
- Setzen bei IP Paketen an und betrachten
- IP-Header
- TCP-Header
- UDP-Header
- ICMP-Messages
- Angriffssignaturen
- Ungewöhnliche Spezifikationsausnutzung, z.B. Datenübertragung während TCP Handshake
- Fragmentierte Pakete -> z.B. DoS angriff durch offen lassen des letzten Pakets
- TCP-Pakete an Broadcast-Adresse -> Angreifer erhofft sich ggf. ICMP Fehlermeldungen
- Undefinierte Kombinationen von Statusbits -> z.B. SYN-FIN
- Pakete für Dienste die nicht angeboten werden -> z.B. FTP
- Bekannte Angriffe
- Scanning
- Wichtige Maßnahmen
- Viel Protokollieren -> Nachträgliche Analyse, z.B. Paketheader
- Filter regeln genau kennen -> So können diese verfeinert werden
- Genug speicher bereithalten, idealerweise eine eigene HDD
- Regeln aktualisieren -> Auf dem neusten Stand bleiben
#### Host-based IDS
- Tripwire
- Prüft bestimmte Dateien und vergleicht diese mit Snapshot
- Zugriffsrechte
- Nummer des inode
- Anzahl der Hardlinks
- Benutzer und Gruppe
- Größe
- Datum der letzten Änderung
- Datum des letzten Zugriffs
- Hashwert
- Modi
- Database Initialisation Mode -> erstellt ersten Snapshot
- Integrity Checking Mode -> Abweichungen werden gesucht
- Database Update Mode -> Aktualisierung der Snapshots bestimmter Dateien
- Interactive Database Update Mode -> 2 und 3 interaktiv kombiniert
- Anmerkungen
- Erstellung des Snapshots ist aufwendig
- Man muss sich vor Erstellung des ersten Snapshots sicher sein, dass System nicht kompromitiert
- Datenbank darf nicht durch angreifer Manipulierbar sein (also z.B. auf CD speichern)
- Man kann die Dateien auch mit twadmin verschlüsseln und signieren
#### Reaktionen auf Alarm des IDS
- Automatische Reaktionen
- Genauer hinsehen was passiert
- IDS sollte zusätzliche Informationen sammeln, wenn ein Alarm auftritt
- Verändern der eigenen Konfiguration
- Z.B. Firewall umkonfigurieren um Pakete des Angreifers zu blocken
- Etwas gegen den Angreifer unternehmen
- Z.B. Indem man die Resourcen des Angreifers auslastet. Z.B. sich als nicht existierender Host ausgeben und den Scan des Angreifers verlangsamen
- Manuelle Reaktionen
1. Begrenzung (Containment)
- Verhindern, dass Angriff fortgesetzt wird
- Z.B. durch Trennen der Netzverbindung
- Komplette Sicherung für weitere Untersuchungen erstellen (Inkl. RAM)
2. Ausrottung (Eradication)
- Alle Manipulationen Rückgängig machen
- Hierzu ist eine Analyse notwendig
- Man kann z.B. die gesamte Festplatte löschen
3. Wiederherstellung (Recovery)
- Sicherungen wiederherstellen
- Sicherheitslücken schließen
- Andere Konfiguration
- Aktualisierung der Software
- Änderungen an anderen Systemen (z.B. Router)
- Versuch verlorene Daten zu rekonstruieren
- Abschließend sollte das System getestet werden
- Der erfolgreiche Test sollte bestätigt werden
4. Schlussfolgerungen (Lessons learned)
- Fehler feststellen und Prozesse anpassen
- Schriftlicher Abschlussbericht
## KE 4
### Motivation
- Trinity of Trouble
- connectivity
- extensibility
- complexity
- Drei mögliche Vorgehensweisen
- Protection
- Detection
- Reaction
- Sicherheitsaspekte beim Software Engineering
- Jedes Artefakt soll auf Sicherheit geprüft werden
### Programmierfehler
- Drei Gruppen
- Insecure Interaction between components
- Risky Resource Management
- Porous Defenses
- Nach McGraw gibt es sieben Kategorien
#### Input Validation and Representation
- Fehlenden oder fehlerhafte Überprüfung von Eingabewerten
- Bsp:
- SQL Injection
- Buffer Overflows
- Shell Injection
- Zwei Arten der Validierung von Werten
- White listing
- Black listing
- Minima und Maxima der Werte prüfen (Zahlen, Länge eines Strings)
- Kodierung beachten
- Zeichen und Werte in kanonische Form bringen
- Pfade
- Unicodezeichen
- URL Entitäten
- Ansonsten Ausheblung von Sicherheitsmechanismen möglich
- Eingabe -> Kanonische Form -> Validierung -> Nutzung
#### API Abuse
- Anwendung von Schnittstellen ist nicht genau bekannt (getwd mit zu kurzem char buffer)
- Schnittstellen werden für andere zwecke Missbraucht (DNS zur Authentifizierung)
#### Security Features
- Sicherheitsmechanismen (z.B. Verschlüsslung) müssen richtig implementiert und genutzt werden und sind allein oftmals nicht ausreichend
#### Time and State
- Probleme durch Parallele Ausführung auf Mehrkernprozessoren
- Deadlock
- Time of check, Time of use
- Bsp: Prozess prüft ob er Datei in tmp schreiben darf, danach tauscht der Angreifer die Datei durch einen Link auf /etc/passwd aus, dann schreibt das Programm in die Datei
#### Error Handling
- Fehlende Fehlerbehandlung führt zu unvorhergesehenen Zuständen oder Abstürzen
- Bsp: malloc -> null
- Wenn Fehler nicht behandelt werden könnte es auch sein, dass mögliche Fehlermeldungen zu viele Informationen preisgeben
- Bsp: SQL-Injection mit Datenextraktion über Fehlermeldung
#### Code Quality
- Fehler in der Sicherheit durch Probleme im Quellcode, welche nicht vom Compiler erkannt werden können
- Bsp: getChunk == NULL
- Bsp: args[0] == STRING_CONSTANT
#### Encapsulation
- Komponenten vertrauen eingaben oder geben interna preis, weil diese nicht korrekt abgekapselt wurden
### Analyse
#### Funktionale Analyse
- Neben den Use Cases, den Funktionen und den Daten werden auch die Sicherheitsanforderungen dokumentiert
- Assets
- Alle wertvollen und schützenswerten Daten
- Es müssen Berechtigungen festgelegt werden
- Auch Betriebsmittel (z.B. RAM) können Assets sein
- Actors
- Nutzer des Systems (Menschliche und aber auch andere Systeme)
- Liefern oder lesen Daten
- Werden nach Privilegien klassifiziert
- Actions
- Alle Funktionen, die ein System ausführen kann
- Greifen auf Assets zu und werden von Actor angestoßen
- Entry Points
- Alle Stellen an denen Daten in das System fließen
- TCP Sockets, Tastatureingaben, IPC
- Threats
- Sind Bedrohungen denen das System ausgesetzt ist
- Assumptions
- Sind Annahmen über die Umgebung des Systems oder die Art der Angreifer
#### Bedrohungsanalyse
- Beim Entwurf sicherer Systeme erfolgt eine Bedrohungsanalyse und Risikoanalyse
- Ursachen werde Untersucht
- benutzerbedingt
- technisch
- organisatorisch
- Je nach Art der Ursache andere Abwehrmaßnahmen
- Bekannte Bedrohungen vergleichbarer Systeme sammeln
- Üer neue Bedrouhngsmöglichkeiten nachdenken
- Aus den Bedrohungen werden Gerfährdungsbereiche abgeleitet
- Externe Angriffe -> Angreifer ist nicht Nutzer des Systems
- Interne Angriffe -> Angreifer ist Nutzer des Systems nutzt es aber in nicht beabsichtigter Art und Weise
- Denial of Service -> Blockiert die Nutzung des Systems
- Abstreiten -> Unerlaubte Benutzung von Resourcen auf andere Nutzer abwälzen
- Rechtemissbrauch -> Benutzer mit Rechten missbraucht diese
- Weitere Einteilungsmöglichkeiten
- Schutzziele die Bedroht sind (Vertraulichkeit, Integrität...)
- Auslöser
- Ursache (Benutzer, Technisch, Organisatorisch)
- Abuse Cases
- Wie würde man das System angreifen
- Vertrauensgrenzen
- Grenzen zwischen Akteuren, die sich nicht trauen
#### Risikoanalyse
- Man Betrachtet die Risiken der Einzelnen Bedrohungen
- Gesetzliche oder regulatorische Verletzungen
- Klage, Aufgabe des Geschäftsbetriebs
- Finanzielle Schäden
- Aufwendungen durch Schadensbehebung
- Entgangene Gewinne
- Verlust von Know How
- Vertragsaspekte
- Verstoß gegen SLAs
- Schadensersatzforderungen
- Das Risiko einer Bedrohung ergibt sich aus
- Eintrittswarscheinlichkeit
- Schadensumfang
- Quantifizierung des Schadens
- Ein Ausfall des Buchungssystems für einen Tag kostet und xXX Euronen
### Design
#### Architektur
- Sicherheitsanforderungen
- Identifikation und Authentisierung
- Nutzerkonto
- Identifizierung (Wissen, Biometrie, Besitz)
- Wann soll identifiziert werden? (Vor Transaktion oder von Sitzung)
- Ggf. Tokens bzw. Tickets in Vernetzten Anwendungen nutzen
- Rechtevergabe
- Nutzer des Systems müssen mit Rechten versehen werden
- Die Rechteprüfung muss ggf. mehrfach geschehen (Passwortänderung)
- Protokollierung
- Wichtige Prozesse im System müssen nachvollziehbar sein
- Es dürfen jedoch keine Vertraulichen Daten geloggt werden (Passwort)
- Prüfung auf Bedrohungen für die Architektur
- Spoofing (Angriff auf Authentizität)
- Manipulation von Daten (Angriff auf Integrität)
- Preisgabe sensibler Daten (Angriff auf Vertraulichkeit)
- Denial of Service (Angriff auf Verfügbarkeit)
- Unbefugte Rechteerlangung (Privilege Escalation)
- An allen Stellen wo Daten in die Anwendung oder zwischen Komponenten fließen wird auf o.g. Bedrohungen geprüft
- Falls ja -> Maßnahmen überlegen
- Architekturübersicht für Prüfungen
#### Techniken für sichere Architekturen
- Wrapper
- Umschließt ein auszuführendes Programm und prüft Eingaben
- Zusätzlich kann logging geschehen
- Interposition
- Schaltet ein Zwischenstück zwischen zwei Systeme
- Kann Daten prüfen oder blockieren
- Bsp: Proxy
- Compartmentalization
- Verschiedene Bereiche schaffen, welche sich misstrauen und an deren übergängen prüfungen stattfnden
#### E-Commerce-Architektur
- Aufbau
- Reverse Proxy in DMZ
- Web Server
- Application Server
- Database Server
- ggf. Transaktions oder Bestandssysteme
- Sicherheitsaspekte
- Web Server ist der einzige im Internet erreichbare Server
- Ggf. Reverse Proxy davor
- Web Server kommuniziert mit Application Server
- Durch eine Firewall ist der Zugriff auf den Datenbankserver nur vom Application Server möglich
- Ggf. Wrapper um Datenbankserver, welcher gefährliche Statements blockt
- Ggf. müssen Überweisungen o.Ä. an einen Backendserver übergeben werden, welcher durch eine weitere Firewall gesichert ist
- Zum Schutz vor internen Angriffen sind die Verbindungen verschlüsselt
- Auf den Rechnern müssen Nutzergruppen und Zugriffsrechte eingerichtet werden -> Auch in DBMS und co
- z.B. mit LDAP
- Ein IDS überwacht das Netzwerk sowie die Hosts
- Ggf. zentraler Logserver
- NTP Server zur verhinderung von Zeitunterschieden
- Ggf. Cluster um DoS zu verhindern oder performance zu verbessern + Load balancer
#### Implementierung
- Benötigten Umgebungen
- Office PCs für Architekten und Designer
- Produktionsumgebung
- Testumgebung
- Entwicklungsumgebung auf Entwicklermaschine
- Fehlervermeidung
- Warnungen einschalten
- Selbst überwachende Programme
- Implizite Annahmen als Fehler ausprogrammieren
- Ggf. mit bedingter Kompilierung um eine Debugversion zu erstellen
- assert
- Vorbedingungen prüfen
- Invarianten prüfen
- Nachbedingungen prüfen
- Überprüfungen von Neuimplementierungen anhand eines Vergleichs mit der Altimplementierung
- Konsistenzen von Klassen prüfen
#### Sicherheitsaspekte von Programmiersprachen
- C/C++
- Memory Leak
- Double Free
- Formatstring
- Java
- Garbage Collector
- Security Manager
- Prüft Zugriffe auf Resourcen
- Prüft anhand der Security Policy
- Z.B. hat nur Signierter Code Zugriff auf bestimmte Dateien
- Zur grafischen Verwaltung: PolicyTool
- Resourcen müssen freigegeben werden
- Klassen nicht serialisierbar machen um Leaks zu verhindern
#### Behandlung vertraulicher Daten
- Vertrauliche Daten könnten mit einem Debugger ausgelesen werden oder von der Platte gelesen werden, falls sie ausgeswapped werden oder der Rechner in den Ruhezustand versetzt wird
- Falls das Programm abstürzt wäre auch das Auslesen aus einem Memory Dump möglich
- Lösungen
- Geheime Daten nicht speichern, bspw. Passworthash -> Hashfunktion durch Iterationen verlangsamen
- Geheime Daten beim Nutzer speichern -> Nutzer muss diese eingeben, wenn sie benötigt werden
- In spezieller Komponente speichern -> Bspw. Keychain
#### Code Review
- Überprüfung durch Menschen
- Open Source ansatz
- Überprüfung durch Tools
- Tools prüfen Quellcode anhand von Regeln. Idealerweise auf basis eines abstrack syntax tree (AST)
- Folgende Problemfelder können erkannt werden
- Aufruf von sicherheitskritischen Funktionen
- Lokale Analyse von Funktionen und Methoden
- Globale analyse von Datenfluss durch Funktionen und über Modulgrenzen hinweg
- Quellen für Regeln
- SANS CWE Top 25 Software Errors
- OWASP
- Bücher
- Dept. Homeland Security
- Umgang mit gefundenen Problemstellen
- Problem beheben
- Andere Stellen mit gleichem Problem finden
- Suchfunktion
- assert
- Wrapper mit assert
### Test
#### Software Tests
- Arbeiten die Komponenten tatsächlich zusammen wie entworfen (integration test)
- Performance und Speicherbeadarf (performance test / load test)
- Kommen benuter mit der Software klar (user acceptence test)
- Angriffe (penetration test)
- Funktionieren alte funktionen noch? (regressions tests)
- Bsp: JUnit
#### Sicherheits Tests
- Penetrationstests
- Mehrere Schritte
1. Informationsbeschaffung
- z.b. mit Google
3. Scanning
- z.b. nmap
5. Angriff durchführen
6. Zukünftigen Zugriff sicherstellen
7. Dokumentation der Ergebnisse
- Audits und Zertifizierungen
- Dokumentation des Prozesses
- Überwachung und Einhaltung der Prozessschritte
- Dokumentation der Anforderungen an das System
- Dokumentation der Entwurfsergebnisse
- Sicherheit von Systemen messen
- TCSEC der NSA
- ITSEC der EU
- Common Criteria
- Probleme:
- Zertifizierung bezieht sich auf einen bestimmten Stand von Hard- und Software und müsste somit ständig neu ausgeführt werden
### Betrieb
- Sicherer Betrieb
- Ordnungsgemäßer Ablauf des normalen Betriebs
- Beheben kleinerer Probleme durch Admin
- Erkennen von ungewühlichen Aktionen
- Abwehr von Angriffen aller Art (Firewalls)
- Kontrollierte aktualisierungen (Updates)
- Es ist notwendig, dass diese Aktionen von den Richtigen Leuten zur richtigen Zeit ausgeführt werden
- Technische Aspekte -> Wie authentifiziert sich der Admin sicher
- Organisatiorische Aspekte -> Wer ist zuständig für Abstürze? Wie oft wird die Integrität gerprüft?
-