Rootkit

Rootkit (ang. root "korzeń, rdzeń") – narzędzie pomocne we włamaniach do systemów informatycznych. Ukrywa ono niebezpieczne pliki i procesy, które umożliwiają utrzymanie kontroli nad systemem.

Historycznie rootkity były paczkami (ang. kit) zawierającymi zmodyfikowane kluczowe binaria systemowe w systemach uniksowych (inetd, sshd, ps), które zastępowały oryginalne tuż po dokonaniu włamania. Dzięki modyfikacjom w oryginalnym kodzie binaria z rootkita np. nie pokazywały wybranych procesów lub umożliwiały logowanie na roota za podaniem specjalnego hasła.

Rootkit infekuje jądro i usuwa ukrywane programy z listy procesów oraz plików zwracanych do programów. Może on np. ukryć siebie oraz konia trojańskiego przed administratorem oraz oprogramowaniem antywirusowym. Ukrywanie odbywa się najczęściej przez przejęcie wybranych funkcji systemu operacyjnego, służących np. listowaniu procesów lub plików w katalogu, a następnie "cenzurowaniu" zwracanych przez te funkcje wyników tak, by ukrywane przez rootkit nazwy nie znajdowały się na liście wynikowej.

Istnieją rootkity dla różnych systemów operacyjnych, m.in. Microsoft Windows, Solaris, Mac OS X i FreeBSD. Rootkity mogą działać w trybie użytkownika (usermode) lub systemu operacyjnego (kernel-mode).

Rootkit może się dostać do komputera użytkownika wraz z aplikacją będącą w rzeczywistości trojanem.

Wykrywanie rootkitów

Rootkity w postaci pliku binarnego są wykrywane przez większość programów antywirusowych, ale tylko do momentu ich uruchomienia w systemie.

Wykrycie rootkita w zarażonym systemie jest skrajnie trudne, ponieważ rootkit jest w stanie kontrolować pracę nawet narzędzi specjalizowanych do jego wykrywania i oszukiwać je tak, by błędnie informowały użytkownika, że system jest czysty. Takie techniki stosowała m.in. komercyjna wersja Antidetection rootkita Hacker Defender do początku 2006 roku, kiedy projekt został zamknięty.

Do wykrywania rootkitów stosuje się najczęściej technikę porównania krzyżowego (ang. cross-checking), w którym porównujemy listę plików w katalogu zwróconą przez API systemu operacyjnego oraz odczytaną bezpośrednio z systemu plików. Analogicznie weryfikuje się rejestr w Windows (wynik z API oraz bezpośrednio z pliku rejestru). W zdrowym systemie oba wyniki powinny być identyczne, rekordy istniejące na drugiej liście, a nie zwrócone przez API, są prawdopodobnie ukrywane przez rootkit.

Inna metoda to porównywanie kodu programów binarnych lub bibliotek dynamicznych (DLL) na dysku oraz po załadowaniu ich do pamięci operacyjnej. W części przypadków modyfikacja kodu wykonywalnego w pamięci operacyjnej jest wynikiem działania rootkita (metoda "System Virginity").

Ponieważ w zarażonym systemie rootkit może kontrolować praktycznie wszystkie kroki narzędzia, próbującego go wykryć, jedyną skuteczną metodą jest sprawdzenie zakażonego dysku tradycyjnym, sygnaturowo-heurystycznym programem antywirusowym, ale z systemu uruchomionego z pewnego, zewnętrznego nośnika (np. z LiveCD).

Zobacz też

Linki zewnętrzne