32 220 35 21 biuro@omegasoft.pl


Czym jest rootkit?

Zastosowanie rootkitów

Jakie są rodzaje rootkitów?

Bootkity

Jak instaluje i ukrywa się rootkit?

Jak wykryć rootkita?

Jak usunąć rootkita?

Sposoby ochrony przed rootkitami

Historia rootkita – czyli skąd się wziął rootkit?

Termin “rootkit” może użytkownikom komputerów kojarzyć się z wirusami czy atakami na urządzenia i zwykle łączony jest ze szkodliwym oprogramowaniem malware – i to nie bez powodu. Rootkit to najbardziej niebezpieczny typ malware, a na dodatek bardzo sprytny – nawet nie zauważysz, że masz go na komputerze. Dlatego też wiele osób w ogóle nie zdaje sobie sprawy z istnienia tego typu zagrożenia oraz z zainfekowania swojego urządzenia. Dowiedz się co to jest rootkit, jak go usunąć i czy można ochronić się przed rootkitem.

Czym jest rootkit?

Definicja rootkita łączy w sobie dwa słowa: “root” oraz “kit”. W systemie UNIX mianem “root” określa się głównego administratora – czyli użytkownika, który posiada pełny, nieograniczony dostęp do systemu. Natomiast “kit” to po prostu zestaw narzędzi. Połączenie tych słów oznacza niezwykle niebezpieczne oprogramowanie, które pozwala hakerowi uzyskać zdalny i trwały dostęp do zainfekowanego komputera oraz instalację na nim różnych narzędzi. Ich celem zwykle jest kradzież danych, a użytkownik najczęściej nie ma pojęcia, że stracił kontrolę nad własnym urządzeniem – dlatego nie można lekceważyć zagrożenia, jakie niosą za sobą rootkity.

Rootkit unika wykrycia, działając podobnie do keyloggerów – stara się zagnieździć jak najgłębiej w systemie i sprytnie ukrywa się przed programami antywirusowymi i innymi zabezpieczeniami. Zwykle zachowuje się jak backdoor, tworząc cyberprzestępcy “niewidzialne drzwi” do systemu ofiary, który może nie tylko instalować w nim dodatkowe komponenty, ale również je usuwać. Narzędzia najczęściej występujące w rootkitach to:

  • moduły kradzieżowe – przechwytujące hasła, dane kart kredytowych, informacje z bankowości online;
  • boty do ataków na DDoS;
  • keyloggery (mechanizmy do przechwytywania naciśnięć klawiszy klawiatury);
  • funkcje zdolne do obchodzenia systemów zabezpieczeń i wyłączania ich.

Złośliwe oprogramowanie typu rootkit musi być projektowane pod konkretny system. I tak dla systemu Windows można wyróżnić takie aktywne rootkity jak: Necurs, Alueron, ZeroAccess czy też TDSS. W obecnych czasach rootkity mogą zaatakować dowolny system – MacOS, Solaris, FreeBSD i inne bardziej lub mniej znane rozwiązana. Wniosek jest jeden: dziś już żaden system nie gwarantuje 100% bezpieczeństwa.

Zastosowanie rootkitów

Rootkit sam w sobie nie jest groźny, jednak nigdy nie występuje samodzielnie. Paczka z rootkitem zawsze zawiera dodatkowy złośliwy program. Zadaniem rootkita jest zablokowanie wszelkich prób wykrycia intruza. Obecnie rootkity wykorzystywane są głównie do ataków internetowych, jednak istnieją także rootkity narzędziowe, które umożliwiają między innymi ominięcie zabezpieczeń antypirackich.

Rootkity narzędziowe to szczególnie popularne rozwiązanie wśród graczy komputerowych, którzy tworząc np. dysk wirtualny z piracką wersją gry, pomijają konieczność włożenia do napędu oryginalnego nośnika CD. W ten sposób oszukują zabezpieczenia, które miały sprawdzić legalność gry.

Rootkity mogą być stosowane do:

  • stworzenia backdoorów, czyli niewidzialnych drzwi do systemu, przez które haker może zdalnie kontrolować zaatakowane urządzenie. Pozwala to na pominięcie mechanizmów uwierzytelniania, umożliwiając nieautoryzowany dostęp i np. kradzież lub fałszowanie danych;
  • przenoszenia malware, czyli złośliwego oprogramowania, które ma na celu kradzież danych wrażliwych, haseł itp. Są to najczęściej keyloggery i wirusy;
  • stworzenia słupa, czyli wykorzystania zaatakowanego komputera lub sieci do dalszych ataków na inne urządzenia, z pominięciem komputera hakera. Często na zaatakowany komputer mówi się “komputer zombie”. W zasadzie każde urządzenie podłączone do internetu można przekształcić w zombie. Tego typu ataki dokonywane są przede wszystkim na grupie komputerów zainfekowanych złośliwym oprogramowaniem (botnet). Pozwala to na zdalne i niewidoczne dla użytkowników przeprowadzanie ataków związanych np. ze spamem mailowym, rozsyłaniem linków, nieuczciwymi kliknięciami (click fraud) czy też atakami DDoS. Do tych ostatnich zombie nadaje się idealnie – DDoS to zmasowane ataki z wielu komputerów wymierzone w jedną jednostkę, co uniemożliwia jej poprawne funkcjonowanie, przejmując wszystkie wolne zasoby (pamięć, czas procesora) atakowanego komputera.

Rootkity – tak jak wspominaliśmy – same w sobie nie są złe i często są wykorzystywane do legalnych – bądź trochę mniej legalnych, ale korzystnych z punktu widzenia użytkownika – działań, czyli są świadomie instalowane przez właściciela urządzenia. Najczęściej takie rootkity wykorzystywane są do:

  • zarządzania prawami cyfrowymi (ang. digital rights management, DRM) – rootkity w tej formie tworzą system zabezpieczeń np. plików muzycznych, filmów i gier, które pozwalają na korzystanie z nich tylko legalnym nabywcom;

Warto wiedzieć: Pierwsze DRMy były bardzo prowizoryczne, polegały m.in. na nagłym przerwaniu gry z prośbą o wprowadzenie tekstu z papierowej instrukcji. Zwykle właściciele pirackich wersji takiej instrukcji nie posiadali.Czasy się jednak zmieniły i sposoby przeciwdziałania piractwie też – to wielka wojna między producentami zabezpieczeń, a hakerami (twórcami tzw. mieczy – crackerami i piratami). Niestety szala wygranych przechyla się na stronę cyberprzestępców. Producenci gier tak bardzo skupili się na zabezpieczeniach, że zapomnieli o zwykłych użytkownikach. I tak zabezpieczenia rosyjskiego StarForce nie dość, że pilnują legalności samej gry, to przejmują kontrolę nad całym komputerem gracza. Tym samym uniemożliwiają wykonania jakichkolwiek nielegalnych działań – związanych nie tylko z grą. Te praktyki wywołały silną falę sprzeciwu wśród graczy, dzięki której m.in. francuski producent gier UbiSoft rozwiązał umowę współpracy ze StarForce. Ciekawym case study jest także przykład jednej z gier firmy Electronic Arts – “Spore”. Jej pierwotna wersja zakładała system ochrony nazwany SecuROM. Nie było to tak niebezpieczne rozwiązanie jak StarForce, ale przysporzyło użytkownikom wiele niemiłych niespodzianek. Gra wymagała użycia oryginalnej płyty oraz wymuszała aktywację sieciową – fakt, zabezpieczenia sieciowe są najskuteczniejsze, jednak mają sens tylko w przypadku gier, które rzeczywiście z tej sieci w pełni korzystają. “Spore” używało internetu w bardzo niewielkim zakresie.Problem leżał jednak głębiej – można było utworzyć tylko jedno konto użytkownika i jeden raz go aktywować. A w ramach konta grę można było zainstalować maksymalnie 3 razy. To oznaczało, że nie można było dokonać instalacji jednocześnie na PC i laptopie, a 3 reinstalacje systemu operacyjnego wykluczały całkowicie możliwość ponownej instalacji gry. Okazało się, że te metody uderzyły najbardziej w użytkowników – hakerzy za nic mieli te zabezpieczenia i nielegalna wersja gry “Spore” trafiła do sieci jeszcze przed jej oficjalną premierą. Producent co prawda zrezygnował z większości restrykcji kilka tygodni po debiucie gry, jednak nie naprawiło to negatywnej opinii użytkowników.

  • wykrywania ataków np. honeypot – są to pułapki, które udają system, pojedynczą usługę lub sieć lokalną. Ich celem jest przechwycenie i poinformowanie o próbach uzyskania nieautoryzowanego dostępu do danych. Honeypoty występują w wersjach mniej i bardziej rozbudowanych – te drugie potrafią nawet rejestrować i monitorować zachowania atakującego hakera, wykorzystując w tym celu wiele adresów IP. To świetne narzędzie do wczesnego wykrywania ataków, ochrony przed złośliwym oprogramowaniem i lukami w zabezpieczeniach;
  • ulepszenia emulatorów wirtualnych napędów – są to popularne komercyjne programy, takie jak Alcohol120% czy też Daemon Tools. Służą do pokonania zabezpieczeń związanych z nielegalnym kopiowaniem np. gier. Łamią między innymi systemy SafeDisc i SecuROM;
  • wykrywania malware – dobrej jakości oprogramowanie antywirusowe korzysta z rootkitów w celu ochrony przed złośliwym oprogramowaniem. Działa na zasadzie przechwytywania aktywności systemu i ochrony przed nieproszonymi gośćmi. Procesy antywirusów nie są ukryte, ale użytkownik nie może ich samodzielnie zakończyć. Przykładem jest oprogramowanie antywirusowe Kaspersky;
  • wykrywania oszustw w grach np. poprzez program Warden lub GameGuard. To tak zwane oprogramowanie anti-cheat – zapobiegające oszustwom w grach;

Warto wiedzieć: Jedna z najnowszych afer dotyczy gry Valorant wypuszczonej przez Riot Games i jej systemu anti-cheat “Vanguard”. Użytkownicy odkryli, że ten rootkit uruchamia się wraz ze startem systemu operacyjnego i działa nawet, gdy gra nie jest włączona, a co gorsza – ma uprawnienia administratora! To oznacza, że potencjalnie może zbierać wszystkie informacje o użytkowniku, ale dodatkowo tworzy też furtkę do ataków na komputer gracza (backdoor). Riot Games wytłumaczyła się z tego rozwiązania zapewniając o dokładnym sprawdzeniu Vanguarda pod kątem luk i poinformowaniu, że na 100% nie zbierają za jego pomocą informacji o użytkownikach. Wg producenta, “Vanguard” to świetna forma walki z cheaterami. Jeśli jednak okaże się, że sterownik naraża graczy, Riot Games wycofa go i opracuje zupełnie nowy mechanizm. Drugą sprawą jest czy to rozwiązanie rzeczywiście działa – bo jednak cheaterzy, mimo jego obecności, radzą sobie całkiem dobrze.

  • ochrony przed kradzieżą – na laptopach można zainstalować oprogramowanie w typie rootkita, które opiera się na BIOSie. Dzięki niemu możliwe jest monitorowanie lokalizacji laptopa, zdalne wyłączanie go i usuwanie danych;
  • omijania aktywacji produktów Microsoft – najczęściej dotyczy to Windowsa oraz pakietów Microsoft Office.

Najnowsze rootkity nie celują już tylko w komputery i laptopy, ale także w urządzenia mobilne – w szczególności w te, które są oparte na systemie Android. Najczęściej są powiązane z atrakcyjnymi aplikacjami, jakie można pobrać z niezaufanych źródeł.

Jakie są rodzaje rootkitów?

Występuje kilka rodzajów rootkitów, jednak aby dobrze je zrozumieć, trzeba bliżej przyjrzeć się tzw. pierścieniom zabezpieczającym (protection rings). Najprościej mówiąc, opisują one poziomy przywilejów architektury systemu operacyjnego. Poziomy składają się z 4 okręgów. Najmniejszy, czyli najniższy, ale za to najbardziej uprzywilejowany poziom to ring “0”, który zawiera jądro systemu sterujące całym komputerem. Wyżej znajduje się ring “1”, a zaraz za nim ring “2” – w nich są umieszczone wszystkie sterowniki np. od karty graficznej. Ostatnim, najwyższym poziomem o najniższym stopniu uprzywilejowania jest ring “3” – w nim znajdują się aplikacje, z których korzysta użytkownik np.: pakiet Microsoft Office, CorelDraw czy Photoshop. Warto zauważyć, że ring “0” rządzi też antywirusami znajdującymi się na najwyższym “3” poziomie, które często nie docierają nawet do poziomu “1”.

Rootkity mogą być wycelowane w każdy poziom, jednak te najtrudniejsze do wykrycia będą celować w jądro systemu. Istnieją też rootkity hybrydowe – czyli takie, które jednocześnie uderzają np. w poziom użytkownika i poziom jądra systemu.

Zanim przejdziemy do konkretnych poziomów, trzeba zwrócić uwagę na rootkity typu Persistent Rootkits (“natrętne” rootkity) oraz Memory-Based Rootkits (rootkity “żyjące” jedynie w pamięci):

  • “Natrętne” rootkity charakterystyczną nazwę zawdzięczają swojej obecności wywoływanej każdorazowym uruchomieniem systemu operacyjnego. Zwykle są przechowywane jako kod i program na dysku lub w rejestrze. Działają w tle i są niewidoczne na liście procesów i usług systemu. To najczęściej występujący rodzaj rootkitów, głównie ze względu na to, że nie wymagają specjalistycznego kodu i bardzo łatwo się rozprowadzają.
  • Rootkity egzystujące w pamięci działają właśnie w pamięci podręcznej komputera. Są właściwie jednorazowe – aktywują się tylko raz i znikają po zrestartowaniu systemu. Właśnie dlatego dużo trudniej je wykryć.

Rootkity poziomu użytkownika – ring “3”

Rootkity na tym poziomie działają razem z innymi aplikacjami. Potrafią korzystać z bardzo różnych sposobów instalacji, jednak wszystkie mają na celu przechwytywanie i modyfikowanie standardowych procesów działania API (interfejsów programowania aplikacji, czyli komend, jakich system operacyjny używa do komunikacji z programami). Na przykład mogą wstrzykiwać dynamiczną bibliotekę (w Windowsie plik o rozszerzeniu .dll, w systemie MacOS X – .dylib) do innych procesów. Co to znaczy?

Dynamiczna biblioteka łączy się z programem wykonywalnym, jednakże dopiero w momencie jego wykonania. Rootkit, zainstalowany w ten sposób, może wykonać dowolny proces docelowy – po to, aby go sfałszować (ukryć działający proces lub plik w systemie).

Przykładem jest tutaj luka w systemie Windows zwana Import Address Table. IAT to część pliku .dll, który jest odpowiedzialny za wskazywanie funkcji biblioteki, a także innych bibliotek .dll. Kod startowy rootkita wykorzystuje jedną z najczęściej używanych funkcji w jednej z bibliotek systemowych, nadpisując ją. Dzięki temu uruchamia się zamiast podanej funkcji. Jednak, aby nadal pozostać niezauważonym, wykonuje także żądane polecenie. W składzie Win32 najbardziej zagrożone były biblioteki Kernel32.dll, Gdi32.dll oraz User32.dll. Jeśli chodzi o Windows API – Advapi32.dll.

Innym przykładem będzie nadpisanie pamięci wybranej aplikacji – ale jest to możliwe w momencie zdobycia odpowiednich uprawnień dostępowych. 

Rootkit może wykorzystywać różne mechanizmy wstrzykiwania:

  • przechwytywanie wiadomości;
  • przejście przez luki w zabezpieczeniach;
  • debugery;
  • rozszerzenia aplikacji – przykładem może być Explorer Windowsa, zawierający publiczne interfejsy, które mogą być modyfikowane za pomocą rozszerzeń także przez osoby trzecie;
  • wspomniane już przechwytywanie i modyfikowanie API.

Działanie rootkita na 3 poziomie zawsze uwzględnia działanie każdej aplikacji w swoim własnym obszarze pamięci. Dlatego rootkit musi wszczepić się osobno w każdą uruchomioną aplikację. Oprócz tego musi czuwać nad potencjalną instalacją nowych aplikacji i aktualizacji, które zwykle “łatają” pamięć dotychczasowych wersji, zanim jeszcze zostaną w pełni uruchomione. W przeciwnym razie mogłoby to spowodować szybkie wykrycie rootkita.

Poziom użytkownika jest dla rootkita często miejscem, w którym dochodzi do zamiany standardowych programów na wersje trojańskie. Pozwala to na maskowanie obecności malware i uzyskanie dostępu do danych.

Jako przykładowe rootkity poziomu użytkownika można wymienić Aphex, Hacker Defender lub Vanquish.

HackerDefender to jeden z popularniejszych rootkitów. Zwykle przenoszony jest razem z innym szkodliwym oprogramowaniem, np.: trojanem z rodzaju CWS. Jego obecność na komputerze może sugerować nagłe zniknięcie takich programów jak m.in. HiJackThis (HJT – program do usuwania szkodliwego oprogramowania) lub utrudnione działanie antywirusów. HackerDefender występuje w kilku wersjach i można go nawet… kupić w sieci w wersji komercyjnej – dostosowanego do potrzeb i możliwości. 

Rootkity poziomu hipernadzorcy (hipervisior) – ring “2” i “1”

Na poziomie hipernadzorcy (narzędzi do zarządzania procesami wirtualizacji – kontrolowania pracy komputera) rootkit obsługuje oryginalny system operacyjny jako maszyna wirtualna. Dzięki temu może przechwycić procesy np. wywołujące sprzęt (ekran zewnętrzny, drukarkę, router, kartę sieciową itp.) dokonywane przez system operacyjny. Rootkity mają tą przewagę nad hipernadzorcami, że nie muszą ładować się przed uruchomieniem systemu – mogą się tam znaleźć przed awansowaniem systemu na maszynę wirtualną. 

Rootkit wycelowany w poziom 1 nie ma potrzeby dokonywania zmian w jądrze – co nie znaczy, że nie może mieć na niego wpływu. Przykładem mogą być widoczne różnice w taktowaniu procesora, co pozwala jednocześnie na odkrycie obecności rootkita.

Przykłady rootkitów na poziomie hipernadzorcy: “SubVirt” – rootkit laboratoryjny opracowany przez Microsoft i Uniwersytet w Michigan. Opierał się na maszynie wirtualnej VMBR;“Blue Pill” – rootkit z keyloggerem. To projekt Joanny Rutkowskiej, która chciała udowodnić, że możliwe jest stworzenie rootkita zupełnie niewidocznego. Inspiracją do nazwy był film Matrix.

Rootkity firmware i hardware

Przy ringu 2 i 1 warto jeszcze wspomnieć o rootkitach firmware (oprogramowanie układowe, zainstalowane na stałe w urządzeniu) i hardware. Nie atakują one bezpośrednio systemu tylko kod, który odpowiada za obsługę sprzętu (karta sieciowa, dysk twardy, router). Taki rootkit może być też wycelowany w kod BIOSu. W przypadku firmware zwykle nie sprawdza się integralności kodu, co dla hakerów stanowi otwarte zaproszenie do działania.

Warto wiedzieć: John Heasman udowodnił obecność rootkitów firmware w oprogramowaniu układowym ACPI oraz w pamięci ROM karty PCI. W październiku 2008 r. przestępcy zainstalowali urządzenia do przechwytywania danych w nowych bankomatach przeznaczonych na rynek europejski. Zupełnie niewidoczne przesyłały informacje o kartach kredytowych za pośrednictwem telefonów komórkowych. Pół roku później – w marcu 2009 r. Alfred Ortega i Anibal Sacco przedstawili dane związane z rootkitem wycelowanym w system Windows na poziomie BIOSu, który przetrwał zarówno wymianę dysku, jak i ponowną instalację całego systemu.Ci sami naukowcy odkryli fabrycznie instalowanego w różnych obszarach BIOSu rootkita, który w teorii miał być systemem antykradzieżowym niektórych laptopów. Znany był jako “Absolute CompuTrace” lub “Absolute LoJack for Laptops”. Wg naukowców – mimo jego dobrych intencji – mógł zostać wykorzystany przez hakerów.

Rzeczywiście rootkity firmware mogą okazać się pomocne podczas odzyskiwania skradzionych komputerów, mogą zdalnie usunąć dane albo je zaszyfrować. Jednak taka praktyka budzi duże obawy pod kątem bezpieczeństwa i zachowania prywatności. Rootkit zawsze może zostać użyty do szpiegowania – czy to przez kierownictwo w pracy, czy też przez hakerów.

Rootkitem firmware jest np. VGA rootkit i Cloaker.

Rootkity jądra systemu (kernel-mode rootkit) – poziom “0”

Ring “0” to poziom z najwyższymi przywilejami w systemie operacyjnym. Rootkity wymierzone w samo serce systemu działają przez dodanie kodu lub całkowite zastąpienie części systemu operacyjnego (taki zabieg dotyczy zarówno jądra, jak i sterowników urządzeń).

Rootkity poziomu jądra są najbardziej niebezpieczne, bo mają nieograniczony dostęp do wszystkich zasobów komputera. Jednocześnie są jednymi z najtrudniejszych do napisania. Nawet niewielki błąd w kodzie prowadzi do zakłócenia stabilności systemu, a to krótka droga do odkrycia rootkita przez uprawnionego użytkownika.

Pierwszym szerzej rozpowszechnionym rootkitem działającym na poziomie jądra był napisany pod system Windows – NT 4.0. Został wydany w 1999 roku w magazynie Phrack przez Grega Hoglunda.

Rootkity celujące w jądro są najtrudniejsze do wykrycia i usunięcia. Głównie dlatego, że działają na tym samym poziomie co system operacyjny i potrafią modyfikować, a nawet usuwać wszystkie, nawet najbardziej zaufane operacje systemu – łącznie z manipulowaniem oprogramowaniem antywirusowym. Obecność rootkita w ringu “0” sprawia, że żaden element systemu nie jest bezpieczny.

W systemie Windows rootkit może zmieniać struktury danych w jądrze za pomocą bezpośredniej manipulacji obiektami jądra (DKOM – Direct Kernel Object Manipulation), które są odpowiedzialne za logowanie i audytowanie. Dzięki takiej modyfikacji rootkit zwraca systemowi fałszywe informacje np. o istnieniu danego procesu.

Kolejną metodą jest podpięcie się rootkita pod System Service Descriptor Table (SSDT – tablica deskryptorów procesów systemowych). W tablicy znajdują się adresy aktualnie działających funkcji systemu operacyjnego. To rozwiązanie jest głębsze od IAT działającego w ringu “3”, ponieważ może działać na cały system, a nie tylko na pojedynczą bibliotekę. Przykładowo rootkit w tym modelu może zaatakować funkcję NtQueryDirectoryFile w pliku Ntoskrnl.exe i ukryć foldery oraz pliki znajdujące się w systemie plików. Rootkit może też maskować się dzięki modyfikacji bramki znajdującej się pomiędzy trybem użytkownika a trybem jądra.

W przypadku systemu Linux rootkit jądra występuje jako LKM – loadable kernel modules. Działa podobnie jak w Windowsie – może modyfikować systemową tabelę wywołań. 

Bootkity

Na specjalne miejsce na liście zagrożeń dla jądra systemu zasługują bootkity. Mogą one atakować kod startowy np. MBR (Master Boot Record), VBR (Volume Boot Record) albo sektor rozruchowy (boot sector – stąd też ich nazwa “bootkity”). Ta metoda pozwala zaatakować systemy szyfrowania całego dysku.

Evil Maid Attack (Atak Złej Pokojówki) – ten bootkitowy atak wycelowany jest w nienadzorowane komputery. Są one dla hakera tym, czym hotelowe pokoje z pozostawionymi cennymi bagażami klientów dla nieuczciwej pokojówki. Bootkit podmienia legalny moduł rozruchowy na moduł kontrolowany przez cyberprzestępcę. Malware załadowane w ten sposób utrzymuje się w jądrze poprzez przejście do trybu chronionego w momencie załadowania jądra. Dzięki temu jest w stanie przejąć kontrolę nad jądrem. Haker potrzebuje około 4 minut, aby wszczepić w taki niechroniony system złośliwe oprogramowanie.

Jak instaluje i ukrywa się rootkit?

Drogi instalacji rootkita są właściwie dwie: może odbywać się automatycznie lub ręcznie. Pierwszy przypadek nie wymaga większych działań ze strony hakera. Jednak drugi angażuje atakującego w dużo większym stopniu. Najpierw musi on uzyskać dostęp do komputera ofiary np. poprzez wykorzystanie luk w zabezpieczeniach lub złamanie hasła dzięki m.in. phishingowi (wyłudzenie danych za pomocą podszywania się przykładowo pod instytucje bankowe) i dopiero dokonać instalacji.

Rootkit po zainstalowaniu ukrywa swoją obecność i jednocześnie zachowuje stały dostęp do wszystkich komponentów systemu. A to oznacza, że haker może modyfikować całe oprogramowanie zainstalowane na urządzeniu – łącznie ze wszystkimi programami antywirusowymi i zabezpieczającymi (dodając np. rootkita jako wyjątek bezpieczeństwa).

Najczęściej rootkity wykorzystują luki w zabezpieczeniach, mogą też ukrywać się w trojanach, oszukując użytkownika, który myśli, że instaluje nieszkodliwe i pożyteczne oprogramowanie. Rootkit może dostać się do Twojego komputera za pomocą niebezpiecznych linków prowadzących do zainfekowanych stron, podejrzanych wiadomości e-mail ze zmodyfikowanymi załącznikami, instalacji programów i aplikacji z nieznanych źródeł oraz używania pamięci przenośnych typu USB.

Hakerzy wykorzystują ludzką ciekawość i pozostawiają pen-drive’y lub karty pamięci flash w miejscach użyteczności publicznej np. kawiarniach, biurowcach, hotelach. Zaciekawiony możliwą zawartością znalazca w większości przypadków podłączy znaleziony nośnik danych do swojego komputera, infekując w ten sposób własne urządzenie.

Niektóre rootkity użytkownik instaluje w pełni świadomie na przykład po to, aby monitorować pracę pracowników. Jeszcze inne są dostarczane wraz z komercyjnym oprogramowaniem w systemie PPI (pay-per-install). Działa to podobnie do afiliacji, jednak płatność za promowanie odbywa się po zainstalowaniu dodatkowego oprogramowania, w którym często kryje się właśnie rootkit.

Duża część sposobów instalacji została opisana już wyżej – podczas analizy typów rootkitów. Musisz pamiętać, że rootkit bardzo często tworzy zaszyfrowany i całkowicie niewidoczny system plików, w którym ukrywa kopie zainfekowanych plików albo inne złośliwe oprogramowanie (na poziomie jądra). Dodatkowo potrafi modyfikować standardowe narzędzia bezpieczeństwa i antywirusy, co czyni go jeszcze bardziej nieuchwytnym.

Jak wykryć rootkita?

Wykryć rootkita jest niesamowicie trudno – właśnie ze względu na to, że potrafi skutecznie ukrywać się przed wszystkimi programami wykrywającymi zagrożenie, a nawet je modyfikować. Ma to bezpośredni związek z poziomami na jakich działa rootkit i program mający na celu jego odnalezienie.

Jeżeli rootkit działa na poziomie z większymi przywilejami niż program szukający go, praktycznie nie ma szans na powodzenie takich poszukiwań – oczywiście pod warunkiem, że rootkit prawidłowo wykorzystuje swoje uprawnienia.

Poszukiwanie rootkita na już zainfekowanym systemie na poziomie jądra, praktycznie nie przynosi żadnych rezultatów. Wszelkie detektory rootkitów będą w stanie odkryć tylko te, które z jakiś przyczyn zostały uszkodzone, błędnie napisane lub działają na niższych poziomach niż oprogramowanie wykrywające w jądrze.

Do wykrywania rootkitów najczęściej wykorzystuje się:

  • metody behawioralne – czyli porównywanie wzorców szkodliwego zachowania z zachowaniami systemu. Mogą pojawić się zmiany czasów w wykorzystaniu procesora albo pomiędzy zapytaniami API. Część rootkitów ma bardzo duży wpływ na te zmiany, dlatego ta metoda jest jedną z łatwiejszych do przeprowadzenia, ale jednocześnie jedną z uzyskujących najwięcej fałszywych wyników;

Po aktualizacji zabezpieczeń Windowsa, rootkit Alureon wywoływał awarię systemu – ta aktualizacja ujawniła błąd w kodzie projektowym, pozwalając na jego wykrycie.

  • skanowanie sygnatur – wykorzystywane przez antywirusy do wykrywania malware. Wyodrębnione przez badaczy złośliwe kody dodawane są do bazy i antywirus – skanując dysk – poszukuje znanych mu sygnatur (będących w bazie). Skanowanie sygnatur jest więc skuteczne tylko w przypadku już kiedyś oznaczonych rootkitów;  
  • skanowanie różnic (porównanie krzyżowe) – polega na porównaniu surowych, nieskażonych danych z potencjalnie zainfekowaną treścią jaką zwraca API. Zwykle porównuje się zapisy binarne na dysku z ich kopiami znajdującymi się w pamięci operacyjnej lub rejestr systemu Windows z odpowiadającymi im strukturami fizycznymi dysku. Część rootkitów potrafi jednak odkryć ten sposób poszukiwań i dopasować do siebie wyniki skanowania, co uniemożliwia ich wykrycie;

Opisany już wcześniej skandal z udziałem Sony BMG, został wykryty przez RootkitRevealer właśnie dzięki porównaniu krzyżowemu.

  • podpięcie alternatywnego i sprawdzonego systemu – to zdecydowanie najlepsza metoda wykrywania rootkitów na poziomie systemu operacyjnego. Wymaga wyłączenia komputera, podłączenia zaufanego nośnika np. USB lub CD-ROM, na którym znajduje się system rozruchowy i dokonania przeglądu dysku, który podejrzewamy o zainfekowanie. Skuteczność tej techniki wynika z braku aktywności rootkita podczas poszukiwań – jeśli zainfekowany komputer nie jest uruchomiony, rootkit także pozostaje uśpiony;
  • pełną analizę zrzutu pamięci wirtualnej lub zrzutu jądra systemu – jest bardzo trudna do przeprowadzenia, jednak skuteczna – duża część rootkitów nie da rady się schować. Niektóre rootkity działające na poziomie hipernadzorcy mogą jednak wykryć próbę wykonania zrzutu pamięci;
  • sprawdzenie integralności – ma na celu sprawdzenie czy moduły w folderze instalacyjnym aplikacji nie są zmodyfikowane lub uszkodzone. Moduł zostaje zakwalifikowany jako uszkodzony, jeżeli jego podpis cyfrowy nadany przez wydawcę oprogramowania jest nieprawidłowy. Pozwala to odkryć nieautoryzowane zmiany kodu w bibliotekach na dysku. Ta metoda jest skuteczna jednak tylko w przypadku zmian, jakie zostały dokonane po instalacji aplikacji.

Jak usunąć rootkit?

Możesz próbować samodzielnie wytropić rootkita i wykorzystać ręczne sposoby jego usunięcia, które niestety są bardzo czasochłonne i wymagają specjalistycznej wiedzy. Całe szczęście wiele znanych i popularnych antywirusów zostało wyposażonych w systemy anti-rootkit. Możemy polecić rozwiązania stosowane przez Bitdefender, Kaspersky czy też Norton 360.

Jeżeli jednak program antywirusowy nie będzie w stanie usunąć zagrożenia, możesz skorzystać z programów wycelowanych specjalnie w rootkity. Przykładem takiego programu dla systemu Windows jest wspomniany już wcześniej Rootkit Revealer, Gmer wykorzystywany przez Avast Antivirus, TDSSKiller od Kaspersky’ego lub E-Secure BackLight.

Inne systemy też nie pozostały bez ochrony. Dla systemów Linux i MacOS powstał między innymi chkrootkit, rkhunter (dla UNIXa) i ESET Mac Rootkit Detector Beta.

Problem jednak zawsze będzie przypominać odwieczną walkę dobra ze złem. Im skuteczniejszy program wykrywający rootkity, tym bardziej ich twórcy skupiają się na takiej zmianie kodu, aby znów stać się nieuchwytnym.

Rootkity, które atakują najważniejszy element systemu – jądro – są praktycznie niemożliwe do usunięcia lub proces ten jest bardzo, ale to bardzo skomplikowany. Zwykle kończy się na skasowaniu całego dysku i konieczności ponownej instalacji systemu operacyjnego, koniecznie z zaufanego źródła.

W miarę ewolucji systemów operacyjnych rootkitom poświęca się coraz większą uwagę. I tak w Windowsie 64-bitowym zostało wdrożone obowiązkowe oznaczanie sterowników znajdujących się na poziomie jądra. Ten zabieg ma na celu utrudnienie wszczepienia obcego kodu na najwyższym poziomie systemu. Microsoft stworzył też narzędzia do usuwania rootkitów: Microsoft Windows Malicious Software Removal Tool – dokonuje skanu komputera jeszcze przed uruchomieniem systemu; Windows Defender Offline – tworzy specjalne środowisko jeszcze przed uruchomieniem systemu, próbując wykryć obecność rootkitów.

Sposoby ochrony przed rootkitami

Nie od dziś wiadomo, że “lepiej zapobiegać niż leczyć” i ma to zastosowanie nie tylko w profilaktyce zdrowotnej, ale także w ochronie sprzętu komputerowego i mobilnego. Pamiętali o tym też sami twórcy oprogramowania systemowego.

W 2009 roku Uniwersytet w Północnej Karolinie we współpracy z firmą Microsoft stworzył anty-rootkit dla poziomu hipernadzorcy – “Hooksafe”. Jego zadaniem była ogólna ochrona przed rootkitami celującymi nawet w jądro systemu.

Wraz z pojawieniem się Windowsa 10, pojawiła się nowa funkcja: “Device Guard”, która korzysta z procesów wirtualizacji, dla zapewnienia niezależnej, zewnętrznej ochrony przed rootkitami.

Nie ma jednak skuteczniejszego sposobu niż dobry program antywirusowy z anti-rookitem. Śmiało możesz wybierać z rozwiązań proponowanych przez Norton 360, Kaspersky, Bitdefender, Eset czy też Panda.

Rootkity są przebiegłe i aby się przed nimi obronić, musisz też zwrócić uwagę na swoje zachowania w sieci:

  • unikaj podejrzanych stron, otwierania niepewnych linków i załączników z wiadomości e-mail od nieznanych nadawców;
  • uważaj na darmowe programy, a już w szczególności na pirackie wersje gier, muzyki i filmów dostępne w sieci;
  • gdy tylko się pojawią, wykonuj aktualizacje systemu;
  • nie udzielaj pełnego dostępu do urządzenia wszystkim instalowanym aplikacjom – często nie jest to potrzebne;
  • korzystaj z firewalla, programów antywirusowych i skanerów rootkitów;
  • od czasu do czasu wykonuj testy bezpieczeństwa;
  • staraj się korzystać z systemów podwójnego uwierzytelniania.

Problem rootkitów nie jest zarezerwowany tylko dla wybranych grup użytkowników – jest wymierzony praktycznie w każdego z nas. Dlatego tak ważne jest dbanie o bezpieczeństwo zarówno laptopów i komputerów stacjonarnych, jak i urządzeń mobilnych. Nikt przecież nie chce być podglądany. A im więcej wiesz o potencjalnym zagrożeniu, tym łatwiej będzie Ci się przed nim bronić.

Historia rootkitów – czyli skąd się wzięły?

Historia rootkitów rozpoczęła się w latach 80. ubiegłego wieku. Właściwie można powiedzieć, że ich szablon stworzył Ken Thompson pracujący w Bell Labs, który był też jednym z twórców systemu UNIX.

W 1972 roku UNIX został przepisany na z języka B na język C – wymyślony przez Thompsona. Tak więc jądro UNIXa pracowało w języku C. Ken Thompson w 1983 roku przedstawił exploita – czyli program wykorzystujący istniejące błędy w oprogramowaniu – którego celem była możliwość m.in. logowania do systemu bez ujawnienia złośliwego kodu, czyli podczas kompilacji wprowadzanego żądania na język C. Działo się to za pośrednictwem zmodyfikowanego kompilatora – programu, który automatycznie tłumaczy kod języka źródłowego, na taki sam kod w innym języku.

Poddany modyfikacjom kompilator wykrywał próbę skompilowania (przetłumaczenia) komendy wydanej systemowi UNIX przez użytkownika i generował zmieniony kod. Kod akceptował poprawnie wprowadzone przez użytkownika hasło i jednocześnie dodatkowe hasło typu “backdoor” podane przez hakera.

Ponadto zmodyfikowany kompilator miał bezpośredni wpływ na wszystkie aktualizacje oryginalnego kompilatora i wstawiał w niego te same exploity. Przeglądanie kodu źródłowego logowania i kodu zaktualizowanego kompilatora nie dawało zupełnie nic – złośliwy kod był niewidoczny, a mimo to przechwytywał informacje. Rootkit działa na zasadzie podobnej do tego exploita. 

I tak pierwszy udokumentowany wirus na komputery IBM-PC pracujący na systemie DOS (1986 r.) – Brain – korzystał właśnie z takiej techniki ukrywania się. Atakował on sektor rozruchowy, przechwytując próby jego odczytania i przekierowywał je w miejsce, w którym była przechowywana kopia oryginalnego sektora rozruchowego. Rozprzestrzeniał się za pomocą niezabezpieczonych dyskietek.

Oczywiście płynący czas sprzyjał rozwojowi sposobów maskowania wirusów w DOSie, między innymi dzięki przechwytywaniu informacji na najniższych poziomach dysku – INT 13H BIOS – poprzez przerywanie połączenia po to, aby ukryć nieautoryzowaną modyfikację plików.

Wszystkie te modyfikacje były namiastką dla rootkitów znanych dzisiaj:

  • pierwszy rootkit dla Windowsa NT powstał w 1999 r. – trojan NTRootkit autorstwa G. Hoglunda;
  • w 2003 r. pojawił się rootkit nazwany HackerDefender;
  • pierwszy rootkit na system MacOS pojawił się w 2009 roku.

Powstanie rootkitów przyczyniło się do wybuchu wielu skandali na światową skalę. Jednym z nich było odkrycie w 2005 roku przez inżyniera oprogramowania – Marka Russinovicha – rootkita w oprogramowaniu Extended Copy Protection autorstwa First 4, opublikowanego na płytach CD przez Sony BMG. Jednym z elementów oprogramowania był odtwarzacz muzyki, a sam program miał na celu ochronę przed kopiowaniem i cyfrowym zarządzaniem prawami autorskimi. Wtedy Russinovich opracował narzędzie do wykrywania rootkitów – RootkitRevealer – które na jednym z komputerów odkryło, że odtwarzacz muzyki instaluje się wraz z rootkitem ograniczającym użytkownikowi dostęp do płyty CD. Niedługo po tym odkryciu hakerzy zaczęli atakować zainfekowane rootkitem systemy. Było to w sumie pierwsze wydarzenie na tak szeroką skalę, które znacząco podniosło świadomość użytkowników o niebezpieczeństwach związanych z rootkitami. Co prawda Sony BMG dość szybko wydało aktualizację, której zadaniem było odinstalowanie rootkita, jednak przyniosło to skutek odwrotny do zamierzonego. Użytkownicy byli jeszcze bardziej narażeni na ataki. W USA wytoczono nawet zbiorowy proces przeciwko Sony BMG.   Kolejnym przykładem może być głośna afera, zwana grecką Watergate. Dotyczyła nielegalnego podsłuchiwania ponad 100 telefonów komórkowych działających w sieci Vodafone Greece, wykorzystywanych głównie przez najwyższych urzędników państwowych. Proceder podsłuchiwania rozpoczął się mniej więcej w sierpniu 2004 roku i trwał do marca 2005 roku – autorzy podsłuchu nie zostali jednak zidentyfikowani. Rootkit atakował tutaj centralę telefoniczną AX firmy Ericsson. Oprogramowanie mogło monitorować aktywność procesów, przepływ danych i miało dostęp do haseł i loginów. Jego obecność została wykryta dopiero przez błąd w aktualizacji rootkita, który zablokował możliwość wysyłania SMSów. Usterki masowo zgłaszane do Ericssona pozwoliły odkryć obecność nielegalnego oprogramowania podsłuchującego wraz rootkitem oraz ukrytymi blokami danych z listą monitorowanych numerów telefonów.