Rootkit to zestaw narzędzi, który po przejęciu uprzywilejowanego dostępu (rootem na Linuksie, kontem SYSTEM na Windowsie) ma jeden cel: ukryć obecność atakującego przed tobą, systemem i programami zabezpieczającymi. Nazwa to złożenie root (najwyższe uprawnienia w Uniksie) i kit (zestaw). Rootkit zwykle nie jest tym, co włamuje się do systemu — to warstwa, która utrzymuje dostęp i sprawia, że proces, plik, połączenie sieciowe czy konto stają się niewidzialne dla zwykłych narzędzi.
Jak to działa
Sztuczka polega na przechwytywaniu tego, co system zwraca w odpowiedzi na pytania w stylu „jakie procesy działają?” albo „jakie pliki są w tym katalogu?”. Rootkit modyfikuje wynik, zanim trafi do ciebie. Możesz uruchomić ps czy ls i nic podejrzanego nie zobaczyć, bo odpowiedź została po drodze odfiltrowana.
Rootkity dzieli się głównie po tym, na jakim poziomie działają. User-mode podmienia biblioteki i narzędzia w przestrzeni użytkownika — łatwiejsze do napisania, łatwiejsze do wykrycia. Kernel-mode ładuje się jako moduł jądra (na Linuksie LKM, na Windowsie sterownik) i ma znacznie większą władzę, bo siedzi tam, gdzie system sam podejmuje decyzje. Niżej żyją jeszcze bootkity (infekują proces startu, np. bootloader czy UEFI) i czysto teoretyczno-praktyczne konstrukcje hypervisorowe. Im niżej w stosie, tym trudniej je zauważyć i usunąć.
Przykład z praktyki
Klasyk to uniksowy Diamorphine — rootkit jako moduł jądra (LKM). Po załadowaniu potrafi ukrywać procesy o wskazanym PID, ukrywać sam moduł z listy lsmod oraz dawać eskalację do roota na żądanie (przez wysłanie specjalnego sygnału do procesu). Z perspektywy administratora wygląda to tak: serwer działa „normalnie”, a złośliwy proces po prostu nie istnieje w żadnym standardowym narzędziu.
Jak go w ogóle złapać? Zamiast wierzyć systemowi, porównujesz źródła. Narzędzia takie jak rkhunter czy chkrootkit szukają znanych sygnatur i anomalii. Skuteczniejsza bywa analiza z zewnątrz — zrzut pamięci i sekcja w Volatility, albo porównanie tego, co widzi jądro, z tym, co raportują narzędzia user-mode. Rozjazd = sygnał alarmowy.
Na co uważać
Najczęstszy mit: „antywirus mi to wykryje”. Dobrze ukryty kernel-mode rootkit działa na tym samym albo niższym poziomie niż twój skaner, więc może go po prostu okłamywać. Drugi błąd to próba „leczenia” zainfekowanej maszyny w locie — przy poważnym rootkicie jedyne wiarygodne wyjście to reinstalacja z czystego nośnika i odtworzenie danych ze sprawdzonego backupu. Pamiętaj też, że rootkit to technika utrzymania dostępu, a nie sposób na włamanie — najpierw musi być luka albo skradzione hasło.
Pojęcia powiązane: backdoor, malware, privilege escalation, persistence, LKM (Loadable Kernel Module), bootkit, EDR, analiza pamięci (memory forensics), Secure Boot.