Rootkit Revealer

Rootkit Revealer

 Robert Żuber
Robert Żuber
00:00
21.09.2008
7234 wyświetlenia

Zarówno pełna anonimowość jak również kompletne bezpieczeństwo współczesnej Sieci, są jedynie pobożnymi życzeniami, oraz dobrze brzmiącymi hasłami, używanymi wyłącznie w celach promocyjnych. Z biegiem lat, Internet stał się najszybszym oraz najbardziej powszechnym miejscem codziennej rozrywki, prowadzenia biznesu czy komunikowania się. Wraz z tak dużą popularnością i wielkimi pieniędzmi idą w parze również ogromne zagrożenia czyhające na każdego nieuświadomionego użytkownika. Mowa tu oczywiście o wszechobecnych malware, spyware, trojanach, wirusach i innych. Coraz częstszym sposobem, w jaki hakerzy próbują przejąć kontrolę nad komputerami swoich ofiar wykradając poufne dane jest umieszczanie w ich systemach złośliwych aplikacji typu rootkit.

Czym są rootkity?

Uważne korzystanie z poczty elektronicznej i Sieci oraz posiadanie aktywnej, rezydentnej ochrony antywirusowej oraz antyszpiegowskiej to niemalże niezbędne kroki, które pomogą zapobiec potencjalnej infekcji ze strony niebezpiecznych aplikacji. Dlatego tak ważne jest nie otwieranie podejrzanych załączników poczty Email oraz unikanie jak ognia stron WWW z niebezpiecznymi treściami. Nieumyślne otwarcie zakażonego pliku, może skutkować kompletnym zablokowaniem systemu, lub utraceniem ważnych haseł, kont bankowych i innych prywatnych informacji. Ręczne wywołanie tego typu procesu nie jest jednak jedynym możliwym sposobem, w jaki komputer może zostać zainfekowany. Istnienie luk w przeglądarkach internetowych jak również samym systemie, sprzyjać może wykonywaniu niebezpiecznego kodu. Tego typu usterki nazywamy exploitami. Szkodnik „wchodzi” tylnym wejściem i zadomawia się w maszynie ofiary. Terminu rootkit używamy dla opisania techniki, której używają wirusy, spyware i inne groźne aplikacje, aby ukryć swoją szkodliwą działalność przed oczami samego użytkownika, ale niestety coraz częściej również przed zainstalowanymi mechanizmami obronnymi. Istnieje wiele klasyfikacji podziału tego typu programów, ale najczęściej używaną jest podział na rootkity osadzone w pamięci podręcznej, tzw. złośliwe wywoływane automatycznie oraz stacjonujące i wykonujące swoje zadania w trybie użytkownika (user-mode) i trybie jądra systemu (kernel-mode).

Istnieje wiele dróg, którymi podążyć możemy, w celu odnalezienia potencjalnego rootkita zaszytego gdzieś w kompletnych czeluściach systemu. Jednym z nich jest użycie narzędzia Rootkit Revealer obecnego wśród narzędzi Microsoft Sysinternals. Ciekawostką jest fakt, że jego autor - Mark Russinovich - jako pierwszy wykrył i zdiagnozował w swoim systemie rootkita firmy Sony, który był jedną z części zabezpieczeń DRM, mechanizmu ochrony antypirackiej. Rootkit Revealer jest to zaawansowany detektor zagrożeń związanych z ukrywaniem przez różne pliki informacji o swoim istnieniu w rejestrze, jak również w wynikach działania (natywnego) API, które jest obszernym terminem, ale odpowiada między innymi za to, co widzimy przy okazji eksploracji katalogów dysku i pokazywania ich zawartości. Sposobem w jaki program może tego dokonać, jest porównanie wyników analizy przeprowadzonej w dwóch etapach, na najniższym i najwyższym poziomie dla obiektów różnego typu. Najwyższym są dane, które wyświetla API, natomiast najniższym porównanie wielkości wczytanych plików i rejestru. Algorytm programu wychwytuje te różnice i uwzględnia je przy tworzeniu logu. Zaznaczyć należy, że bohater tego artykułu wyświetla – trzeba podkreślić – jedynie prawdopodobne ogniska działalności szkodnika, niektóre z nich to jedynie tzw. false positive, czyli niegroźne zdarzenia, które możemy pominąć. O wyeliminowanie skutków prawdziwego egzystowania szkodników musimy zatroszczyć się już niestety własnoręcznie.

Program możemy pobrać tutaj.

Skanowanie

Program jest narzędziem darmowym, nie wymaga instalacji, interfejs jest w języku angielskim. Obsługa jest banalna, a opcji konfiguracyjnych jak na lekarstwo. Waży jedynie niewiele więcej niż 300 KB. Po wypakowaniu ściągniętego archiwum wystarczy uruchomić plik RootkitRevealer.exe. Trzeba następnie wcisnąć przycisk Agree po przeczytaniu i zaakceptowaniu licencji, aby możliwe było jego dalsze działanie.
Aby analiza była miarodajna, skanowanie należy przeprowadzić na kocie posiadającym przywileje administracyjne, a to dlatego, że wymagane jest, aby Rootkit Revealer posiadał dostęp do wszystkich istotnych systemowych plików, lokalizacji, sterowników i bazy rejestru. Zanim uruchomimy jednak procedurę skanowania przyciskiem Scan powinniśmy się dodatkowo zatroszczyć o to, aby nic nie zaburzało pracy programu. Trzeba więc zadbać o wyłączenie wszystkich aplikacji działających w tle, oraz nie przeprowadzanie w trakcie wykonywania skanowania, żadnych operacji na komputerze. Takie działania mogą prowadzić do przekłamania wyników, gdyż system otwiera, zamyka i zapisuje dane w katalogach tymczasowych, punktach przywracania, kluczach rejestru oraz wielu innych miejscach, co też może zostać niepotrzebnie uwzględnione w końcowym logu programu. Aby wyniki były miarodajne najlepiej zostawić komputer na kilka minut w spokoju.

Domyślnie wyłączona jest opcja pokazywania plików meta danych NTFS (Hide NTFS Metadata Files), natomiast aktywne skanowanie rejestru (Scan Registry), jeżeli życzymy sobie, aby skonfigurować to inaczej, opcje wyboru znajdują się menu Options.

Obsługa z poziomu linii komend

Jedną z opcji jaką oferuje program jest możliwość jego wywołania poprzez Wiersz polecenia. Najlepiej byłoby umieścić plik RootkitRevealer.exe w katalogu C:\Windows\system32 i uruchomić CMD w celu wpisania polecenia. Dostępne parametry programu to:

  • -a - automatyczne skanowanie i wyłączenie po zakończeniu
  • -c - format wyjściowy CSV
  • -m - pokazywanie meta danych
  • -r - brak skanowania rejestru systemu
Przykładowe polecenie może więc wyglądać następująco:
rootkitrevealer -a -m C:\pliki\root_rev.log

Interpretacja wyników

Po pozytywnie ukończonym skanowaniu program wyświetli w głównym oknie informacje jakie udało mu się odnaleźć. Możemy je zapisać do pliku używając opcji File, Save.
Lista wyników podzielona jest na kilka kolumn, między innymi każdemu ze znalezionemu elementowi przyporządkowana jest pełna ścieżka (Patch), data i godzina ostatniego dostępu (Timestamp), rozmiar pliku (Size) oraz opis zdarzenia (Description). Oprócz nazwy, najważniejszy jest oczywiście opis, który w zależności od metody będzie się zmieniał. Możliwe typy przedstawiają się następująco:

  • Hidden from Windows API
    Niewidzialność tak opisanego obiektu z poziomu w Windows API. Zdecydowanie największa populacja rootkitów posługuje się tą metodą, ale są również wyjątki. Przykładem może być program Kaspersky Antiwirus i tworzone przez niego alternatywne strumienie danych, charakteryzujące się dopiskiem :KAVICHS zaraz po rozszerzeniu pliku.
  • Access is Denied
    W teorii Rootkit Revealer nigdy nie powinien raportować błędu odmowy dostępu, ponieważ został napisany w taki sposób, aby zapewnić sobie dostęp do każdego ze skanowanych elementów. W praktyce napotkać możemy wspomniany komunikat, jako wynik działalności aplikacji używanej w tle, dlatego tak ważne jest wyłączenie ich jeszcze przed rozpoczęciem skanowania.
  • Visible in Windows API, directory index, but not in MFT
    Visible in Windows API, but not in MFT or directory index
    Visible in Windows API, MFT, but not in directory index
    Visible in directory index, but not Windows API or MFT
    Różne wariacje wyników w systemie plików NTFS analizowanym pod kątem trzech komponentów: API, indeksu katalogów oraz MFT (Master File Table - z ang. główna tablica plików). Wynikiem pokazania się tego typu wpisów może być utworzenie, lub usunięcie danego pliku/wartości podczas skanowania.
  • Windows API length not consistent with raw hive data.
    Nieprawidłowe pokazywanie rozmiaru wartości w rejestrze, co prowadzić może do zniknięcia elementu w Windows API. Możliwa jest również sytuacja, iż dana wartość w trakcie skanowania ulega modyfikacji, czego wynikiem jest wyświetlenie komunikatu tej treści.
  • Type mismatch between Windows API and raw hive data
    Niezgodność faktycznego typu wartości rejestru, a tego co przekazywane jest do API. Dla przykładu Windows API może widzieć wartość DWORD jako ciąg REG_SZ i na odwrót, co skutkuje odmową dostępu.
  • Data mismatch between Windows API and raw hive data
    Kolejna z przypadłości, którą powodować mogą uruchomione w tle aplikacje, typu antywirus. W trakcie skanowanie nastąpiła zmiana wartości rejestru, którą program wychwycił i powiadomił o tym.
  • Key name contains embedded nulls
    Tworzenie klucza rejestru bądź jego wartości posługując się ciągiem NULL, w skutek czego jądro systemu widzi dany klucz, natomiast spod edytora rejestru już go nie dostrzeżemy.

Podsumowanie

Program dostarcza szereg wskazówek dotyczących domniemanego napastnika, jednakże o usunięcie skutków jego działalności, jak również samego rootkita zatroszczyć musimy się już jednak sami. Posiłkując się informacjami znalezionymi w Sieci, biuletynach dotyczących konkretnych zagrożeń na stronach firm antywirusowych, a także z pomocą życzliwych Internautów zebranych w społecznościach na grupach dyskusyjnych, jak również forach internetowych. Zachęcamy więc w przypadkach zakażenia systemu rookitem, ale również i innych przypadłościach związanych z komputerami, do odwiedzenia Forum Portalu CentrumXP.pl, gdzie jeżeli to tylko możliwe mamy szansę otrzymać potrzebną pomoc.


Spodobał Ci się ten artykuł? Podziel się z innymi!

Źródło:

Polecamy również w kategorii Sysinternals Security Utilities