Polowanie na rootkity
-
- Paweł Brągoszewski,
- 07.03.2006
Rootkit to oprogramowanie używające specjalnych technik, pozwalających ukryć procesy, pliki lub foldery przed użytkownikiem i większością programów użytkowych. Jest wykorzystywane do instalowania w systemie zagrożeń typu backdoor, ale działania przypominające instalowanie rootkita stosuje też wiele programów komercyjnych.
Rootkit to oprogramowanie używające specjalnych technik, pozwalających ukryć procesy, pliki lub foldery przed użytkownikiem i większością programów użytkowych. Jest wykorzystywane do instalowania w systemie zagrożeń typu backdoor, ale działania przypominające instalowanie rootkita stosuje też wiele programów komercyjnych.
Czy komercyjne oprogramowanie może instalować rootkity? Owszem. Najczęściej zdarza się programom antywirusowym i narzędziom systemowym, co potwierdza słynny przypadek Norton SystemWorks firmy Symantec. Oprogramowanie to ukrywało pewien folder na twardym dysku, próbując chronić w ten sposób użytkownika przed przypadkowym usunięciem ważnych plików. Lekarstwo okazało się gorsze od choroby, a ukryty folder mógł być z powodzeniem użyty do ukrywania nie tylko potrzebnych plików, ale też np. oprogramowania szpiegowskiego lub trojanów. Gdzie znajdował się ukryty folder? Była to część funkcji Norton Protected Recycle Bin, czyli dodatku do standardowego Kosza, pomagającego przywrócić skasowane pliki (nawet usunięte z Kosza). Folder NProtect był niewidoczny dla funkcji systemowych (Windows API). Stwarzało to niewielkie, ale realne zagrożenie, że zostanie wykorzystany do przechowywania niebezpiecznego oprogramowania, które w ten sposób ukryje się np. przed skanerem antywirusowym. Ukrywanie plików ma też na swoim koncie Kaspersky AnitVirus (od wersji 5.) - w tym wypadku znany antywirus rosyjskiej produkcji ukrywa informacje o przeskanowanych i nieprzeskanowanych plikach. I znów trudno mówić o działaniu na niekorzyść użytkownika, chociaż nie można całkowicie wykluczyć ryzyka związanego z ukrywaniem plików.
Najbardziej znana historia rootkita ukrytego w komercyjnym oprogramowaniu wiąże się z zabezpieczeniami płyt produkowanych przez Sony BMG. Oprogramowanie mające chronić płyty CD przed kopiowaniem (można było wykonać tylko trzy kopie) mocno ingerowało w system operacyjny, w dodatku bez wiedzy użytkownika. Pikanterii całej sprawie dodawało to, że oprogramowanie najprawdopodobniej korzystało z kodu dostępnego na licencji GNU LPGL, naruszając zasady tej licencji. Straszliwa burza, która rozpętała się wokół "rootkita od Sony", zmusiła firmę do wycofania obdarzonych feralnym zabezpieczeniem płyt z rynku.
Instalowanie rootkitów przez komercyjne oprogramowanie jest bardzo niebezpieczną tendencją. Pojedynczy rootkit może być wmontowany w system w dobrych intencjach (tak jak w wypadku Norton SystemWorks), ale jeśli na jednym komputerze zainstalowano kilka rootkitów, na tych "bezpiecznych", to najprawdopodobniej będą przeszkadzać sobie wzajemnie i innym aplikacjom, destabilizując system i narażając go na włamania.
Jak działa rootkit?

Program antywirusowy Kaspersky AntiVirus Personal ukrywa przed funkcjami systemowymi wiele folderów na twardym dysku, wykorzystując tzw. alternatywne strumienie NTFS.
Powyższy przykład był prosty. Jak jednak możliwe jest ukrycie całego folderu na dysku? W tym wypadku rootkit musi przejąć obsługę pewnych funkcji systemowych (tak jak w poprzednim przykładzie "przejmował" działanie netstat.exe). Wystarczy, że przejmie obsługę funkcji systemowych, np. zwracających listę plików i folderów. Najprostsze przejęcie kontroli nad takimi funkcjami polega na zmodyfikowaniu odpowiedniej biblioteki DLL. Do funkcji systemowej dodawana jest instrukcja skoku, przenosząca wykonanie kodu do rootkita, który odpowiednio modyfikuje wyniki, po czym oddaje działanie właściwej funkcji systemowej. Ta prosta metoda jest, oczywiście, równie prosta do wykrycia. Do pełnej niewidzialności rootkit potrzebuje dodatkowych zabiegów, modyfikacji innych funkcji systemowych, które mogą zostać użyte do wykrycia zagrożenia. Są także sposoby zakamuflowania procesu w systemie niewymagające zmian w plikach, a jedynie odpowiedniej modyfikacji pamięci używanej przez system operacyjny do przechowywania listy aktywnych procesów.
Jak go wykryć?
Zadanie nie jest proste, gdyż z definicji rootkit to oprogramowanie, które ukrywa się przed użytkownikiem wykorzystując najgłębsze pokłady sys-temu operacyjnego. Dostępne są jednak programy, które pozwalają odnaleźć ślady jego obecności. Większość to narzędzia dla profesjonalistów, prezentujące różne sprytne techniki wykrywania, ale mało przydatne w domowych zastosowaniach. Wiele ciekawych narzędzi można znaleźć na stroniehttp://www.invisiblethings.org . Autorką programów i towarzyszących im publikacji jest Joanna Rutkowska, polska specjalistka w dziedzinie zabezpieczeń, zajmująca się właśnie technikami stosowanymi przez rootkity i sposobami ich wykrywania.
Rootkit Revealer 1.6

Informacjehttp://www.sysinternals.com
F-Secure BlackLight 2.2.1030 Beta

Informacjehttp://www.f-secure.pl
TCPView 2.40

Informacjehttp://www.sysinternals.com
Active Ports 1.4

Informacje http://www.protect-me.com