12.07.2015 Aufrufe

Keylogger: Funktionen und Erkennungsmethoden ... - B4B Schwaben

Keylogger: Funktionen und Erkennungsmethoden ... - B4B Schwaben

Keylogger: Funktionen und Erkennungsmethoden ... - B4B Schwaben

MEHR ANZEIGEN
WENIGER ANZEIGEN
  • Keine Tags gefunden...

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

W H I T E P A P E R<strong>Keylogger</strong>: <strong>Funktionen</strong> <strong>und</strong><strong>Erkennungsmethoden</strong>•Technische Umsetzung von<strong>Keylogger</strong>n unter Windows•Schutz vor <strong>Keylogger</strong>n mitProdukten von Kaspersky Lab


<strong>Keylogger</strong>: <strong>Funktionen</strong> <strong>und</strong> <strong>Erkennungsmethoden</strong>Im Februar 2005 reichte der Geschäftsmann Joe Lopezaus Florida Klage gegen die Bank of America ein, nachdemunbekannte Hacker dem amerikanischen Unternehmer90.000 US-Dollar von seinem Konto bei derBank of America gestohlen <strong>und</strong> nach Lettland transferierthatten.Die Ermittlungen ergaben, dass sich auf dem Computervon Lopez der Virus Backdoor.Win32.Apdoor (Backdoor.Coreflood)befand, der alle Tastatureingaben desAnwenders registriert <strong>und</strong> diese via Internet an die Virenautorenweiterleitet. Auf diese Weise gelangten dieHacker in den Besitz seines Passworts <strong>und</strong> Logins zurKontoverwaltung.Das Gericht lehnte die Schadensersatzforderung allerdingsab, <strong>und</strong> zwar mit der Begründung, dass Lopezdie elementarsten Sicherheitsmaßnahmen bei der Online-Verwaltungseines Bankkontos außer Acht gelassenhatte, denn die Signatur des entsprechenden Viruswurde bereits im Jahr 2003 in die Datenbanken fast allerAntivirus-Hersteller aufgenommen. Abgesehen vonLopez’ eigenem Leichtsinn hat ein gewöhnlicher <strong>Keylogger</strong>zum Verlust von 90.000 US-Dollar geführt.Was sind <strong>Keylogger</strong>?Der Begriff <strong>Keylogger</strong> ist neutral. In der wörtlichenÜbersetzung aus dem Englischen bedeutet er etwa„Protokollierer von Tastatureingaben“. In den meistenQuellen findet sich die folgende Definition: „Ein <strong>Keylogger</strong>(Tastaturspion) ist eine Software, die im Wesentlichendazu verwendet wird, Tastatureingaben zuüberwachen <strong>und</strong> zu protokollieren.“ Diese Definitionist allerdings nicht völlig richtig, da <strong>Keylogger</strong> auch alsHardware eingesetzt werden. Zwar sind Hardware-<strong>Keylogger</strong> wesentlich seltener anzutreffen, doch sollteman sie beim Schutz wichtiger Informationen ebenfallsberücksichtigen.Das Abfangen der Tastatureingaben kann von gewöhnlichenProgrammen genutzt werden, etwa zum Aufrufenvon Programmfunktionen aus anderen Anwendungenmit Hilfe von Tastaturbefehlen (Hotkeys) oder zumUmschalten falscher Tastaturbelegungen (wie etwaKeyboard Ninja). Es existiert eine Vielzahl legaler Software,die von Administratoren zur Überprüfung der Mitarbeiteraktivität<strong>und</strong> von Anwendern zur Kontrolle derTätigkeiten Dritter auf ihrem Computer genutzt wird. Allerdingsist der moralische Grat zwischen berechtigterBeobachtung <strong>und</strong> krimineller Spionage sehr schmal.So wird auch legale Software sehr häufig zum vorsätzlichenDiebstahl geheimer Anwenderdaten benutzt.Ein großer Teil der derzeit existierenden <strong>Keylogger</strong> giltals legal <strong>und</strong> kann käuflich erworben werden, da vonden Entwicklern dieser Programme eine Vielzahl vonlegalen Einsatzmöglichkeiten angeführt wird.Unter anderem werden <strong>Keylogger</strong> angeboten für:► Eltern: Verfolgung der Aktivitäten ihrer Kinder imInternet <strong>und</strong> Benachrichtigung der Eltern beim Versuch,auf nicht jugendfreie Sites zu gelangen (ParentalControl)► eifersüchtige Ehepartner: Verfolgung der Aktivitätendes Partners im Netz► Firmen: zur Aufdeckung nicht zweckgemäßer oderunerlaubter privater Nutzung des PC► Organisationen: Verfolgung der Eingabe kritischerWörter oder Verbindungen, die Geschäftsgeheimnisseenthalten können oder deren Verbreitung demUnternehmen materiellen oder anderen Schadenzufügen könnte► Sicherheitsdienste: Durchführung von Analysen <strong>und</strong>Ermittlung bei Diebstaht oder anderen FällenDoch das ist keine objektive Sicht der Dinge, da für alleaufgeführten Fälle durchaus andere Mittel zur Verfügungstehen. Andererseits kann jeder legale <strong>Keylogger</strong>auch zu unlauteren Zwecken eingesetzt werden.So ist in jüngster Zeit leider gerade der Diebstahl vonUser-Daten verschiedener Online-Bezahlsysteme zumam weitesten verbreiteten Anwendungsgebiet von <strong>Keylogger</strong>ngeworden (<strong>und</strong> zu genau diesem Zweck entwickelnVirenschreiber ständig neue Trojan-<strong>Keylogger</strong>).Darüber hinaus verbergen sich viele <strong>Keylogger</strong> im System(da sie über Rootkit-Funktionalität verfügen), wassie zu vollwertigen trojanischen Programmen macht.Da <strong>Keylogger</strong> zu kriminellen Zwecken verwendetwerden können, hat deren Entdeckung für Antiviren-Hersteller mittlerweile höchste Priorität. In der Klassifizierungvon Schadprogrammen von Kaspersky Labexistiert die spezielle Kategorie Trojan Spy, zu der auchProgramme mit der Funktionalität von Tastaturspionenzählen. Entsprechend der Definition „spionieren dieseTrojaner den Anwender des infizierten Computers aus,indem sie über die Tastatur eingegebene Informationen,Screenshots, Listen der aktiven Programme <strong>und</strong>der Aktivität des Anwenders in einer Datei auf der Festplattespeichern <strong>und</strong> in bestimmten Abständen an denHacker versenden.“Warum sind <strong>Keylogger</strong> gefährlich?Im Gegensatz zu anderen Schadprogramm-Typen sind<strong>Keylogger</strong> für das System selbst absolut ungefährlich.Für den Anwender jedoch kann ein <strong>Keylogger</strong> durchauszu einer Bedrohung werden, da die vom Anwenderüber die Tastatur eingegebenen Passwörter <strong>und</strong> sonstigevertrauliche Daten abgefangen werden können.Auf diese Weise kommen Kriminelle in den Besitz vonPasswörtern <strong>und</strong> Kontonummern, Zugangscodes zuSpieler-Accounts von Online-Spielen sowie Adressen,Logins <strong>und</strong> Passwörtern von E-Mail-Programmen <strong>und</strong>vielen anderen Anwendungen.<strong>Keylogger</strong>2


Verfügen die Kriminellen erst einmal über die entsprechendenDaten, beschränken sie sich nicht unbedingtdarauf, Geld vom Konto des Anwenders abzubuchenoder die Accounts von Online-Gamern zu nutzen, dennsolche Daten können in den falschen Händen weitausernstere Folgen nach sich ziehen als den Verlust einerbestimmten Summe. Der Einsatz von <strong>Keylogger</strong>nermöglicht vielmehr auch politische <strong>und</strong> wirtschaftlicheSpionage <strong>und</strong> ermöglicht den Zugang zu Dokumenten,die nicht nur Geschäfts-, sondern auch Staatsgeheimnisseenthalten können. Überdies sind sie in der Lage,Sicherheitssysteme außer Kraft zu setzen (etwa durchden Diebstahl versteckter Schlüssel in kryptografischenSystemen).Neben Phishing <strong>und</strong> Methoden des Social Engineeringist das Ausspionieren mit Hilfe von <strong>Keylogger</strong>n zu einerder am weitesten verbreiteten Arten elektronischen Betrugsgeworden. Kann sich der aufmerksame Anwenderim Fall von Phishing jedoch noch selbst schützen– indem er eindeutig als Phishing zu erkennende Mailsignoriert <strong>und</strong> keine persönlichen Daten auf verdächtigenSites eingibt –, so können Tastaturspione einzigdurch die Verwendung spezieller Schutzmechanismenentdeckt werden.Nach den Worten von Cristine Hoepers, Managerin desBrazil‘s Computer Emergency Response Team, tätigunter der Egide des Internet Steering Committee, haben<strong>Keylogger</strong> als am weitesten verbreitete Methodezum Raub vertraulicher Informationen dem Phishingden Rang abgelaufen <strong>und</strong> werden zudem immer wählerischer.Denn sie verfolgen nun, welche Web-Sitesder User besucht, um erst dann mit der Aufzeichnungder Tastatureingaben zu beginnen, wenn eine für denKriminellen interessante Site aufgerufen wurde.In den letzten Jahren wurde ein bedeutender Zuwachsverschiedener Schadprogramme mit <strong>Keylogger</strong>-Funktionalitätverzeichnet. Vor dem Risiko, in die Fänge vonCyberkriminellen zu geraten, ist kein Anwender mehrsicher, ganz egal in welchem Teil der Erde er sich befindetoder für welche Organisation er tätig ist.Einsatz von <strong>Keylogger</strong>n durch KriminelleEiner der bekanntesten Fälle von <strong>Keylogger</strong>-Missbrauchaus jüngster Vergangenheit ist der Diebstahlvon über einer Million Dollar von K<strong>und</strong>en der skandinavischenBank Nordea. Im August 2006 erhielten K<strong>und</strong>ender schwedischen Bank Nordea wiederholt E-Mailsim Namen ihrer Bank mit dem Angebot, ein Anti-Spam-Produkt zu installieren, das sich angeblich im E-Mail-Anhang befand. Beim Versuch des Empfängers, dieangehängte Datei auf den Computer zu überspielen,installierte sich eine spezielle Variante des bekanntenTrojaners Haxdoor. Dieser aktivierte sich bei der Registrierungdes Opfers im Online-Service der Bank <strong>und</strong>öffnete ein Fenster mit einer Fehlermeldung <strong>und</strong> derBitte, das Login zu wiederholen. Daraufhin zeichneteder im Trojaner enthaltene Tastaturspion die eingegebenenDaten auf <strong>und</strong> versandte sie an den Server derHacker. Die auf diese Weise zusammengetragenenpersönlichen Daten wurden von den Kriminellen genutzt,um Geld von den Konten der vertrauensseligenBankk<strong>und</strong>en abzuheben. Den Angaben des Trojaner-Autors zufolge kam Haxdoor auch bei Attacken gegenaustralische <strong>und</strong> verschiedene andere Banken zumEinsatz.Am 27. Januar 2004 nahm die Epidemie eines derbekanntesten Schadprogramme – des Wurms Mydoom– ihren Anfang. Mydoom brach den Rekord desWurms Sobig <strong>und</strong> löste die bisher größte Epidemie inder Geschichte des Internet aus. Der Wurm bedientesich der Methode des Social Engineering, organisierteeinen Angriff auf die Site www.sco.com – die daraufhinausfiel – <strong>und</strong> hinterließ auf den infizierten Computernein trojanisches Programm, das zur Verbreitung neuerVersionen des Virus benutzt wurde, die der erstenHauptepidemie folgten. Es ist jedoch weitestgehendunbekannt, dass Mydoom neben der Funktionalitäteines Netzwurms, einer Backdoor <strong>und</strong> neben der Fähigkeitzur Organisation von DoS-Attacken auch überdie Funktion eines <strong>Keylogger</strong>s zum Sammeln vonKredit kartennummern verfügte.Anfang 2005 verhinderte die Londoner Polizei einender am größten angelegten Diebstahl-Versuche in England.Mit Attacken auf das Bankensystem planten Kriminelle,423 Millionen Dollar aus der Londoner Filialeder Sumitomo Mitsui Bank zu entwenden. Die Hauptkomponentedes vom 32-jährigen Israeli Yeron’om Bolondientwickelten Trojaners war ein <strong>Keylogger</strong>, der esermöglichte, alle Tastatureingaben während der Arbeitmit dem K<strong>und</strong>enprogramm aufzuzeichnen.Im Mai 2005 wurde in London von der israelischenPolizei ein Ehepaar festgenommen <strong>und</strong> der Entwicklungvon Schadprogrammen beschuldigt, mit denenisraelische Firmen Konkurrenzunternehmen ausspionierten.Die Ausmaße derartiger Betriebsspionage sinderstaunlich: In den Ermittlungsunterlagen der israelischenBehörden fanden sich so namhafte Firmen wiedie Mobilfunk-Betreiber Cellcom <strong>und</strong> Pelephone sowieder TV-Anbieter YES. Den Unterlagen zufolge richtetesich die Überwachung gegen die PR-Agentur Rani Rahav,zu deren K<strong>und</strong>en unter anderem der zweitgrößteHandybetreiber Israels, Partner Communications, <strong>und</strong>der Kabelnetzbetreiber HOT gehören. Der israelischeImporteur von Volvo <strong>und</strong> Honda, die Firma Mayer, wirdder Spionage gegen die Firma Champion Motors, denisraelischen Importeur von Audi <strong>und</strong> Volkswagen, verdächtigt.Ruth Haefrati, die den Vertrieb des von ihremMann Michael Haefrati entwickelten Trojaners mit <strong>Keylogger</strong>-<strong>Funktionen</strong>übernommen hatte, wurde zu vierJahren Freiheitsstrafe verurteilt. Michael Haefrati selbstwar für zwei Jahre inhaftiert.<strong>Keylogger</strong>3


Technische Umsetzung von <strong>Keylogger</strong>n unterWindowsDieser Abschnitt wendet sich an IT-Experten <strong>und</strong> anfortgeschrittene Anwender. Er enthält eine detaillierteAnalyse der technischen Aspekte bei der Entwicklungvon <strong>Keylogger</strong>n. Wie bereits im vorangegangenen Abschnitterläutert, besteht das Prinzip von <strong>Keylogger</strong>ndarin, zwischen zwei beliebigen Gliedern der Signalübertragungsketteeinzudringen – vom Drücken derTaste durch den Anwender bis zum Erscheinen desSymbols auf dem Bildschirm. Im Folgenden wird analysiert,welche Glieder in dieser Kette enthalten sind,zudem werden verschiedene Varianten von Soft- <strong>und</strong>Hardware-<strong>Keylogger</strong>n genauer untersucht.An dieser Stelle sei darauf hingewiesen, dass in dervorliegenden Analyse keine Beispiele von <strong>Keylogger</strong>-Quellcode enthalten sind. Anders als manch andereFachleute auf dem Gebiet der IT-Sicherheit sind wirnicht der Meinung, dass es zweckmäßig wäre, derartigenCode zu veröffentlichen.Bearbeitung der Tastatureingaben unter Windowsder Tastatureingaben gewährleisten: Einer befindetsich auf dem Motherboard, der andere in der Tastaturselbst. Daher stellt die PC-Tastatur an sich schon einselbständiges Computersystem dar. Dieses basiert aufdem Mikrocontroller 8042, der die Tastatureingabenfortwährend scannt – unabhängig von der Aktivität aufdem zentralen Prozessor x86.Für jede Taste des Keyboards ist eine bestimmteNummer festgelegt, die eindeutig der Aufteilung derTastatur matrix zugeordnet <strong>und</strong> nicht direkt von dem aufder Oberfläche der Taste dargestellten Zeichen abhängigist. Diese Nummer wird als Scan-Code bezeichnet(diese Benennung verdeutlicht, dass der Computer dieTastatur auf der Suche nach Tasten-Betätigung scannt).Der Scan-Code ist ein zufälliger Wert, der von IBM festgelegtwurde, als das Unternehmen die erste Tastaturfür einen PC herstellte. Der Scan-Code entspricht nichtdem ASCII-Code der Tastatur. Weitere Infos <strong>und</strong> eineÜbersicht aller Scan-Codes finden Sie unter http://de.wikipedia.org/wiki/Scancode.Es existieren verschiedene gr<strong>und</strong>legende Technologienzum Abfangen von Tastatureingaben oder mit der Mausausgeführten Aktionen, auf die die meisten <strong>Keylogger</strong>aufbauen. Vor einer näheren Untersuchung der konkreten<strong>Keylogger</strong>-Typen ist es allerdings unumgänglich,sich zunächst einmal mit dem Bearbeitungs schema derTastatureingaben im Windows-Betriebssystem vertrautzu machen. Zur Beschreibung des gesamten Schemas– von der Betätigung einer Taste auf dem Keyboardbis hin zur Auslösung des Systeminterrupts desTastatur-Controllers <strong>und</strong> der Darstellung der NachrichtWM_KEYDOWN in einem aktiven Fenster – wurdendrei Quellen hinzugezogen: das Buch „Apparatnoe obespečenie IBM PC“ vonAlexander Frolov, Grigorij Frolov, Band 2, Buch 1:Dialog-MIFI, 1992 (Kapitel 2 „Tastatur“ beschreibtdie Funktionsprinzipien der Tastatur, die verwendetenPorts <strong>und</strong> den Hardware-Interrupt der Tastatur) der Abschnitt „Human Input Devices“ der MSDNLibrary, in dem der Teil der unteren Ebene (Treiber)des Bearbeitungsschemas von Tastatureingabenbeschrieben wird das Buch „Entwicklung effektiver WIN32-Anwendungenunter Berücksichtigung der Besonderheitender 64-Bit Windows-Versionen“ von Jeffrey Richter(in Kapitel 27 „Das Hardware-Eingabemodell <strong>und</strong>der lokale Eingabezustand“ wird die obere Ebenedes Bearbeitungsschemas der Tastatureingaben imUser-Mode beschrieben)Funktionsprinzip der Tastatur als physisches GerätHeutzutage sind die meisten Tastaturen eigenständigeGeräte, die über Schnittstellen – zumeist PS/2 oderUSB – mit dem Computer verb<strong>und</strong>en werden. Es gibtzwei Mikrocontroller, die den BearbeitungsprozessDie Tastatur generiert zwei Scan-Codes für jede Taste,einen beim Drücken, den anderen beim Loslassen.Das Vorhandensein von zwei Scan-Codes ist wichtig,weil einige Tasten nur dann sinnvoll sind, wenn sie gedrücktwerden (Shift, Control, Alt).Vereinfachtes TastaturschemaBetätigt der Anwender eine Taste auf dem Keyboard,löst er einen elektrischen Kontakt aus. Als Folge registriertder Mikrokontroller beim nächsten Scan-Vorgangdie Betätigung einer bestimmten Taste <strong>und</strong> schickt denScan-Code der gedrückten Taste <strong>und</strong> eine Interrupt-Anfrage an die CPU. Analoge Aktionen werden durchgeführt,wenn der Anwender die vorher gedrückte Tasteloslässt.Der zweite Mikrocontroller empfängt den Scan-Code,wandelt ihn um <strong>und</strong> macht ihn am Eingabe-Ausgabe-Port 60h verfügbar, woraufhin er einen Hardware-Interrupt des zentralen Prozessors generiert. Danachkann die Interrupt-Behandlungsroutine (ISR = InterruptService Routine) den Scan-Code aus dem genanntenEingabe-Ausgabe-Port empfangen. Die Tastatur verfügtüber einen internen 16-Byte-Puffer, über den derDatenaustausch mit dem Computer realisiert wird.<strong>Keylogger</strong>8


Interaktion auf der unteren Ebene mit der Tastaturüber Eingabe-Ausgabe-PortsDas Zusammenspiel mit dem Systemcontroller derTastatur erfolgt über den Eingabe-Ausgabe-Port 64h.Mit dem Lesen von Bytes aus diesem Port kann derStatus des Tastaturcontrollers bestimmt werden, mitdem Schreiben von Bytes wird dem Controller ein Befehlübermittelt.Die Kommunikation mit dem Mikrocontroller in derTastatur selbst wird mittels der Eingabe-Ausgabe-Ports60h <strong>und</strong> 64h umgesetzt. Die Bits 0 <strong>und</strong> 1 im Statusbyte(Port 64 im Lesemodus) ermöglichen die Steuerung derInteraktions-Routine: Vor dem Schreiben von Daten indiese Ports muss Bit 0 des Ports 64 auf 0 stehen. Sinddie Daten aus Port 60h zum Lesen verfügbar, ist Bit 1des Ports 64h gleich 1. Die On/Off-Bits der Tastatur imBefehlsbyte (Port 64h im Schreibemodus) bestimmen,ob die Tastatur aktiviert ist <strong>und</strong> ob der Tastaturcontrollereinen Interrupt im System auslöst, wenn der Anwendereine Taste drückt.In den Port 60h geschriebene Bytes werden an den Tastaturcontrollergesendet, wogegen in den Port 64h geschriebeneBytes an den Systemkontroller der Tastaturgeschickt werden. Eine Übersicht der erlaubten Befehle,die an den Tastaturcontroller geschickt werdenkönnen, finden Sie beispielsweise in dem Dokument„8042 Keyboard Controller IBM Technical ReferenceManual“ oder aber unter www.arl.wustl.edu/~lockwood/class/cs306/books/artofasm/Chapter_20/CH20-2.html.Aus Port 60h gelesene Bytes kommen von der Tastatur.Während des Lesens enthält Port 60h den Scan-Code der als letztes gedrückten Taste, <strong>und</strong> im Schreibmoduswird er zur erweiterten Steuerung der Tastaturverwendet. Bei Verwendung des Ports zum Schreibenstehen dem Programm die zusätzlichen Optionen zurVerfügung:► Einstellen der Zeitspanne, nach der die Tastatur inden Modus Autowiederholung übergeht► Einstellen der Tastatur-Wiederholungsrate des Scan-Codes im Modus Autowiederholung► Steuerung der auf der Außenabdeckung der Tastaturgelegenen Lichtdioden – Scroll Lock, Num Lock,Caps Lock.Zusammenfassend lässt sich also feststellen, dasses ausreichend ist, die Werte der Eingabe-Ausgabe-Ports 60h <strong>und</strong> 64h ablesen zu können, um die über dieTastatur eingegebenen Daten zu lesen. Im Windows-Betriebssystem ist es den Anwendungen im Benutzermodusallerdings nicht erlaubt, mit Ports zu arbeiten.Daher übernehmen die Treiber des Betriebssystemsdiese Aufgabe.Die Architektur interaktiver EingabegeräteWodurch werden nun die Hardware-Interrupts bearbeitet,die erzeugt werden, sobald auf Port 60h Daten vonder Tastatur empfangen werden? Offensichtlich durchdasselbe Programm, das die Behandlungsroutine desHardware-Interrupts der Tastatur registriert hat. UnterWindows wird die Bearbeitung von dem Treiber i8042.sys durchgeführt. Anders als zu MS-DOS-Zeiten, alsjede Systemkomponente praktisch eigenständig war,folgt der Aufbau der Komponenten unter Windows einergenauen Architektur. Sie funktionieren nach striktenRegeln, die in den Programmschnittstellen verankertsind. Bevor wir uns also genauer mit dem Treiberi8042pr beschäftigen, betrachten wir die Architekturvon interaktiven Eingabegeräten, im Rahmen dereralle Programmkomponenten funktionieren, die mit derBearbeitung von Eingaben über die Tastatur (oder derMaus) in Zusammenhang stehen.Geräte, die zur direkten Steuerung von Operationenauf dem Computer verwendet werden, heißen im Windows-Betriebssysteminteraktive Eingabegeräte (InteractiveInput Devices). Neben Maus, Joystick, Trackball,Cyberhelm <strong>und</strong> anderen gehört auch die Tastatur zudieser Gerätekategorie.Die Steuerungsarchitektur für interaktive Eingabegerätebasiert auf dem Standard USB Human InterfaceDevice (HID), vorgeschlagen vom USB ImplementersForum. Allerdings ist die Architektur nicht allein aufUSB-Geräte beschränkt, sondern unterstützt auchandere Typen von Eingabegeräten wie etwa die Bluetooth-Tastatur,über den PS/2-Port angeschlosseneTastaturen <strong>und</strong> „Mäuse“ sowie über den Spiele-Port(I/O-Port 201) verb<strong>und</strong>ene Geräte.Im Folgenden werden unter anderem die Aufbauprinzipiendes Treiber-Stacks <strong>und</strong> des Geräte-Stacks fürPS/2-Tastaturen näher betrachtet, da diese historischgesehen die ersten Gerätetypen sind. USB-Tastaturenverwenden eine Reihe von Elementen, die mit der Entwicklungder Programmunterstützung von PS/2-Tastatureneingeführt wurden.Kernel-Mode-Treiber für PS/2-TastaturenTreiber-Stack für System-EingabegeräteTastaturtreiber verwenden unabhängig von der Art desphysischen Anschlusses Systemtreiber der Tastaturklassezur Bearbeitung von Operationen, die nicht vomHardwareteil abhängig sind. Solche Treiber werdenKlassentreiber genannt, weil sie die vom System geforderten,von der Hardwareumsetzung unabhängigen Anforderungenan die konkrete Geräte-Klasse erfüllen.Der entsprechende Funktionstreiber (Porttreiber) realisiertdie vom konkreten Gerät abhängige Durchführungder Eingabe-Ausgabe-Operation. In Windows-<strong>Keylogger</strong>9


x86-Plattformen ist nur ein einziger Treiber der Tastatur(i8042) <strong>und</strong> der Maus umgesetzt.Im Betriebssystem Windows 2000 <strong>und</strong> niedriger istKbd class der Tastaturklassentreiber, dessen wichtigsteAufgaben im Folgenden aufgelistet sind:► Durchführung allgemeiner <strong>und</strong> Hardware-unabhängigerOperationen der Geräteklasse► Unterstützung von Plug and Play, Unterstützung derEinspeisungssteuerung <strong>und</strong> von Windows ManagementInstrumentation (WMI)► Unterstützung von Operationen für Legacy-Geräte► gleichzeitige Durchführung von Operationen aufmehr als einem Gerät► Realisierung der Class Service Callback Routine,die vom Funktionstreiber zur Übermittlung der Datenaus dem Eingangspuffer des Gerätes in den Datenpufferdes Geräteklassentreibers ausgelöst wirdTreiber-Stacks für die Systemeingabegeräte Tastatur <strong>und</strong> MausTreiber-Stack für Plug & Play von PS/2-TastaturenIm Betriebssystem Windows 2000 <strong>und</strong> niedriger isti8042prt der Funktionstreiber für Eingabegeräte, dieden PS/2-Port benutzen (Tastatur <strong>und</strong> Maus). Seinewichtigsten <strong>Funktionen</strong> sind:► Durchführung von Hardware-abhängigen, gleichzeitigenOperationen von PS/2-Eingabegeräten ( Tastatur<strong>und</strong> Maus nutzen gemeinsame Ein- <strong>und</strong> Ausgabeports,verwenden aber verschiedene Interrupts, Interrupt-Behandlungsroutinen(ISR) <strong>und</strong> verschiedeneRoutinen zur Vollendung der Interruptbehandlung)► Unterstützung von Plug and Play, Unterstützung derEinspeisungssteuerung <strong>und</strong> von Windows ManagementInstrumentation (WMI)► Unterstützung von Operationen für Legacy-Geräte► Auslösen der „Class Service Callback“-Routine fürdie Tastatur- <strong>und</strong> Mausklassen zur Übermittlung vonDaten aus dem Eingangsdatenpuffer i8042prt in denDatenpuffer des Klassentreibers<strong>Keylogger</strong>► Auslösen verschiedener Rückruf-<strong>Funktionen</strong>, dievon den Treiberfiltern der oberen Ebene zur flexiblenSteuerung der Geräte realisiert werden können.Treiber-Stack für PS/2-TastaturenDer Treiber-Stack enthält die folgenden Elemente (vonoben nach unten): Kbdclass – einen Filter-Tastaturklassentreiber deroberen Ebene einen optionalen Filter-Tastaturklassentreiber deroberen Ebene i8042 – einen Funktionstreiber der Tastatur einen Kerneltreiber des BussesListe der vom Treiber i8042prt verwendetenHardware-RessourcenObige Abbildung zeigt eine Liste der Hardware-Ressourcen,die vom Treiber i8042prt verwendet werden,die unter anderem mit dem Tool Device Tree der FirmaOpen Systems Resources. Wer die vorangegangenenAbschnitte gelesen hat, den werden die Werte der Eingabe-/Ausgabe-Ports(IO) 60h <strong>und</strong> 64h <strong>und</strong> des Hardware-Interrupts(IRQ) 1 nicht überraschen.Der im dargestellten Treiber-Stack neue Treiberfilterkann beispielsweise zur spezifischen Bearbeitung derTastatureingabe oberhalb der Tastaturklassentreiberergänzt werden. Dieser Treiber muss dieselbe Bearbei-10


tung aller Typen von Ein- <strong>und</strong> Ausgabe-Aufträgen (IRP)<strong>und</strong> von IOCTL-Befehlen unterstützen wie ein Tastaturklassentreiber.Im vorliegenden Fall werden die Datenvor der Übermittlung in das Subsystem des User-Modezur Bearbeitung an den Treiberfilter geleitet.Geräte-Stack für Plug & Play von PS/2-TastaturenIm Folgenden werden die Stacks der Geräte, die dieoben beschriebenen Treiber im Treiber-Stack der Tastaturerzeugen, genauer betrachtet. Auf der folgendenAbbildung sind links die in der MSDN Library für PS/2-Tastaturen aufgeführten Geräte-Stacks dargestellt.Rechts sieht man einen Screenshot des ProgrammsDevice Tree, das die reale Situation auf einem gewöhnlichenComputer zeigt.Bearbeitung der Tastatureingaben durch die AnwendungenRaw Input Thread (Datenempfang vom Treiber)Der vorhergehende Abschnitt beschäftigte sich mitBeispielen zum Aufbau von Tastatur-Stacks im Kernel-Mode des Betriebssystems. Nun soll der Daten-Transfervom Tastendruck zu den Anwendungen des User-Modegenauer betrachtet werden. Das Microsoft-SubsystemWin32 erhält mit Hilfe des Raw Input Threads (RIT) Zugriffauf die Tastatur. Der RIT ist Teil des Systemprozessescsrss.exe (User-Mode des Win32-Subsystems).Beim Start erzeugt das Betriebssystem den RIT <strong>und</strong>die System-Hardware-Eingabe-Queue (System HardwareInput Queue, SHIQ).Der RIT öffnet das Objekt Gerät im Tastaturklassentreiberzur exklusiven Nutzung <strong>und</strong> sendet diesem mitHilfe der Funktion ZwReadFile eine Eingabe-Ausgabe-Anforderung (IRP = Input/Output Request Packets) wiezum Beispiel IRP_MJ_READ. Der Treiber Kbdclass registriertdie Anfrage als unerledigt (pending), reiht siein die Warteschleife ein <strong>und</strong> sendet den RückkehrcodeSTATUS_PENDING zurück. Der RIT muss nun auf dieErledigung der IRP warten, was durch einen asynchronenProzeduraufruf umgesetzt wird (AsynchronousProcedure Call, APC).Konfiguration der Geräteobjekte für Plug and Play von PS/2-TastaturenDer Geräte-Stack (richtiger wäre es, vom Stack der Geräteobjektezu sprechen) besteht insgesamt aus denfolgenden Komponenten: dem Physical Device Object der Tastatur (PDO), dasvon dem Bustreiber erzeugt wird (in diesem Fall BusPCI) – \Device\00000066 dem Functional Device Object der Tastatur (FDO),das von dem Treiber i8042prt erzeugt <strong>und</strong> dem PDOhinzugefügt wird – unbenanntes Objekt (unnamed) optionalen Filter-Objekten der Tastatur, die durchvon Programmierern entwickelte Filtertreiber derTastatur erzeugt werden einem Filter-Objekt der Geräteklasse Tastatur deroberen Ebene, das vom Klassentreiber Kbdclass erzeugtwird – \Device\KeyboardClass0Drückt oder löst der Anwender eine Taste, so erzeugtder System-Tastaturkontroller einen Hardware-Interrupt.Sein Editor löst die vom Driver i8042prt im Systemregistrierte spezielle Interrupt-BehandlungsroutineIRQ 1 aus (Interrupt Service Routine, ISR). DieseRoutine liest die erscheinenden Daten aus der internenQueue des Tastaturkontrollers. Die Verarbeitung desHardware-Interrupts muss so schnell wie möglich erfolgen,daher speichert die ISR den Deferred ProcedureCall (DPC) I8042KeyboardIsrDpc in einer Queue<strong>und</strong> beendet ihre Arbeit. Sobald es möglich ist (IRQLsinkt auf DISPATCH_LEVEL ab), wird ein DPC vomSystem ausgelöst. In diesem Moment wird die Rückruf-Routine KeyboardClassServiceCallback ausgelöst, dievom Treiber Kbdclass des Treibers i8042prt bereitgestelltwird. Die Routine KeyboardClassServiceCallbackzieht aus ihrer Queue den unerledigten IRP-Aufruf, fülltdie maximale Menge der KEYBOARD_INPUT_DATA-Strukturen aus, die alle notwendigen Informationenüber das Drücken <strong>und</strong> Lösen von Tasten enthalten <strong>und</strong>erledigt die IRP. Der Raw Input Thread wird nun aktiviert,bearbeitet die empfangenen Informationen <strong>und</strong>sendet dem Klassentreiber erneut eine IRP des TypsIRP_MJ_READ, welche bis zum nächsten Drückenoder Lösen einer Taste wiederum in einer Queue gespeichertwird. Daher ist im Tastatur-Stack immer mindestenseine unerledigte IRP vorhanden, die sich in derQueue des Treibers Kdbclass befindet.<strong>Keylogger</strong>11


Tastatur umwandelt <strong>und</strong> sie in der VIQ des Threads derAnwendung Microsoft Word anlegt.Bearbeitung der Meldungen durch ein konkretesFensterReihenfolge der RIT-Anfragen an den TastaturtreiberMit Hilfe des Tools IrpTracker des bereits erwähntenUnternehmens Open Systems Resources kann mandie Reihenfolge der während der Bearbeitung derTastatureingaben erfolgenden Aufrufe einsehen.Bearbeitung der Tastatureingabe im User-ModeEs stellt sich nun die Frage, wie der Thread die Meldungenverarbeitet, die in seiner Message-Queue einlaufen.Der Standard-Verarbeitungs-Zyklus von Meldungensieht für gewöhnlich folgendermaßen aus:while(GetMessage(&msg, 0, 0, 0)){TranslateMessage(&msg);DispatchMessage(&msg);}Mit Hilfe der Funktion GetMessage werden die Tastaturereignisseaus der Queue gezogen <strong>und</strong> mittels derFunktion DispatchMessage in eine Fensterroutine weitergeleitet,die die Meldungen für das Fenster bearbeitet,wo im gegebenen Augenblick der Input-Fokuskonzentriert ist. Der Input-Fokus ist ein von der Anwendungoder von Windows erzeugtes Attribut, das demFenster hinzugefügt werden kann. Verfügt ein Fensterüber einen Input-Fokus, empfängt die entsprechendeFunktion dieses Fensters alle Tastaturmeldungen ausder System-Queue. Anwendungen können den Input-Fokus von einem Fenster zu einem anderen weiterreichen,wie etwa beim Wechsel von einer Anwendungzur anderen mit Hilfe der Tastenkombination Alt+Tab.Wie bearbeitet der RIT nun die eingehenden Informationen?Alle Tastaturereignisse werden in die SHIQ eingereiht,woraufhin sie nacheinander in Windows-Meldungenumgewandelt werden (wie etwa WM_KEY*,WM_?BUTTON* oder WM_MOUSEMOVE) <strong>und</strong> sichans Ende der virtualisierten Eingabe-Queue (VIQ =Virtualized Input Queue) des Vordergr<strong>und</strong>-Threadseinreihen. In den Windows-Meldungen werden dieTasten-Scan-Codes durch virtuelle Tastencodes ersetzt,die nicht der Anordnung der Tasten auf der Tastatur,sondern der Aktion, die die jeweilige Taste ausführt,entsprechen. Der Mechanismus der Codeumwandlunghängt vom jeweils aktiven Tastaturlayout, von dergleichzeitigen Betätigung anderer Tasten (wie etwaSHIFT) <strong>und</strong> anderen Faktoren ab.Geht der Anwender ins System, generiert der WindowsExplorer einen Thread, der eine Aufgabenliste <strong>und</strong> einenArbeitstisch (WinSta0_RIT) erzeugt. Dieser Threadwird an den RIT gekoppelt. Startet der Anwender MicrosoftWord, so fügt sich der Thread dieser Anwendung,der das Fenster erzeugt, sofort zu dem RIT hinzu. Daraufhinlöst sich der zum Explorer gehörende Threadvom RIT, da immer nur ein Thread zur Zeit an den RITgekoppelt sein kann. Bei der Betätigung von Tastenerscheint in der SHIQ ein entsprechendes Element,das dafür sorgt, dass der RIT aktiviert wird, dass er dieEreignisse der Hardware-Eingabe in Mitteilungen derNoch vor der Funktion DispatchMessage wird für gewöhnlichdie Funktion TranslateMessage ausgelöst, dieauf der Gr<strong>und</strong>lage der Meldungen WM_KEYDOWN,WM_KEYUP, WM_SYSKEYDOWN <strong>und</strong> WM_SYS-KEYUP die „symbolischen“ Meldungen WM_CHAR,WM_SYSCHAR, WM_DEADCHAR <strong>und</strong> WM_SYS-DEADCHAR generiert. Diese symbolischen Meldungenreihen sich in die Message-Queue der Anwendung ein,wobei die originalen Tastatur-Meldungen nicht aus derQueue gelöscht werden.Datenfelder des Tastenzustands der TastaturBei der Entwicklung des Hardware-Eingabemodellsin Windows war die Gewährleistung der Ausfallunempfindlichkeitein wichtiger Punkt. Diese wird durcheine unabhängige Verarbeitung der Eingabe durch dieThreads gewährleistet, wodurch ungünstige Wechselwirkungender Threads miteinander verhindert werden.Eine zuverlässige Isolation der Threads voneinanderist dadurch allerdings noch nicht gegeben, daher unterstütztdas System noch eine zusätzliche Konzep tion,den lokalen Eingabezustand. Jeder Thread verfügtüber einen eigenen Eingabezustand, der in der StrukturTHREADINFO dokumentiert ist. Die Informationenüber den Zustand enthalten Daten über die virtualisierteEingabe-Queue des Threads sowie eine Gruppe vonVariablen. Letztere enthalten steuernde Informationen<strong>Keylogger</strong>12


über den Eingabe-Zustand. Bezüglich der Tastaturwerden die folgenden Angaben unterstützt: welchesFenster befindet sich im Fokus der Tastatur, welchesist gegenwärtig aktiv, welche Tasten sind gedrückt, inwelchem Zustand befindet sich der Eingabecursor.Angaben dazu, welche Tasten gedrückt sind, werdenim Datenfeld des synchronen Tastenzustandes gespeichert.Alle Variablen des lokalen Eingabezustands desThreads enthalten einen Synchronous Key State Array,während sich alle Threads nur ein Datenfeld des asynchronenEingabezustands teilen, welches analoge Informationenenthält. Diese Datenfelder geben Auskunftüber den Zustand aller Tasten zu jedem beliebigen Zeitpunkt,<strong>und</strong> mit der Funktion GetAsyncKeyState lässtsich bestimmen, ob eine einzelne Taste gegenwärtiggedrückt ist. Die Funktion GetAsyncKeyState sendetstets 0 (nicht gedrückt) zurück, wenn der Thread, derdie Funktion aufruft, nicht derjenige ist, der das Fenstermit dem derzeitigen Input-Fokus erzeugt hat.von Filterfunktionen erleichtert <strong>und</strong> die Performancedes Betriebssystems verbessert wird.Windows unterstützt einzelne Ketten für jeden Hook-Typ. Unter einer Hook-Kette versteht man eine Listevon Verweisen auf Filterfunktionen (spezielle von derAnwendung definierbare Rückruf-<strong>Funktionen</strong>). Findetein bestimmtes Ereignis statt, das mit einem konkretenHook-Typ in Verbindung steht, so sendet das Systemnacheinander jeder Filterfunktion in der Hook-Ketteeine Meldung. Welche Aktion von der jeweiligen Filterfunktiondurchgeführt werden kann, hängt von demHook-Typ ab: Einige <strong>Funktionen</strong> können lediglich dasEreignis an sich verfolgen, andere sind in der Lage, dieParameter einer Meldung zu modifizieren oder gar dieVerarbeitung einer Meldung zu stoppen, indem sie denAufruf der nächsten Filterfunktion in der Hook-Ketteoder die Verarbeitungsfunktionen der Fenster-Meldungenblockieren.Die folgende Funktion GetKeyState unterscheidet sichdadurch von der Funktion GetAsyncKeyState, dass sieden Tastaturzustand in dem Moment zurücksendet, indem die letzte Tastaturmeldung aus der Thread-Queueentfernt wird. Diese Funktion kann jederzeit aufgerufenwerden, unabhängig davon, welches Fenster sich geradeim Fokus befindet.TastaturhooksAls Hook wird im Windows-Betriebssystem ein Mechanismusbezeichnet, der Ereignisse unter Verwendungeiner bestimmten Funktion (wie etwa der Übermittlungvon Windows-Meldungen, der Eingabe über die Mausoder die Tastatur) abfängt, bis diese zu den Anwendungengelangen. Diese Funktion kann daraufhin aufdie Ereignisse reagieren <strong>und</strong> sie unter Umständen verändernoder außer Kraft setzen.<strong>Funktionen</strong>, denen die Ereignisse gemeldet werden,heißen Filterfunktionen <strong>und</strong> werden nach Typen entsprechendder von ihnen abzufangenden Ereignisseunterschieden. Damit Windows eine Filterfunktion aufrufenkann, muss diese Funktion an einen Hook gekoppeltsein, etwa an einen Tastatur-Hook. Die Anbindungeines oder mehrerer Filterfunktionen an einen beliebigenHook nennt man Hook-Installation. Zum Installieren<strong>und</strong> Löschen von Funktionsfiltern einer Anwendungwerden die Win32-API-<strong>Funktionen</strong> SetWindowsHookEx<strong>und</strong> UnhookWindowsHookEx verwendet. Einige Hookskönnen sowohl für das gesamte System als auch füreinen konkreten Thread installiert werden.Werden an einen Hook mehrere Filterfunktionen gekoppelt,realisiert Windows eine <strong>Funktionen</strong>-Queue,wobei die als letzte angekoppelte Funktion an den Anfang<strong>und</strong> die allererste Funktion ans Ende der Queuegestellt wird. Die Queue der Filterfunktionen wird vonWindows selbst unterstützt, wodurch das SchreibenFunktionsfilter-Kette in WindowsWenn eine oder mehrere Filterfunktionen an einenHook gekoppelt sind <strong>und</strong> ein Ereignis stattfindet, dasszur Aktivierung des Hooks führt, ruft Windows die ersteFunktion aus der Funktionsfilter-Queue auf, womitdessen Verantwortlichkeit beendet ist. Im Folgenden istdie Funktion dafür verantwortlich, die nächste Funktionin der Kette aufzurufen, wofür die Win32-API-FunktionCallNextHookEx verwendet wird.Das Betriebssystem unterstützt verschiedene Hook-Typen, von denen jeder einzelne Zugriff auf einen derAspekte des Bearbeitungsmechanismus von Windows-Meldungen ermöglicht. Für einen <strong>Keylogger</strong>-Autorensind fast alle Hook-Typen von Interesse: WH_KEY-BOARD, WH_KEYBOARD_LL (Abfangen der Tastaturereignisse<strong>und</strong> deren Hinzufügen in die Ereignis-Queuedes Threads), WH_JOURNALRECORD <strong>und</strong> WH_JOURNALPLAYBACK (Aufzeichnung <strong>und</strong> Wieder gabeder Maus- <strong>und</strong> Tastaturereignisse), WH_CBT (Abfangeneiner Vielzahl von Ereignissen, einschließlich desLöschens der Tastaturereignisse aus der System-Hardware-Eingabe-Queue),WH_GETMESSAGE ( Abfangender aus der Ereignis-Queue des Threads empfangenenEreignisse).<strong>Keylogger</strong>13


Allgemeines BearbeitungsschemaDas Raw-Input-ModellDie bis hier dargestellten Abläufe der Tastatureingaberoutinelassen sich in einem einzigen Algorithmus derSignalübertragung zusammenfassen – von der Betätigungeiner Taste durch den Anwender bis zum Erscheineneines Zeichens auf dem Bildschirm: Beim Starten erzeugt das Betriebssystem im Systemprozesscsrss.exe einen Raw Input Thread <strong>und</strong> eineSystem-Hardware-Eingabe-Queue. Der RIT sendet dem Tastaturklassentreiber Leseanfragen,die bis zum Eintreten eines Tastaturereignissesim Wartezustand verbleiben. Drückt oder löst der Anwender eine Taste auf derTastatur, wird das Drücken oder Lösen vom Mikrocontrollerder Tastatur festgehalten, <strong>und</strong> der Scan-Code der gedrückten Taste sowie eine Interruptanforderungwerden an die CPU gesendet. Der System-Tastaturcontroller empfängt den Scan-Code, wandelt ihn um, macht ihn am Eingabe-Ausgabe-Port60h verfügbar <strong>und</strong> generiert einen Hardware-Interruptder CPU. Der Interrupt-Controller ruft die Interrupt-Behandlungs-RoutineIRQ 1 auf, eine IRS, die im Systemdes Tastaturfunktionstreibers i8042prt registriert ist. Die IRS liest die aus der inneren Queue des Tastaturkontrollerserscheinenden Daten, übersetzt denScan-Code in einen virtuellen Tastencode (unabhängige,vom System definierte Werte) <strong>und</strong> stellt denAufruf des Deferred Procedure Calls I8042Keyboard-IsrDpc in die Queue. Sobald wie möglich ruft das System den DPC auf,welcher wiederum die Callback-Routine Keyboard-ClassServiceCallback erzeugt, die im TastaturklassentreiberKbdclass registriert ist. Die Routine KeyboardClassServiceCallback ziehtaus ihrer Queue die zu erledigende Anfrage des RIT<strong>und</strong> sendet in ihm die Informationen über die gedrückteTaste zurück. Der RIT speichert die empfangenen Informationenin der System-Queue der Hardware-Eingabe <strong>und</strong> erstelltauf deren Basis die gr<strong>und</strong>legenden Windows-Tastaturmeldungen WM_KEYDOWN <strong>und</strong> WM_KEYUP, die ans Ende der VIQ des aktiven Threads gestelltwerden. Der Bearbeitungszyklus der Threadmeldungenlöscht die Meldung aus der Queue <strong>und</strong> leitet sie andie entsprechende Fensterroutine zur Bearbeitungweiter. Dabei kann die Systemfunktion TranslateMessage ausgelöst werden, die auf der Basis dergr<strong>und</strong>legenden Tastaturmeldungen die zusätzlichen„symbolischen“ Meldungen WM_CHAR, WM_SYSCHAR, WM_DEADCHAR <strong>und</strong> WM_SYSDEADCHAR erzeugt.Die oben beschriebenen Modelle der Tastatureingabesind aus der Sicht von Anwendungs-Programmierernin mancherlei Hinsicht unzureichend. Zum Eingabe-Empfang von Nicht-Standardgeräten muss eine Anwendungnämlich eine ganze Reihe von Operationendurchführen: Das Gerät öffnen, es periodisch abfragen,die Möglichkeit einer parallelen Nutzung des Gerätesdurch eine andere Anwendung sicherstellen <strong>und</strong> so weiter.Deshalb wurde in den letzten Windows-Versionenein alternatives Eingabe-Modell – das Raw-Input-Modell– angeboten, welches die Entwicklung von Anwendungenerleichtert, die Nicht-Standard-Eingabegeräteverwenden.Das Raw-Input-Modell unterscheidet sich von demOriginal-Eingabemodell von Windows. Beim herkömmlichenModell empfängt die Anwendung eine geräteunabhängigeEingabe in Form von Meldungen (wieetwa WM_CHAR), die an die Fenster der Anwendunggesendet werden. Das Raw-Input-Modell sieht vor,dass die Anwendung die Geräte registriert, von denensie Eingabe empfangen will. Weiterhin empfängt dieAnwendung die User-Eingabe über die Meldung WM_INPUT.Zwei Arten der Datenübertragung werden unterstützt,<strong>und</strong> zwar „Standard“ <strong>und</strong> „Gepuffert“. Zur Interpretationder eingegebenen Daten muss die Anwendung Informationenüber die Art des Eingabegerätes erhalten,was mit Hilfe der Funktion GetRawInputDeviceInfo ermöglichtwird.Verschiedene Umsetzungen von <strong>Keylogger</strong>nAusgehend von den oben beschriebenen Bearbeitungsmodellenvon Tastatureingaben unter Windowswerden im Folgenden die gr<strong>und</strong>legenden Methodenzur Umsetzung von <strong>Keylogger</strong>n näher betrachtet. Istder Aufbau des Modells klar, ist auch leichter zu verstehen,welche Mechanismen von <strong>Keylogger</strong>n ausgenutztwerden können.<strong>Keylogger</strong> können an jeder beliebigen Stelle des Bearbeitungszykluseindringen <strong>und</strong> Daten über gedrückteTasten abfangen, die von einem Bearbeitungs-Subsystemzu dem nächsten Subsystem in der Editor-Chainübermittelt werden. Wir haben die zu untersuchendenMethoden der Umsetzung von Software-<strong>Keylogger</strong>n insolche des User-Mode <strong>und</strong> in solche des Kernel-Modeunterteilt. In der Abbildung auf der folgenden Seite linksoben sind alle Bearbeitungs-Subsysteme der Tastatureingabe<strong>und</strong> ihre Wechselbeziehungen miteinanderdargestellt.<strong>Keylogger</strong>14


Installation des Hooks für TastaturmeldungenHierbei handelt es sich um den wohl am weitesten verbreitetenTyp von <strong>Keylogger</strong>n. Durch den Aufruf derFunktion SetWindowsHookEx installiert der <strong>Keylogger</strong>einen globalen Hook auf die Tastaturereignisse füralle Threads im System. Die Filterfunktion des Hookspositioniert sich in diesem Fall in einer einzelnen dynamischenBibliothek, die in alle Prozesse eindringt, diean der Bearbeitung der Meldungen beteiligt sind. Beider Auswahl aus der Message-Queue eines beliebigenThreads der Tastaturmeldung ruft das System die installierteFilterfunktion auf.Der Vorteil dieser Abfang-Methode liegt unter anderemin ihrer Einfachheit <strong>und</strong> der Garantie, dass sämtlicheTastenbetätigungen abgefangen werden. Die Nachteilebestehen darin, dass eine Datei der dynamischenBiblio thek vorhanden sein muss, <strong>und</strong> dass die Entdeckungauf Gr<strong>und</strong> des Eindringens in alle Systemprozesserecht einfach ist.Allgemeines Bearbeitungsschema von Tastatureingaben imBetriebssystem WindowsDieser Abschnitt beschäftigt sich nicht mit Hardware-Methoden zur Umsetzung von <strong>Keylogger</strong>n. Es sei lediglicherwähnt, dass es drei gr<strong>und</strong>legende Spielartenvon Hardware-<strong>Keylogger</strong>n gibt: <strong>Keylogger</strong>, die in dieTastatur selbst eingebaut werden, <strong>Keylogger</strong>, die ineine Unterbrechung des Kabels gebaut werden, dasdie Tastatur <strong>und</strong> den Systemblock miteinander verbindet<strong>und</strong> <strong>Keylogger</strong>, die in den Systemblock des Computersmontiert werden. Am weitesten verbreitet ist derzweitgenannte Typ von Hardware-<strong>Keylogger</strong>n. Einesder bekanntesten Beipiele hierfür ist der KeyGhostUSB <strong>Keylogger</strong>.Leider sind derzeit nur wenige Antivirus-Lösungen aufdem Markt erhältlich, die das Sicherheitsniveau gewährleisten,das zum Schutz vor der potentiellen Gefahr,die <strong>Keylogger</strong> in sich bergen, dringend notwendigist. Zu diesen Lösungen gehören die Produkte vonKaspersky Lab. Genauere Informationen hierzu findenSie in dem dritten <strong>und</strong> letzten Abschnitt dieses Whitepapersüber den „Schutz vor <strong>Keylogger</strong>n mit den Produktenvon Kaspersky Lab“ ab Seite 19.User-Mode-<strong>Keylogger</strong><strong>Keylogger</strong>, die im User-Mode arbeiten, sind sowohl inder Umsetzung als auch in der Entdeckung die simpelstenihrer Art. Zum Abfangen nutzen sie Aufrufe bekannter<strong>und</strong> wohl dokumentierter <strong>Funktionen</strong> der ProgrammierschnittstelleWin32 API.Zu <strong>Keylogger</strong>n dieser Machart gehören unter anderem:AdvancedKeyLogger, KeyGhost, Absolute <strong>Keylogger</strong>,Actual <strong>Keylogger</strong>, Actual Spy, Family Key Logger,GHOST SPY, Haxdoor, MyDoom.Kaspersky Internet Security erkennt derartige <strong>Keylogger</strong>mit Hilfe des proaktiven Schutzmechanismus alsInvader (Loader) (die Option Eindringen von Hooksin Fenster des Subsystems Aktivitätsanalyse für Anwendungenim Modul Proaktiver Schutz muss aktiviertsein).Zyklische Abfrage des TastaturzustandsDie im Folgenden beschriebene Methode zur Umsetzungvon <strong>Keylogger</strong>n rangiert bezüglich ihrer Verbreitungauf Platz zwei. Der Zustand aller Tasten wird inkurzen Intervallen mit Hilfe der <strong>Funktionen</strong> GetAsyncKeyState oder GetKeyState abgefragt. Diese <strong>Funktionen</strong>senden die Datenfelder des asynchronen odersynchronen Tastaturzustands zurück. Deren Analysegibt Aufschluss darüber, welche Tasten nach der letztenAbfrage gedrückt oder gelöst wurden.Von Vorteil ist, dass diese Methode einigermaßen einfachumzusetzen ist <strong>und</strong> kein zusätzliches Modul benötigtwird. Die Nachteile liegen darin, dass die Aufzeichnungaller Tastenbetätigungen nicht garantiert ist<strong>und</strong> es zu Lücken kommen kann. Überdies kann einsolcher <strong>Keylogger</strong> leicht entdeckt werden – durch dieÜberwachung der Prozesse, die die Tastatur mit hoherFrequenz abfragen.Diese Methode wird unter anderem in den folgenden<strong>Keylogger</strong>n eingesetzt: Computer Monitor, KeyboardGuardian, PC Activity Monitor Pro, Power Spy, Powered<strong>Keylogger</strong>, Spytector, Stealth KeyLogger, Total Spy.<strong>Keylogger</strong>15


Kaspersky Internet Security erkennt derartige <strong>Keylogger</strong>proaktiv als <strong>Keylogger</strong> (die Option Erkennen vonTastaturspionen des Subsystems Aktivitätsanalyse fürAnwendungen im Modul Proaktiver Schutz muss aktiviertsein).Eindringen in den Prozess <strong>und</strong> Abfangen der <strong>Funktionen</strong>GetMessage/PeekMessageDiese Methode zur Umsetzung von <strong>Keylogger</strong>n wirdselten verwendet. Der <strong>Keylogger</strong> dringt in alle Prozesseein <strong>und</strong> fängt in ihnen die <strong>Funktionen</strong> GetMessageoder PeekMessage aus der Bibliothek user32.dll ab.Hierfür können verschiedene Methoden zum Einsatzkommen: Splicing, Modifikationen der Adress-Listender in die IAT importierten <strong>Funktionen</strong>, Abfangen derFunktion GetProcAddress, die die Adresse der Funktionaus der geladenen Bibliothek zurücksendet. Der<strong>Keylogger</strong> kann als DLL realisiert werden oder durchdas direkte Eindringen von Code in einen speziellenProzess. Splicing ist übrigens eine Methode, die zumAbfangen des Aufrufs von API-<strong>Funktionen</strong> genutzt wird.Dazu tauscht sie die ersten (normalerweise die erstenfünf) Bytes der Instruktionsfunktion JMP, die die Steuerungan den <strong>Keylogger</strong>-Code weiterleitet.Egal welche der genannten Methoden zum Einsatzkommt, das Ergebnis bleibt dasselbe: Ruft eine Anwendungbeispielsweise die Funktion GetMessagezum Empfang der nächsten Meldung aus der Message-Queueauf, gelangt dieser Aufruf in den Code desTastaturspions. Dieser ruft GetMessage aus user32.dll auf <strong>und</strong> analysiert die zurückgesendeten Resultatehinsichtlich der Meldungstypen. Sobald eine Tastaturmeldungempfangen wird, werden alle sie betreffendenInformationen aus den Parametern der Meldung herausgezogen<strong>und</strong> vom <strong>Keylogger</strong> protokolliert.Zu den Vorteilen dieser Methode gehört zweifellos ihreEffektivität: da sie nur wenig verbreitet ist, ist nur einegeringe Anzahl von Programmen in der Lage, derartige<strong>Keylogger</strong> zu finden. Hinzu kommt, dass auchherkömmliche Bildschirmtastaturen nicht gegen diesen<strong>Keylogger</strong>-Typ schützen, da die von ihnen versendetenMeldungen ebenso von ihm abgefangen werden.Ausnutzung des Raw-Input-ModellsZum gegenwärtigen Zeitpunkt ist lediglich ein Beispielfür die Realisierung dieser Methode bekannt, <strong>und</strong> zwarein Tool zum Austesten der Schutzfunktionen vor <strong>Keylogger</strong>nim System. Das Wesen dieser Methode bestehtin der Ausnutzung des neuen Raw-Input-Modells, wobeider <strong>Keylogger</strong> die Tastatur als ein Gerät registriert,von dem er Eingaben empfangen will. Daraufhin beginntder <strong>Keylogger</strong>, Daten über gedrückte <strong>und</strong> gelösteTasten über die Meldung WM_INPUT zu empfangen.Die Vorteile dieser Methode liegen in ihrer Einfachheit<strong>und</strong> Effektivität: Da die gegebene Methode erstvor kurzem allgemein bekannt geworden ist, ist bisherkaum eine Sicherheitslösung in der Lage, vor derartigen<strong>Keylogger</strong>n zu schützen.Der Nachteil besteht darin, dass <strong>Keylogger</strong> dieserMachart sehr einfach aufzuspüren sind, da eine spezielleRegistrierung zum Empfang des Raw Input durchdie Anwendung unerlässlich ist (in der Standardeinstellungwird der Raw Input von keinem einzigen Prozessim System empfangen).Kaspersky Internet Security erkennt <strong>Keylogger</strong> dieserArt proaktiv (die Option Erkennen von Tastaturspionendes Subsystems Aktivitätsanalyse für Anwendungenim Modul Proaktiver Schutz muss aktiviert sein).Kernel-Mode-<strong>Keylogger</strong><strong>Keylogger</strong> des Kernel-Mode sind weitaus komplexer<strong>und</strong> komplizierter als <strong>Keylogger</strong> des User-Mode – sowohlin der Umsetzung als auch bezüglich ihrer Entdeckung.Ihre Entwicklung erfordert spezielle Programmier-Kenntnisse,doch das Ergebnis sind <strong>Keylogger</strong>,die für alle Anwendungen des User-Mode absolut unbemerktbleiben. Zum Abfangen können sowohl die imMicrosoft Driver Development Kit dokumentierte alsauch andere, nicht dokumentierte Methoden verwendetwerden.Verwendung eines Treiberfilters des TastaturklassentreibersKbdclass<strong>Keylogger</strong>Nachteile: Modifikationen der IAT-Tabellen könnendas Abfangen nicht garantieren, da die Adressen der<strong>Funktionen</strong> der Bibliothek user32.dll so lange gespeichertwerden könnten, bis der <strong>Keylogger</strong> eindringt. DasSplicing ist ebenfalls mit Schwierigkeiten verb<strong>und</strong>en,etwa auf Gr<strong>und</strong> der Notwendigkeit, den Programmcode„on-the-fly“ zu überschreiben.Kaspersky Internet Security erkennt derartige <strong>Keylogger</strong>mit Hilfe des proaktiven Schutzmechanismus alsInvader (die Option Eindringen in Prozess (Invaders)des Subsystems Aktivitätsanalyse für Anwendungenim Modul Proaktiver Schutz muss aktiviert sein).Hierbei handelt es sich um den im DDK dokumentiertenAnsatz zum Abfangen der Tastatureingabe. Nach diesemModell konstruierte <strong>Keylogger</strong> fangen die Anfragenan die Tastatur durch die Installation eines Filtersoberhalb des Gerätes \Device\KeyboardClass0 ab, dervon dem Treiber Kbdclass erzeugt wird. Es werden ausschließlichAnfragen des Typs IRP_MJ_READ gefiltert,da gerade diese den Empfang der Codes gedrückter<strong>und</strong> gelöster Tasten ermöglichen.16


Die Vorteile dieses Ansatzes: Alle Tastenbetätigungenwerden garantiert abgefangen, <strong>und</strong> eine Entdeckungist ohne den Einsatz eines Treibers nicht möglich, weshalbviele Anti-<strong>Keylogger</strong> derartige Tastaturspione nichterkennen.Der Nachteil liegt in der Notwendigkeit, einen eigenenTreiber zu installieren.Die bekanntesten <strong>Keylogger</strong> dieser Art sind ELITE <strong>Keylogger</strong><strong>und</strong> Invisible KeyLogger Stealth.MJ_DEVICECONTROL.B ab. In diesem Fall ähnelt der<strong>Keylogger</strong> dem Treiberfilter des Treibers i8042.Kaspersky Internet Security erkennt derartige <strong>Keylogger</strong>proaktiv als <strong>Keylogger</strong> (die Option Erkennen vonTastaturspionen muss im Subsystem Aktivitätsanalysefür Anwendungen im Modul Proaktiver Schutz aktiviertsein).Modifikation der Tabelle der SystemdiensteKeServiceDescriptorTableShadowKaspersky Internet Security erkennt derartige <strong>Keylogger</strong>proaktiv als <strong>Keylogger</strong> durch ein Monitoring desTastatur-Stacks der Geräte (die Option Erkennen vonTastaturspionen muss im Subsystem Aktivitätsanalysefür Anwendungen des Moduls Proaktiver Schutz aktiviertsein).Verwendung eines Treiberfilters des Funktionstreibersi8042prtAuch dies ist eine im DDK dokumentierte Abfang-Methode.Nach diesem Modell konstruierte <strong>Keylogger</strong> fangendie Anfragen an die Tastatur durch die Installationeines Filters \Device\KeyboardClass0 oberhalb einesnamenlosen Gerätes ab, erzeugt vom Treiber i8042prtunter dem Gerät. Der Treiber i8042prt ist eine Programmierschnittstellezur Ergänzung einer zusätzlichenFunktion zur Bearbeitung des IRQ 1 (IsrRoutine), in dereine Analyse der von der Tastatur empfangenen Datenmöglich ist.Die Vor- <strong>und</strong> Nachteile entsprechen denen im Punktzuvor. In diesem Fall gibt es allerdings noch ein zusätzlichesManko, nämlich die Abhängigkeit vom jeweiligenTastatur-Typ: Der Treiber i8042prt bearbeitet ausschließlichAnfragen von PS/2-Tastaturen. Aus diesemGr<strong>und</strong> ist die dargestellte Methode nicht zum Abfangenvon über USB- oder Funk-Tastaturen übermittelten Datengeeignet.Kaspersky Internet Security erkennt derartige <strong>Keylogger</strong>proaktiv als <strong>Keylogger</strong> durch ein Monitoring desTastatur-Stacks der Geräte (die Option Erkennen vonTastaturspionen muss im Subsystem Aktivitätsanalysefür Anwendungen des Moduls Proaktiver Schutz aktiviertsein).Modifikation der Bearbeitungstabelle der Systemanfragenim Treiber KbdclassNach dieser Methode konstruierte <strong>Keylogger</strong> fangendie Anfragen an die Tastatur ab, indem sie den EingabepunktIRP_MJ_READ in der Bearbeitungstabelleder Systemanfragen (Dispatch Table) des TreibersKbdclass austauschen. Der Funktionalität nach ist diesdem Treiberfilter des Treibers Kdbclass sehr ähnlich.Auch die Vor-<strong>und</strong> Nachteile sind dieselben. Eine andereVariante fängt die Funktion des Anfrage-Editors IRP_Hierbei handelt es sich um ein recht verbreitetes <strong>Keylogger</strong>-Modell,welches analog zu der Methode desUser-Mode funktioniert. <strong>Keylogger</strong> dieser Machartrealisieren das Abfangen der Anfragen an die Tastaturdurch Patchen des Einsprungspunktes NtUserGetMessage/PeekMessage in der zweiten Tabelle der Systemdienste (KeServiceDescriptorTableShadow) desTreibers win32k.sys. Die Informationen über Tastenbetätigungengelangen in den <strong>Keylogger</strong>, wenn in irgendeinemThread die <strong>Funktionen</strong> GetMessage oderPeekMessage aufgerufen werden.Die Methode hat den Vorteil, dass auf diese Weiserealisierte <strong>Keylogger</strong> nur sehr schwer entdecktwerden, ihre Nachteile liegen in der Notwendigkeit,einen separaten Treiber zu installieren,sowie in der relativ komplizierten Umsetzung:Die Suche nach der Tabelle KeServiceDescriptorTableShadow selbst ist nicht einfach. Hinzu kommt dasProblem, dass andere Treiber den Einsprungspunkt indieser Tabelle bereits gepatcht haben können.Kaspersky Internet Security erkennt derartige <strong>Keylogger</strong>proaktiv als <strong>Keylogger</strong> (die Option Erkennen vonTastaturspionen muss im Subsystem Aktivitätsanalysefür Anwendungen im Modul Proaktiver Schutz aktiviertsein).Modifikation der <strong>Funktionen</strong> NtUserGetMessage /NtUserPeekMessage durch Splicing<strong>Keylogger</strong> dieses Typs sind höchst selten anzutreffen.Nach dieser Methode realisierte <strong>Keylogger</strong>fangen die Anfragen an die Tastatur ab, indem sieden Code der <strong>Funktionen</strong> NtUserGetMessage oderNtUserPeekMessage mit Hilfe von Splicing modifizieren.Die genannten <strong>Funktionen</strong> sind im Systemkernelim Treiber win32k.sys realisiert <strong>und</strong> werden aus denentsprechenden <strong>Funktionen</strong> der Bibliothek user32.dllaufgerufen. Wie bereits beschrieben, ermöglichen diese<strong>Funktionen</strong> das Filtern aller von den Anwendungenempfangenen Meldungen <strong>und</strong> den Empfang von Informationenüber das Drücken <strong>und</strong> Lösen von Tasten ausden Tastaturmeldungen.Der Vorteil dieser Art von <strong>Keylogger</strong>: Sie werden nursehr schwer entdeckt. Die Nachteile liegen in der kompliziertenUmsetzung (der Programmcode muss „on-<strong>Keylogger</strong>17


the-fly“ überschrieben werden, <strong>Keylogger</strong> dieser Artsind abhängig von der Version des Betriebssystems<strong>und</strong> der installierten Software) <strong>und</strong> der Notwendigkeiteinen Treiber zu installieren.Treiber-Austausch im Tastatur-Stack der TreiberDiese Methode basiert auf dem Austausch des TreibersKbdclass oder eines Tastaturtreibers der unterenEbene mit einem selbst entwickelten Treiber. Der eindeutigeNachteil dieser Methode besteht in der kompliziertenUmsetzung, da im Vorfeld nicht bekannt ist, welcherTastatur-Typ vom User verwendet wird, <strong>und</strong> derAustausch des Treibers daher recht einfach entdecktwird. Aus diesem Gr<strong>und</strong> wird diese Methode in der Praxisso gut wie nie umgesetzt.Entwicklung eines Treibers zur Bearbeitung desInterrupts IRQ 1Zur Realisierung dieser Methode ist das Programmiereneines eigenen Kernel-Treibers notwendig, derden Tastaturinterrupt (IRQ 1) abfängt <strong>und</strong> direkt an dieEingabe-Ausgabe-Ports (60h, 64h) geleitet wird. AufGr<strong>und</strong> der komplizierten Umsetzung dieser Methode<strong>und</strong> der nicht ganz klaren Art von Wechselwirkungenmit dem im System integrierten „Bearbeiter“ des Interrupts(Treiber i8042prt.sys) ist diese Methode zum gegenwärtigenZeitpunkt noch reine Theorie.► Die breite Masse der derzeit existierenden <strong>Keylogger</strong>ist ein mächtiges Instrument, das problemlos zuunlauteren Zwecken eingesetzt werden kann – inerster Linie zum Diebstahl von über die Tastatur eingegebenenvertraulichen Informationen.► Antiviren-Hersteller müssen ihre K<strong>und</strong>en unbedingtvor den Bedrohungen schützen, die von <strong>Keylogger</strong>nin den Händen von Kriminellen ausgehen können.Da die Schutzmechanismen immer ausgereifter werden,sind die <strong>Keylogger</strong>-Autoren gezwungen, sich mitder Umsetzung immer komplizierterer Tastaturspione– unter anderem solcher, die die Kernel-Treiber desBetriebssystems Windows nutzen – auseinanderzusetzen.In diesem Bereich eröffnet sich ihnen noch eineVielzahl von Möglichkeiten.Nikolay GrebennikovStellvertretender Direktor der Abteilung fürinnovative Technologien, Kaspersky LabFazitIn der vorliegenden Analyse wurde der Algorithmusder Datenübertragung vom Drücken einer Taste aufder Tastatur durch den Anwender bis zum Erscheineneines Zeichens auf dem Bildschirm dargestellt. Desweiteren wurden die einzelnen Glieder der Signal-Bearbeitungsketteanalysiert <strong>und</strong> die verschiedenen Umsetzungenvon <strong>Keylogger</strong>n, die auf dem Abfangen vonTastatureingabe auf bestimmten Etappen des beschriebenenAlgorithmus basieren, genauer beschrieben.► Das hier untersuchte Schema der Tastatureingabeim Betriebssystem Windows ist hinreichend kompliziert,<strong>und</strong> in praktisch jedem Schritt könnte ein <strong>Keylogger</strong>installiert werden.► Es besteht eindeutig ein Verhältnis zwischen demVerbreitungsgrad von <strong>Keylogger</strong>n <strong>und</strong> der Komplexitätihrer Entwicklung. Daher gehören die am weitestenverbreiteten Realisierungs-Methoden von<strong>Keylogger</strong>n – nämlich die Installation von Hooksauf Eingabeereignisse <strong>und</strong> die zyklische Abfrageder Tastaturzustände – auch gleichzeitig zu den ameinfachsten umsetzbaren <strong>Keylogger</strong>-Typen. Ein derartigerTastaturspion kann selbst von jemandem geschriebenwerden, der erst vor einer Woche mit demProgrammieren angefangen hat.<strong>Keylogger</strong>18


Schutz vor <strong>Keylogger</strong>n mit Produkten vonKaspersky LabAngesichts der Möglichkeiten, die <strong>Keylogger</strong> Kriminelleneröffnen, muss deren Entdeckung für jeden Antiviren-Herstelleroberste Priorität haben. Im Folgendenwird aufgezeigt, wie die Produkte von Kaspersky Labvor dem Spy Lantern <strong>Keylogger</strong> <strong>und</strong> dessen neuenoder modifizierten Versionen schützen.Allgemeine Merkmale von Spy Lantern <strong>Keylogger</strong>Spy Lantern <strong>Keylogger</strong> verfügt über funktionale Merkmale,die für die breite Masse der existierenden <strong>Keylogger</strong>charakteristisch sind. Er sticht dadurch hervor,dass er Rootkit-Technologie verwendet <strong>und</strong> so seineAnwesenheit im System verbirgt.Allgemeine Angaben:► Archivname: spy-lantern-keylogger-pro.zip► Gr<strong>und</strong>legendes Funktionsprinzip: Standard-Hookauf Tastaturereignisse► Zusätzliches Funktionsprinzip: Periodische Abfragedes Tastaturzustands► Rootkit-Schutz über einen Kernel-Mode-Treiber► Eine verborgene Installation ist in der untersuchtenVersion 5.4.2 des <strong>Keylogger</strong>s nicht vorgesehen.► URL des Entwicklers: www.spy-lantern.com Sonstiges:• Programmzugriff über Hotkeys• Unterstützung von Fast User Switch, WindowsTerminal Services• benutzerfre<strong>und</strong>liches Interface• Tool „Reports Viewer“ zum Lesen der ProtokolleUnterstützung der Betriebssysteme WindowsXP/2000/2003 ServerIm Folgenden werden die Suchergebnisse nach derzu Spy Lantern <strong>Keylogger</strong> gehörenden Treiberdateidargestellt, die mit Hilfe von Scannern verschiedenerAntiviren-Hersteller auf der Site www.virustotal.com erzieltwurden.Laut Beschreibung auf der Site des Autors verfügt SpyLantern <strong>Keylogger</strong> über die folgenden <strong>Funktionen</strong>: Überwachung <strong>und</strong> Protokollierung:• Tastenbetätigungen• besuchte Web-Sites• mit Hilfe von Instant-Messangern gesendete<strong>und</strong> empfangene Mitteilungen (ICQ, Yahoo, AIM,MSN)• Passwörter• geöffnete Anwendungen• An- <strong>und</strong> Ausschalten des Computers, Übergangdes Computers in den Standby-Modus• Logins <strong>und</strong> Logouts des Users Speicherung von Screenshots Übermittlung der Protokolle:• per E-Mail• Speicherung in einem bestimmten Ordner Sicherheit:• absolut unsichtbar• Passwort-geschützte Konfiguration, PasswortgeschützteDeinstallation• verschlüsselte ProtokolldateienDie oben aufgeführten Daten zeigen, dass einige Antiviren-Programme(zum Beispiel jenes von Symantec)das Programm Spy Lantern <strong>Keylogger</strong> als Spywareklassifizieren. Kaspersky Lab hingegen stuft die vorliegendeVersion des <strong>Keylogger</strong>s als potentiell gefährlicheSoftware (mit dem Präfix not-a-virus) ein, da diefehlende Möglichkeit einer verborgenen Installation esKriminellen erschwert, die laufende Version auf demComputer eines potentiellen Opfers zu installieren.Nach Angaben der Entwickler auf der offiziellen Sitedes Produktes ist für die kommende Version übrigensdie Option „verborgene Installation“ geplant.Die folgenden Aspekte werden nun nacheinander genaueruntersucht:► die funktionalen Möglichkeiten des <strong>Keylogger</strong>s, dieAufschluss über seine für Kriminelle interessantenEigenschaften geben► eine Möglichkeiten zum Verbergen im System► die Mechanismen zur Neutralisierung des <strong>Keylogger</strong>smit Hilfe der Produkte von Kaspersky Lab<strong>Keylogger</strong>19


<strong>Funktionen</strong> des Spy Lantern <strong>Keylogger</strong>Bei der Testversion erfolgt die Installation des <strong>Keylogger</strong>snicht im verborgenen Modus. Nach erfolgreicherInstallation wird ein Eintrag im Menü Start/Programme erstellt. Allerdings ist nun ein Neustart desComputers nötig. Der einzige Gr<strong>und</strong> hierfür liegt in derNotwendigkeit, den Treiber zu laden, der die Dateien<strong>und</strong> Prozesses des <strong>Keylogger</strong>s im System verbirgt.Unter dem zweiten Reiter ist nur eine einzige Einstellungmöglich, nämlich der Takt, in dem vom <strong>Keylogger</strong>ein Screenshot gemacht werden soll.Das Hauptfenster des <strong>Keylogger</strong>s kann entweder übereinen Befehl im Startmenü oder über die TastenkombinationCTRL+ALT+SHIFT+L aufgerufen werden. Vonhier aus gelangt man zur Programmkonfiguration (ControlCenter) <strong>und</strong> zu den Protokollen (Reports Viewer).Der dritte Reiter ermöglicht Einstellungen zur Übermittlungder vom <strong>Keylogger</strong> erstellten Protokolle an denjenigen,der den <strong>Keylogger</strong> im System installiert hat – anden Administrator, an Eltern... oder an Kriminelle.KonfigurationsmöglichkeitenDie Konfiguration des <strong>Keylogger</strong>s ist in fünf Reiter unterteilt.Unter dem ersten Reiter Spy Module lässt sichdie Größe der Protokoll-Datei einstellen sowie dasautomatische Laden des Programms beim Start vonWindows. Überdies hat man hier die Möglichkeit, dieaktuelle Datei auf der Festplatte zu speichern <strong>und</strong> dieAufzeichnung von neuem zu beginnen.Unter dem vierten Reiter Security Options könnenPasswort <strong>und</strong> Hotkey für den Zugang zur Konfigurationeingegeben werden. Außerdem lässt sich die Ansichtder Programmpunkte im Startmenü konfigurieren. MitHilfe der zwei letztgenannten Einstellungen lässt sichder <strong>Keylogger</strong> im System verbergen, wodurch dieserohne Wissen des Anwenders aktiv werden kann.<strong>Keylogger</strong>20


Der letzte, fünfte Reiter enthält einen Warnhinweis, welcherdem Anwender beim Login gezeigt werden kann.In diesem, von den Entwicklern des <strong>Keylogger</strong>s MonitoringPolicy genannten Text, wird darauf hingewiesen,dass das Sammeln von Daten ohne Wissen des Benutzersdes entsprechenden Computers in manchenStaaten der USA <strong>und</strong> anderen Ländern ungesetzlichist. Allerdings wird dieser Hinweis in der Standardeinstellungnicht gezeigt, was neben den möglichen Konfigurationenunter dem vorherigen Reiter dazu beiträgt,den <strong>Keylogger</strong> vor dem Anwender zu verbergen. Geöffnete Web-Sites: Zeigt eine Auflistung der Web-Sites, die vom Anwender besucht wurden. Die Web-Sites sind alphabetisch nach den Domain- Namender oberen Ebene geordnet. Passworteingabe: Zeigt eine Aufstellung der vomUser in verschiedenen Anwendungen eingegebenenPasswörter, die nach den Namen der entsprechendenAnwendungen geordnet sind.Reports ViewerDie Protokolle der vom <strong>Keylogger</strong> aufgezeichneten Ereignissekönnen mit Hilfe des Moduls Reports Viewereingesehen werden, welches über das Hauptfensterdes Programms aufgerufen werden kann. Im linken Teildes Fensters Reports Viewer befindet sich eine Navigationsleiste,die eine Auswahl aus 7 verschiedenenArten überwachter Daten anbietet: Tastenbetätigungen: Zeigt eine Aufstellung der gedrücktenTasten inklusive der entsprechenden Zeitangaben,geordnet nach den Namen der jeweiligenAnwendungen, innerhalb derer die Tastenbetätigungenvorgenommen wurden: Chats: Zeigt die Mitteilungen, die der Anwender mittelsunterschiedlicher Instant-Messanger-Systeme(ICQ <strong>und</strong> andere) versendet oder empfangen hat. Screenshots: Zeigt eine Aufstellung der Screen shots,die vom Programm in bestimmten, durch die Konfigurationfestgelegten Abständen erstellt wurden.<strong>Keylogger</strong>21


Anwendungslisten: Zeigt eine Auflistung der im Systemgeöffneten Anwendungen sowie deren Gesamt-<strong>und</strong> aktive Zeit.Möglicherweise sind ein Zugangspasswort zu einemSchachserver <strong>und</strong> die Züge von bereits gespieltenPartien für einen Durchschnitts-User nicht gleichermaßenbedeutend wie etwa Informationen über seineBankkonten. Doch man stelle sich nur einmal vor, beidem entsprechenden User handelte es sich um einenTeilnehmer der Schach-Weltmeisterschaft, der seinenächste Partie vorbereitet, <strong>und</strong> es wird klar, dass unterbestimmten Umständen auch solche Informationen vongroßem Wert sein können. Es sei darauf hingewiesen,dass die während eines Besuchs von Online-Banking-Sites dargestellten vertraulichen Informationen ebensowie die Daten im oben beschriebenen Beispiel vom<strong>Keylogger</strong> protokolliert werden können.Auswirkungen des in Spy Lantern <strong>Keylogger</strong> integriertenRootkits auf ein ungeschütztes System PC-Aktivität: Zeigt eine Aufstellung von Ereignissen,wie etwa das Anschalten, den Zeitpunkt des Herunterfahrens,den Übergang des Computers in denStandby-Modus, Logins <strong>und</strong> Logouts des Users.Abschließend folgt nun eine Gesamtaufstellung derInfor mationen, die ein potentieller Verbrecher mit Hilfedes Spy Lantern <strong>Keylogger</strong>s sammeln könnte. Diedazu gehörigen Screenshots sind weiter oben dargestellt.Ein Krimineller würde erfahren, dass:► der Anwender mit dem Benutzernamen Mamushaam 9. Februar 2007 zweimal ins System gegangenist, nämlich um 23:13 Uhr <strong>und</strong> um 23:26 Uhr► der Anwender dabei verschiedene Anwendungengeladen hat, unter anderem Acrobat Reader, MicrosoftExcel, Far <strong>und</strong> PlayChess► der Anwender auf der Site www.google.com im Internetrecherchiert, seine E-Mails unter www.mail.ruabgerufen <strong>und</strong> sich bei WebPlanet über das Weltgescheheninformiert hat► der Anwender Daten in verschiedene Anwendungeneingegeben hat – vom simplen Kopieren des ArtikelsUnsichtbar in Windows NT in den Texteditor notepadbis hin zur Eingabe des User-Passworts im Schach-Client PlayChess► der Anwender einige Partien Online-Schach gespielthat, wobei die Aufnahme-Funktion von Screenshotsdes <strong>Keylogger</strong>s nahezu jeden einzelnen Spielzugder Partien nachvollziehbar macht.An dieser Stelle werden die Mechanismen der zum<strong>Keylogger</strong> gehörenden Verbergungsfunktion genaueruntersucht. Im Abschnitt über die Konfiguration des<strong>Keylogger</strong>s wurden bereits zwei simple Verbergungsmethodenbeschrieben, nämlich die Möglichkeit, imStartmenü den Verweis auf den <strong>Keylogger</strong> zu unterbinden<strong>und</strong> den Warnhinweis beim Systemstart nichtanzuzeigen. In diesem Abschnitt hingegen geht es umVerbergungsfunktionen, die durch ein in Spy Lantern<strong>Keylogger</strong> integriertes Rootkit erzeugt werden. Da derlei<strong>Funktionen</strong> in einem völlig legalen, für Kriminelle uninteressantenProgramm absolut unnötig sind, werdensie von den Antivirus-Produkten von Kaspersky Laberkannt.Verborgene DateienBei jeder erneuten Installation des <strong>Keylogger</strong>s vergibtdas Installationsprogramm zufällige Namen an die<strong>Keylogger</strong>-Dateien. Der einzige plausible Gr<strong>und</strong> fürein solches Vorgehen besteht darin, die Suche nachdem im System installierten <strong>Keylogger</strong> zu erschweren.Allerdings ist das nicht ausreichend, da die meistenAntiviren-Programme keine Suche nach Dateinamen,sondern vielmehr nach dem Inhalt der Dateien durchführen.Die manuelle Entdeckung des <strong>Keylogger</strong>s kannmit Hilfe dieser Maßnahme jedoch durchaus erschwertwerden: Die Dateinamen verändern sich ständig, wodurchein Erfahrungsaustausch unter Anwendern bezüglichdes Löschens des <strong>Keylogger</strong>s aus dem Systemrelativ ineffektiv wird.Im Datei-Menü im Konfigurationsfenster Control Centerdes Programms sind die vergebenen Dateinamen aufgelistet(wobei diese Liste nach jeder erneuten Installationdes Programms andere Namen enthält). Bei einerkonkreten Beispiel-Installation beginnen alle Dateinamenmit demselben Präfix ketaf. Aufgr<strong>und</strong> diesesPräfixes in den Dateinamen erkennt der Rootkit-Treiber,welche Dateien in der Auflistung im Dateisystemverborgen werden sollen.<strong>Keylogger</strong>22


Verborgene RegistrierungsschlüsselDie folgende Abbildung zeigt den Registry Editor, indem die vom <strong>Keylogger</strong> erzeugten Schlüssel KetafDriver<strong>und</strong> KetafSrv aufgeführt sind. Sie sind sichtbar, obgleichRootkits für gewöhnlich auch diesen Aspekt ihrerAnwesenheit im System verbergen. Daher entsprichtauch das von den Entwicklern des Spy Lantern <strong>Keylogger</strong>sangepriesene Merkmal „absolut unsichtbar“ nichtder Realität.In der folgenden Abbildung ist das Verzeichnis C:\Windows\System32 direkt nach der Installation des<strong>Keylogger</strong>s dargestellt. Es hat den Anschein, als wärekeine der oben gezeigten Dateien in diesem Ordnerenthalten, obwohl dies bekanntermaßen der Fall ist.Verborgene ProzesseAnalog zu den Dateien versteckt der Rootkit-Treiberauch die Prozesse des <strong>Keylogger</strong>s im System. Diefolgende Abbildung zeigt den Windows Task Manager,der keinen <strong>Keylogger</strong>-Prozess anzeigt, obwohl dieser(ketaf.exe) de facto im System vorhanden ist.Insgesamt betrachtet wurden in dem von uns untersuchten<strong>Keylogger</strong> alle Möglichkeiten zum Verbergenim System umgesetzt – mit Ausnahme des Verbergensder Schlüssel der System-Registry. Zum Verbergender Dateien <strong>und</strong> Prozesse des <strong>Keylogger</strong>s wird einKerneltreiber des Betriebssystems verwendet, was dieEntdeckung bedeutend erschwert. Kriminelle könnendas gegebene Programm also im unsichtbaren Modusbenutzen. Dabei ist es nicht nur unmöglich den <strong>Keylogger</strong>manuell aufzuspüren, sondern auch Antivirus-Programme,die nur über unzureichende Schutzmechanismenvor Rootkits des Kernel-Mode verfügen, sind nichtin der Lage ihn aufzuspüren. Leider verfügte die Mehrheitder integrierten Schutzsysteme bis vor kurzemnicht über eine derartige Funktion, allerdings bessertsich die Situation auf diesem Gebiet allmählich.Schutz vor <strong>Keylogger</strong>n in Kaspersky-ProduktenVerschiedene <strong>Funktionen</strong> in Kaspersky Anti-Virus <strong>und</strong>Kaspersky Internet Security ermöglichen die Neutralisierungder Aktivität des Spy Lantern <strong>Keylogger</strong>s –sowohl während dessen Installation als auch bei derInstallation des Schutzprogramms auf einem Systemmit bereits aktivem <strong>Keylogger</strong>. Während der Installationbieten die Produkte von Kaspersky Lab die Auswahlzwischen interaktivem <strong>und</strong> automatischem Arbeitsmodus.Im automatischen Modus trifftdas Programm in der Mehrheit derFälle selbst eine Entscheidung <strong>und</strong>informiert den Anwender nur übereindeutig gefährliche Ereignisse.Läuft die Anwendung im interaktivenModus, wird der Anwenderüber gefährliche <strong>und</strong> verdächtigeEreignisse informiert <strong>und</strong> hat danndie Möglichkeit, eigenständig eineEntscheidung über das weitere Vorgehenzu treffen. Im Folgenden wirddie Funktionsweise im interaktivenModus genauer beschrieben.<strong>Keylogger</strong>23


Entdecken mit Hilfe von Signatur-DatenbankenWie schon erwähnt, ist die Signatur des vorliegenden<strong>Keylogger</strong>s bereits in den Antivirus-Datenbanken vonKaspersky Lab vorhanden. Da dieser <strong>Keylogger</strong> allerdingsals legales Programm positioniert wird, das zuvöllig legalen Zwecken genutzt werden kann, befindetsich dessen Signatur in der Kategorie riskware (potentiellgefährliche Software). Das Entdecken von Programmendieser Kategorie ist in der Standardkonfigurationnicht vorgesehen. Um diese Funktion zu aktivieren,muss unter Einstellungen/Schutz das Kästchen vordem Punkt Potentiell gefährliche Software; Remoteverwaltungsprogramme,Scherzprogramme unter Kategorienfür schädliche Software angeklickt werden:In der Gr<strong>und</strong>einstellung startet Kaspersky InternetSecurity die Überprüfung von Autostart-Objekten mitHilfe einer speziellen Systemfunktion. Diese Methodeermöglicht auch das Entdecken der verborgenen Dateiendes Spy Lantern <strong>Keylogger</strong>s (in diesem Fall mitdem Präfix ketaf), die für alle ande ren Anwendungendes Betriebssystems unsichtbar sind.Schließlich erscheint ein Dialogfenster, analog zu demoben dargestellten. Entscheidet sich der Anwender dafür,den <strong>Keylogger</strong> zu löschen, so schlägt KasperskyInternet Security die Desinfizierung der aktiven Infizierungvor – da der <strong>Keylogger</strong>-Prozess zum entsprechendenZeitpunkt aktiv ist (wenn auch mit Hilfe desRootkit-Treibers nicht sichtbar).Wurde die Funktion zum Aufspüren potentiell gefährlicherSoftware aktiviert, erscheint bei der Installationdes <strong>Keylogger</strong>s der folgende Warnhinweis:<strong>Keylogger</strong>Der <strong>Keylogger</strong> wird daraufhin blockiert, <strong>und</strong> der Anwenderhat nun die Möglichkeit, die installierte Datei durchAnklicken der entsprechenden Schaltfläche zu löschen.Lässt der Anwender die Installation zu, wird nach abgeschlossenerInstallation des <strong>Keylogger</strong>s ein Neustartdes Computers durchgeführt <strong>und</strong> der <strong>Keylogger</strong> wirddaraufhin im verborgenen Modus aktiv. Unabhängigvom Modus ermöglicht Kaspersky Internet Security dieEntdeckung <strong>und</strong> Neutralisierung des <strong>Keylogger</strong>s.Bei der Desinfektion einer aktiven Infizierung handelt essich um eine von den Kaspersky Lab-Spezialisten entwickelteProzedur, die die Neutralisierung schädlicherSoftware ermöglicht, unabhängig davon, wie „tief“ dieseim Betriebssystem verankert ist. Diese Prozedurwird immer dann aktiviert, wenn Kaspersky InternetSecurity einen schädlichen Prozess im Arbeitsspeicheroder unter den Autostart-Objekten entdeckt.Am Ende dieser Prozedur steht das Löschen des <strong>Keylogger</strong>s,woraufhin ein Neustart des Computers gefordertwird. Dieser ist unbedingt erforderlich, damit sichder aktive Schadcode nicht auf dem Computer des Anwendersverankern kann.24


Hat der Anwender der Desinfektion einer aktiven Infizierungzugestimmt, so werden die <strong>Keylogger</strong>-Dateiennach dem Neustart des Computers für jeden Prozessim System sichtbar:Ein wesentliches Merkmal der Produkte von KasperskyLab ist das leistungsstarke Modul Proaktiver Schutz.Der proaktive Schutz unterscheidet sich von dem Signatur-basiertendadurch, dass der Anwender nichtmehr warten muss, bis die Signatur einer neuen Bedrohungin die Antivirus-Datenbanken aufgenommen wird<strong>und</strong> das Produkt das entsprechende Update vom Serverdes Herstellers herunter geladen hat. Das ModulProaktiver Schutz bietet dem Anwender – auch ohneAktualisierung der Datenbanken – Schutz vor neuenBedrohungstypen <strong>und</strong> Modifikationen existierenderSchadprogramme, denn seine Funktionsweise beruhtauf der ununterbrochenen Überwachung der Aktivitätaller Prozesse im System des Anwenders. Die Einstufung(gefährlich, verdächtig usw.) ergibt sich auf Gr<strong>und</strong>der Analyse dieser Aktivität. Der in die Kaspersky-Produkteintegrierte proaktive Schutz gewährleistet Schutzvor verschiedenen Arten von Schadprogrammen, inklusive<strong>Keylogger</strong> <strong>und</strong> Rootkits.In den Einstellungen des Subsystems Aktivitätsanalysefür Anwendungen im Modul Proaktiver Schutz werdenoptional die folgenden drei <strong>Funktionen</strong> zum Schutz vorRootkits <strong>und</strong> <strong>Keylogger</strong>n angeboten: Auftreten einesversteckten Prozesses (Rootkit), Eindringen von Hooksin Fenster <strong>und</strong> Entdecken von Tastaturspionen:Analog zu den <strong>Keylogger</strong>-Dateien werden nach derDesinfektion einer aktiven Infizierung <strong>und</strong> dem darauffolgenden Neustart des Computers auch die Prozessedes <strong>Keylogger</strong>s (ketaf.exe <strong>und</strong> ketafl.exe) für den Anwendersichtbar, wie die Abbildung des Windows TaskManagers zeigt:Im Folgenden wird dargestellt, wie das Modul ProaktiverSchutz die Aktivität des Spy Lantern <strong>Keylogger</strong>sneutralisiert.Installation eines globalen Hooks verhindernZum Abfangen der Tastatureingaben verwendet derSpy Lantern <strong>Keylogger</strong> im Wesentlichen die Methodeder Installation eines Hooks auf die Tastaturereignissemit Hilfe der Funktion SetWindowsHook.<strong>Keylogger</strong>Proaktiver SchutzDas Modul Proaktiver Schutz informiert den Anwenderüber die Installation eines Hooks <strong>und</strong> überlässt es demAnwender durch einen Klick auf die entsprechendeSchaltfläche, die Tätigkeit des <strong>Keylogger</strong>s zu beenden<strong>und</strong> die Installation des Hooks zuzulassen oder zu verbieten.25


Beim Abfangen von Tastatureingaben durch die Installationeines globalen Hooks auf die Tastaturereignissewird eine spezielle Filterfunktion verwendet, die sichin einer separaten dynamischen Bibliothek befindet(DLL). Als Entscheidungshilfe liefert Kaspersky InternetSecurity seinen K<strong>und</strong>en so viele <strong>und</strong> so genaue Informationenwie nur möglich, daher sind mit einem Klickauf das Feld „Details“ auch in dem dargestellten Fallweitere Informationen zu einer derartigen dll zu finden.Es wurde bereits darauf hingewiesen, dass der Nameder DLL bei jeder Installation des <strong>Keylogger</strong>s zufälligvergeben wird (in unserem Fall ketafh.dll):Aufspüren verborgener <strong>Keylogger</strong>-ProzesseNach dem Neustart des Computers, der infolge der Installationvon Spy Lantern <strong>Keylogger</strong> durchgeführt wird,öffnet Kaspersky Internet Security ein Fenster, das denUser darüber informiert, dass der Prozess ketaf.exeversteckt läuft. Das Verbergen des Prozesses wird mitHilfe des Treibers ketaf.sys umgesetzt, der den Aufrufzweier <strong>Funktionen</strong> der Auflistung der Prozesse <strong>und</strong> derDatei-Liste im Kernel des Betriebssystems abfängt.Das proaktive Schutzmodul findet ohne Ausnahme alleverborgenen Prozesse im System, unabhängig davon,wie sich diese verstecken. Der Benutzer kann dannzwischen folgenden Aktionen wählen: Verschieben derausführbaren Datei des verborgenen Prozesses in dieQuarantäne, Beenden oder Ausführen des Prozesses.Hat der Anwender die Installation eines Hooks auf dieTastaturereignisse verboten, so werden im Folgendenkeine weiteren Tastaturbetätigungen in den <strong>Keylogger</strong>-Protokollen verzeichnet.Hat der Anwender den <strong>Keylogger</strong>prozess beendet,wird bei dem Versuch, das Konfigurations-Fenster oderden Reports Viewer des <strong>Keylogger</strong>s aufzurufen, die folgendeFehlermeldung angezeigt:Verhinderung der zyklischen Abfrage desTastaturzustandesEine zusätzliche Methode, die Spy Lantern <strong>Keylogger</strong>zum Abfangen der Tastatureingabe verwendet, ist diezyklische Abfrage des Tastaturzustands mit Hilfe derFunktion GetAsyncKeyState. Das proaktive Schutzmodulwarnt den Anwender umgehend <strong>und</strong> bietet die Möglichkeitden <strong>Keylogger</strong>-Prozess zu beenden.Fazit► Genauer untersucht <strong>und</strong> beschrieben wurde ein leistungsstarker,„legaler“ <strong>Keylogger</strong>, der sich zweierTechnologien zum Abfangen der Tastatureingabebedient <strong>und</strong> überdies Rootkit-Technologie zum Verbergenseiner Anwesenheit im System einsetzt.► Die Funktionsweise des Spy Lantern <strong>Keylogger</strong>s isttypisch für die Mehrheit der Tastaturspione. Kriminellekönnen damit Anwenderaktivitäten ausspionieren<strong>und</strong> vertrauliche Informationen stehlen.► Die Produkte von Kaspersky Lab können jeglichedestruktive Aktivität von Spy Lantern <strong>Keylogger</strong> erkennen<strong>und</strong> neutralisieren, selbst wenn dieser durcheinen Kernel-Mode-Treiber geschützt ist.► Die potentielle Gefahr, die von <strong>Keylogger</strong>n ausgeht,macht die Entdeckung von Tastaturspionen jeglicherArt <strong>und</strong> die Neutralisierung ihrer Aktivität zur oberstenPriorität für die Antiviren-Industrie.► Die Produkte von Kaspersky Lab können – mit Hilfeder Signatur-Datenbanken – sowohl existierende<strong>Keylogger</strong> als auch – durch das Modul ProaktiverSchutz – Modifikationen <strong>und</strong> neue Typen von Tastaturspionenerkennen.<strong>Keylogger</strong>Nikolay GrebennikovStellvertretender Direktor der Abteilung fürinnovative Technologien, Kaspersky Lab26


Kaspersky LabKaspersky Lab reagiert im weltweiten Vergleich vonAntivirus-Herstellern meist am schnellsten auf IT-Sicherheitsbedrohungen wie Viren, Spyware, Crimeware,Hacker, Phishing-Attacken <strong>und</strong> Spam.<strong>Keylogger</strong>Die Produkte des global agierenden Unternehmens mitHauptsitz in Moskau haben sich sowohl bei Endk<strong>und</strong>enals auch bei KMUs, Großunternehmen <strong>und</strong> im mobilenUmfeld durch ihre erstklassigen Erkennungsraten <strong>und</strong>minimalen Reaktionszeiten einen Namen gemacht.Neben den Stand-Alone-Lösungen des Security-Experten ist Kaspersky-Technologie Bestandteilvieler Produkte <strong>und</strong> Dienstleistungen führender IT-Sicherheitsunternehmen.KontaktKaspersky Labs GmbHSteinheilstr. 1385053 IngolstadtTelefon: +49 (0)841 981 89 0Telefax: +49 (0)841 981 89 100info@kaspersky.dewww.kaspersky.de27

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!