HTTP-Evader: Wie Firewalls und Angriffserkennungssysteme überlistet werden

HTTP-Evader: Wie Firewalls und Angriffserkennungssysteme überlistet werden

Beim Surfen möchten wir Webseiten betrachten, Videos anschauen und angebotene Informationen herunterladen – möglichst ohne unseren Rechner mit Malware zu infizieren. Firewalls, Intrusion Detection Systeme, aber auch Browser bieten Schutzmechanismen, indem sie die Daten aus dem Web prüfen. Doch was passiert eigentlich, wenn diese nicht dem Standard entsprechen?

Im Forschungsprojekt APT-Sweeper versuchen wir, vorhandene Analysesysteme zu verbessern, indem wir den Kontext der Kommunikation stärker einbeziehen. Dabei wurde das Verhalten von Browsern auf der Ebene des zentralen Übertragungsprotokolls für das Web (HTTP - Hypertext Transport Protocol) genauer analysiert. Es zeigten sich deutliche Unterschiede in der Implementierung des Standards durch die Browser im Bereich von selten benutzten Protokolleigenschaften sowie dem Verhalten gegenüber ungültigem HTTP.

Ausgehend von diesen Ergebnissen wurde ein Testsystem erstellt, mit der sowohl das Verhalten einzelner Browser als auch das Zusammenspiel von Browsern und Firewalls evaluiert werden kann. Mit diesem Testsystem wurden erhebliche Sicherheitslücken in nahezu allen getesteten Firewall-Produkten entdeckt, die eine Umgehung der Analyse und damit das Einschleusen von Malware durch die Firewall hindurch ermöglichten.

Details zu den Tests und Ergebnissen

Anfängliche manuelle Tests hatten bereits signifikante Unterschiede zwischen den Browsern aufgezeigt. Auch wurden erste Sicherheitslücken entdeckt und an die entsprechenden Hersteller weitergegeben. Aufbauend auf diesen Erfahrungen wurde ein Testsystem entwickelt, mit dem automatisch das Verhalten von Browsern bei selten verwendeten Bestandteilen des HTTP-Protokolls sowie fehlerhaftem HTTP überprüft werden kann.

Dieses ist ebenfalls dazu geeignet, die Kombination von Browser und Firewall zu testen und so festzustellen, ob die Malware-Analyse der Firewall umgangen werden kann. Um eine möglichst breite Palette an Browsern und Firewalls bei den Tests abdecken zu können, wurde ein öffentlicher Testserver aufgesetzt und bekanntgemacht, sodass interessierte Nutzer aus aller Welt das Verhalten ihrer Browser und Firewalls getestet haben.

Bei den Tests wurde festgestellt, dass die Browser einen sehr "lockeren" Umgang mit der Spezifikation pflegen: Neben einigen offensichtlichen Verletzungen bei selten genutzten Eigenschaften des Protokolls akzeptieren die Browser vermutlich aus Gründen der Benutzerfreundlichkeit vielfach ungültige Daten. Erschwerend kommt hierbei hinzu, dass sich bei den Browsern die Logik hinter der jeweiligen Interpretation unterscheidet.

Deutlich schlimmer war jedoch, dass der größte Teil der getesteten Firewalls eine mangelhafte Implementierung der Spezifikation hatte. Diese war zum einen oft unvollständig: Die Firewall verstand die Daten nicht und leitete sie einfach durch. Zum anderen waren die Firewalls dem unerwarteten und uneinheitlichen Umgang der Browser bei ungültigem oder selten benutztem HTTP nicht gewachsen und interpretierten vielfach die Daten auf andere Weise als der Browser. Auf diese Weise waren triviale Umgehungen der Analyse und damit das Einschleusen von Malware durch die Firewall möglich. Zu den typischen Problemen gehörten:

  • Bei der Nutzung von HTTP Version 0.9 wurden Daten nicht (korrekt) analysiert. Version 0.9 ist eine stark veraltete Version des HTTP-Protokolls, die trotzdem von fast allen Browsern weiterhin unterstützt wird.
  • Viele Firewalls waren nicht in der Lage, mit "deflate" komprimierte Inhalte zu analysieren, obwohl dieses Kompressionsschema in allen aktuellen Browsern unterstützt wird. Stattdessen wurden die Daten ohne Analyse weitergeleitet.
  • Kreative Nutzung verschiedener Formen von Leerzeichen, Zeilenenden, Groß- bzw. Kleinschreibung oder das Hinzufügen überflüssiger oder ungültiger Zeichen führte zu unterschiedlicher Sicht auf die Daten in Browser und Firewall und damit zur Umgehung der Analyse.

Daneben gab es noch viele andere Umgehungsmöglichkeiten, welche auf der Webseite des HTTP-Evader Projekts detailliert beschrieben sind.

Nachdem sichtbar war, dass wohl der größte Teil der am Markt befindlichen Produkte von dem Problem betroffen war, wurde das Testsystem erweitert, um Fehlermeldungen aus dem Browser an den Testserver zu melden. Durch Analyse der Fehlermeldungen konnten in vielen Fällen konkrete Produkte identifiziert werden. Soweit möglich, wurden die entsprechenden Hersteller informiert.

Wie macht man es besser?

Aber nicht alle Produkte sind betroffen: Eines der wenigen Produkte am Markt, welches in der Standardkonfiguration nicht betroffen ist, ist die High Resistance Firewall genugate. Ursache dafür ist vor allem eine konsequente Umsetzung des Robustheitsgrundsatzes "Sei streng bei dem, was du tust und offen bei dem, was du von anderen akzeptierst".

Die High Resistance Firewall genugate verfolgt konsequent den Robustheitsgrundsatz

Browser und die meisten Firewalls sind dabei primär darauf ausgelegt, möglichst tolerant bei der Akzeptanz der Daten zu sein, um so mit allen Webservern zusammenzuspielen. Bei der genugate hingegen wird zusätzlich großer Wert darauf gelegt, strikt bei der Weitergabe zu sein. Durch die Reduktion der Protokolldaten auf vom Standard erlaubte und von allen Browsern einheitlich verstandene Werte, werden unterschiedliche Interpretationen des Protokolls zwischen den Browsern und der Firewall vermieden. Und im Gegensatz zu vielen anderen Firewalls leitet die genugate nur Daten weiter, die sie sicher verstanden hat. Das bedeutet z. B., dass bei unbekannten Kompressionsverfahren oder fehlerhaft komprimierten Inhalten diese abgelehnt statt weitergeleitet werden.

Eine derartige Bereinigung der Daten vor der Weiterleitung bei gleichzeitiger Toleranz gegenüber Eingabedaten mit kleinen Fehlern ist nur innerhalb von Application Level Gateways wie der genugate möglich. Andere Firewall-Architekturen, wie z. B. die klassischen Intrusion Detection Systeme, ermöglichen keine tiefergehende Bereinigung der Daten während der Weiterleitung. Damit sind sie auf Blockieren oder die überwiegend unveränderte Weiterleitung der Daten beschränkt und können die hier beschriebenen Umgehungen auf Applikationsebene nicht zuverlässig verhindern, ohne gleichzeitig an Toleranz gegenüber leicht fehlerbehafteten Eingabedaten zu verlieren.

Weitere Informationen

HTTP Evader – Automate Firewall Evasion Tests
Beschreibung der HTTP-Evader Test-Suite, dem unerwartetem Verhalten der Browser bei seltenen oder fehlerhaften HTTP-Bestandteilen und spezifischer Techniken zur Umgehung von Firewalls.

E-Mail-Codierung: Ich sehe was, was du nicht siehst ...
Blogbeitrag zur Umgehung der Analyse bei E-Mail mit ähnlichen Techniken.

Firewalls – schnell oder sicher?
Blogbeitrag zur grundlegenden Unterschieden in der Analysequalität verschiedener Firewall-Technologien.

Aus der Hölle der Internetprotokolle: Mehrfachkompression
Blogbeitrag zum unterschiedlichen Verhalten von Browsern und IDS bei mehrfach komprimierte Inhalten.

 

Bildquelle: ©Swapan - Fotolia.com


Diskutieren Sie mit

Sie können diesen Artikel sofort ohne Registrierung als Gast-User kommentieren.

Registrieren Sie sich jetzt! Mit einem User Account genießen Sie Vorteile:
Ihr Kommentar wird sofort im genublog veröffentlicht und Sie werden über Reaktionen auf Ihre Kommentare informiert.

Bereits registrierte User gelangen hier zum Login.



Registrieren Sie sich jetzt! Mit einem User Account genießen Sie Vorteile:
Ihr Kommentar wird sofort im genublog veröffentlicht und Sie werden über Reaktionen auf Ihre Kommentare informiert.

Bereits registrierte User gelangen hier zum Login.