Polowanie na duchy

Wyobraźmy sobie konia trojańskiego, którego nie widzi żaden antywirus i nie ma go na liście procesów. Dyskretnie ukryty zbiera nasze hasła i kody do kont bankowych. Niestety, to nie fikcja - to rzeczywistość.

Wyobraźmy sobie konia trojańskiego, którego nie widzi żaden antywirus i nie ma go na liście procesów. Dyskretnie ukryty zbiera nasze hasła i kody do kont bankowych. Niestety, to nie fikcja - to rzeczywistość.

Rootkit jest dla internetowych przestępców tym, czym systemy antyradarowe dla nowoczesnego lotnictwa - zapobiegają wykryciu przez wroga. Ktoś, kto nie wie o zagrożeniu, nie może na nie zareagować. Klasycznym przykładem nowoczesnego rootkita jest wywodzący się z Czech program Hacker Defender, dostępny - co ciekawe - wraz z kodem źródłowym. Działanie programu jest dość widowiskowe - po uruchomieniu na testowym komputerze z systemem Windows jego plik binarny oraz konfiguracyjny... po prostu znikają. Próżno go również szukać na liście procesów wyświetlanej przez Menedżera zadań.

Ale on na pewno tam jest. Tworzy kilkanaście kluczy w rejestrze i choćby w ten sposób jest jednak wykrywalny. Konfiguracja Hacker Defendera jest elastyczna i pozwala dodawać do konfiguracji listę ukrywanych procesów, plików, a także nazw kluczy w rejestrze. Co więcej, przy budowaniu tej listy można posługiwać się wyrażeniami regularnymi, co ułatwia ukrywanie całych grup plików. Konstrukcja programu jest ukierunkowana na działanie w charakterze "ochroniarza" towarzyszącego rootkitowi konia trojańskiego lub keyloggera, czyli programu "podsłuchującego" dane wprowadzane z klawiatury.

Programy antywirusowe w większości przypadków wykrywają pliki binarne rootkita i wyraźnie ostrzegają użytkownika przed niebezpieczeństwem. Ale potrafią go jednak wykryć tylko pod warunkiem, że system nie został wcześniej zainfekowany. To istotna różnica w stosunku do klasycznych wirusów - po uruchomieniu rootkita staje się on bowiem niewidzialny także dla programów antywirusowych.

Dostępnych jest przynajmniej kilka narzędzi służących do automatycznego wykrywania rootkitów. Działają one zwykle na zasadzie analizy wielu elementów systemu i porównywania ich zawartości w celu znalezienia niespójności, świadczących o dyskretnej, ale jednak, ingerencji. Tam gdzie to możliwe, sprawdzanie odbywa się z pominięciem standardowego API Windows na różnych poziomach - program zakłada (i słusznie), że znajduje się ono pod kontrolą rootkita.

Narzędzia już są

Polowanie na duchy

Skaner F-Secure BlackLight (jeszcze w wersji beta) bez problemu wykrywa rootkit HackerDefender; ostateczna wersja BlackLight jeszcze w tym roku.

Pierwszym testowanym przez nas narzędziem jest program Sysinternals Rootkit Revealer. Firma Sysinternals jest znana z publikowania licznych darmowych narzędzi ułatwiających niskopoziomowe konfigurowanie systemów Windows. Rootkit Revealer to aplikacja, służąca do skanowania systemu w poszukiwaniu podejrzanych i ukrytych elementów. Nie wszystkie raportowane przez Rootkit Revealer klucze lub pliki muszą być od razu wynikiem działania rootkita, ale wszystkie warto sprawdzić. Na ilustracji widać, jak Rootkit Revealer poradził sobie ze znalezieniem zainstalowanego w systemie Hacker Defendera. Jednak na jego znalezieniu rola programu się kończy - administrator musi sobie sam poradzić z jego usunięciem.

Drugim przydatnym do walki z rootkitami programem jest wersja beta F-Secure BlackLight - narzędzia, które w tym roku ma wejść w skład komercyjnego skanera F-Secure. Biorąc pod uwagę jego skuteczność, będzie to bardzo słuszny krok ze strony producenta. BlackLight jest narzędziem nieco łatwiejszym w obsłudze od Rootkit Revealera i trudno się dziwić, bo docelowo ma być to program dla szerokiego grona użytkowników.

BlackLight skanuje system i przedstawia użytkownikowi raport ze znalezionych ukrytych plików, oferując również ich usunięcie. Przydatną funkcją jest możliwość wyświetlenia "jedynej prawdziwej" listy działających w systemie procesów, która jak widać różni się dość istotnie od tej wyświetlanej przez Menedżera zadań. Rootkit jest na niej wyraźnie widoczny jako proces hxdef100.

Po znalezieniu podejrzanych plików BlackLight proponuje użytkownikowi usunięcie lub zmianę nazwy w celu dezaktywacji przy kolejnym uruchomieniu systemu. Program sugeruje wykonać restart zaraz po zakończeniu skanowania. Dzięki temu system powinien wystartować bez ukrywających się "dodatków", w związku z czym skanowanie antywirusem powinno zlokalizować źródło infekcji.

Rootkit dla profesjonalistów

Polowanie na duchy

Jeśli lista plików przedstawiana przez system różni się od listy plików na dysku otrzymanej po skanowaniu z systemu z płyty CD, komputer najpewniej jest zarażony rootkitem.

Autorzy Hacker Defendera nie poprzestali na ogólnodostępnej wersji swojego rootkita, która przecież w formie binarnej wykrywana jest z łatwością przez większość programów antywirusowych, a po jego uruchomieniu rozpoznawana przez opisane narzędzia. Użytkownikom "komercyjnym" rootkita (czytaj: phisherom i złodziejom) oferowane są spersonalizowane, płatne wersje rootkita wyposażone w zaawansowane funkcje ukrywania się w systemie. Najdroższa kosztuje niemal 4 tys. zł, ale jest za to niemożliwa do wykrycia przez żadne z testowanych przez nas narzędzi.

Prezentowany na stronie Hacker Defendera film (AVI) pokazuje jak uruchomiony rootkit skutecznie unika wykrycia, m.in. przez ostatnie wersje BlackLight, Rootkit Revealera i kilku innych narzędzi. Według zapewnień autorów rootkita, komercyjne wersje są w stanie ukryć się przed wszystkimi znanymi programami do wykrywania rootkitów i antywirusami.

Owe "dozbrojone" wersje Hacker Defendera są niewykrywalne tylko dlatego, że ich techniki ukrywania się są spersonalizowane pod kątem konkretnych antywirusów i narzędzi antyrootkitowych. Jeśli więc dzisiejsza wersja jest niewidzialna dla F-Secure BlackLight w wersji 2.2.1007, to bardzo prawdopodobne, że jutrzejszy BlackLight już ją zobaczy. Jest to więc klasyczny przypadek tarczy i miecza, które cały czas są udoskonalane.

Opisywane wyżej narzędzia stosują różne techniki typu "cross-check", czyli porównywania listy plików zwracanej przez system operacyjny z listą plików faktycznie znajdujących się na dysku. W przypadku zastosowania rootkita ukierunkowanego specjalnie na konkretny program skanujący, takie narzędzia są najczęściej skazane na porażkę. To proste: ten, kto w systemie był pierwszy, może przejąć nad nim pełną kontrolę. Jedynie pewne niedopatrzenia ich autorów mogą powodować, że opisane wcześniej aplikacje, takie jak Rootkit Revealer czy BlackLight, są w stanie wykryć rootkit w systemie przez niego opanowanym.

Każda aplikacja uruchamiana po zainstalowaniu rootkita będzie działać pod kontrolą tego złośliwego oprogramowania. Rootkit może dowolnie przejmować wywołania systemowe i podsuwać skanerowi takie dane, jakich ten oczekuje od "zdrowego" systemu. Autorzy skanera mogą w kolejnej wersji znaleźć miejsca, o których zapomnieli autorzy rootkita, i tam z kolei szukać jego śladów. Luka ta może z kolei zniknąć w kolejnej wersji rootkita - i tak bez końca. W tym wyścigu zbrojeń rootkit jest zawsze górą, ponieważ to on trafia do sieci jako pierwszy i w trakcie krótkiego "okresu swobody" może czynić szkody.

Łapanka w Windows XP

Do poszukiwania rootkita tą metodą wykorzystaliśmy startową płytę CD z systemem Windows. Kluczowe wymagania odnośnie do systemu-nadzorcy to obsługa NTFS oraz aktualna wersja programu dir.exe. Wersje obecne w starszych wersjach Windows nie obsługują wszystkich wymaganych flag, pozwalających na listowanie ukrytych plików.

Pewnym problemem okazało się znalezienie bootowalnego systemu spełniającego te kryteria - Windows XP pozwala jedynie na sformatowanie dyskietki startowej, jednak zawarty tam interpreter poleceń nie obsługuje odpowiednich flag w poleceniu "dir". Z kolei pochodzący z Windows XP program dir.exe wymaga do uruchomienia środowiska graficznego - pomimo że działa w trybie tekstowym. Z tych samych powodów spełzły na niczym próby zastosowania systemu FreeDOS, instalacyjnych płyt CD z systemem Windows i innych podobnych wynalazków - to wersja programu "dir.exe" była nie ta, to znów brak było obsługi NTFS.

Najlepszym rozwiązaniem okazało się wykorzystanie sprytnego programu BartPE, który pozwala na zbudowanie startowej płyty CD z pełnym systemem Windows. Przy wykorzystaniu płyt instalacyjnych Windows XP i odrobinie kombinacji związanych z koniecznością równoczesnego nałożenia SP2 (BartPE robi to niemal w pełni automatycznie) uzyskuje się płytę CD Windows XP z interfejsem graficznym (acz okrojonym) i kilkoma narzędziami w rodzaju Rootkit Revealera jako bonusem.

Mając to narzędzie systemie uruchamiamy w zarażonym linię komend (Start->Run->cmd.exe), przechodzimy do głównego katalogu na dysku C: i listujemy wszystkie pliki w dwóch wariantach:

1. CD\

2. DIR /S /B /AH >INFSBAH.TXT (wszystkie pliki z flagą "hidden")

3. DIR /S /B /A-H >INFSBA-H.TXT (wszystkie pliki bez flagi "hidden")

Wyniki te pozostawiamy w tym samym miejscu, w którym zostały utworzone, czyli w katalogu C:\ zarażonego systemu. Następnie uruchamiamy system z płyty CD, linię komend, przechodzimy na badany dysk (C:) i powtarzamy listingi do innych plików (dla odróżnienia niech zaczynają się od "CL" jak "clean"):

1. CD C:\

2. DIR /S /B /AH >CLSBAH.TXT

3. DIR /S /B /A-H >CLSBA-H.TXT

Dysponujemy teraz dwoma parami plików - pierwsze dwa z nich to lista plików widzianych przez zarażony system, druga - lista plików widziana przez zdrowy system na dysku tego pierwszego. Odpowiedź na pytanie o lokalizację potencjalnego intruza wskaże nam zatem porównanie obu par plików.

Najwygodniej wykorzystać do tego narzędzie WinDiff. Ładujemy do niego kolejno pliki INFSBAH.TXT i CLSBAH.TXT, a w drugim rzucie INFSBA-H.TXT i CLSBA-H.TXT. W każdym z nich po kliknięciu przycisku "Expand" poszukujemy czerwonych pól wskazujących na różnice. Może być ich sporo, biorąc pod uwagę, że system Windows intensywnie wykorzystuje ukryte pliki do własnych celów, jednak każda większa grupa plików niewyglądająca na pliki systemowe jest potencjalnie podejrzana.

W naszym testowym przypadku rootkit Hacker Defender był widoczny jak na dłoni w drugiej parze plików. Pliki, które "zniknęły" z systemu zarażonego rootkitem, w czystym systemie są znowu widoczne. Metoda ta będzie jednak skuteczna tylko wtedy, gdy rootkit będzie ukrywał pliki. Można spytać, po co komu rootkit, który nie ukrywa plików - przecież wtedy z łatwością wykryje go większość antywirusów. W długo działających systemach serwerowych rootkit i tak prawdopodobnie zdąży zebrać wystarczająco dużo przydatnych informacji, by bez wielkiej hańby ulotnić się przed restartem mogącym oznaczać próbę jego znalezienia.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200