Folien als PDF-Datei
Transcrição
Folien als PDF-Datei
Sondervorlesung „Netz-Sicherheit“ IDS Evasion: Eine technische Einführung Tillmann Werner, Edwin Reusch CERT-Bund, Bundesamt für Sicherheit in der Informationstechnik Universität Bonn, 4. Juli 2007 BSI Bundesamt für Sicherheit in der Informationstechnik, Bonn Drei Fachabteilungen + Verwaltungsabteilung Abteilung 1: „Sicherheit in Anwendungen, KRITIS und im Internet“ Referat 121 - CERT-Bund, „Computer-Notfallteam für Bundesbehörden“ Aufgaben von CERT-Bund Veröffentlichen von Advisories zu aktuellen Schwachstellen Monitoring und Bewertung der Bedrohungslage im Internet Incident Handling bei sicherheitskritischen Vorfällen (im Bereich Bund) Anlassbezogene Analyse von Schadprogrammen und Angriffen Point-of-Contact für internationale CERTs © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 2 Agenda Einleitung – Signaturbasierte Network Intrusion Detection Systems Praktische und theoretische Grenzen Überblick über klassische Evasion-Techniken Evasion mit fragmentierten IP-Paketen Evasion mit speziellen TCP-Segmenten Evasion auf Anwendungsebene Gegenmaßnahmen und Ausblick © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 3 Überblick: Network Intrusion Detection Systems Ein Network Intrusion Detection System ist eine spezielle, netzwerkfähige Komponente zur Feststellung von Angriffen gegen IT-Systeme. Dazu wird der Netzverkehr passiv mitgelesen und anhand hinterlegter Signaturen auf bestimmte Eigenschaften hin untersucht. Wird eine solche Signatur getriggert, kann ein Alarmierungsprozess angestoßen werden. Netz Signaturen Network Intrusion Detection System Alarmierung © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 4 Praktische Grenzen signaturbasierter IDS Um Netzverkehr korrekt klassifizieren zu können, muss ein IDS wissen, wie dieser vom Zielsystem interpretiert wird. In größeren Netzen ist dies dem passiven IDS praktisch unmöglich. Netzverkehr Verschiedene Betriebssysteme verhalten sich unterschiedlich. Signaturen NIDS Ohne Detailkenntnis über das Netz entstehen so zwangsläufig Mehrdeutigkeiten. © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 5 Theoretische Grenze signaturbasierter IDS Lässt sich ein optimales signaturbasiertes IDS formal beschreiben? Eingabe a Signaturen 1-n 0 © Tillmann Werner, Edwin Reusch, BSI NIDS χA(a) 4. Juli 2007 1 Folie 6 Theoretische Grenze signaturbasierter IDS Ist es für jede Signatur möglich zu entscheiden, ob sie auf eine beliebig gewählte Eingabe passt? Obige Frage kann als Instanz des Entscheidungsproblems aufgefasst werden: Eine Menge A heißt entscheidbar, falls die charakteristische Funktion von A berechenbar ist. Ist berechenbar? Oder in der Terminologie der Automatentheorie: Ist A entscheidbar? © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 7 Theoretische Grenze signaturbasierter IDS Programmiersprachen wie C, C++ oder Java sind turing-vollständig, das heißt, ihre Mächtigkeit ist (unter bestimmten Annahmen) äquivalent mit der einer Turing-Maschine. Ein Angriff kann Funktionen in einer turing-vollständigen Sprache enthalten. Turing-vollständige Sprachen sind vom Typ 0, also semi-entscheidbar: Das IDS basiert ebenfalls auf einer turing-vollständigen Sprache, simuliert also seinerseits eine Turingmaschine. Damit wäre für ein optimales IDS das Halteproblem zu lösen. © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 8 Theoretische Grenze signaturbasierter IDS Eine alternative Betrachtung basiert auf dem Satz von Rice: Sei S eine nicht-triviale Teilmenge der turing-berechenbaren Funktionen. Dann ist die Sprache L(S) := { M | M berechnet eine Funktion aus S } nicht entscheidbar. Extensionale Eigenschaften von Programmen können mit einem IDS, das beliebige Programme verarbeiten muss, nicht entschieden werden. Konkret: Es ist im Allgemeinen nicht möglich zu entscheiden, ob observierte Daten einen Angriff darstellen, oder nicht. © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 9 Agenda Einleitung – Signaturbasierter NIDS Praktische und theoretische Grenzen Überblick über klassische Evasion-Techniken Evasion mit fragmentierten IP-Paketen Evasion mit speziellen TCP-Segmenten Evasion auf Anwendungsebene Gegenmaßnahmen und Ausblick © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 10 Klassische Evasion-Techniken – Injection Injection: Das IDS verarbeitet ein Paket, welches vom Opfersystem nicht verarbeitet wird. Der Angreifer fügt dazu zusätzliche Pakete in die (eventuell permutierten) Angriffsdaten ein. T X T C A A K Paket wird verworfen A T X T A C K A Intrusion Detection System T T Opfersystem A C K ! d e k Hac Quelle: [1] © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 11 Beispiel: Zu allgemeine Regeln auf dem IDS Injection-Beispiel: IP-Pakete mit ungültiger Prüfsumme werden vom IDS nicht verworfen. IP-Paket IP-Paket IP-Paket IP-Paket ungültige Prüfsumme IP-Paket IP-Paket IDS: IP-Paket IP-Paket IP-Paket = = ≠ © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 ! ed k c Ha Opfer: IP-Paket IP-Paket Die Signatur wird nicht getriggert. Folie 12 Klassische Evasion-Techniken – Evasion Evasion: Das IDS verarbeitet ein Paket nicht, welches vom Opfersystem verarbeitet wird. Der Angreifer gestaltet dazu ein Paket der Angriffsdaten so, dass es vom IDS, aber nicht vom Opfer verworfen wird. T T C A A K Paket wird verworfen A T T C K A Intrusion Detection System T T Opfersystem A C K ! d e k Hac Quelle: [1] © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 13 Beispiel: Zu restriktive Regeln auf dem IDS Evasion-Beispiel: IP-Pakete mit bestimmten IP-Optionen werden vom IDS verworfen, weil dieses irrtümlich der Policy einer konkreten Implementierung folgt. IP-Paket IP-Paket IP-Paket IP-Paket mit IP-Option Record Route Opfer: IP-Paket IP-Paket IDS: IP-Paket IP-Paket = = © Tillmann Werner, Edwin Reusch, BSI IP-Paket IP-Paket ≠ 4. Juli 2007 ! ed k c Ha IP-Paket Die Signatur wird nicht getriggert. Folie 14 Klassische Evasion-Techniken – DoS Denial-of-Service: Das IDS wird mit Angriffen geflutet. Sind alle Ressourcen des IDS belegt, so werden weitere Angriffe nicht erkannt. Tatsächliche Angriffe werden zwischen Scheinangriffen leicht übersehen. Fake Fake Fake Fake Fake Fake Fake Echt ! d e ack H NIDS © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 15 Agenda Einleitung – Signaturbasierter NIDS Praktische und theoretische Grenzen Überblick über klassische Evasion-Techniken Evasion mit fragmentierten IP-Paketen Evasion mit speziellen TCP-Segmenten Evasion auf Anwendungsebene Gegenmaßnahmen und Ausblick © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 16 Fragmentation Increasingly sophisticated attackers have begun to exploit the more subtle aspects of the Internet Protocol; fragmentation of IP packets […] poses several potential problems […]. Quelle: RFC1858: Security Considerations for IP Fragment Filtering Internet Protocol Header: 0 3 4 7 8 15 16 Version IHL Type of Service Identification Time to Live 18 19 31 Total Length D M Fragment Offset Header Checksum Protocol Source Address Destination Address © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 17 Unterschiedliche Reassembly-Strategien 1. Fragment 2. Fragment 3. Fragment 4. Fragment BSD: BSD-right: Linux: First: RFC791: Quelle: [2] © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 18 IP Reassembly Timeout des IDS Angriff 1. Fragment 2. Fragment Signatur-Match Opfer: 1. Fragment IDS: 1. Fragment © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 19 IP Reassembly Timeout des IDS Angriff 1. Fragment 2. Fragment Signatur-Match Opfer: 1. Fragment IDS: o 1. Fragment me © Tillmann Werner, Edwin Reusch, BSI Ti ut 4. Juli 2007 Folie 20 IP Reassembly Timeout des IDS Angriff 1. Fragment 2. Fragment Signatur-Match Opfer: IDS: © Tillmann Werner, Edwin Reusch, BSI 1. Fragment 2. Fragment ! ed k c Ha 2. Fragment 4. Juli 2007 Folie 21 IP Reassembly Timeout des Opfers Angriff 1. Fragment 2. Fragment 2. Fragment Signatur-Match Opfer: 2. Fragment IDS: 2. Fragment © Tillmann Werner, Edwin Reusch, BSI 3. Fragment 4. Juli 2007 Folie 22 IP Reassembly Timeout des Opfers Angriff 1. Fragment 2. Fragment 2. Fragment Signatur-Match Opfer: t u o 2. Fragment e m i T IDS: 2. Fragment © Tillmann Werner, Edwin Reusch, BSI 3. Fragment 4. Juli 2007 Folie 23 IP Reassembly Timeout des Opfers Angriff 1. Fragment 2. Fragment Opfer: 1. Fragment IDS: 1. Fragment © Tillmann Werner, Edwin Reusch, BSI 2. Fragment 3. Fragment Signatur-Match 3. Fragment 2. Fragment 4. Juli 2007 3. Fragment Folie 24 IP Reassembly Timeout des Opfers Angriff 1. Fragment 2. Fragment Opfer: 1. Fragment IDS: 1. Fragment © Tillmann Werner, Edwin Reusch, BSI 2. Fragment 3. Fragment Signatur-Match 3. Fragment e ab 2. Fragment g i e Fr 4. Juli 2007 3. Fragment Folie 25 IP Reassembly Timeout des Opfers Angriff 1. Fragment 2. Fragment Opfer: IDS: © Tillmann Werner, Edwin Reusch, BSI 1. Fragment 2. Fragment 3. Fragment Signatur-Match 2. Fragment 2. Fragment 4. Juli 2007 3. Fragment ! d e ack H Folie 26 Agenda Einleitung – Signaturbasierter NIDS Praktische und theoretische Grenzen Überblick über klassische Evasion-Techniken Evasion mit fragmentierten IP-Paketen Evasion mit speziellen TCP-Segmenten Evasion auf Anwendungsebene Gegenmaßnahmen und Ausblick © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 27 IDS Evasion mit TCP Im Zusammenhang mit TCP lassen sich zwei grundlegende Arten von Evasion-Angriffen unterscheiden: Ähnlich wie auf IP-Ebene kann der TCP Stream manipuliert werden, so dass Nutzdaten vom IDS nicht korrekt interpretiert werden. Ein Angreifer kann gezielt dafür sorgen, dass das IDS ungültige State-Informationen führt. Transmission Control Protocol Header: 0 7 8 Source Port 15 16 31 Destination Port Sequence Number Acknowledgement Number Offset Reserved Flags Window Checksum Urgent Pointer Options © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 28 TCP Session Splicing Mit Daten in mehreren, sehr kleinen TCP-Segmenten kann das Pattern Matching des IDS umgangen werden (Session Splicing). Das Opfersystem setzt die Segmente wieder zum TCP Stream zusammen, das IDS nicht. Opfer: IDS: GET http://evilsite.org GET ht tp://evil d! e k ac H site.org ≠ …evilsite… © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Die Signatur wird nicht getriggert. Folie 29 TCP Segment Permutation Ein weiterer Angriff besteht darin, die TCP-Segmente in permutierter Reihenfolge zu senden, um das Zusammensetzen zu erschweren. Setzt das IDS den Stream anhand der Segment-Reihenfolge zusammen, schlägt das Pattern Matching fehl. 1. Segment 2. Segment 3. Segment 4. Segment 4. Segment 1. Segment 3. Segment 2. Segment © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 30 Strategien beim TCP Stream Reassembly Damit im IDS ein Reassembly der TCP Streams erfolgen kann, ist ein Tracking der verwendeten Sequenznummern erforderlich. Oft kann der Synchronisations-Algorithmus mit speziell konstruierten Segmenten gezielt attackiert werden. 1. Segment 2. Segment 3. Segment 4. Segment MS Windows: Unix/Linux: © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 31 Injection/Evasion-Angriff mit Urgent Data Verschiedene Betriebssysteme interpretieren den Urgent Pointer im TCP Header unterschiedlich. Dies kann wiederum ausgenutzt werden, wenn das IDS und das Opfer eines Angriffs abweichende Strategien verwenden. 3 Bytes 3 Bytes 3 Bytes Urgent Data, Urgent Pointer = 3 BSD: RFC793: RFC1122: Quelle: [3] © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 32 Manipulation der State Table mit RST-Segmenten Ein TCP-Verbindungsaufbau (SYN, SYN/ACK, ACK) führt zu einem Eintrag in der State Table des IDS. Angreifer Router Router Router Zielsystem State Table: Quell-IP-Adresse und -Port Ziel-IP-Adresse und -Port IDS © Tillmann Werner, Edwin Reusch, BSI Session State: ESTABLISHED 4. Juli 2007 Folie 33 Manipulation der State Table mit RST-Segmenten Vorgetäuschter Verbindungsabruch: RST-Segment mit TTL kleiner als die Anzahl der Hops zum Zielsystem Der Router reagiert mit einer ICMP-Nachricht Type 11, Code 0 (TTL EXCEEDED IN TRANSIT), die vom IDS nicht verarbeitet wird. Angreifer Router Router Router Zielsystem State Table: t h c s Quell-IP-Adresse und ö -Port l e g Ziel-IP-Adresse und -Port g a tr n i E Session State: ESTABLISHED IDS © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 34 Manipulation der State Table mit RST-Segmenten Der Angreifer kann nun Daten über die noch existente Verbindung senden. Das IDS kann dafür keine Zuordnung vornehmen, weil kein passender Eintrag in der State Table vorhanden ist. Angreifer Router Router ? Zielsystem State Table: t h c s Quell-IP-Adresse und ö -Port l e g Ziel-IP-Adresse und -Port g a tr n i E Session State: ESTABLISHED IDS © Tillmann Werner, Edwin Reusch, BSI Router 4. Juli 2007 Folie 35 Manipulation der State Table – TCP Port Overriding IP Header TCP Header 0 34 7 DPORT 0 SYN-Segment 3 4 7 8 1. Fragment: MF, Offset=0 80 2. Fragment: MF, Offset=0 25 3. Fragment: 15 16 Offset=16 Bei unterschiedlichen Reassembling-Strategien erhält das IDS ein SYN-Segment an Port 80 und das Opfer ein SYN-Segment an Port 25. © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 36 Agenda Einleitung – Signaturbasierter NIDS Praktische und theoretische Grenzen Überblick über klassische Evasion-Techniken Evasion mit fragmentierten IP-Paketen Evasion mit speziellen TCP-Segmenten Evasion auf Anwendungsebene Gegenmaßnahmen und Ausblick © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 37 Manipulation der Anwendungschicht IP Header TCP Header Nutzdaten Neben den vorgestellten Techniken (IP Fragmentation, Session Splicing, …) existieren weitere Methoden, um Signaturen für Nutzdaten auszuhebeln. Üblicherweise werden die Daten dabei ohne Änderung der Semantik so umgeformt, dass Signaturen nicht mehr greifen. Um derartig transformierte Angriffe erkennen zu können, muss ein IDS über entsprechende Logik auf Anwendungsebene verfügen. © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 38 Beispiele für manipulierte Nutzdaten HTTP unterstützt als URL-Kodierung neben ASCII auch Percent Encoding, UTF8 und Unicode. GET%20%7E/cgi.bin%3Fani.jpg%3D1 Verzeichnisangaben in Protokollen wie telnet und ftp können um redundante Directory-Traversal-Anteile ergänzt werden. /./etc/../etc/.//passwd Polymorpher Shellcode kann signaturbasiert nur schwer erkannt werden. XOR-Decoder © Tillmann Werner, Edwin Reusch, BSI codierter Shellcode 4. Juli 2007 Folie 39 URL-Verschleierung in HTTP-GET-Requests HTTP-GET-Request: GET ~/cgi-bin?ani.jpg=1 UTF8-Codierung: GET%20%7E/cgi.bin%3Fani.jpg%3D1 GET ~/cgi.bin?ani.jpg=1 URL-Codierung: %47%45%54%20%7E%2F%63%67 %69%2E%62%69%6E%3F%61%6E %69%2E%6A%70%67%3D%31 Je mehr Variationen möglich sind, desto mehr Logik ist im IDS notwendig. Quelle: [4] © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 40 Agenda Einleitung – Signaturbasierter NIDS Praktische und theoretische Grenzen Überblick über klassische Evasion-Techniken Evasion mit fragmentierten IP-Paketen Evasion mit speziellen TCP-Segmenten Evasion auf Anwendungsebene Gegenmaßnahmen und Ausblick © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 41 Gegenmaßnahmen – Active Mapping Bestimmte Injection- und Evasion-Angriffe können verhindert werden, wenn ein IDS aktiv ermitteln kann, wie das zu schützende Netz beschaffen ist. Mit Active Mapping wird versucht, Betriebssystem-Versionen und aktive Dienste zu bestimmen. NIDS Systeme: MS Windows 2000 Linux 2.6.x Sun Solaris 9 © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 42 Gegenmaßnahmen – Normalisierung Mit vor- und nachgeschalteten Normalisierern können mehrdeutige Daten vereinheitlicht werden. Allerdings bedeutet dieses Setup einen massiven Eingriff in die Netzstruktur. Das IDS wird nur mit eindeutig interpretierbaren Paketen konfrontiert. Normalizer © Tillmann Werner, Edwin Reusch, BSI NIDS 4. Juli 2007 Normalizer Folie 43 Quellen und Links [1] Insertion, Evasion and Denial-of-Service: Eluding Network Intrusion Detection http://insecure.org/stf/secnet_ids/secnet_ids.pdf [2] Active Mapping: Resisting NIDS Evasion Without Altering Traffic http://www.icir.org/vern/papers/activemap-oak03.pdf [3] Phrack 0x0b, Line Noise, NIDS Evasion Method named “SeolMa” http://phrack.org/issues.html?issue=57&id=3 [4] UTF8 Encoder/Decoder http://wwwrsphysse.anu.edu.au/~mxk121/javascript/jsUTF8.html [5] IDS Evasion with Unicode http://www.securityfocus.com/infocus/1232 [6] IDS Evasion Techniques and Tactics http://www.securityfocus.com/infocus/1577 [7] Evading NIDS, revisited http://www.securityfocus.com/infocus/1852 [8] RFC 815 - IP Datagram Reassembly Algorithms http://www.faqs.org/rfcs/rfc815.html [9] RFC 1858 - Security Considerations for IP Fragment Filtering http://www.faqs.org/rfcs/rfc1858.html © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 44 Kontakt Bundesamt für Sicherheit in der Informationstechnik (BSI) Tillmann Werner, Edwin Reusch Referat 121 – CERT-Bund Godesberger Allee 185-189 53175 Bonn Tel: +49 (0)1888 9582-5110 Fax: +49 (0)1888 9582-5427 [email protected] [email protected] http://www.bsi.bund.de http://www.cert-bund.de © Tillmann Werner, Edwin Reusch, BSI 4. Juli 2007 Folie 45