Leaktests zur Bewertung der Schutzqualität von

Transcription

Leaktests zur Bewertung der Schutzqualität von
W
H
I
T
E
P
A
P
E
R
Leaktests
zur Bewertung der
Schutzqualität von Firewalls
Leaktests zur Bewertung der Schutzqualität von
Firewalls
Eine Firewall ist eine zusätzliche Sicherheitskomponente, die umso aktueller wird, je schneller immer neue
Schadprogramme entwickelt werden. Der Einsatz einer
Firewall ermöglicht die Blockierung von unerwünschtem
Netztraffic – sowohl des eingehenden als auch des
ausgehenden Traffics. Wie zuverlässig diese den ausgehenden Traffic kontrolliert und vor Informationslecks
schützt, kann mit Hilfe von Leaktests, die Gegenstand
der vorliegenden Analyse sind, überprüft werden.
tragungsprotokoll (IP, TCP, UDP, ICMP und ­andere),
­IP-Adressen und Ports der lokalen und entfernten
Computer, die am Datenaustausch beteiligt sind.
Bezieht sich die Kontrollregel der Netzaktivität auf alle
Anwendungen im System, so spricht man von einer
Paket­regel.
Ein modernes komplexes Schutzsystem sollte dem
User die Möglichkeit bieten, den Netztraffic zu kontrollieren, also die Daten, welche die auf dem Computer
laufenden Anwendungen über das Netz empfangen
oder senden. Die Komponente, die diese Kontrolle ermöglicht, heißt Firewall. Es gibt sowohl Software- als
auch Hardware-Firewalls (http://de.wikipedia.org/wiki/
Firewall). Der vorliegende Aufsatz beschäftigt sich ausschließlich mit Software-Firewalls.
Es gibt eine Vielzahl sowohl kommerzieller als auch
kostenloser Software-Firewalls. Eine Firewall, die am
Gateway installiert ist (dem Server, der den Traffic zwischen den verschiedenen Netzwerken weiterleitet),
heißt Server- oder Netzwerk-Firewall. Eine auf dem
Computer des Anwenders installierte Firewall wird
als Personal Firewall bezeichnet, denn diese Firewall
schützt ausschließlich den Computer des Users. In der
letzten Zeit werden Personal Firewalls immer öfter in
komplexe Schutzsysteme von PCs integriert. So ist beispielsweise auch in der Anwendung Kaspersky Internet
Security eine Firewall enthalten.
Beispiel für Regeln für die Anwendung Microsoft Outlook in
Kaspersky Internet Security
Moderne Firewalls können in zwei Modi laufen: Ohne
Anwenderanfragen und mit Anfragen. Im Modus ohne
Anfragen bietet die Firewall folgende Optionen:
►jegliche Aktivität erlauben, die nicht durch die Regeln
verboten ist
Leaktests zur Bewertung der Schutzqualität von Firewalls
Definition Firewall
►jegliche Aktivität verbieten, die nicht durch die ­Regeln
erlaubt ist
►jegliche Netzaktivität verbieten
Als wichtigster Funktionsmodus wird der Modus mit
Anwenderanfragen angesehen, der so genannte Lernmodus. Tritt Netzaktivität auf, die unter keine der vorher
aufgestellten Regeln fällt, öffnet die Firewall in diesem
Modus ein Dialogfenster, mittels dessen der Anwender
die Aktion einmalig erlauben oder verbieten oder aber
eine neue Regel für den entsprechenden Typ von Netzaktivität erstellen kann.
Die Firewall-Komponente in Kaspersky Internet Security
Um ihre Hauptfunktion, die Kontrolle des Netztraffics,
ausführen zu können, verwenden Firewalls Regellisten,
auf Grund derer Netzaktivität für verschiedene Anwendungen zugelassen oder verboten wird. Jede Regel
kann verschiedene Parameter beinhalten, wie etwa die
Richtung der weiterzuleitenden Daten, das Datenüber-
2
Funktionsprinzip einer Firewall
Beispiel eines Dialogfensters im Lernmodus der Firewall in
­Kaspersky Internet Security
Auf dem Computer eines durchschnittlichen Anwenders befinden sich für gewöhnlich mehrere Dutzend
Anwendungen, die alle unterschiedliche Netzaktivität
verursachen. Die manuelle Erstellung einer Liste, die
die Netzaktivität der einzelnen Programme beschreibt,
ist daher äußerst arbeitsaufwändig. Aus diesem Grund
liefern alle Firewall-Hersteller vorinstallierte Grund­
regeln für bekannte Netzanwendungen wie den Internet Explorer, Microsoft Outlook, Generic Host Process
for Win32 Services (svchost.exe), Microsoft Application
Error Reporting (dwwin.exe) und viele andere.
Die Firewall errichtet eine „Mauer“ zwischen den Anwendungen auf dem Computer des Users und anderen
Computern im lokalen Netzwerk und im Internet. Für
bekannte, vertrauenswürdige Anwendungen (Trusted
Applications, in den Abbildungen grün unterlegt) existieren Erlaubnisregeln („Lücken“ in der Mauer), die es
ihnen ermöglichen, Daten durch die Firewall in die Außenwelt zu versenden. Netzaktivität aller anderen Anwendungen wird von der Firewall unterbunden („Kollision mit der Mauer“), so dass diese Anwendungen ihre
Daten nicht nach außen senden können – ebenso wenig wie sie Daten von außen empfangen können. Der
Anwender hat dabei die Möglichkeit, zu jeder Zeit neue
Regeln zu erstellen (und so neue „Löcher“ in die Mauer
zu schlagen), die die Anwendungen im Folgenden zum
Datenaustausch innerhalb des Netzes nutzen können.
Einige Firewalls enthalten auch eine Komponente zum
Schutz vor Netzattacken. Diese Komponente analysiert
den ein- und ausgehenden Netztraffic auf das Vorhandensein von Netzpaketen, die mit den Mustern bereits
bekannter Netzpakete übereinstimmen. Die detaillierte
Betrachtung dieser Komponente wird Gegenstand einer separaten Analyse sein.
Leaktests zur Bewertung der Schutzqualität von Firewalls
Die Kontrolle der ausgehenden Daten und der Schutz
vor Informationslecks auf einem Computer durch eine
Firewall lässt sich folgendermaßen grafisch darstellen:
Wie sorgen Firewalls für mehr Sicherheit?
Liste der vorinstallierten Regeln für Anwendungen der Firewall
in Kaspersky Internet Security
Eine Firewall baut eine zusätzliche Schutzschicht
auf, die Schadsoftware stoppen kann, selbst wenn
diese von der Antiviren-Komponente eines komplexen Schutz­systems nicht erkannt wurde. Dieser Fall
kann eintreten, wenn die Beschreibung eines Schad­
programms noch nicht in den Antiviren-Datenbanken
erfasst wurde (und der traditionelle Signatur-basierte
Ansatz daher nicht greift) und das Schadprogramm
sich nicht eindeutig gefährlich oder auch nur auffällig
verhält (so dass auch die Komponente zur Verhaltensanalyse nicht wirksam wird).
3
Vor welchen Malware-Typen kann eine Firewall schützen? Im Prinzip vor allen derzeit verbreiteten Typen von
Schadprogrammen. Auch wenn diese Antwort recht gewagt erscheinen mag, so entspricht sie doch der Realität: Die Funktion der meisten Schadprogramme ist mit
Netzaktivität verbunden, so dass sie folglich mit Hilfe
einer Firewall blockiert werden können.
Es sei angemerkt, dass Firewalls keinen Schutz vor
klassischen Computerviren bieten.
Netzwürmer verbreiten Kopien ihrer selbst über lokale
und globale Netze.
Firewalls sind eine schwer zu umgehende Schutztechnologie. Während ein Virenautor die Schadprogramme
unter heimischen Bedingungen auf Möglichkeiten der
Umgehung von Antiviren-Programmen und Technologien der Verhaltensanalyse testen und seine Machwerke so lange verändern kann, bis sie von diesen
Schutzkomponenten nicht mehr erkannt werden, ist
es wesentlich schwieriger, eine Firewall auszutricksen.
Denn wenn die Funktion eines Programms Netzaktivität beinhaltet, lässt es sich nur äußerst schwer vor dem
„Auge“ der Firewall verbergen. Die einzige Möglichkeit
zur Umgehung von Firewalls besteht in der Ausnutzung
von Sicherheitslücken.
►Backdoor: Werkzeuge zur entfernten (Remote-) Administration von Computern im Netz. Die Steuerung
einer Backdoor erfolgt von einem entfernten Computer, und eine Firewall kann sämtliche Funktionen
schädlicher Programme dieses Typs problemlos blockieren.
►Trojan-PSW: Programme, die verschiedene Informationen von einem infizierten Computer stehlen. Nach
dem Diebstahl vertraulicher Informationen muss der
Trojaner diese auf irgendeine Art an den Hacker
weiterleiten. An diesem Punkt kommt die Firewall
zum Tragen, denn sie kann den Versuch, Daten zu
versenden, unterbinden und so die Anwenderdaten
schützen.
►Trojan-Downloader: Programme, die neue MalwareVersionen, Trojaner und Werbeprogramme auf den
Opfercomputer laden und dort installieren. Die gesamte Funktionalität von Schadprogrammen dieser
Kategorie basiert auf dem Datenaustausch im Netz,
und sie können daher problemlos mit Hilfe einer
Firewall blockiert werden.
►Trojan-Proxy: Programme, die sich verdeckt anony­
men Zugriff auf verschiedene Internet-Ressourcen
verschaffen. Üblicherweise werden sie zum Versand von Spam eingesetzt. Ebenso wie die vorhergehende Klasse trojanischer Programme können
Trojan-Proxys auf Grund ihrer Netz-Aktivität leicht
blockiert werden.
►Trojan-Spy: Programme, die den User des infizierten
Computers ausspionieren. Über die Tastatur eingegebene Informationen, Screenshots, Listen aller aktiven Anwendungen und Aktionen des Anwenders
werden von dem Schadprogramm in einer Datei auf
der Festplatte gespeichert und in Abständen an den
Hacker weitergeleitet. Mit Hilfe einer Firewall kann
der Versand von Daten durch ein unbekanntes Programm verhindert werden. Auf diese Weise gelangen die vom Anwender gestohlenen Daten nicht zum
Autor des Schadprogramms.
Definition von Sicherheitslecks und Leaktests
Über ein Sicherheitsleck (Leak) können die Kontroll­
mechanismen der Netzaktivität einer Firewall umgangen werden. Anwendungen, für die keine Erlaubnisregeln in der Regelliste der Firewall existieren, können
so ungehindert Daten nach außen versenden. Die Firewall blockiert in diesem Fall weder den Datenversand,
noch informiert sie den Anwender im Lernmodus über
die entsprechende Netzaktivität.
Eine richtig eingestellte Firewall sollte keinerlei Sicher­
heitslücken zulassen und jegliche ein- und ausgehende Netzaktivität identifizieren. Daher werden zur
Beurteilung der Funktionsqualität von Firewalls zwei
Kriterien herangezogen: die Qualität der Kontrolle der
eingehenden Daten (Inbound Protection – Schutz vor
äußerem Eindringen in den Computer) und die Kontrollqualität der ausgehenden Daten (Outbound Protection
– Schutz vor Informationslecks auf dem Computer).
Leaktests zur Bewertung der Schutzqualität von Firewalls
Trojanische Programme, die zum gegenwärtigen Zeitpunkt über 90 Prozent aller existierenden Schadsoftware ausmachen, nutzen innerhalb ihres Lebenszyklus
ebenfalls den Datenaustausch über Netzwerke. Zu den
Trojanern zählen die folgenden Malware-Klassen:
Viren nutzen – im Gegensatz zu Würmern – keine
Netzservices zum Eindringen in andere Computer, und
sie müssen – im Gegensatz zu Trojanern – keine Daten
weiterleiten oder Befehle empfangen.
Zur Überprüfung der Schutzqualität, die eine Firewall
vor dem Eindringen in den Computer bietet, werden
normalerweise verschiedene Port-Scanner verwendet
(zum Beispiel ShieldsUP! unter www.grc.com/default.
htm oder Quick Test auf www.pcflank.com/test.htm).
Zur Analyse der Schutzqualität einer Firewall vor Sicher­
heitslecks kommen Leaktests zum Einsatz – kleine,
nicht schädliche Programme, die eine oder mehrere Sicherheitslücken produzieren. Solche Programme werden im Wesentlichen von Forschern und Experten auf
dem Gebiet der IT-Sicherheit geschrieben.
Es liegt auf der Hand, dass die einzige Möglichkeit,
Lecks zu verursachen, in der Ausnutzung bereits bestehender „Lücken in der Mauer“ (Erlaubnisregeln) für
4
bekannte Anwendungen besteht. Die Firewall muss
allerdings zunächst davon „überzeugt“ werden, dass
die entsprechende Netzaktivität tatsächlich von einer
vertrauenswürdigen Anwendung initiiert wird. Zu diesem Zweck existiert eine Vielzahl von Methoden, die
im Folgenden genauer betrachtet werden. Zunächst
einmal beschäftigen wir uns aber näher mit den grundlegenden Prinzipien der Anwendungsausführung in
modernen Betriebssystemen.
Klassifizierung von Sicherheitslecks
Demonstration einer Sicherheitslücke
Prinzipien der Anwendungsausführung in modernen Betriebssystemen
Im Folgenden werden die Technologien näher betrachtet, die von schädlichen Programmen verwendet
werden können, um eine Firewall zu täuschen. Als
Ausgangs­situation wird die in der unten dargestellten
Konstellation gewählt: Im Arbeitsspeicher befinden sich
der Firewall bekannte Prozesse vertrauenswürdiger
Anwendungen sowie ein Prozess einer unbekannten
(schädlichen) Anwendung.
Die CPU eines PC ist in der Lage, Instruktionssätze
auszuführen, die im Arbeitsspeicher des Computers
abgelegt sind. Die Instruktionssätze sind in Ausführungsthreads eingeteilt, die bestimmten Prozessen
zugeordnet werden können, welche sich aktuell im
Arbeits­speicher befinden.
Ausführbare Dateien enthalten Instruktionssätze des
Prozessors, deren Start zum Erscheinen eines neuen
Prozesses im System führt. Außerdem kann ein Prozess auch durch einen anderen Prozess erzeugt werden. Das Betriebssystem unterstützt einen Prozessbaum im Arbeitsspeicher.
Anzumerken ist auch, dass in dem Adressraum der
meisten Prozesse im System nicht nur der Code der
ausführbaren Datei vorhanden ist, sondern auch der
Code einer Vielzahl von dynamisch gelinkten Bibliotheken – DLLs, Dynamic Link Libraries. Diese Bibliotheken enthalten einige allgemeine Funktionen, die für
verschiedene Anwendungen unerlässlich sind. Für die
Applikations-Entwickler entfällt so die Notwendigkeit,
ein und denselben Programmcode für verschiedene
ausführbare Dateien zu kopieren. Eine einzige Bibliothek kann in die Adressräume verschiedener Prozesse
geladen werden.
Ausgangssituation zur Organisation von Sicherheitslücken
Der Versuch einer unbekannten Anwendung, Netzaktivität im eigenen Namen zu initiieren, wird blockiert,
oder die Firewall öffnet ein Dialogfenster mit einer Anfrage an den Anwender.
Leaktests zur Bewertung der Schutzqualität von Firewalls
Ausführungsprinzip von Anwendungen
Es gibt drei grundlegende Methoden, diesen FirewallSchutz zu umgehen:
►Die Firewall wird getäuscht, indem man sie davon
„überzeugt“, dass die Netzaktivität von einer der
vertrauenswürdigen Anwendungen initiiert wird. Zu
diesem Zweck tauscht man die ausführbare Datei
einer der vertrauenswürdigen Anwendungen auf der
Festplatte aus oder tauscht im Speicher die Daten
eines unbekannten Prozesses gegen die eines vertrauenswürdigen Prozesses aus.
►Der Code wird im Namen einer vertrauenswürdigen
Anwendung ausgeführt, indem die DLL oder einfach
ein kleiner Teil des Codes der unbekannten Anwendung in den Adressraum eines vertrauenswürdigen
Prozesses einschleust wird.
5
Zur Umsetzung der oben genannten drei Methoden
existieren sechs Technologien zur Organisation von Sicherheitslecks:
Klassifizierung der Sicherheitslecks
Täuschung
Codeausführung Verwendung dokuim Namen einer mentierter Schnittvertrauenswür­di­ stellen
gen Anwendung
Die folgende Abbildung zeigt das Schema der ersten
Substitutions­variante:
Austausch der ausführbaren Datei eines vertrauenswürdigen
Prozesses auf der Festplatte

Launching

Substitution
Start einer vertrauenswürdigen Anwendung mit Befehls­
zeilen-Parametern. Diese Methode beruht darauf,
dass die meisten Browser die Adresse einer Website,
die geöffnet werden soll, in Form von Befehlszeilen­Parametern empfangen können. Wenn sich seitens des
Webservers auf der entsprechenden Website ein Skript
befindet (zum Beispiel cgi), so können in der Adresszeile auch Parameter übermittelt werden, die mit dem
Input des jeweiligen Skripts übertragen werden. In diesen Parametern könnten ebenso vertrauliche Informationen übermittelt werden, die beispielsweise von einem
Spionageprogramm gestohlen wurden. Dabei wird die
gesamte Netzaktivität vom Browser im Standardmodus
initiiert, was durch die Firewall-Regeln grundsätzlich
erlaubt wird.
Austausch der ausführbaren Datei einer vertrauenswürdigen Anwendung auf der Festplatte oder Austausch
der Daten des unbekannten Prozesses gegen Daten
eines vertrauenswürdigen Prozesses im Speicher.
Damit der Anwender das Erscheinen des Browserfensters nicht bemerkt, wird der Browser normalerweise
im verborgenen Modus gestartet (Ghost, TooLeaky,
Wallbreaker [1]).
Der Sinn der Substitution besteht darin, die Firewall davon zu „überzeugen“, dass die Netzaktivität von einem
der vertrauenswürdigen Prozesse initiiert wird.
Zudem besteht die Möglichkeit, den Browser nicht über
den Schadcode selbst, sondern mit Hilfe anderer Anwendungen zu starten:
 Browser Services
 Substitution  Launching
 DLL Injection  System Services
 Code Injection
Es folgt eine genauere Betrachtung der genannten
Technologien und ihrer Umsetzungsvarianten.
Technologien zur Organisation von Sicherheitslecks
Es lassen sich verschiedene Substitutionsmethoden
unterscheiden:
►Austausch der ausführbaren Datei eines vertrauenswürdigen Prozesses auf der Festplatte (umgesetzt
im Leaktest Runner, siehe Abschnitt „Leaktests“)
►Ersetzung des Namens der Datei der unbekannten
Anwendung mit dem Namen der Datei eines vertrauenswürdigen Prozesses (Leaktest)
►Austausch im Speicher der Daten des bereits geladenen Prozesses der unbekannten Datei gegen die
Daten eines vertrauenswürdigen Prozesses (Coat)
Leaktests zur Bewertung der Schutzqualität von Firewalls
►Verwendung von dokumentierten Schnittstellen, die
von den vertrauenswürdigen Anwendungen zur Verfügung gestellt werden. Bei der Verwendung solcher
Schnittstellen geht die Netzaktivität von den vertrauenswürdigen Anwendungen aus, obgleich die Aktivität nicht von diesen kontrolliert wird. So können über
diese Schnittstellen Daten nach außen gesendet
werden, ohne dass die Firewall eine Warnmeldung
ausgibt.
►Start des Browsers durch den Shell-Prozess Windows Explorer.exe (Wallbreaker [2])
►Start des Browsers durch den Shell-Prozess Windows Explorer.exe, der wiederum durch den Befehls­
interpreter cmd.exe gestartet wird (Wallbreaker [3])
►Start des Browsers unter Ausnutzung des Mechanismus zum Start von Tasks nach Zeitplan in Windows
(Wallbreaker [4]). Die Reihenfolge der Aufrufe stellt
sich in diesem Fall folgendermaßen dar:
AT.exe-> Svchost.exe-> Cmd.exe-> Explorer.exe->
IExplore.exe
6
Die folgende Abbildung zeigt das Schema dieser Methode zur Organisation von Sicherheitslücken:
hergehenden Methode ist diese Operation selbst aber
schon recht verdächtig, obgleich es auch dokumentierte Methoden zur Einschleusung von Code in einen
fremden Prozess gibt. Die Code-Einschleusung wird
manchmal von gewöhnlichen Programmen (wie etwa
Debuggern) eingesetzt, in den meisten Fällen jedoch
von Schadsoftware.
Es gibt viele Möglichkeiten, Code in einen fremden Prozess einzuschleusen:

DLL Injection
Einschleusung einer dynamischen Bibliothek in den
Adressraum eines vertrauenswürdigen Prozesses. Diese Methode basiert auf dem Laden einer zu einem
Schadprogramm gehörigen dynamischen Bibliothek in
den Adressraum eines vertrauenswürdigen Prozesses.
Es gibt viele Arten, diese Methode umzusetzen – die
wichtigsten werden im Folgenden aufgeführt:
►Installation eines Hooks, dessen Code sich in der
dynamischen Bibliothek befindet (CPILSuite [2,3],
FireHole, pcAudit, pcAudit2)
►Laden eines vertrauenswürdigen Prozesses in den
Speicher und Veränderung des Prozessspeichers
(AWFT [1], CPIL, DNStest). Dabei kann vorsorglich versucht werden, die Operation vor einer Entdeckung durch die Firewall zu schützen, indem die
Hooks gelöscht werden (CPILSuite[1])
►Aufspüren eines im Speicher geladenen vertrauenswürdigen Prozesses und die Einschleusung von
Code in diesen (Thermite)
►Laden eines vertrauenswürdigen Prozesses in den
Speicher und Erzeugung eines Remote-Threads in
diesem (AWFT [2,3])
►Eintrag in der System-Registry in der DLL-Liste, die
für jeden neuen Prozess automatisch vom System
geladen wird – Key AppInit_DLLs (Jumper)
►Laden eines vertrauenswürdigen Prozesses in den
Speicher, Erzeugung eines Remote-Threads in diesem und das Laden eines weiteren vertrauenswürdigen Prozesses aus diesem Thread und Veränderung seines Speichers vor der Ausführung (AWFT
[4,5,6])
Beide aufgeführten Umsetzungsarten sind legal und
dokumentiert.
►Ausnutzung der Funktion SetThreadContext zur Erlangung der Kontrolle über einen Thread in einem
vertrauenswürdigen Prozess (CopyCat)
Die folgende Abbildung zeigt das Schema der beschriebenen Methode:
Am häufigsten werden hier die Prozesse von InternetBrowsern angegriffen (Internet Explorer und ­andere
– Tests AWFT [1,2,4], CopyCat, Thermite) sowie
­System-Shells (explorer.exe – Tests AWFT [3,4], CPIL,
CPILSuite [1]) und der Prozess svhost.exe – der Hauptprozess für Windows-Services, die aus dynamischen
Bibliotheken geladen werden (Test DNStest).
Leaktests zur Bewertung der Schutzqualität von Firewalls
Start einer vertrauenswürdigen Anwendung mit den Parametern
der Befehlszeile
Folgende Abbildung zeigt das Schema dieser Methode
zur Erstellung von Sicherheitslücken:
Einschleusung einer dynamischen Bibliothek in einen vertrauenswürdigen Prozess

Сode Injection
Code-Einschleusung in den Adressraum eines vertrauenswürdigen Prozesses ohne Verwendung einer dyna­
mischen Bibliothek. Diese Methode basiert auf der Einschleusung von ausführbarem Code in den Adressraum
eines vertrauenswürdigen Prozesses. Die im Folgenden
von dem fremden Code verursachte Netzaktivität stellt
sich für die Firewall als Netzaktivität des akzeptierten,
bekannten Programms dar. Im Gegensatz zu der vor-
Einschleusung von schädlichem Code in einen vertrauenswürdigen Prozess
7

System Services
Ausnutzung von Programmschnittstellen zur Steuerung
des Internetbrowsers. Die Methode basiert auf der Ausnutzung verschiedener Mechanismen, die in Windows
zum interprozessualen Zusammenwirken verschiedener Komponenten und Anwendungen realisiert sind.
Diese Mechanismen schließen die folgenden Aktionen
ein:
Ausnutzung von Programmschnittstellen in den System­
diensten. Diese Methode ist der vorhergehenden recht
ähnlich. Der Unterschied zwischen den beiden Ansätzen besteht darin, dass in diesem Fall Programmschnittstellen genutzt werden, die von Komponenten
des Betriebssystems und nicht vom Internetbrowser
zur Verfügung gestellt werden. In den Betriebssystemen Windows XP und Windows Vista gibt es mindestens drei derartige Schnittstellen:
►Versenden von Windows-Meldungen an das
Browserfenster. Auf diese Weise verändert sich die
Bedeutung in der Adresszeile des Browsers und mit
der Betätigung der Enter-Taste wird auf die eingefügte Adresse umgeleitet (Breakout).
►Ausnutzung der DDE-Schnittstelle des Browsers –
Ausnutzung der Mechanismen des dynamischen
Datenaustausches DDE (Dynamic Data Exchange,
http://de.wikipedia.org/wiki/Dynamic_Data_Exchange). Die DDE-Bibliothek wurde entwickelt, um
die Möglichkeiten des Windows-Meldungen-­Systems
zu erweitern. Sie ermöglicht es zwei Anwendungen,
während der Ausführung dynamisch Daten auszutauschen. Die Unterstützung von DDE in verschiedenen
Versionen des Internet Explorer wird in dem Artikel
http://support.microsoft.com/kb/q160957 beschrieben (Surfer, ZAbypass, WB [1,3,4]; CPIL­Suite [3]).
►Verwendung des Browsers als Automatisierungsserver (OLE-Automatisierung, basierend auf dem
COM-Modell,
http://de.wikipedia.org/wiki/Object_
Linking_and_Embedding,
http://de.wikipedia.org/
wiki/Component_Object_Model). Bei der OLE-Auto­
matisierung handelt es sich um eine erweiterte
DDE-Technologie. Es gibt zwei COM-Komponenten
des Microsoft Internet Explorers in äußeren Anwendungen
http://msdn2.microsoft.com/en-us/library/
aa741313.aspx):
►Systemdienst BITS (Background Intelligent Transfer
Service, http://msdn2.microsoft.com/en-us/library/­
Aa362827.aspx). Der Dienst zum intelligenten Download von Dateien, der von den Services „Windows
Update“ und „Windows Server Update“ genutzt wird,
ermöglicht den Download von Patches und Updates
im Hintergrundmodus ohne die Übertragungskanäle
zu überlasten. Der Download wird dabei im Falle einer Verbindungsunterbrechung automatisch aktualisiert (BITSTester).
►Die Windows DNS-API (http://msdn2.microsoft.com/
en-us/library/ms682100.aspx) kann zur ­Organisation
einer rekursiven DNS-Anfrage an den Name­server
im Internet genutzt werden. Mit dem Inhalt des
DNS-Pakets könnten noch zusätzliche Daten übermittelt werden, unter anderem auch vertrauliche
Anwender-Informationen. Ein Hacker, der einen der
Name­server kontrolliert, die solche DNS-Anfragen
bearbeiten, kann solche Informationen empfangen,
indem er so ein speziell aufgebautes Paket bearbeitet (DNSTester).

Schnittstelle MSHTML, umgesetzt in mshtml.dll
(PCFlank)
►Die Schnittstelle zur Steuerung der Desktop­
elemente und Windows Wallpaper (IActiveDesktop,
http://msdn2.microsoft.com/en-us/library/ms647199.
aspx) ermöglicht die Erstellung einer HTML-Seite als
Desktop-Wallpaper, wenn Windows Active Desktop
aktiviert wird. Die HTML-Seite kann Elemente enthalten, die auf äußere Ressourcen verweisen, was
bei der Aktivierung neuer Desktop-Wallpaper zum
Laden dieser Ressourcen führt (Breakout2).
Die folgende Abbildung zeigt das Schema dieser
Methode zur Organisation von Sicherheitslücken.
Unterschiede zu bestehenden Klassifizierungen
von Sicherheitslecks

WebBrowser Control, umgesetzt in der Datei
­shdocvw.dll (OSfwbypass)
Leaktests zur Bewertung der Schutzqualität von Firewalls

Browser Services
Die oben beschriebene Klassifizierung unterscheidet
sich leicht von anderen derartigen Klassifizierungen
von Sicherheitslücken auf Websites, die auf die ­Analyse
von Sicherheitslecks spezialisiert sind.
Die erste uns bekannte Website, auf der eine systematisierte Untersuchung von Sicherheitslecks veröffentlicht wurde, ist www.firewallleaktester.com. Eine Klassifizierung von Sicherheitslücken findet man unter www.
firewallleaktester.com/categories.htm.
Ausnutzung von Programmschnittstellen zur Steuerung des
Browsers
Im Jahr 2006 erschien die zweite derartige Site www.
matousec.com, zu deren Hauptprojekten „die Untersu-
8
Klassifizierung der Sicherheitslecks
Methode auf
Methode auf
www.firewallleaktester.com www.matousec.com
 Hidden Rules (Verborgene Default Rules (StandardRegeln)
Regeln)
Own Protocol Driver
 Direct Network Interface
Use (Direkter Zugriff auf
(­Eigener Protokolldie Netzwerk-Schnittstelle) Treiber)
 Timing-Attacke
 Rekursive Anfragen
Rekursive Anfragen
 Registry Injection (Ein­
dringen in die Registry)
 Methodensammlung
Windows Messaging +
OLE
Windows Messages und
OLE Automation, DDE

Unhooking
Im Folgenden wird begründet, warum die in der Tabelle
aufgeführten Methoden in unserer Klassifizierung nicht
berücksichtigt werden:

Bei der Methode „Verborgene Regeln“ handelt es
sich nicht um eine Sicherheitslücke im eigentlichen
Sinne, da hier keine Technologie zur Umgehung der
Kontrolle der Netzaktivität durch die Firewall zum
Einsatz kommt. Das Wesen dieser Methode liegt in
der Überprüfung verschiedener Paketregeln (die für
alle Anwendungen im System gelten), die von der
Firewall per Standardeinstellung verwendet werden.
Ist einer der Netzwerkports für alle Anwendungen offen, so kann er auch von einem Schadprogramm zur
Datenübertragung nach außen genutzt werden.
Die Methode „Direkter Zugriff auf die NetzwerkSchnittstelle“ basiert auf der Umgehung der Filtermechanismen des Netz-Traffics auf „unterer“ Ebene.
Hier wird ein alternativer Stack der Netzwerktreiber
geschrieben, der zusammen mit den System-Stacks
(TCP/IP und andere) die vom Netzadapter kommenden Pakete bearbeitet. Diese Methode wird in
unserer Klassifizierung nicht berücksichtigt, da es
zum gegenwärtigen Zeitpunkt nicht eine Umsetzung
(Leaktest) gibt, die unter den aktuellen Betriebssystemen Windows XP/Vista läuft. Zudem ist das
Erscheinen neuer Leaktests oder gar schädlicher
Programme, die diese Methode einsetzen, höchst
unwahrscheinlich, da sie wesentlich schwieriger umzusetzen ist als andere Methoden zur Organisation
von Sicherheitslücken. Es sei jedoch angemerkt,
dass es drei Leaktests gibt, die unter dem veralteten
Betriebssystem Windows 9x laufen und diese Methode verwenden:
►MbTest (Autor: “mbcx8nlp”, 2003), verwendet die
Bibliothek Winpcap
►Outbound (Autor: HackBusters, 2001)
►YALTA [2] (Autor: Soft4ever, 2001)
Die Methode „Timing-Attacke“ wird in unserer Klassifizierung nicht als eigene Kategorie aufgeführt, da
die von ihr verwendete Technologie (Neustart des
eigenen Prozesses zur Veränderung des PID – des
Prozessidentifikators) es derzeit praktisch nicht ermöglicht, auch nur eine Firewall zu umgehen.
Die Methode „Rekursive Anfragen“ zählt in unserer
Qualifikation zu den Methoden der Gruppe „System
Services“.
Die Methode „Eindringen in die Registry“ ist gemäß
unserer Klassifizierung Bestandteil der Kategorie
„DLL Injection“, da diese Methode nicht auf ein Eindringen in die Registry aufbaut, sondern eine dynamische Bibliothek in einen vertrauenswürdigen Prozess einschleust. Tatsächlich ist dies unter anderem
mit Hilfe eines speziellen Schlüssels der System­
registry möglich.

Die unter der Überschrift „Windows Messaging +
OLE“ zusammengefassten Methoden finden sich
in unserer Klassifizierung in den Gruppen „Browser
Services“ und „System Services“. Diese Einteilung
erscheint uns logischer, da sie nicht die technische
Umsetzung (etwa das Versenden von Meldungen)
beschreibt, sondern das Wesen der Technologie
zur Organisation von Sicherheitslücken auf einer
höheren Ebene: Die Verwendung von Programmschnittstellen der Browsersteuerung oder von Netzwerkdiensten des Betriebssystems.
Leaktests zur Bewertung der Schutzqualität von Firewalls
chung von Personal Firewalls unter Windows“ gehört
(www.matousec.com/projects/windows-personal-firewall-analysis/introduction-firewall-leak-testing.php). Die
Klassifizierung von Sicherheitslücken auf dieser Site
ist der unter www.firewallleaktester.com sehr ähnlich,
dennoch gibt es einige Unterschiede, welche in der folgenden Tabelle aufgeführt sind. In unserer Klassifizierung sind die folgenden Methoden nicht enthalten:

„Unhooking“. Die Idee hinter dieser Methode sieht
folgendermaßen aus: Firewalls zum Schutz vor verschiedenen Sicherheitsleck-Technologien verwenden Hooks. Werden diese entfernt, so bietet die
Firewall keinen Schutz mehr vor Sicherheitslecks.
Wie aus der Beschreibung deutlich wird, handelt es
sich bei dieser Methode nicht um eine Sicherheits­
lücke als solche und wird daher in der Klassifizierung
nicht berücksichtigt. Wird das Unhooking zusammen
mit einer beliebigen anderen, realen Methode eingesetzt, so ist es allerdings möglich, den Schutz
einer Firewall vor der gegebenen Methode unter
schwerstmöglichen Bedingungen zu testen, indem
eine Situation imitiert wird, in der schädlicher Code
der Firewall aktiven Widerstand leistet.
9
Noch vor wenigen Jahren wurden Firewalls zum Schutz
von PCs nur recht selten eingesetzt. Daher verwendeten nur vereinzelte Schadprogramme Sicherheitslecks
zur Umgehung von Firewalls. In jüngster Zeit setzen
die Autoren von Schadsoftware allerdings immer häufiger das Mittel der Automatisierung ein, um innerhalb
kürzester Zeit neue Exemplare ihrer Programme zu
erhalten. Der Strom neuer Malware schwillt daher beständig an. Vor diesem Hintergrund spielen zusätzliche
Schutzmechanismen für den PC eine immer größere
Rolle, und die Popularität von Firewalls wächst entsprechend.
Angesichts der zunehmenden Verbreitung von Firewalls setzen die Malware-Autoren immer häufiger
Sicher­heitslecks zur Umgehung des Firewallschutzes
ein. In der folgenden Tabelle sind Beispiele für reale
Schadprogramme aufgeführt, die jede einzelne der
sechs wichtigsten Methoden zur Organisation von
­Sicherheitslecks abdecken.

Backdoor.Win32.Bifrose.aer
Entdeckt am 26. März 2007, arbeitet mit ­Substitution:
Kopiert sich selbst an die Stelle des Programms
MSN Messenger (c:\Programme\MSN Messenger\
msnmsgr.exe).
Trojan-Spy.Win32.Agent.se
Entdeckt am 26. Juni 2007, startet über Befehlszeilenparameter: Startet den Internet Explorer mit nicht
sichtbarem Fenster und übermittelt in der Befehlszeile den Pfad zu einer HTML-Datei.
Trojan-Spy.Win32.Goldun.pq
Entdeckt am 11. Juni 2007, schleust eine dynamische Bibliothek ein: Registriert die DLL im Registry-Key AppInit_DLLs und fängt mit dessen Hilfe den
Internet-Traffic ab
Verschiedene Typen von Sicherheitslecks können verschiedene Aufgaben erfüllen und werden daher von
Schadprogrammen zur Erreichung unterschiedlicher
Ziele eingesetzt. Im Einzelnen:
►Über die Befehlzeilen-Parameter des Browsers kann
nur eine begrenzte Datenmenge übertragen werden, doch die Technologie BITS ermöglicht es einem
Schadprogramm, auch eine besonders große Datei
vom Anwendercomputer herunterzuladen
►Bei den Methoden „Einschleusung einer dynamischen Bibliothek“ und „Einschleusung von Programmcode in einen vertrauenswürdigen Prozess“
handelt es sich nicht ausschließlich um Methoden
zur Umgehung von Firewalls. Diese Methoden ermöglichen nämlich nicht nur den verborgenen Datenversand im Namen eines vertrauenswürdigen
Prozesses, sondern auch die Durchführung einer
Vielzahl von anderen Operationen
►Die Nutzung von Schnittstellen zur Steuerung des
Browsers (zum Beispiel WebBrowser Control) ermöglicht nicht nur den Datenversand im Namen des
Internet Explorers. Mit Hilfe dieser Methode können
zudem viele andere Aktionen durchgeführt werden:
Die Steuerung einer geöffneten Kopie des Browsers
(es ist beispielsweise möglich, alle Fenster zu schließen, in denen die Adresse nicht alle vorgegebenen
Bedingungen erfüllt), die Modifikation eines in ihm
geöffneten Dokumentes, Entfernung eines Mitteilungsfensters im Browser und so weiter.
Leaktests zur Bewertung der Schutzqualität von Firewalls
Verwendung von Sicherheitslecks in Malware
Trojan-Spy.Win32.Delf.uc
Entdeckt am 19. Januar 2007, schleust Code in einen vertrauenswürdigen Prozess ein: Erstellt einen
Thread im Prozess winlogon.exe und versendet in
diesem Thread Daten ins Internet.
Trojan-PSW.Win32.LdPinch.bix
Entdeckt am 4. Januar 2007, nutzt die Steuerung
des Internetbrowsers aus: Nutzt zum Versenden der
gesammelten Daten die COM-Schnittstelle IWebBrowser2.

Trojan-Downloader.Win32.Nurech.br
Entdeckt am 8. Juni 2007, nutzt System-Dienste:
Mit Hilfe des System-Dienstes BITS werden Daten
ins Internet übermittelt, die den User identifizieren
(Serien­nummer der Festplatte).
10
Bedeutung der Ergebnisse von Leaktests
Die Tabelle unten gibt eine Übersicht über die derzeit
bekannten Leaktests mit Verweisen auf die von ihnen
eingesetzte Methode. Die meisten dieser Leak­tests
­stehen unter www.matousec.com/projects/­windowspersonal-firewall-analysis/introduction-firewall-leak­testing.php oder www.firewallleak­tester.com zum
Down­load bereit.
Welchen Vorteil bringen nun solche mit Hilfe von Leak­
tests durchgeführten Vergleichstests von Firewalls? In
erster Linie zeigt sich hier natürlich die Integrations­
qualität des Schutzsystems bei der Auswahl einer komplexen Lösung zum Schutz des Anwendercomputers.
Gemäß unserer Klassifizierung lassen sich diese Leak­
tests wie folgt einteilen:

Substitution: Coat, LeakTest, Runner
Launching: Ghost, TooLeaky, Wallbreaker
DLL Injection: CPILSuite [2,3], FireHole, Jumper,
pcAudit, pcAudit2
Code Injection: AWFT, CopyCat, CPIL, CPILSuite
[1], DNStest, Thermite
Browser Services: Breakout, OSfwbypass, PCFlank,
Surfer, ZAbypass

System Services: BITSTester, Breakout2, DNStester
Derzeit beschränken sich die Hauptkriterien bei der
Auswahl einer Schutzlösung für Heimanwender meist
nur auf das Erkennungsniveau und die Reaktionszeit
des Produkts (beispielsweise bei den Tests www.avcomparatives.org, www.av-test.de). Zur Beurteilung
der Qualität eines modernen Schutzsystems ist dies
jedoch nicht ausreichend. Es gibt eine Vielzahl weiterer
Charakteristika, denen die Autoren der Vergleichstest
leider zu wenig Beachtung schenken. Dies sind unter
anderem die Qualität der „proaktiven“ Komponente
des Anti­virus-Programms, die Effektivität der Wiederherstellung eines infizierten Systems, der Widerstand
gegenüber aktiven Rootkits, die Selbstschutzqualität
des Produkts und vieles mehr. Bei der Auswahl eines
komplexen Schutzprodukts sollten auch solche Komponenten wie Spamschutz und Firewall einer Analyse
unterzogen werden.
Übersicht über die bekannten Leaktests
Nr.
Name
Autor
Methode
Jahr
1
2
3
4
5
6
7
8.1
8.2
8.3
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
AWFT (6)
BITSTester
Breakout
Breakout2
Coat
CopyCat
CPIL
CPILSuite [1]
CPILSuite [2]
CPILSuite [3]
DNStest
DNStester
FireHole
FPR (38)
Ghost
Jumper
LeakTest
OSfwbypass
pcAudit
pcAudit2
PCFlank
Runner
Surfer
Thermite
TooLeaky
Wallbreaker (4)
YALTA
ZAbypass
José Pascoa
Tim Fish
Volker Birk
Volker Birk
David Matousec
“Bugsbunny”
Comodo
Comodo
Comodo
Comodo
Jarkko Turkulainen
Jarkko Turkulainen
Robin Keir
David Matousec
Guillaume Kaddouch
Guillaume Kaddouch
Steve Gibson
Debasis Mohanty
Internet Security Alliance
Internet Security Alliance
www.pcflank.com
David Matousec
Jarkko Turkulainen
Oliver Lavery
Bob Sundling
Guillaume Kaddouch
Soft4ever
Debasis Mohanty
Code Injection
System Services
Browser Services
System Services
Substitution
Code Injection
Code Injection
Code Injection + Launching
DLL Injection + Launching
DLL Injection + Browser Services
Code Injection
System Services
DLL Injection
Unhooking
Launching
DLL Injection
Substitution
Browser Services
DLL Injection
DLL Injection
Browser Services
Substitution
Browser Services
Code Injection
Launching
Launching
Default Rules
Browser Services
2005
2006
keine Angabe
keine Angabe
2006
keine Angabe
2006
2006
2006
2006
2004
2004
2002
keine Angabe
2004
2006
2002
2005
2002
keine Angabe
2006
2006
2004
2003
2001
2004
2001
2005
Leaktests zur Bewertung der Schutzqualität von Firewalls
Leaktests
11
Unserer Meinung nach gewähren Produkte, die in den
Testreihen www.matousec.com/projects/windows-personal-firewall-analysis/leak-tests-results.php die Bewertung „very good“ oder „excellent“ erhalten haben,
den Anwendern Schutz auf hohem Niveau. Bei Produkten mit den Bewertungen „good“ oder gar „poor“
beziehungsweise „very poor“ hingegen haben die Autoren von Schadprogrammen die freie Auswahl unter
den Methoden zur Umgehung der in diese Produkte
integrierten Firewalls.
(Vista x64) sicherer als seine Vorgängermodelle. Um
ein ausreichendes Schutzniveau vor Sicherheitslecks
gewährleisten zu können, müssen jedoch selbst unter
Windows Vista ergänzende Schutzprogramme hinzugezogen werden.
In der Zukunft werden Schadprogramme neue Methoden zur Umgehung der Schutzmechanismen des
Betriebssystems und auch der bestehenden Schutzlösungen einsetzen. Daher wird die Bedeutung von
Firewalls als zusätzliche Schutzkomponente auch weiterhin zunehmen. Dabei werden die Malware-Autoren
immer intensiver Technologien zur Organisation von
Sicherheitslecks verwenden, um den Firewallschutz
zu umgehen. Vor diesem Hintergrund ist die Durchführung von Leaktests als Werkzeug zur Bewertung der
Schutzqualität von Computern unerlässlich.
Nikolay Grebennikov
Stellvertretender Direktor der Abteilung für
innovative Technologien, Kaspersky Lab
Fazit
Die Firewall wird mehr und mehr zu einer unverzichtbaren Komponente komplexer Schutzsysteme. Selbst
die modernsten Betriebssysteme wie etwa Windows
Vista sind nicht in der Lage, selbständig alle Typen von
Sicherheitslecks zu blockieren (wir weisen darauf hin,
dass in die Betriebssysteme Windows, beginnend mit
Windows XP SP2, eine Firewall integriert ist, deren
Funktionen in Windows Vista entscheidend erweitert
wurden).
Den Ergebnissen einer im März 2007 von Guillaume
Kaddouch durchgeführten Testreihe zufolge (www.firewallleaktester.com/articles/vista_and_leaktests.html)
wurden von dem Betriebssystem Windows Vista Ultimate 64-Bit in der Standardeinstellung lediglich neun
Leak­tests blockiert (die blockierten Leaktests sind im
Folgenden fett markiert):

Substitution: Coat, LeakTest, Runner
Launching: Ghost, TooLeaky, Wallbreaker
DLL Injection: CPILSuite [2,3], FireHole, Jumper,
pcAudit, pcAudit2
Code Injection: AWFT, CopyCat, CPIL, CPILSuite
[1], DNStest, Thermite
Browser Services: Breakout,
PCFlank, Surfer, ZAbypass
OSfwbypass,
Kaspersky Lab
Kaspersky Lab reagiert im weltweiten Vergleich von
Antivirus-Herstellern meist am schnellsten auf ITSicherheitsbedrohungen wie Viren, Spyware, Crimeware, Hacker, Phishing-Attacken und Spam.
Leaktests zur Bewertung der Schutzqualität von Firewalls
Wie bereits erwähnt, beruht die Qualität einer Firewall
auf zwei Komponenten, nämlich der Kontrolle der eingehenden Daten und der Kontrolle der ausgehenden
Daten. Gute Werte in Tests zur Kontrolle der ausgehenden Daten lassen den Schluss zu, dass es sich bei
der entsprechenden Firewall nicht allein um eine „Zugabe“ zu dem Antivirus-Programm handelt, sondern dass
diese ein zusätzliches Schutzniveau gewährleistet. So
bietet eine derartige Firewall unter anderem die Möglichkeit, das Versenden vertraulicher Anwenderdaten
an den Hacker sogar in dem Fall zu verhindern, wenn
das Antiviren-Programm das entsprechende trojani­
sche Programm nicht blockieren konnte.
Die Produkte des global agierenden Unternehmens mit
Hauptsitz in Moskau haben sich sowohl bei Endkunden
als auch bei KMUs, Großunternehmen und im mobilen
Umfeld durch ihre erstklassigen Erkennungsraten und
minimalen Reaktionszeiten einen Namen gemacht.
Neben den Stand-Alone-Lösungen des SecurityExperten ist Kaspersky-Technologie Bestandteil
vieler Produkte und Dienstleistungen führender ITSicherheitsunternehmen.
Kontakt
Kaspersky Labs GmbH
Steinheilstr. 13
85053 Ingolstadt

System Services: BITSTester, Breakout2, DNStester
Telefon: +49 (0)841 981 89 0
Telefax: +49 (0)841 981 89 100
Zweifellos ist das neue Betriebssystem auf Grund einer
Reihe von Verbesserungen wie etwa UAC, IE Protected
Mode, Service Hardening und Kernel Patch Protection
[email protected]
www.kaspersky.de
12