Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Ewolucja rootkitów

Tagi:

Alisa Szewczenko
Analityk wirusów, Kaspersky Lab

Artykuł ten jest trzecim z serii artykułów poświęconych ewolucji wirusów i rozwiązań antywirusowych. Ewolucję postrzegam zarówno jako chronologiczny ciąg wydarzeń, jak i logiczny wątek łączący szereg zmian. Moim celem jest przedstawienie tematu w sposób logiczny i chronologiczny, tak aby zainteresować szeroką rzeszę czytelników.

Wprowadzenie

Z rootkitem po raz pierwszy zetknąłem się w 2004 roku, gdy byłem jeszcze przysłowiowym żółtodziobem w dziedzinie analizy wirusów. W tym czasie miałem jeszcze nikłe pojęcie o rootkitach opartych na systemie UNIX. Pewnego dnia natrafiłem na plik wykonywalny dla systemu Windows, który po uruchomieniu zdawał się nic nie robić. Wzbudził jednak we mnie dziwne podejrzenia, dlatego przyjrzałem mu się bliżej... i na liście załadowanych modułów zobaczyłem plik, którego nie było na dysku. Naturalnie miałem szczęście, że zobaczyłem to gołym okiem - kod rootkita zawierał błędy. Aby uzyskać ten sam rezultat, dzisiaj potrzebowałbym kilku wyspecjalizowanych narzędzi - a nawet to mogłoby nie wystarczyć.

Wykryty przeze mnie rootkit nie był pierwszym rootkitem dla systemu Windows. Jednak dla mnie był zupełną nowością i stanowił drzwi do nowego świata; świata, w którym programy prowadziły grę z systemem operacyjnym i mogły łamać reguły, tajemniczo znikając z listy procesów i plików. Masę czasu poświęciłem na badanie sterowników wykorzystywanych przez program do ukrywania się w systemie. Trojan-Dropper.Win32.SmallProxy został stworzony w taki sposób, aby atakował określony system i instalował się w określonych lokalizacjach - jak na tamte czasy było to dość skomplikowane i nietypowe.

W artykule tym skoncentrowałam się na rootkitach dla systemu Windows, ponieważ są one najliczniejsze, nieustannie rozwijają się, stanowią poważne zagrożenie dla użytkowników i są powszechnie wykorzystywane przez twórców wirusów ze względu na to, że Windows jest obecnie najpopularniejszym systemem operacyjnym. Rootkity określam jako programy, które obchodzą standardowe mechanizmy systemu poprzez wykorzystanie technik ukrywania w celu zamaskowania obiektów systemowych: plików, procesów, sterowników, usług, kluczy rejestru, otwartych portów, połączeń itd.

Rootkity dla systemu UNIX

Mówiąc o rootkitach, nie sposób nie wspomnieć o etymologii słowa “rootkit". W systemach UNIX “root" oznacza użytkownika z pełnymi prawami dostępu (administratora), “kit" natomiast określa zestaw narzędzi. Tak więc termin 'rootkit’ oznacza zestaw narzędzi, który może być wykorzystywany z zamiarem wyrządzenia szkody w celu uzyskania dostępu do systemu bez wiedzy prawdziwego administratora. Takie narzędzia po raz pierwszy pojawiły się dla systemu UNIX na początku lat 90. Nadal istnieją, nie są jednak rozwijane w żaden znaczący sposób.

Warto pamiętać, że chociaż rootkity dla systemu Windows zaczerpnęły swą nazwę ze świata uniksowego, tego typu szkodniki pochodzą bezpośrednio od wirusów ukrywających się dla DOS-a, a nie od rootkitów dla systemu UNIX.

Wirusy ukrywające się

Wirusy ukrywające się dla DOS-a pojawiły się około1990 roku - w tym samym czasie lub trochę wcześniej niż rootkity dla systemu UNIX. W przeciwieństwie do rootkitów dla systemu UNIX, których celem było umożliwienie ich autorom uzyskania dostępu do systemu i zamaskowanie swojej obecności w nim, wirusy ukrywające się dla DOS-a tylko ukrywały się przed użytkownikiem i programami antywirusowymi. Dokładnie na tym samym polega działanie współczesnych rootkitów dla systemu Windows. Techniki wykorzystywane przez wirusy ukrywające się dla DOS-a są bardzo podobne do tych stosowanych obecnie przez rootkity dla systemu Windows. Na przykład wirusy ukrywające się wykorzystują techniki, takie jak przechwytywanie funkcji systemowych oraz maskowanie szkodliwego kodu poprzez dostarczanie fałszywych danych do dysku lub zawartości pamięci. Rootkity dla systemu Windows również powszechnie wykorzystują te techniki.

Rootkity dla systemu Microsoftu pojawiły się około 10 lat później. Nie zostały jednak nazwane wirusami ukrywającymi się, ani też nie nadano im żadnej innej, bardziej logicznej nazwy, ale stały się znane jako rootkity za sprawą Grega Hoglunda. Był on jedną z pierwszych osób, które stworzyły narzędzie przeznaczone do ukrywania danych w systemie poprzez połączenie różnych technik obchodzenia mechanizmów ochrony systemu Windows. Swoje wyniki opublikował w magazynie elektronicznym PHRACK (http://phrack.org/issues.html?issue=55&id=5#article), w którym narzędzie to zostało nazwane NT Rootkit. Następnie było wykorzystywane w wielu różnych szkodliwych programach i do dziś nie przestaje intrygować i inspirować zarówno badaczy, jak i autorów rootkitów.

Początki i popularyzacja

Artykuł Hoglunda pochodzi z 1999 roku i opiera się na badaniu jądra systemu Windows przeprowadzonym rok wcześniej i opublikowanym w usenecie przez programistę ze Sri Lanki (zobacz http://www.cmkrnl.com/arc-newint2e.html).

Jeszcze w 1995 roku Jeffrey Richter, guru środowiska programistycznego systemu Windows, ujawnił techniki przechwytywania funkcji systemowych w trybie użytkownika w swojej słynnej książce "Advanced Windows" i jej czwartym wydaniu zatytułowanym "Programming Applications for Microsoft Windows". Techniki te zostały później zaimplementowane w wielu rootkitach przez osoby, które posunęły się nawet do kopiowania kodu źródłowego bezpośrednio z książki.

Techniki przechwytywania funkcji systemowych w trybie jądra zostały ujawnione w dwóch kolejnych klasycznych podręcznikach programistycznych: "Undocumented Windows 2000 Secrets" autorstwa Schreibera oraz "Undocumented Windows NT" autorstwa P. Dabak et al, 1999.

Pierwsze rootkity dla systemu Windows

Analitycy nadal badali ochronę systemu Windows i wkrótce po tym, jak NTRootkit został opublikowany, pojawiło się kilka innych narzędzi - wszystkie z nich miały na celu ukrywanie obiektów w systemie operacyjnym:

  • 2000 - he4hook, stworzony przez rosyjskiego programistę. Narzędzie to nie jest szkodliwe, ale ukrywa pliki. Działa w trybie jądra. Interesujące jest to, że nawet sam autor nie nazywa tego programu rootkitem.
  • 2002 - Hacker Defender (znany również jako HacDef). To także tylko narzędzie, jednak potężniejsze: może być wykorzystywane do ukrywania plików, procesów i kluczy rejestru z elastycznymi ustawieniami w pliku konfiguracyjnym. Również działa w trybie jądra.
  • 2003 - Vanquish. Przy pomocy tego narzędzia można ukrywać pliki, foldery i klucze rejestru. Oprócz tego posiada szkodliwą funkcję - rejestruje wprowadzane hasła. Vanquish działa w trybie użytkownika.

Bez wątpienia zmieniła się motywacja osób zgłębiających rootkity - ich zainteresowanie przesunęło się z neutralnych narzędzi w kierunku narzędzi przeznaczonych do wyrządzenia szkód.

  • 2003 - Haxdoor (znany również jako A-311 Death oraz Nuclear Grabber, zmodyfikowany wariant tego samego programu). To już coś więcej niż narzędzie - to backdoor wykorzystujący techniki rootkitów w celu ukrycia swojej obecności w systemie. Działa głównie w trybie użytkownika.
  • 2004 - FU - narzędzie do ukrywania procesów. Narzędzie to wprowadza nową technikę opartą na modyfikowaniu już nie dostępu do systemu, ale samej struktury systemu. Działa w trybie jądra

Powyższa lista nie jest wyczerpująca, zawiera jednak rootkity, które są kluczowe dla zrozumienia ewolucji rootkitów dla systemu Windows, zwłaszcza HacDef, Haxdoor i FU. Te trzy rootkity powszechnie występowały na wolności w połączeniu z innymi szkodliwymi programami.

Rootkity z lat 2000 - 2004 doskonale wpisują się w standardowy (przestarzały) system klasyfikacji: mogą działać zarówno na poziomie użytkownika, jak i jądra, wykorzystując Execution Path Modification lub Direct Kernel Object Manipulation. Klasyfikacja ta była już wielokrotnie omawiana; więcej na ten temat można dowiedzieć się z następujących źródeł: www.securitylab.ru (język rosyjski); z-oleg.com (język rosyjski); www.securityfocus.com (język angielski).

Rootkity - masowa produkcja

Z czasem rootkity zaczęto również osadzać w szkodliwych programach. W tamtych czasach stworzenie niezależnych technologii ukrywania było trudne, ponieważ niewiele pisano na ten temat: w rezultacie wśród niewielkiej liczby szkodliwych rootkitów można było wyróżnić trzy kategorie:

  • Trojany, które w celu ukrywania się wykorzystywały gotowe narzędzia i biblioteki. Przeważająca większość tych trojanów wykorzystywała narzędzia Hacker Defender i FU.
  • Gotowe szkodliwe rootkity, które można było pobrać lub kupić i samemu zmodyfikować. Przykładem jest Haxdoor. Podobnie jak HacDef, Haxdoor był bardzo popularny jesienią 2005 roku; firma Kaspersky Lab dodawała każdego dnia około dziesięciu nowych sygnatur w celu zapewnienia ochrony przed nowymi wariantami Haxdoora.
  • Spersonalizowane rootkity stworzone w celu przeprowadzenia ataków na konkretny cel. Producenci oprogramowania antywirusowego zwykle dowiadywali się o tych rootkitach bezpośrednio od klientów, głównie dużych firm. Gdy administratorzy sieci nie mogli zidentyfikować przyczyny problemu, zwykle analitycy wirusów przeprowadzali dochodzenie na miejscu. Ta grupa rootkitów była bardzo niewielka, jednak próbki charakteryzowały się wysokim stopniem zaawansowania technicznego.

Do 2005 roku prawie 80% istniejących rootkitów było wariantami HacDef i Haxdoor. Rbot i SdBot były pierwszymi wielofunkcyjnymi backdoorami zawierającymi wbudowane technologie rootkit. Motyw był jasny: wszelkie technologie, które poprawiały ogólną funkcjonalność komercyjnego trojana, bezpośrednio przynosiły dodatkowe korzyści finansowe jego autorowi i/lub osobie, która go kontroluje. Dlatego osoby kontrolujące boty jako pierwsze zaczęły wykorzystywać technologie ukrywania/rootkit.

Do 2006 roku technologie rootkit były wbudowywane do powszechnych robaków pocztowych, takich jak Bagle; trojanów szpiegujących, takich jak Goldun; i programów Mailbot, takich jak Rustock. Było to poważne wyzwanie dla producentów oprogramowania antywirusowego.

Zanim jednak wykorzystywanie technologii rootkit w trojanach stało się standardem, pojawiło się wiele narzędzi do zwalczania rootkitów, zarówno samodzielnych jak i zawartych w innych produktach. Równowaga sił została przywrócona.

Rootkity i związane z nimi skandale

Do 2005 roku wykorzystywanie technologii rootkit w szkodliwych programach było tak rozpowszechnione, że problemem tym zainteresowali się nie tylko producenci rozwiązań bezpieczeństwa, ale również media. Przedstawiciele firmy Microsoft podjęli ten temat na konferencji RSA.

Liczne skandale, jakie miały miejsce w 2006 roku w związku z wykryciem w różnych produktach programowych i sprzętowych metodach podobnych do technologii rootkit, pokazują, w jaki sposób problem rootkitów stał się publiczny.

  1. Zabezpieczenie przed kopiowaniem Sony DRM na niektórych płytach CD ukrywało pliki przed użytkownikami. Co więcej, technologia ta została zaimplementowana w taki sposób, że tworzyła poważną lukę w zabezpieczeniach: każdy mógł nazwać swoje własne pliki w określony sposób i pliki te były ukrywane przez technologię Sony DRM.
  2. Symantec zawarł podobną funkcję w swoich produktach: produkty te wykorzystywały folder, który był ukryty przed użytkownikami. Incydent ten jest dość zabawny: “chroniony kosz" Symanteca został udokumentowany przez firmę i łatwo mógł zostać wyłączony. W rzeczywistości, koncepcja ukrywania plików w tym ukrytym folderze nie jest bardziej interesująca niż koncepcja ukrywania plików w czeluściach drzewa katalogu systemowego, gdzie nigdy nie zagląda żaden użytkownik.
  3. Kolejną ofiarą skandalu związanego z rootkitami padł sam program Kaspersky Anti-Virus; okazało się, że produkt przechowuje pewne dane w strumieniach plików, tj. w częściach systemu plików, które są ukryte przed użytkownikiem. Mimo że dokładnie nie wiadomo, jakie zagrożenie mogło to powodować, użycie terminu "rootkit" przestraszyło wiele osób.

Histeria antyrootkitowa

Innym istotnym aspektem ewolucji rootkitów była równoległa histeria "antyrootkitowa". Do połowy 2006 roku wszystkie główne firmy antywirusowe przyznały, że zagrożenie ze strony rootkitów wymaga interwencji. Każda firma reagowała na swój własny sposób. Niektórzy producenci modyfikowali swoje produkty, tak aby zapewnić dostęp do ukrytych obiektów podczas regularnego skanowania antywirusowego. Inni opublikowali samodzielne narzędzia do zwalczania rootkitów. Jeszcze inni poszli na kompromis, wyposażając swoje produkty w funkcję skanowania w celu wykrycia rootkitów, dostępną poprzez interfejs produktu.

Jednak żadna z firm nie odniosła większego sukcesu - wszelkie działania można było porównać do zamknięcia drzwi stajni, po tym jak uciekł z niej już koń.

W kontekście eskalacji sytuacji firma F-Secure, której narzędzie do zwalczania rootkitów zostało opublikowane wkrótce po Rootkit Revealer przez Sysinternals, była jednym z pierwszych producentów, których działania miały znaczenie. Narzędzie firmy F-Secure wykrywało tylko ukryte procesy, opierało się jednak na technologiach "proof of concept".

Narzędzia do zwalczania rootkitów niezależne od producentów rozwiązań antywirusowych

Niezależne od producentów narzędzia do zwalczania rootkitów pojawiły się jeszcze wcześniej, około 2005 roku. W przeciwieństwie do rozwiązań dostarczanych przez producentów oprogramowania antywirusowego, którzy musieli wykazać, że chronią swoich użytkowników, twórcy darmowych narzędzi chcieli po prostu ujawnić możliwie jak najwięcej ukrytych danych. Z tego powodu narzędzia niezależne od producentów antywirusowych były bardziej profesjonalne, potężniejsze i posiadały większe możliwości właściwej reakcji na zmieniające się środowisko.

Pierwsze narzędzia do zwalczania rootkitów były tworzone w celu ujawnienia jednego typu obiektów, np. ukrytych plików. W miarę upływu czasu stawały się coraz bardziej wielofunkcyjne i wykorzystywały systematyczne podejście. Obecnie do najbardziej użytecznych ogólnych narzędzi do zwalczania rootkitów należą GMER oraz Rootkit Unhooker (antirootkit.com) (ten drugi nie jest już wspierany). Oba narzędzia umożliwiają przeprowadzenie szybkiej, powierzchownej analizy stanu systemu pod różnym kątem. Jeżeli istnieje taka potrzeba mogą być również wykorzystywane do głębszej, bardziej specjalistycznej analizy.

Obecnie dostępnych jest co najmniej 20 darmowych narzędzi do zwalczania rootkitów, z których każdy opiera się na różnych podejściach do wykrywania rootkitów (zobacz z-oleg.com oraz www.securityfocus.com). Jednak bitwa nadal się toczy. Jednym z ostatnich trendów w ewolucji rootkitów jest wykorzystanie technologii Bluepill (tj. wirtualizacja sprzętowa), która nie może zostać wykryta przy użyciu obecnie dostępnych technologii. Na razie nie ma żadnych w pełni funkcjonalnych narzędzi do zwalczania rootkitów, które wykrywają rootkity wykorzystujące technologię Bluepill. Z drugiej strony nie są również znane żadne w pełni funkcjonalne szkodliwe programy, które wykorzystują tę technikę - jedynie kod typu "proof of concept".

Mimo to nadal trwają prace nad rozwojem wykrywania tych hipotetycznych zagrożeń. Wiadomo mi o dwóch projektach badawczych dotyczących takich rootkitów – rosyjski North Security Labs oraz amerykański Hypervista Technologies. Do tej pory Hypervista opublikował kilka teoretycznych informacji, podczas gdy North Security Labs umieścił wersję beta swojego narzędzia Hypersight Rootkit Detector do pobrania ze swojej strony. Projekt ten jest interesujący, mimo że nadal znajduje się w początkowym stadium.

Rootkity “proof of concept"

Do 2006 roku narzędzie do zwalczania rootkitów wykrywały większość rootkitów, a boom rootkitowy zaczął słabnąć. Naturalnie skłoniło to badaczy, zarówno czarnych jak i białych kapeluszy, do badania nowych technik, które byłyby niewykrywalne.

Większość badaczy skoncentrowało się na koncepcji wykorzystywania wirtualizacji sprzętowej (zintegrowanej z nowymi procesorami Intel i AMD) w celu przejęcia kontroli nad systemem operacyjnym. Metoda ta umożliwia stworzenie rootkitów, które nie mogą zostać wykryte przez współczesne narzędzia do zwalczania tego typu zagrożeń.

W 2006 roku opublikowano trzy takie rootkity "proof-of-concept": SubVirt ( www.eecs.umich.edu), BluePill (blackhat.com) oraz Vitriol ( www.blackhat.com ). W momencie pisania tego artykułu wykrywanie tych rootkitów pozostawało nierozwiązaną kwestią. Jednak jak dotąd rootkity te nie pojawiły się na wolności (zgodnie z naszą wiedzą).

Drugim głównym obszarem, na którym skupiają się badacze, są rootkity, które działają w sektorze startowym, nazywane bootkitami. Rootkity z tej grupy przejmują całkowitą kontrolę nad systemem podczas jego uruchamiania. Technika ta stanowi powrót do czasów wirusów sektora startowego z ery DOS-a. Pierwszym rootkitem “proof of concept" atakującym sektor startowy był eEye Bootroot ( www.blackhat.com), który pojawił się w 2005 roku. Vbootkit ( blackhat.com ), podobny rootkit “proof of concept", pojawił się w 2007 roku; został zaprezentowany jako projekt badawczy dotyczący "gorącego" w tym czasie tematu - bezpieczeństwa Visty.

Najnowsze trendy

Po stosunkowo długim okresie, w którym nie pojawiły się żadne nowe rootkity, rok 2008 przyniósł branży antywirusowej nowe wyzwania. Pojawiło się nowe szkodliwe oprogramowanie, które rzekomo infekowało sektor startowy. Znane jest pod wieloma nazwami: Sinowal, Mebroot, oraz StealthMBR. Większość rozwiązań antywirusowych będzie miało problemy z wykryciem go, nie mówiąc już o leczeniu zainfekowanych nim maszyn.

Rootkit ten, powszechnie zwany bootkitem ze względu na uruchamianie się podczas sekwencji rozruchu, opiera się na kodzie eEye Bootroot. Zasadniczo jest to nie tyle niezależny szkodliwy program, co narzędzie do ukrywania trojanów... dowolnych trojanów. W rezultacie, można wyciągnąć wniosek, że Sinowal jest współdzielony (prawdopodobnie za opłatą) w pewnych kręgach, oraz że jeszcze go zobaczymy.

Inną ważną techniką, która pojawiła się ostatnio, nie uzyskała jednak tak szerokiego rozgłosu, jest wykorzystanie CmRegisterCallback, funkcji stworzonych przez firmę Microsoft, aby pomóc programistom ukrywać obiekty w rejestrze. Technikę tę wykorzystuje wiele zaawansowanych szkodliwych programów, w tym Bulknet.

Mityczny rootkit

Pod koniec 2006 roku na forach poświęconych bezpieczeństwu wrzało od pogłosek na temat rzekomo nowego, niewykrywalnego rootkita - Rustock.c. Ten nowy rootkit miał być najnowszym tworem z rodziny spambotów Rustock. Półtora roku później badacze z rosyjskiej firmy antywirusowej Dr. Web ogłosili, że znaleźli próbkę rootkita Rustock.c i analizują jego procedurę rozprzestrzeniania się. Niestety, nie wszystkie szczegóły są znane - na chwilę obecną nie wiadomo, jak poważne w rzeczywistości jest to zagrożenie. Z danych firmy Dr. Web wynika, że rootkit ten został stworzony we wrześniu 2007 roku, a nie pod koniec 2006 roku.

Nie ma jednak wątpliwości, że Rustock.c nie jest niewykrywalny. Program nie wykorzystuje żadnych przełomowych technologii, które uniemożliwiłyby jego wykrycie. Chociaż rootkit ten obchodzi istniejące metody ochrony, wcale nie jest to takie trudne - wiele mniej znanych programów również potrafi ominąć środki bezpieczeństwa.

Rustock.c okazał się interesujący bardziej z punktu widzenia przepływu informacji niż ze względów technicznych. Pogłoski z końca 2006 roku były bezpodstawne, przygotowały jednak grunt dla przyszłych wydarzeń. Gdy w końcu pojawiła się prawdziwa próbka, wszyscy byli podekscytowani, że w końcu udało się zobaczyć tego "niewykrywalnego" rootkita - nawet jeśli w rzeczywistości Rustock.c nie jest szczególnie interesujący z technicznego punktu widzenia. Według mnie Rustock.c był ważny ze względu na reakcję, jaką wywołał w społeczności komputerowej, a nie dlatego, że stanowił duży technologiczny krok naprzód.

Więcej na temat historii rootkita Rustock.c można uzyskać na stronie: www.viruslist.com

Rootkity dla systemów innych niż Windows

Od czasu do czasu do laboratoriów antywirusowych trafiają próbki rootkitów stworzonych dla określonych celów, które atakują mniej popularne systemy uniksowe, takie jak Solaris. Zwykle spowodowane jest to tym, że dana organizacja nie monitorowała swoich serwerów, które zostały skonfigurowane dużo wcześniej i od tamtej pory nikt w nie nie ingerował. Nietrudno włamać się do takiego systemu i umieścić w nim rootkita, który przypadkowo zostaje wykryty po kilku latach, po tym jak "wyssano" z niego wiele poufnych informacji, powodując straty finansowe.

Powstało kilka rootkitów dla systemu Mac OS X firmy Apple; istnieje również narzędzie do zwalczania rootkitów przeznaczone dla tego systemu operacyjnego: OS X Rootkit Hunter. Ponadto, ponieważ OS X opiera się na Uniksie, niektóre rootkity dla systemu UNIX mogą zostać tak zmodyfikowane, aby działały również w systemie OS X. Ogólnie jednak nie jesteśmy świadkami żadnej istotnej ewolucji rootkitów dla Maka, ani poważnych zagrożeń w tej dziedzinie.

O ile mi wiadomo systemy operacyjne dla urządzeń mobilnych, takich jak Windows Mobile, Symbian itd., nie były atakowane przez rootkity. Istnieje jednak stosunkowo niewiele szkodliwych programów dla urządzeń z tymi systemami operacyjnymi, poza tym niewiele osób wykorzystuje dostępne obecnie rozwiązania antywirusowe, przez co zastosowanie technologii rootkit nie jest konieczne.

Prawie rootkity

W tym artykule postanowiłam nie omawiać pewnych szkodliwych programów typu proof of concept; programów tych nie można zaliczyć do rootkitów i większość badaczy nie określiłoby ich jako takie. Jeśli przyjmiemy, że rootkit to program, który obchodzi mechanizmy bezpieczeństwa systemów operacyjnych i ukrywa własną aktywność, opisane niżej szkodliwe oprogramowanie z pewnością znajduje się na granicy klasyfikacji.

Po pierwsze, istnieje szkodliwe oprogramowanie, które ukrywa się w systemie operacyjnym, jednak w "uczciwy" sposób: takie programy ani nie modyfikują systemu, ani nie obchodzą wbudowanych zabezpieczeń. Na przykład, istnieją szkodliwe programy, których ciała są zlokalizowane w strumieniach katalogowych lub plikowych. Istnieją też programy, które wykorzystują udokumentowane funkcje systemowe w celu zainstalowania mechanizmów przechwytywania zdarzeń. Programy te nie są klasyfikowane jako rootkity, mimo że w pewien sposób ukrywają się.

Po drugie, istnieją programy, które osiągają niewidzialność dzięki swojej wewnętrznej architekturze, np. robak CodeRed, który ani nie tworzy plików na dysku, ani żadnych procesów w pamięci.

Po trzecie, istnieją wyrafinowane techniki wprowadzania w błąd systemu operacyjnego. Szkodliwe oprogramowanie może wykorzystywać je nie do ukrywania śladów swojej aktywności, ale w celu "zagrzebania się" w systemie lub obejścia rozwiązań antywirusowych.

Rootkity - kilka myśli podsumowujących

Wymienione wyżej przypadki “graniczne" skłaniają do wniosku, że nie istnieje coś takiego jak szkodliwy rootkit, a raczej wiele technik ukrywania się wykorzystywanych w celu obejścia ochrony systemu oraz ukrycia programów w systemie. Jak każda inna potężna technologia, techniki te mogą zostać użyte z równą skutecznością zarówno w dobrym jak i złym celu. Na przykład proaktywne narzędzia do zwalczania rootkitów zwalczają ogień za pomocą ognia, wykorzystując te same podejścia co rootkity, takie jak przechwytywanie funkcji systemowych itd.

Wszystkie z tych technik można w mniejszym lub większym stopniu zaklasyfikować jako rootkity. Określenie, czym dokładnie jest rootkit, oznacza albo zastosowanie powszechnie przyjętej definicji, albo przyjęcie autorytarnej opinii mniejszości, tj. ekspertów.

Po co więc potrzebna jest dokładna definicja? Bez niej istnieje niebezpieczeństwo, że będziemy wdawali się w werbalne utarczki dotyczące bardziej lub mniej granicznych przypadków, takich jak incydenty, w których w różnych produktach wykrywane są tak zwane rootkity. Istotne jest, aby szczegółowo przeanalizować kod i techniki w każdym przypadku zamiast po prostu klasyfikować daną technikę jako rootkit, siejąc postrach i robiąc dużo hałasu wokół incydentu.

Na przykład tak zwany rootkit (www.pcworld.com, który został zidentyfikowany w oprogramowaniu Kaspersky Anti-Virus. Technika wykorzystana w tym produkcie, która została uznana za naruszenie bezpieczeństwa, polegała na umieszczeniu informacji o usłudze w strumieniach systemu plików, tj. przechowywaniu danych w obszarach systemu plików, których nie można bezpośrednio monitorować.

Czy technika ta stanowi obejście systemu operacyjnego? Nie - strumienie to udokumentowana funkcja systemu operacyjnego. Czy ukrywanie danych w tych strumieniach można uznać za szkodliwe działanie? Nie, w tym przypadku ukrywane są tylko informacje o usłudze. Czy technika ta stanowi lukę w zabezpieczeniach, tj. czy może być użyta w szkodliwym celu? Nie, szkodliwy użytkownik mógłby wykorzystać strumienie tylko w celu ukrycia szkodliwego kodu (technika ta została już zaimplementowana w wielu szkodliwych programach), jest to jednak luka w zabezpieczeniu systemu operacyjnego, nie w aplikacji. A zatem... gdzie jest rootkit? Na pewno nie w programie Kaspersky Anti-Virus, ani w żadnym innym produkcie, w którym lukę w zabezpieczeniach systemu można pomylić z luką w zabezpieczeniu aplikacji.

Incydent z Sony DRM to trochę inna sprawa. Techniki wykorzystywane w zabezpieczeniu przed kopiowaniem stworzyły lukę w takim sensie, że pozwalały szkodliwym użytkownikom nazwać swoje szkodliwe oprogramowanie w taki sposób, aby było niewidoczne. Obecnie wiemy o kilku szkodliwych programach, które wykorzystują tą lukę, jednak uczciwie mówiąc, szkodliwe oprogramowanie pojawiło się już po tym, jak wykryto i przeanalizowano tę lukę.

Poniższy wykres pokazuje przebieg zdarzeń od momentu pojawienia się prekursorów rootkitów, poprzez badania, pojawienie się rootkitów na wolności oraz powstały w związku z tym szum w społeczności bezpieczeństwa IT.

Kliknij, aby powiększyć enlarge.gif
Rootkity na przestrzeni czasu (kliknij, aby powiększyć)

Wniosek

Ogólnie można powiedzieć, że ewolucja rootkitów przebiegała podobnie do ewolucji programów spyware. Najpierw, rootkity zostały zidentyfikowane jako oddzielna klasa szkodliwego oprogramowania. Następnie powstał duży szum medialny, który przyczynił się do powstania ogromnej liczby narzędzi i produktów do zwalczania rootkitów oraz zauważalnej reakcji ze strony branży antywirusowej. Obecnie zarówno rootkity, jak oprogramowanie spyware włączyły się w główny nurt szkodliwego oprogramowania i nie wzbudzają już tak dużych emocji. Jednak koncepcja obchodzenia funkcji systemowych w celu ukrycia czegoś nadal jest wykorzystywana i z pewnością pojawią się zagrożenia implementujące techniki ukrywania się.

Żródło:
Kaspersky Lab