Rootkit TDL atakuje

System operacyjny Windows 7 został wyposażony w wiele zabezpieczeń, które miały uniemożliwić infiltrację jądra przez złośliwe oprogramowanie. Obecnie znany rootkit TDL potrafi obejść te zabezpieczenia i zainfekować także 64-bitowe wydanie Windows 7.

W 64-bitową edycję Windows 7 wbudowano ochronę, która miała w zamyśle uniemożliwić przejęcie kontroli nad jądrem systemu przez złośliwe oprogramowanie. Wprowadzono politykę podpisu sterowników pracujących w trybie jądra, zezwalającą na ładowanie takich sterowników tylko wtedy, gdy mają ważny podpis cyfrowy. Niejednokrotnie obchodzono to zabezpieczenie za pomocą luk w istniejących sterownikach, w samym mechanizmie podpisu albo za pomocą skradzionych kluczy.

Najnowsza wykryta wersja rootkita TDL (nazwana także Alureon) wykorzystuje inną drogę - zarażany jest sektor startowy systemu operacyjnego, wprowadzając zmiany w procesie startu systemu operacyjnego. Opcja LoadIntegrityCheckPolicy jest przełączana podczas startu z zainfekowanego sektora MBR, umożliwiając załadowanie niepodpisanych bibliotek DLL. Dodatkowo, aby ochronić jądro systemu, Microsoft wprowadził do wersji 64-bitowej ochronę PatchGuard, która blokuje możliwość nadpisania lub zmiany najważniejszych części jądra przez sterowniki pracujące w trybie kernel mode. Rootkit obchodzi także i to zabezpieczenie, modyfikując opcje startowe systemu.

Jak zarazić chroniony system?

Zarażenie Windows 7 w wersji 32-bitowej jest stosunkowo proste, zatem rootkit ten wykorzystuje znaną sztuczkę techniczną, polegającą na załadowaniu sterownika za pomocą API AddPrintProvidor, a następnie nadpisaniu głównego rekordu startowego swoim kodem.

Znacznie trudniej zarazić wersję 64-bitową, która wykorzystuje sprawdzenie podpisu sterowników. Aby dropper mógł zainstalować złośliwy kod, wykorzystuje powszechnie znany sposób, otwierając handle do dysku PhysicalDrive0, a następnie za pomocą komend SCSI nadpisuje jego zawartość, niezbędne komendy są dobrze udokumentowane w bibliotece MSDN. Po wymuszonym restarcie systemu uruchamiany jest nowy MBR, następuje odszyfrowanie kodu za pomocą prostej pętli, a następnie uruchamiany jest loader, który przejmuje sterowanie startem Windows. To on wyłącza podpisywanie sterowników i ładuje DLL rootkita, przejmując przerwanie 13h za pomocą modyfikacji tablicy wektorów przerwań (IVT). Stara wartość zostaje przechowana do późniejszego użycia. Po udanej infekcji, rootkit doinstalowuje keyloggery, moduły proxy i inne programy, powszechnie wykorzystywane przez cyberprzestępców.

Stary kod, nowa wersja

Rootkit używa niskopoziomowych instrukcji do wyłączenia debuggerów, sprawiając, że wsteczna analiza kodu, przeprowadzana zazwyczaj przez ekspertów do spraw bezpieczeństwa, staje się bardzo trudna. Kod jest zagmatwany, stosuje aktywne metody ukrywania się przed narzędziami antywirusowymi. Wskazówką może być sprawdzenie stosu sterowników I/O, gdyż właśnie tam rootkit dołącza swój kod. Technika ta sprawdzała się także w starszych wersjach, zresztą nowy kod rootkita jest bardzo podobny, badacze z firmy Prevx zanotowali jedynie niewielkie zmiany.

Rootkit ma także fragmenty kodu pracujące w trybie użytkownika, przeznaczone do modyfikacji wyników wyszukiwania wewnątrz procesów przeglądarki Internet Explorer, do przekierowywania na obce strony WWW, a także do zdalnego sterowania za pomocą serwera kontrolującego botnet.

Jak podaje firma Prevx, to wydanie TDL zostało prawdopodobnie opracowane we wrześniu bieżącego roku, obecnie dość intensywnie infekuje komputery, wykorzystując luki w bezpieczeństwie przeglądarki Internet Explorer oraz kilka sztuczek socjotechnicznych. Na razie nie potrafi on jeszcze zarazić w pełni zaktualizowanego systemu Windows 7 64 bit, w którym użytkownik posiada ograniczone uprawnienia oraz włączona jest opcja UAC. Droppery TDL znajdują się na stronach związanych z crackami oraz pornografią, ale niebawem można spodziewać się włączenia tego kodu do typowych narzędzi cyberprzestępczych, podobnie jak to było w przypadku starszego rootkita TDL.