Zielgerichtete getarnte Angriffe (Eng. Advanced Evasion Techniques) Intrusion Detection und Prevention Systeme IT-Sicherheitssysteme wie ein „Intrusion Detection System“ bzw. „Intrusion Prevention System“ (IDS bzw. IPS) oder eine Firewall mit „Deep Packet Inspection“ (DPI) stellen eine „Verteidigungslinie“ gegen Angriffe aus dem Internet dar. Ein IDS soll Angriffe erkennen, diese loggen und Verantwortliche alarmieren. Das IPS erweitert diese Aufgabe indem es Angriffe blockiert. Solche IT-Sicherheitssysteme bieten viele Vorteile: i • Ein IPS schützt das Netzwerk inklusive aller Endgeräte bevor Sicherheitspatches zur Verfügung stehen. Sobald eine neue Sicherheitslücke bekannt wird, erhält das IPS automatisch alle wichtigen Informationen darüber und kann dadurch die Schwachstelle im System sofort schützen. Damit ist der Client vor der neuen Bedrohung sicher noch bevor die Lücke geschlossen ist. • Ein IPS ermöglicht das „virtuelle Patchen“ von Servern und Diensten. Dabei sichert es gefährdete Server ab, die erst während des nächsten Wartungsfensters gepatcht werden sollen. • Viele IT-Sicherheitssysteme agieren als eine Web Applikationsfirewall (kurz WAF), in dem sie Webseiten gegen Webschwachstellen wie z.B. „SQL Injection“, „Cross Site Scripting“ schützen. Diese Schwachstellen können nur behoben werden wenn der Source Code der Seite entsprechend geändert wird. Das IPS kann eine verwundbare Webseite schützen bis man die Schwachstelle am Source-Code behoben hat. Somit stellen diese IT-Sicherheitssysteme eine Risikominimierungsmaßnahme gegen die Ausnutzung von Schwachstellen durch Angreifer dar. Viele IDS/IPS Systeme funktionieren nach dem Prinzip des Musterabgleichs (engl. Pattern Matching). Jeder Angriff, der eine Schwachstelle ausnutzen will, wird anhand einer Signatur oder einen Fingerprint erkannt (Dasselbe Prinzip wird bei Antivirensoftware verwendet). Erkennt das IT-Sicherheitssystem diese Signatur wird der Angriff identifiziert und kann verhindert werden. Können aber diese IT-Sicherheitssysteme umgangen werden? Kann ein Angreifer eine Schwachstelle auf die Systeme ausnutzen obwohl das IPS/IDS über einen Fingerprint für diese Schwachstelle verfügt und dabei keine Spuren hinterlassen? Die Antwort ist leider Ja. Professionelle Angreifer sind in der Lage ihre Angriffe so zu verschleiern und zu tarnen, dass ein IDS oder IPS den Angriff nicht erkennt, obwohl es über eine Signatur von diesem Angriff verfügt. Diese verschleierten und getarnten Angriffe nennt man „Advanced Evasion Techniques“ (AET). Fast alle IT-Sicherheitssysteme können ohne großen Aufwand mit AETs umgangen werden. Was sind Evasions? Technisch beinhaltet eine Evasion also die Veränderung und Manipulation von protokollspezifischen Daten, wie unter anderem Fragmentierung, die Nutzung bestimmter wenig benutzter Flags im Protokoll, sowie das Hinzufügen von weiteren Informationen, sodass das IT- Sicherheitssystem auf Basis von Signaturen nicht mehr in der Lage ist diese Angriffe zu erkennen. Evasions sind keine neue Erfindung, die erste wissenschaftliche Arbeit zu diesem Thema fand bereits in den 1990er stattii. Evasions sind auf jede TCP/IP Netzwerkschicht (Network Layer) und auf jedes Protokoll möglich wie zum Beispiel: • Netzwerkschicht 2: Evasions auf das IP Protokoll • Netzwerkschicht 3: Evasions auf das TCP Protokoll • Netzwerkschicht 4: Evasions auf die HTTP, SMB, NetBIOS … Protokolle Evasion auf das IP Protokoll Einer der Evasions auf das IP Protokoll nennt sich „IP Chaff“. Hierbei wird versucht gefälschte oder ungültige IP Pakete zu senden mit der Hoffnung, dass das IT-Sicherheitssystem den gesamten Verkehr nicht richtig interpretiert. Die Ausnutzung dieser Evasion kann so abgebildet werden: 1. Ein Angreifer will ein IP Paket mit einem Schadcode durchschleusen. Ohne Evasions wird das Paket vom IT-Sicherheitssystem bemerkt. 2. Anstatt das Schadcode-Paket zuerst zu senden, sendet der Angreifer zuerst ein ungültiges Paket (chaffed packet). So ein Paket hat einen unauffälligen Inhalt aber falsche Angaben im IP-Header wie z.B. unstimmige Paketlänge oder Prüfsumme (checksum). 3. Das IT-Sicherheitssystem lässt das gefälschte Paket nicht weiter. 4. Der Angreifer sendet unmittelbar danach das Paket mit dem Schadcode und stellt sicher, dass die Identifikationsnummer von diesem Paket (im IP-Header) dieselbe wie die vom ungültigen Paket ist. Um die Paket-Inspizierung für manche IDS/IPS Systeme zu beschleunigen, geht dessen Algorithmus davon aus, dass das zweite Paket ein „Resend-Paket“ sein muss, da beide Pakete dieselbe Identifikationsnummer haben. Und weil der Inhalt vom ersten Paket unbedenklich war, und das zweite Paket ein „Resend-Paket“ ist, ist die Schlussfolgerung von solchen IT-Sicherheitssystemen, dass der Inhalt vom zweiten Paket auch unbedenklich sein muss. Somit kann der Angreifer seinen Schadcode unbemerkt vom IDS/IPS durchschleusen. Evasions auf das TCP Protokoll Auf das TCP Protokoll findet man zahlreiche Evasions, einer davon ist die „TCP Overlap“ Evasion. Bei dieser Evasion versucht man unbedenkliche Inhalte mit bösartigen Inhalten zu überlappen. Das folgende Beispiel zeigt, wie ein Angreifer diese Evasion ausnutzen kann. Will der Angreifer z.B. seinen Schadcode „Payload is evil“ durchschleusen und das IT-Sicherheitssystem verfügt bereits über diese Signatur, so kann er folgende Schritte durchführen: 1. Der Angreifer sendet zuerst ein TCP Segment mit dem Inhalt „Payload is good“. Das Segment wird als unbedenklich eigestuft und geht durch das IDS/IPS. Zu beachten ist, dass der Inhalt 15 Bytes in der Länge ist. Das heißt, wenn das Segment mit der „Sequenz Nummer“ (ein Feld im TCP-Header) 1000 gesendet wurde, so ist das nächste Segment mit der Sequenz-Nummer 1016 zu erwarten. 2. Der Angreifer sendet danach ein Segment mit dem Inhalt „ evil, this is bad“. Der Inhalt ist auch unbedenklich und somit passiert das Segment das IDS/IPS. Aber die Sequenznummer für dieses Segment ist nicht 1016 sondern 1012. 3. Wenn das Zielsystem die Segmente zusammenstellt, dann überschreibt das zweite Segment die letzten 4 Bytes vom ersten Segment. Was das Zielsystem sieht ist: Somit konnte der Angreifer sein Schadcode „ Payload is evil“ durchschleusen obwohl das IT-Sicherheitssystem über dieselbe Signatur verfügt. Evasions auf das HTTP Protokoll Viele Evasions können aufs HTTP Protokoll gerichtet werden u.a. die „Request Pipeline“ Evasion. Bei dieser Evasion versucht der Angreifer das IDS/IPS zu irritieren, in dem er zwei oder mehr HTTP Anfragen hintereinander sendet. Wie das folgende Beispiel zeigt, kann die Evasion so ausgenutzt werden: 1. Angenommen, der Angreifer will eine Schwachstelle auf eine Webseite ausnutzen (Cross Site Scripting, Sql Injection, …) dafür muss die Ausnutzung der Schwachstelle im URL stattfinden wie z.B. http://webseite.de/ausnutzung_schwachstelle. Diese Anfrage wird mit dem HTTP Protocol so weitergegeben 2. Weil das IT-Sicherheitssystem über einen Fingerprint für diese Schwachstelle verfügt, kann der Angreifer diese Anfrage so nicht senden. Stattdessen sendet er zwei (oder mehr) HTTP GET Anfragen hintereinander. Die erste Anfrage bezieht sich auf eine unbedenkliche Website (z.B. index.html). Die letzte GET Anfrage beinhaltet den tatsächlichen Schadcode. 3. Manche IT-Sicherheitssysteme überprüfen nur die erste GET Anfrage. Somit kann der Angreifer seinen Schadcode unbemerkt von einem IDS/IPS durchschleusen obwohl es über einen Fingerprint verfügt. Kann man mit Evasions IT-Sicherheitssysteme umgehen? Hersteller von Netzwerk-Security Lösungen haben Maßnahmen getroffen, die Ihre Produkte vor einzelnen Evasions schützen. Viele Hersteller lassen Ihre IDS/IPS Systeme zertifizieren, zum Beispiel von NSS Labs. Beim Zertifizierungsprozess werden die Systeme geprüft, dass sie mit Evasions nicht umgangen werden könneniii. Aber da die Testmethoden von den Zertifizierungsstellen bekannt sind, können sich die Hersteller dagegen rüsten z.B. mit Signaturen oder Fingerprints iv. Allgemein kann man sagen, dass viele moderne IDS/IPS Systeme im Markt gegen einzelne Evasions geschützt sind. Vor etwa 15 Jahren (1998) v hat man damit begonnen Evasions miteinander zu kombinieren, denn die Kombination von mehreren Evasions ist eine neue Evasion. Diese komplexen Evasions nennt man Advanced Evasion Techniques (AET). Advanced Evasion Techniques In 2007 began Stonesoft mit der Forschung im Bereich getarnte Angriffe oder Advanced Evasions. Bei dieser Zeit gab es mehrere Tools mit denen man einzelne Evasions kombinieren konnte, aber mit keinem konnte man Evasions auf der IP, TCP und Applikationsschicht zusammen kombinieren. Stonesoft entwickelte ein Tool Namens Evader (evader.stonesoft.com), mit dem sich Evasions auf verschiedenen Protokollen kombinieren lassen, z.B. IP, TCP, HTTP, SMB und NetBIOS. Die Ergebnisse der Forschungsarbeiten waren ernüchternd, denn man konnte alle namhaften IDS/IPS ohne große Schwierigkeit umgehen. Das wurde der Öffentlichkeit in 2010 bei einer Pressemitteilung bekannt gemacht vi. Die Herausforderung beim Schutz vor AET ist deren Vielfältigkeit an Variationen, denn bei z.B. 4 Evasions, kann man sie in 16 Variationen kombinieren oder es gibt 16 neue Evasions. Die Anzahl von Evasions, die man auf Evader kombinieren kann ist mehr als 163vii. Man hat theoretisch es gibt 2 80 2163 Möglichkeiten (zum Vergleich Sterne im Universum). Mit Signaturen oder Fingerprints kann man sich gegen AET überhaupt nicht schützen. Deswegen meiden viele Hersteller Maßnahmen gegen AET zu treffen, denn das würde bedeuteten, dass sie die Architektur ihrer IT-Sicherheitssysteme ändern müssen. Die Umgehung von IT-Sicherheitssysteme mit Evader Evader ist ein kostenloses Security-Tool, das man selbst unter evader.stonesoft.com herunterladen kann. Es ist eine Testumgebung mit der man 2 Schwachstellen ausnutzen kann: • conficker - MSRPC Server Service Vulnerability, CVE-2008-4250 • http_phpbb_highlight - HTTP phpBB highlight, CVE-2004-1315 Es besteht aus einer virtuelle Linux Image, die man als „Victim“ und „Attacker“ präparieren kann. • Evader Victim: Dieser Server hat die Schwachstelle CVE-2004-1315, mit der ein Angreifer beliebigen Code auf der Maschine durchführen um z.B. einen Shell-Zugriff zu bekommen. • Evader Attacker: Diese Maschine simuliert den Attacker, er versucht die CVE-2004-1315 Schwachstelle mittels AET auszunutzen. • Sie platzieren Ihr IT-Sicherheitssystem (wie die Abbildung unten) sodass es den Verkehr zwischen den Victim und Attacker inspizieren kann. Ziel von dieser Testumgebungviii ist das eigene IT-Sicherheitssystem im Netz zu testen, ob es Schutz gegen AET bietet. CVE-2004-1315 ist eine sehr alte Schwachstelle von 2004. Alle gängigen IDS/IPS Systeme bieten bereits einen Fingerprint, der gegen diese Verwundbarkeit schützen soll. Wenn das eigene IDS/IPS über einen Fingerprint für die „http_phpbb_highlight“ Schwachstelle verfügt, aber sie trotzdem mittels AET ausgenutzt werden kann, so bedeutet dies, dass dieses System keinen Schutz gegen AET liefert. Für diese Schwachstelle bietet Evader 27 einzelne Evasions. Sie können jede Kombination von den 27 Evasions für die „http_phpbb_highlight“ testen. Zusätzlich hat jede Evasion mehrere Variationen, z.B. für die tcp_overlap Evasion (unser Beispiel für TCP Evasions) können Sie angeben wie viele Bytes sich überlappen soll und ob die alten Segmente die neuen überlappen oder umgekehrt. Die Anzahl von Evasions mit deren Variationen ist unendlich, deswegen fallen alle Hersteller von IT-Sicherheitssystemen mit dem Evader-Test durch. Schutzmaßnahmen gegen AET Der effektivste Schutz gegen getarnte Angriffe ist nicht die Verwendung von Signaturen oder Fingerprints, sondern Traffic Normalisierung. Das bedeutet, dass das IT-Sicherheitsgerät den Verkehr so verstehen muss als ob dieser für das IDS/IPS selbst bestimmt wäre. Alle versuchten Manipulationen auf dem gesamten Verkehr und auf allen Netzwerkschichten werden so erkannt. Viele Hersteller verwenden eine vertikale Inspektionsmethode wie in der unteren Grafik. Die Inspektion wird nur auf einem Teil des Verkehrs gemacht. Diese Methode bietet keinen Schutz gegen AET. Die richtige Methode den Verkehr zu inspizieren ist die horizontale Methode. Hier findet die Inspizierung auf dem gesamten Verkehr statt. Es werden alle Evasions oder Manipulationen auf allen Netzwerkschichten erkannt und normalisiert. Diese Methode hat sich bewährt, z.B. eine unabhängige Studie ix von der University of South Wales hat 9 Hersteller mit Evader gegen 2638 möglichen CVE-2004-1315 und 2759 CVE-2008-4250 Attacken, die mit AET präpariert sind getestet. Nur das IPS von Stonesoft konnte bei beiden Attacken eine Erkennungsrate von mehr als 99,5% erreichen. i Bitte beachten Sie, dass die beste Methode Schwachstellen zu beheben ist, sie auf dem betroffenen System zu entfernen. Ein IDS/IPS ist keine Sicherheitsmaßnahme um die Schwachstelle zu beheben, sondern minimiert nur das Risiko bis die Verwundbarkeit auf dem Zielsystem beseitigt wird. ii „Insertion Evasion and Denial of Service Eluding Network Intrusion Detection”, H. Ptacek, N. Newsham 1998 iii https://www.nsslabs.com/system/files/public-report/files/IPS%20Methodology%20v6_2.pdf iv Zum Beispiel beim NSS Labs Verfahren wird geprüft ob das IPS/IDS mit kleinen Segmenten umgangen werden kann. NSS Labs überprüft nur Segmente von 1 und 2 Bytes, aber nicht mit 3, 4, 5 … Bytes. Obwohl manche Hersteller den Test bei NSS Labs bestehen, kann man trotzdem die Evasion mit einer anderen Konstellation ausnutzen v Mit dem Tool fragroute und fragrouter. vi http://www.stonesoft.com/en/company/press_and_media/releases/en/2010/18102010-2.html vii http://www.stonesoft.com/en/company/press_and_media/releases/en/2011/10102011.html viii Evader ist kein Penetration Tool, man kann mit ihm nur CVE-2008-4250 und CVE-2004-1315 ausnutzen. ix Effectiveness of blocking evasions in Intrusion Prevention Systems White Paper, April, 2013 Konstantinos Xynos, Iain Sutherland, Andrew Blyth University of South Wales, Pontypridd, Wales.