Polowanie na duchy

Pogromca niewidzialnych

Istnieje jednak technika, która nie polega na żadnych wykrywaczach rootkitów, a na specyficznych właściwościach tych ostatnich oraz cechach systemu operacyjnego. W sytuacji gdy skaner działający w potencjalnie zarażonym systemie jest niewiarygodny, należy sprawdzić system ze środowiska, które na pewno jest "czyste". Pewnym rozwiązaniem jest uruchomienie na danym komputerze systemu z płyty CD z antywirusem i przeskanowanie dysku podejrzanego systemu. Stwarza to jednak wiele problemów praktycznych, po pierwsze związanych z aktualnością bazy antywirusa, a po drugie z czasem trwania skanowania.

Opracowana w ramach prowadzonego przez Microsoft projektu Strider metoda Ghostbuster Rootkit Detection wykorzystuje główną cechę rootkitów, jaką jest ukrywanie przez nie plików w systemie do ich wykrywania. Największa "zaleta" rootkitów staje się ich największą słabością. Technika ta polega na porównaniu listy plików wygenerowanej przez rootkit w zarażonym systemie z listą plików w systemie uruchomionym ze zdrowego systemu.

Ponieważ w bardzo krótkim czasie liczba plików obecnych w systemie nie zmienia się radykalnie, porównując listę plików wygenerowaną w stanie zarażonym oraz w stanie zdrowym, jesteśmy w stanie wykryć te, które zostały celowo ukryte. Będą to te pliki, które pojawiły się pomiędzy wykonaniem listingu systemu zdrowego i listingu systemu potencjalnie zarażonego rootkitem. Przez system zdrowy rozumiemy tutaj system operacyjny uruchomiony z pewnego, czystego nośnika, ale mający dostęp do "podejrzanego" systemu plików. Procedura badawcza jest następująca:

(1) listujemy wszystkie pliki w zakażonym systemie i zapisujemy listing do pliku A

(2) uruchamiamy czysty system z CD i z tego systemu powtarzamy listing plików na dysku systemu zarażonego, zrzut zapisujemy do pliku B

(3) porównujemy pliki A i B, wszystkie poważniejsze różnice to najprawdopodobniej rootkit.

Jak widać procedura wymaga ponownego uruchomienia systemu, jednak samo badanie jest o wiele szybsze niż skanowanie antywirusem. Nie jest też uzależnione od jakichkolwiek sygnatur. Rootkit sam wskazuje nam pliki, które ukrywa, a im bardziej je będzie ukrywać, tym bardziej będą one widoczne. Metoda ta jest także niezależna od systemu operacyjnego, ponieważ cel rootkita - ukrywanie plików - jest identyczny zarówno w Windows, jak i Linuxie. Szczegółową procedurę postępowania czytelnik znajdzie w wersji online tego artykułu pod adresemhttp://security.computerworld.pl .

Studium w szkarłacie

Okazuje się jednak, że i na takie rootkity są skuteczne sposoby. System Virginity Verifier (SVV) - skaner autorstwa Joanny Rutkowskiej, polskiej specjalistki z dziedziny bezpieczeństwa, został stworzony właśnie w celu wykrywania rootkitów, które mogą ukrywać pliki selektywnie albo samodzielnie usuwać się przed restartem systemu. Programowi towarzyszy sterownik wspomagający sprawdzanie systemu, ładowany do Windows podczas pracy SVV. Głównym podejrzanym dla SVV są modyfikacje kodu w jądrze Windows oraz przejmowanie wywołań systemowych. Ponieważ jednak techniki te są wykorzystywane przez system Windows i wiele pożądanych aplikacji (antywirusy, debuggery), konieczne było jakieś rozróżnienie pomiędzy tym co dobre, a tym co złe.

Polowanie na duchy

System Virginity Verifier (SVV) - program autorstwa Joanny Rutkowskiej - wykrywa rootkity, które ukrywają tylko część swoich plików lub wykasowują się przed restartem systemu.

Ciekawą nowością w porównaniu do innych programów jest stosowanie przez SVV pięciostopniowej skali zagrożenia zamiast prostego "tak" lub "nie". Skala zaczyna się kolorem niebieskim (1), oznaczającym system całkowicie "dziewiczy", kończy się zaś głębokim szkarłatem (5), czyli systemem na pewno opanowanym przez rootkit. Takie skalowanie poziomu zagrożenia pozwala programowi dość łatwo odróżnić modyfikacje wprowadzone przez sterowniki Windows czy antywirusy od tych wprowadzonych przez programy ukrywające się w systemie ze złymi intencjami. Metoda ta okazała się bardzo skuteczna w praktyce, co przedstawia ilustracja. Dziewiczy system Windows 2000 Server - wynik "zielony"; system Windows XP z wieloma rezydentnymi narzędziami - wynik "żółty", czyli nadal wszystko w porządku; system Windows 2000 Server z uruchomionym rootkitem - wynik "szkarłatny".

Jak widać, program poradził sobie bezbłędnie w przypadkach najczęściej spotykanych w realnym świecie. Dotyczy to zwłaszcza systemu Windows XP, który ze względu na obecność wielu mniej lub bardziej nietypowych narzędzi (sterowników urządzeń, narzędzi diagnostycznych itp.) może się wydawać podejrzany z punktu widzenia narzędzia badającego pamięć. Pomimo ich obecności w systemie, SVV bezbłędnie zlokalizował Hacker Defendera.

Co więcej, program potrafi również usuwać rootkity z pamięci (opcja "svv fix"). Oczywiście, program lojalnie ostrzega, że system może ulec destabilizacji. W przypadku zarażonego Windows 2000 Server leczenie okazało się w pełni skuteczne i obyło się bez komplikacji. Usunięcie rootkita miało natychmiastowy rezultat - zgodnie z przewidywaniami pliki Hacker Defendera pojawiły się z powrotem w katalogu, z którego je uruchomiono. Również sprawdzenie wyleczonego systemu Rootkit Revealerem oraz BlackLight dało wynik negatywny.

Przyszłość wykrywania rootkitów

Dokładnie 17 listopada br. autorzy Hacker Defendera poinformowali o zakończeniu prac nad modułem ukrywającym komercyjną wersję rootkita przed SVV 1.1. Czyli znowu Hacker Defender górą. Pytanie: na jak długo? Zapewne do czasu publikacji kolejnej wersji SVV. Należy pamiętać, że SVV, Rootkit Revealer i inne narzędzia implementują tylko ograniczony zakres testów. Program kompleksowo weryfikujący wszystkie oznaki działania rootkita byłby zapewne twardym orzechem do zgryzienia dla autorów rootkitów.

Stworzenie takiego narzędzia to cel nowego projektu Joanny Rutkowskiej, czyli OMCD (Open Metodology for Compromise Detection), który ma być tym dla wykrywania włamań, czym OSSTMM dla testów penetracyjnych, czyli kompletnym zbiorem procedur testowania systemu w celu wykrycia naruszenia jego integralności. Projekt jest w fazie rozruchu. Na razie więcej szczegółów można znaleźć w prezentacji o SVV i OMCD przedstawionej we wrześniu na konferencji w Malezji.

W najbliższym czasie światło dzienne powinny również ujrzeć dwa programy antywirusowe z funkcjami wykrywania rootkitów. Pierwszy z nich to opisany wyżej F-Secure BlackLight, który ma jeszcze w tym roku wejść w skład standardowego pakietu F-Secure. Drugi to polski ArcaVir 2006, następca MkS_Vir, który ma być również wyposażony w moduł wykrywania rootkitów.

Techniki opisane w tym artykule będzie można zobaczyć na żywo podczas darmowych warsztatów ISACA, które odbędą się w grudniu w Krakowie i Warszawie. Informacje o terminach spotkań będzie można znaleźć na stronach ISACA.

Rootkity i e-podpis

Problem związany z profesjonalnymi rootkitami nie jest tylko teoretyczny. Funkcjonalność rootkita Hacker Defender wręcz idealnie pasuje do zaprezentowanego przez firmę G DATA przykładu podrobienia podpisu elektronicznego za pomocą ukrytego w systemie filtra, który podmienia podpisywane dokumenty (pisaliśmy o tym obszernie w CW 39/2005). Sprzedająca certyfikaty X.509 firma Certum, której aplikację badała G DATA, odpowiedziała na tę demonstrację, że użytkownik powinien sam zadbać o to, żeby w jego systemie działały firewall i antywirus. Pytanie: kto będzie odpowiedzialny za konsekwencje fałszerstwa podpisu, jeśli antywirus nie zobaczy rootkita?

Konsultacja techniczna: Tomasz Onyszko, Wojciech Dworakowski

Joanna Rutkowska


TOP 200