Eine (fast) neue Angriffstechnik soll herkömmliche Antivirensoftware für Windows aushebeln können, um beispielsweise infizierte Treiber an den Schutzmechnismen vorbei in das System zu laden. Der von der Hackergruppe Matousec.com entwickelte Angriff macht sich zunutze, dass viele Antivirenprogramme beispielsweise zur Überwachung des Verhaltens von Programmen die System Service Descriptor Table (SSDT) des Kernels auf sich umbiegen (Hooks).

Ruft eine Anwendung dann eine bestimmte Systemfunktion auf, beispielsweise zum Laden eines Treibers, so prüft zunächst das Antivirenprogramm, ob hinter dem Aufruf eine bösartige Absicht stecken könnte. Ist dies nicht der Fall, leitet des AV-Programm den Aufruf an die eigentliche Funktion weiter. Durch Argument-Switching während eines Kontext-Switches (Umschalten zwischen zwei Prozessen) des AV-Programmes ist es jedoch laut Matousec möglich, die Prüfungen des Scanners erfolgreich zu absolvieren und anschließend doch einen infizierten Treiber zu laden oder nicht erlaubte Funktionen aufzurufen.

Der Trick dabei: Durch geschicktes Timing den Punkt zu finden, bei dem der Scanner-Prozess bereits alle Prüfungen des Aufrufs absolviert hat, der Angreifer aber trotzdem noch die Möglichkeit hat, nachträglich beispielsweise den Namen des zu ladenden Treibers, Pointer oder Kernel-Handles zu manipulieren. An der Frage, wie geschickt man dabei vorgehen muss und wie zuverlässig die Methode funktioniert, scheiden sich dann auch die Geister. Matousec listet 34 Produkte aller namhaften AV-Hersteller auf, die für Argument-Switching verwundbar sein sollen, weil sie SSDT-Hooks oder andere Kernel-Hooks für ihre Funktionen benutzen. Für die Tests hat Matousec ein eigenes Framework names KHOBE (Kernel HOok Bypassing Engine) benutzt.

Die betroffenen Antivirenhersteller wurden bereits vor mehreren Wochen von Matousec auf das Problem hingewiesen; zudem wurden ihnen Test-Exploits zum Kauf angeboten. Wie viele Hersteller auf das Angebot eingegangen sind, ist unklar. Allerdings scheinen die meisten Probleme bei der genauen Rekonstruktion der Schwachstelle anhand der verfügbaren Informationen zu haben – obschon sie das eigentliche Problem prinzipiell bestätigen.

In einer Stellungnahme gegenüber heise Security hält McAfee einen erfolgreichen Angriff in der Praxis für unwahrscheinlich. Um während eines Kontext-Switches ein Argument effektiv manipulieren zu können, seien sehr viele Versuche notwendig – was vermutlich eher zu einen Bluescreen führen würde. Zudem müsste ein Schädling ja bereits ins System eingedrungen sein, um die Manipulationen zu versuchen. Durch den Argument-Switching-Angriff könne ein Schädling auch nur an höhere Rechte gelangen – wenn er sie denn nicht sowieso schon besitzt, weil der Anwender mit Admin-Rechten arbeitet.

Aus diesem Grunde sieht auch F-Secure die Lage relativ entspannt. Das Problem sei nur für Schädlinge relevant, für die man ohnehin noch keine Signaturen habe – dies würde aber durch andere Erkennungssysteme wettgemacht. Grundsätzlich nehmen aber alle Hersteller das Problem ernst und denken über Lösungen nach. Die scheinen sich jedoch nicht so ohne weiteres implementieren zu lassen. Während Microsoft für neuere Betriebssysteme wie Windows 7 und Vista SP1 den Einsatz einer speziellen API zur Einbindung der Virenscanner empfiehlt und vom Einsatz von SSDTs abrät, gibt es solch eine API unter dem immer noch weit verbreiteten Windows XP nicht. Zudem unterstützt die offizielle API nach Angaben des deutschen Herstellers Avira nicht alle erforderlichen Funktionen. So sei man zur Implementierung der Verhaltenserkennung in Antivir 10 trotzdem gezwungen gewesen, auf SSDT-Hooks zurückzugreifen. Die ältere Version Antivir 9 ohne Verhaltenserkennung hätte sich aber grundsätzlich (zumindest für Windows 7 und Vista SP1) auch ohne Hooks realisieren lassen.

Ganz neu ist die von Matousec beschriebene Technik nicht; sie hat bereits 14 Jahre auf dem Buckel und ist als Time-Of-Check-to-Time-Of-Use-Problem (TOCTOU) bekannt. Erstmals beschrieben Matt Bishop und Michael Dilger das Problem in Zusammenhang mit Race Conditions beim Zugriff auf Dateien im Jahre 1996. Ende des Jahres 2003 konkretisierte dann Andrey Kolishak das Problem für Windows-Hooks.

Quelle: Heise.de