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

Documentos relacionados