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 Paketregel. 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 Schutzsystems 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 Ausgangssituation 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 Arbeitsspeicher 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ürdi stellen gen Anwendung Die folgende Abbildung zeigt das Schema der ersten Substitutionsvariante: 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 BefehlszeilenParametern 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]; CPILSuite [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 Nameserver 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 Nameserver 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 Sicherheitslecks 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 (Seriennummer 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 Leaktests stehen unter www.matousec.com/projects/windowspersonal-firewall-analysis/introduction-firewall-leaktesting.php oder www.firewallleaktester.com zum Download 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 Antivirus-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 Leaktests 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