$>
you're reading...
Netzwelt

Wie das TDL4-Rootkit die Regel der Treibersignierung auf 64-Bit-Maschinen umgeht


Beim Microsoft Windows Betriebssystem das auf 64-Bit-Rechnern läuft, wird die Installation von System- und essentiellen Treibern sehr genau geprüft. Treiber die nicht signiert sind, wird (fast) ausnahmslos die Installation/Ausführung verweigert. Die Regel bezeichnet man als „Kernel-Modus-Code-Signierungsregel“. Somit wird auf 64-Bit-System die Sicherheit erhöht und eine Installation nicht Autorisierter oder böswilliger Treiber, verhindert – Fast!

Das TDL4-Rootkit umgeht diese Regel, indem es die Bootoptionen von Microsofts Ladeprogramm verändert und somit die Installation unsignierter Treiber erlaubt.

Und so geht‘s:

Ist der MBR (Master Boot Record) infiziert, werden die Bootoptionen des Systems im Speicher verändert. Das Rootkit verändert dabei die Funktion „LoadIntegrityCheckPolicy“ die für die Validierung der Bootprogramme zuständig ist. Somit gelingt es dem Schädling die Validierung auf einen niedrigeren Wert zu setzen, und erlaubt die Ausführung unsignierter .dll-Dateien des Schädlings auszuführen.

Das Rootkit lädt dabei eine infizierte Version der „kdcom.dll“ – Datei. Diese Datei wird normalerweise mit Windows mitgeliefert. Bei einem Befall wird die originale Datei von Windows durch die schädliche ersetzt. Dabei ruft die „KdDebuggerInitialize1“-Funktion die befallene Datei „kdcom.dll“ auf, die für das ausführen des Rootkits zuständig ist. Zusätzlich deaktiviert das Rootkit die Aktivierung der Debugger-Funktion „NOP’ing“ die weiter unten erklärt wird. Dies erschwert die Entfernung bzw. nicht Ausführung des Rootkits dadurch, dass der Schädling die IRP dispach Funktion des Miniporttreibers abfängt und so in der Lage ist, den Schädling im MBR unsichtbar zu machen.

Bei einem normalen Startvorgang erhält der Nutzer bei nicht signierten Treibern folgende Meldung:

*** Windows is unable to verify the signature of
the file \Windows\system32\kdcom.dll.

Diese Anzeige wird durch das ändern der Bootoptionen unterdrückt.

Beim Untersuchen des Rootkits ist folgendes dabei herausgekommen:

Hinweis: Der nachfolgende Text ist in Assembler beschrieben. Wer sich damit schwer tut und das verstehen möchte sollte zunächst einige Begriffe in Assembler als Informationsgrundlage heranziehen.

Assembler Kurzbefehle

Infizierte Kdcom.dll mit abgeschalteter Debugger Funktion NOP’ed out


.text: public KdDebuggerInitialize0
.text: mov cs:byte_1800019EC, 3
.text: xor eax, eax
.text: retn <-- Debugger Funktion NOP’ed out die Ausführung wird verhindert

.text: public KdSendPacket
.text: mov     cs:byte_1800019EC, 6
.text: retn <-- Debugger Funktion NOP’ed out

.text:<strong> KdDebuggerInitialize1</strong>
.text: lea     rcx, sub_18000190C <--diese Funktion installiert das Rootkit

.text: jmp     cs:PsSetLoadImageNotifyRoutine
.text: public KdDebuggerInitialize1 endp 

Funktionsaufruf mit der originalen Kdcom.dll


.text:  public KdDebuggerInitialize0
.text: mov     [rsp+arg_0], rbx
.text: mov     [rsp+arg_8], rsi
.text: push    rdi
.text: sub     rsp, 20h

(snip)

.text: public <strong>KdDebuggerInitialize1</strong>
.text: sub     rsp, 28h
.text: cmp     cs:KdComAddressID, 0
.text: jnz     short loc_7FF7045112A

(snip)

.text: public KdSendPacket
.text: mov     [rsp+arg_0], rbx
.text: mov     [rsp+arg_8], rbp
.text: mov     [rsp+arg_10], rsi
.text: push    rdi
.text: push    r12

(snip)

-serpent

Quellen/Englisch:

http://sunbeltblog.blogspot.com/2010/11/how-tld4-rootkit-gets-around-driver.html

http://msdn.microsoft.com/en-us/library/ff548231%28VS.85%29.aspx

Diskussionen

Es gibt noch keine Kommentare.

Schreibe einen Kommentar

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s

Member of The Internet Defense League

Kalender

November 2010
M D M D F S S
    Dez »
1234567
891011121314
15161718192021
22232425262728
2930  

Kategorien

Archiv

Legal Guide For Bloggers

Bloggers' Rights at EFF

Interessantes

Link Anonymizer

Independent Tests of Antiv-Virus Software

BSD Aktuell

Hacker News

Blog Stats

  • 260,187 hits

Haftungsausschluss

disclaimer

%d Bloggern gefällt das: