Rootkity. Sabotowanie Jądra Systemu Windows

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 25

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

Rootkity. Sabotowanie
jdra systemu Windows
Autorzy: Greg Hoglund, Jamie Butler
Tumaczenie: Wojciech Moch
ISBN: 83-246-0257-7
Tytu oryginau: Rootkits: Subverting the Windows Kernel
Format: B5, stron: 312

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

Chcesz ochroni swj system? Poznaj jedno z najpowaniejszych zagroe


Sposb dziaania rootkitw
Pisanie rootkitw i narzdzi chronicych przed nimi
Wykrywanie rootkitw
Rootkit to zestaw programw i kodw pozwalajcy hakerowi na niewykrywalny
dostp do komputera, a tym samym na korzystanie z cudzego systemu operacyjnego.
Narzdzie takie mona stworzy, znajc luki w zabezpieczeniach jdra systemu
operacyjnego i dysponujc odpowiednimi umiejtnociami. Ale mona rwnie uchroni
si przed jego dziaaniem, co dla osoby odpowiedzialnej za bezpieczestwo komputera
jest zdecydowanie waniejsze.
Dziki ksice Rootkity. Sabotowanie jdra systemu Windows poznasz swojego
przeciwnika i nauczysz si z nim walczy, tworzc wasny arsena. Greg Hoglund
i James Butler przedstawiaj sposoby, z jakich korzystaj hakerzy, aby wamywa si
do komputerw i uywa ich bez wiedzy wacicieli. Ksika opisuje szczegy
sabotowania jdra systemw Windows XP i Windows 2000 oraz koncepcje, ktre
mona zastosowa w praktycznie kadym systemie operacyjnym od Windows Server
2003, poprzez Linuksa, a po inne systemy uniksowe. Czytajc t ksik, poznasz
techniki programowania rootkitw oraz tworzenia systemw obronnych.
Zasada dziaania rootkitw
Sposoby wprowadzania kodu do jdra systemu
Tworzenie rootkitw
Manipulowanie obiektami jdra systemu
Uzyskiwanie bezporedniego dostpu do sterownikw sprztu
Wykorzystywanie w rootkitach pocze sieciowych
Wykrywanie rootkitw w systemie
Jeli zajmujesz si bezpieczestwem komputerw i danych,
koniecznie przeczytaj t ksik

O autorach ....................................................................................... 9
O okadce ....................................................................................... 11
Wstp ............................................................................................ 13
Rozdzia 1. Nie zostawi ladu .......................................................................... 17

Zrozumienie motyww atakujcego ................................................................................18


Znaczenie niewidzialnoci .........................................................................................18
Kiedy nie trzeba si ukrywa? ...................................................................................19
Czym jest rootkit? ............................................................................................................19
Dlaczego istniej rootkity? ...............................................................................................20
Zdalna kontrola ..........................................................................................................21
Podsuchiwanie oprogramowania ..............................................................................21
Uprawnione uycie rootkitw ....................................................................................21
Jak dugo istniej rootkity? ..............................................................................................22
Jak dziaaj rootkity? ........................................................................................................24
Poprawianie ................................................................................................................24
Jaja wielkanocne ........................................................................................................24
Spyware ......................................................................................................................24
Modyfikacje kodw rdowych ...............................................................................25
Legalno modyfikowania oprogramowania .............................................................26
Czym nie jest rootkit? ......................................................................................................26
Rootkit nie jest exploitem ..........................................................................................26
Rootkit nie jest wirusem ............................................................................................27
Rootkity i bdy w oprogramowaniu ................................................................................28
Eksploity nadal s wielkim problemem .....................................................................30
Ofensywne technologie rootkitw ...................................................................................32
HIPS ...........................................................................................................................32
NIDS ..........................................................................................................................32
Obchodzenie systemw IDS i IPS .............................................................................33
Pomijanie narzdzi wykrywajcych ..........................................................................34
Wnioski ............................................................................................................................35

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R00_02_spis.doc

Rootkity. Sabotowanie jdra systemu Windows

Rozdzia 2. Sabotowanie jdra .......................................................................... 37

Wane skadniki jdra systemu ........................................................................................38


Projekt rootkitu .................................................................................................................38
Wprowadzenie kodu do jdra ...........................................................................................41
Tworzenie sterownika urzdze dla systemw Windows ................................................42
Device Driver Development Kit ................................................................................43
rodowisko kompilacji ..............................................................................................43
Pliki ............................................................................................................................43
Uruchamianie narzdzia Build ...................................................................................45
Procedura usuwania sterownika .................................................................................45
adowanie i usuwanie sterownika ...................................................................................46
Zapisywanie komunikatw debugowania do dziennika ...................................................47
Rootkity czce tryb uytkownika z trybem jdra ..........................................................48
Pakiety da wejcia-wyjcia ...................................................................................48
Tworzenie uchwytu pliku ..........................................................................................51
Dodawanie dowizania symbolicznego .....................................................................53
adowanie rootkitu ..........................................................................................................54
Szybka i nieadna metoda adowania sterownika ......................................................54
Jedyna suszna metoda adowania sterownika ...........................................................56
Dekompresowanie pliku .sys z zasobw ...........................................................................57
Ponowne uruchomienie ....................................................................................................59
Wnioski ............................................................................................................................61

Rozdzia 3. Poczenia sprztowe ...................................................................... 63

Piercie zerowy ..............................................................................................................64


Tablice, tablice i jeszcze wicej tablic .............................................................................66
Strony pamici ..................................................................................................................67
Szczegy kontroli dostpu do pamici .....................................................................68
Stronicowanie i przeksztacanie adresw ..................................................................69
Przeszukiwanie tablic stron ........................................................................................70
Pozycje katalogu stron ...............................................................................................72
Pozycja tablicy stron ..................................................................................................72
Do pewnych wanych tablic dostp moliwy jest wycznie
w trybie tylko do odczytu ........................................................................................73
Wiele procesw, wiele katalogw stron ....................................................................73
Procesy i wtki ...........................................................................................................74
Tablice deskryptorw pamici .........................................................................................75
Globalna tablica deskryptorw ..................................................................................75
Lokalna tablica deskryptorw ....................................................................................75
Segmenty kodu ...........................................................................................................75
Bramki wywoa ........................................................................................................76
Tablica deskryptorw przerwa .......................................................................................76
Inne typy bram ...........................................................................................................79
Tablica rozdziau usug systemowych ..............................................................................79
Rejestry sterujce .............................................................................................................80
Zerowy rejestr sterujcy (CR0) ..................................................................................80
Pozostae rejestry sterujce ........................................................................................80
Rejestr EFlags ............................................................................................................81
Systemy wieloprocesorowe ..............................................................................................81
Wnioski ............................................................................................................................82

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R00_02_spis.doc

Spis treci

Rozdzia 4. Prastara sztuka tworzenia punktw zaczepienia ................................ 85

Punkty zaczepienia w przestrzeni uytkownika ...............................................................85


Punkty zaczepienia w tablicy importowanych adresw .................................................87
Punkty zaczepienia wbudowane w funkcje ...............................................................88
Wstrzykiwanie biblioteki DLL do procesu dziaajcego w przestrzeni uytkownika .......90
Punkty zaczepienia w jdrze systemu ..............................................................................94
Tworzenie punktw zaczepienia w tablicy deskryptorw usug systemowych .........95
Tworzenie punktw zaczepienia w tablicy deskryptorw przerwa .......................102
Tworzenie punktw zaczepienia w gwnej tablicy funkcji pakietw IRP
w ramach obiektu sterownika urzdzenia .............................................................106
Hybrydowe punkty zaczepienia .....................................................................................115
Dostp do przestrzeni adresowej procesu ................................................................115
Pami dla punktw zaczepienia .............................................................................119
Wnioski ..........................................................................................................................120

Rozdzia 5. Wprowadzanie poprawek w trakcie pracy ...................................... 121

Tworzenie atek obejcia ................................................................................................122


Zmiana przepywu kodu wykonana za pomoc rootkitu MigBot ............................123
Sprawdzanie bajtw funkcji .....................................................................................124
Zapamitywanie nadpisywanych instrukcji .............................................................126
Uywanie pamici ze zbioru niestronicowanego .....................................................128
Poprawianie adresu w czasie pracy ..........................................................................128
Szablony skokw ............................................................................................................131
Przykad z punktem zaczepienia w tablicy przerwa ..............................................132
Rne wersje podanej metody ........................................................................................137
Wnioski ..........................................................................................................................138

Rozdzia 6. Sterowniki warstwowe .................................................................. 141

Podsuchiwanie klawiatury ............................................................................................142


Pakiety IRP i umiejscowienie na stosie ...................................................................144
Rootkit KLOG analiza ..............................................................................................146
Sterownik filtra plikw ...................................................................................................156
Wnioski ..........................................................................................................................167

Rozdzia 7. Bezporednie manipulacje na obiektach jdra ................................. 169

Zalety i wady metodologii DKOM ................................................................................170


Okrelanie wersji systemu operacyjnego .......................................................................171
Okrelanie wersji systemu w trybie uytkownika ...................................................172
Okrelanie wersji systemu w trybie jdra ................................................................173
Odczytywanie wersji systemu operacyjnego z rejestru .............................................174
Komunikacja ze sterownikiem z przestrzeni uytkownika ............................................175
Ukrywanie si za pomoc metodologii DKOM .............................................................178
Ukrywanie procesw ...............................................................................................179
Ukrywanie sterownikw ..........................................................................................183
Problemy z synchronizacj ......................................................................................186
Uprzywilejowanie tokena i podnoszenie grupy .............................................................190
Modyfikowanie tokena procesu ...............................................................................191
Oszukiwanie podgldu zdarze systemu Windows .................................................202
Wnioski ..........................................................................................................................205

Rozdzia 8. Manipulacje na sprzcie ................................................................ 207

Po co nam sprzt? ...........................................................................................................209


Modyfikowanie firmwareu ...........................................................................................210
Dostp do sprztu ...........................................................................................................211
Adresy sprztowe .....................................................................................................211
Dostp do sprztu to co innego ni dostp do pamici ..........................................212
Problemy z czasem ..................................................................................................212

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R00_02_spis.doc

Rootkity. Sabotowanie jdra systemu Windows


Magistrala wejcia-wyjcia ......................................................................................213
Dostp do BIOS-u ....................................................................................................214
Adresowanie urzdze PCI i PCMCIA ...................................................................215
Przykad: Dostp do kontrolera klawiatury ....................................................................216
Ukad kontrolera klawiatury 8259 ...........................................................................216
Zmiana ustawie diod LED .....................................................................................217
Twardy restart ..........................................................................................................221
Monitor klawiatury ..................................................................................................222
Jak daleko mona si posun? Aktualizacja mikrokodu ..............................................227
Wnioski ..........................................................................................................................228

Rozdzia 9. Tajne kanay komunikacji .............................................................. 231

Zdalne sterowanie, kontrola i wydobywanie danych .....................................................232


Zmienione protokoy TCP/IP .........................................................................................233
Strze si wzorcw ruchu sieciowego .....................................................................234
Nie wysyaj danych jawnie ...................................................................................235
Niech czas pracuje na Twoj korzy ......................................................................236
Ukrywaj si w daniach DNS ................................................................................236
Uywaj steganografii w komunikatach ASCII ........................................................236
Uywaj innych kanaw TCP/IP ..............................................................................237
Wykorzystanie w rootkicie interfejsu TDI ........................................................................238
Tworzenie struktury adresu ......................................................................................239
Tworzenie obiektu adresu lokalnego .......................................................................240
Tworzenie punktu kocowego TDI z kontekstem ...................................................243
czenie punktu kocowego z adresem lokalnym ..................................................245
czenie z serwerem zdalnym (wysyanie potwierdze TCP) ................................247
Wysyanie danych do serwera zdalnego ..................................................................248
Manipulacje dokonywane na sieci .................................................................................250
Implementowanie surowych gniazd sieciowych w systemie Windows XP .........251
Wizanie z interfejsem .............................................................................................252
Podgldanie pakietw za pomoc surowego gniazda ..............................................252
Rozbudowane podgldanie z wykorzystaniem surowych gniazd ............................253
Wysyanie pakietw przez surowe gniazdo .............................................................254
Wykuwanie rde ...................................................................................................254
Pakiety odbijane .......................................................................................................254
Wykorzystanie w rootkicie interfejsu NDIS ..................................................................255
Rejestrowanie protokou ..........................................................................................256
Wywoania zwrotne sterownika protokou ..............................................................260
Przenoszenie caych pakietw .................................................................................263
Emulacja komputera .......................................................................................................268
Tworzenie wasnego adresu MAC ...........................................................................269
Obsuga protokou ARP ...........................................................................................269
Brama IP ..................................................................................................................271
Wysyanie pakietu ....................................................................................................272
Wnioski ..........................................................................................................................275

Rozdzia 10. Wykrywanie rootkitw .................................................................. 277

Wykrywanie obecnoci ..................................................................................................278


Strae u bram ...........................................................................................................278
Przeszukiwanie pokoi ...........................................................................................280
Poszukiwanie punktw zaczepienia .........................................................................281
Wykrywanie zachowania ...............................................................................................289
Wykrywanie ukrytych plikw i kluczy Rejestru .....................................................290
Wykrywanie procesw ukrytych .............................................................................290
Wnioski ..........................................................................................................................293

Skorowidz ..................................................................................... 295

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R00_02_spis.doc

Rozdzia 1.

Subtelny i dyskretny, ekspert nie zostawia ladw;


bosko tajemniczy, jest niesyszalny.
Jest zatem wadc losu swego przeciwnika.
Sun Tzu

Wiele ksiek omawia sposoby penetracji systemw komputerowych i oprogramowania.


Liczni autorzy zajmowali si si ju kwestiami uruchamiania zoliwych skryptw, tworzenia przepenie bufora i ciekawych skryptw powoki. Do najwaniejszych przykadw takich ksiek zaliczy mona: Exploiting Software1, The Shellcoders Handbook2
i Hacking Exposed3.
Ta ksika jest inna. Zamiast zajmowa si w niej technikami atakw, opisywa bdziemy sposoby atakujcych na pozostanie w naszych systemach po udanym wamaniu.
Ten temat omawiany jest w bardzo niewielu publikacjach, z wyjtkiem tych zajmujcych
si analiz przejtych systemw. W przypadku tych ostatnich najczciej opisywane
s metody defensywne, czyli wykrywanie obecnoci wamywacza i wsteczna inynieria
zoliwego kodu. W tej ksice zajmiemy si znacznie bardziej agresywnymi zachowaniami. Omawia bdziemy sposoby penetrowania systemu komputerowego uniemoliwiajce wykrycie tego zdarzenia. W kocu udana penetracja systemu nie moe zosta
wykryta.
W niniejszym rozdziale wprowadzimy Czytelnika w wiat technologii rootkitw i oglnych zasad ich dziaania. Rootkity stanowi tylko jeden z elementw spektrum zagroe dla naszego komputera, ale s one niezbdnym elementem wielu typw atakw.
Rootkity nie s zoliwe same z siebie, ale mog by uywane w ramach zoliwych
programw. Poznanie technologii rootkitw jest niezbdne kademu, kto chce ochroni
swj system przed nowoczesnymi technikami atakw.
1

G. Hoglund i G. McGraw, Exploiting Software: How to Break Code, Boston, Addison-Wesley, 2004.
Prosz zajrze rwnie na stron www.exploitingsoftware.com.
J. Koziol, D. Lichtfield, D. Aitel, C. Anley, S. Eren, N. Mehta i R. Hassell, The Shellcoders Handbook,
Nowy Jork, John Wiley & Sons, 2004.
S. McClure, J. Scambray i G. Kurtz, Hacking Exposed, Nowy Jork, McGraw-Hill, 2003.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

17

18

Rootkity. Sabotowanie jdra systemu Windows

Zrozumienie motyww atakujcego


Tylne drzwi do komputera stanow tajny sposb na dostp do tej maszyny. W wielu
hollywoodzkich filmach tylne drzwi przedstawiane s jako tajne haso lub sposb na
uzyskanie dostpu do bardzo cile chronionego systemu komputerowego. Nie s to
jednak tylko wymysy filmowcw. Tylne drzwi s niezwykle powanym zagroeniem
dla naszych komputerw i mog by wykorzystywane do kradziey danych, monitorowania uytkownikw i przeprowadzania atakw w ramach sieci komputerowych.
Atakujcy moe mie wiele powodw do pozostawienia w naszym komputerze tylnego
wejcia. Wamanie do systemu to naprawd cika praca, dlatego po przeprowadzeniu
udanego wamania kady atakujcy bdzie chcia utrzyma zajte pozycje. Moe te
chcie wykorzysta przechwycony komputer do przeprowadzenia atakw na kolejne
komputery w danej sieci.
Gwnym powodem, dla ktrego atakujcy staraj si wama do naszych komputerw,
jest ch zbierania informacji. W tym celu atakujcy bdzie monitorowa nacinicia
klawiszy, obserwowa nasze zachowania, przeglda pakiety przesyane przez sie
i w ten sposb potajemnie wydobywa dane z naszego systemu. Te wszystkie operacje
wymagaj jednak wczeniejszego przygotowania tylnego wejcia do tego systemu.
Dlatego wanie atakujcy bdzie chcia pozostawi w przechwyconym systemie oprogramowanie pozwalajce mu na zbieranie informacji.
Atakujcy moe te wama si do naszego komputera w celu jego zniszczenia i w zwizku z tym pozostawi w komputerze tak zwan bomb logiczn, ktra ma za zadanie
zniszczy komputer w okrelonym czasie. Taka bomba w czasie oczekiwania musi jak
najlepiej ukrywa si w systemie. Jest to zatem przypadek, w ktrym atakujcy nie
musi tworzy w systemie tylnego wejcia, ale i tak pozostawia ukrywajce si w nim
oprogramowanie.

Znaczenie niewidzialnoci
Jeeli pozostawiony program tworzcy tylne wejcia ma unikn wykrycia, to musi
korzysta z technik niewidzialnoci. Niestety, wiele z dostpnych publicznie hakerskich programw tego typu nie ukrywa si zbyt dobrze. W takich programach le
dziaa moe wiele elementw, co najczciej wynika z tego, e ich twrcy staraj si
w nie wbudowa wszystko, wcznie z kuchennym zlewem. Przyjrzyjmy si na przykad
programom Back Orfice lub NetBus. Kady z nich oferuje imponujc list funkcji,
wrd ktrych znajdziemy rwnie tak niedorzeczne jak wysuwanie tacki napdu
CD-ROM. Taka funkcja moe si przyda przy robieniu komu zoliwoci w biurze,
ale z ca pewnoci nie przyda si w czasie planowania profesjonalnego ataku4.
Jeeli atakujcy nie bdzie dostatecznie ostrony, to moe niechccy ujawni swoj
obecno w sieci i w ten sposb narazi na szwank cao operacji. Z tego powodu
4

W tym przypadku profesjonalny oznacza pewnego rodzaju usankcjonowane dziaanie wykonywane


na przykad przez suby bezpieczestwa.

18 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

19

profesjonalnie przeprowadzony atak wymaga bardzo specjalizowanego i automatycznie


dziaajcych programw typu tylne wejcie, czyli wykonujcych wycznie jedn
rzecz. Dziki temu mona mie pewno, e uzyskamy waciwe wyniki.
Jeeli osoby obsugujce komputery zaczyby podejrzewa, e kto wama si do sieci
ich komputerw, to mogyby rozpocz intensywne przeszukiwanie sieci, szukajc
w niej nietypowych dziaa lub programw typu tylne wejcie5. Najlepszym sposobem przeciwdziaania takim ledztwom jest skuteczne ukrywanie si. Jeeli nikt nie
bdzie podejrzewa ataku, to najprawdopodobniej nie zacznie te przeszukiwa systemu.
Atakujcy maj do dyspozycji wiele metod ukrywania si. Niektrzy mog ogranicza
si do absolutnego minimum i po prostu jak najbardziej ogranicza generowany ruch
w sieci oraz rezygnowa z zapisywania plikw na dysku. Inni mog natomiast uywa
w swoich dziaaniach plikw, ale jednoczenie mog stosowa najrniejsze techniki
utrudniajce przeprowadzenie ledztwa w komputerze. Jeeli techniki ukrywania si
w systemie stosowane bd prawidowo, to na zainfekowanym komputerze praktycznie nigdy nie zostanie przeprowadzone adne ledztwo, poniewa takie wamanie nie
zostanie nigdy zauwaone. Nawet jeeli takie ledztwo zostanie przeprowadzone z powodu rnorakich podejrze, to dobre techniki ukrywania rootkitu mog spowodowa,
e nawet dokadne ledztwo nie wykryje wamania.

Kiedy nie trzeba si ukrywa?


Czasami wamywacz wcale nie musi si ukrywa w systemie. Na przykad w sytuacji,
gdy chce dosta si do danego komputera i korzysta z niego tylko tak dugo, a uda
si mu wykra pewne dane, takie jak zbir adresw e-mail, to najprawdopodobniej nie
bdzie si przejmowa tym, czy takie wamanie zostanie kiedykolwiek zauwaone.
Nie ma potrzeby ukrywania si rwnie w sytuacji, gdy chcemy po prostu zakci dziaanie zdalnego komputera. Taki komputer moe na przykad sterowa wrogim systemem przeciwlotniczym. Nie trzeba si w tej sytuacji ukrywa, poniewa zniszczenie
systemu jest ju cakowicie wystarczajce do osignicia naszych celw. W wikszoci
przypadkw zniszczenie systemu bdzie i tak bardzo oczywist (i niezwykle kopotliw)
informacj dla naszej ofiary. Jeeli to takie ataki chciaby przeprowadza, drogi Czytelniku, to niestety, nie jest to ksika dla Ciebie.
Skoro znamy ju choby najwaniejsze motywy atakujcych, moemy w pozostaej
czci rozdziau bardzo oglnie pomwi o samych rootkitach, w tym rwnie o podstawach zasad ich dziaania.

Czym jest rootkit?


Termin rootkit istnieje ju od mniej wicej dziesiciu lat. Rootkit jest zestawem
(ang. kit) skadajcym si z niewielkich, ale bardzo uytecznych programw pozwalajcych
5

Jako dobr ksik omawiajc podobne ledztwa mona poleci pozycj D. Farmera i W. Venema,
Fornesic Discovery (Boston: Addison-Wesley, 2004).

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

19

20

Rootkity. Sabotowanie jdra systemu Windows

atakujcemu na uzyskanie dostpu administratora (ang. root), czyli najbardziej uprzywilejowanego uytkownika w systemie. Innymi sowy, rootkit jest zestawem programw
i kodu pozwalajcym na trwa i niewykrywaln obecno w obcym komputerze.
W podanej definicji rootkitu najwaniejsze jest sowo niewykrywalna. Wikszo
technologii i rozwiza stosowanych w rootkitach przeznaczonych jest do ukrywania
jego kodu i danych w systemie. Na przykad wiele rootkitw jest w stanie ukry okrelone pliki i katalogi. Inne funkcje rootkitw obejmuj najczciej zdalny dostp do
komputera oraz podsuchiwanie jego uytkownikw, czyli na przykad przegldanie
pakietw przesyanych w sieci. Poczenie tych wszystkich funkcji moe stanowi
nokautujcy cios dla wszelkich systemw zabezpieczajcych.
Rootkity same z siebie nie s ze i nie zawsze wykorzystywane s przez przestpcw.
Bardzo wane jest, eby przyswoi sobie fakt, e rootkit jest jedynie technologi. Dobre
lub ze intencje jej uycia mog mie tylko wykorzystujcy j ludzie. Istnieje wiele
poytecznych programw komercyjnych pozwalajcych na zdalne administrowanie
systemem, a nawet funkcje podsuchiwania. W niektrych z tych programw stosowane
s nawet funkcje ukrywajce, a zatem pod wieloma wzgldami s one podobne do
rootkitw. W ramach dyskusji prawniczych termin rootkit moe by stosowany do
opisywania usankcjonowanego programu typu tylne wejcie, ktry legalnie instalowany jest na danym komputerze na wniosek organw pastwowych sdu (takie sprawy
rozpatrywa bdziemy w punkcie Uprawnione uycie rootkitw). Wielkie korporacje
rwnie mog stosowa rootkity do monitorowania i wymuszania prawidowego wykorzystania komputerw pracownikw.
Postaramy si przedstawi umiejtnoci i techniki naszego przeciwnika, przedstawiajc
rootkity z perspektywy atakujcego. W ten sposb znacznie podniesiemy nasze umiejtnoci w zabezpieczaniu si przed takimi zagroeniami. Niniejsza ksika pomoe
rwnie wszystkim prawym twrcom rootkitw, przedstawiajc techniki, z ktrych
bd mogli oni skorzysta.

Dlaczego istniej rootkity?


Rootkity to wzgldnie nowy wynalazek, cho szpiegostwo jest rwnie stare, jak i sama
wojna. Rootkity powstay z tych samych powodw co pluskwy do podsuchw. Jedni
ludzie chc zobaczy lub kontrolowa to, co robi inni ludzie. Ze wzgldu na cigle
rosnc ilo przetwarzanych danych, komputery stay si naturalnym celem takich
atakw.
Rootkity przydaj si tylko wtedy, gdy chcemy utrzyma nasz ciko uzyskany dostp
do systemu. Jeeli chodzi nam tylko o wykradzenie pewnych danych i porzucenie komputera, to naprawd instalowanie rootkitu nie ma sensu. Co wicej, zainstalowanie
rootkitu sprawia, e zwikszamy prawdopodobiestwo wykrycia naszego wamania.
Jeeli uda si nam wykra pewne dane i dokadnie wyczyci system, to najprawdopodobniej nie zostawimy adnych ladw naszej aktywnoci.

20 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

21

Rootkity speniaj zatem dwie podstawowe funkcje: umoliwiaj zdaln kontrol nad
komputerem i podsuchiwanie innych programw.

Zdalna kontrola
Zdalna kontrola nad komputerem moe obejmowa kontrol nad plikami, wymuszanie
ponownego uruchomienia komputera lub niebieskich ekranw mierci, a nawet umoliwienie dostpu do wiesza polece (czyli cmd.exe lub /bin/sh). Na rysunku 1.1 przedstawiony zosta przykad menu polece rootkitu. Takie menu daje nam przegld funkcji
oferowanych przez rootkit.
Rysunek 1.1.
Menu rootkitu

Podsuchiwanie oprogramowania
Podsuchiwanie oprogramowania pozwala na obserwowanie operacji wykonywanych
przez uytkownikw komputera. Oznacza to przegldanie pakietw sieciowych, przechwytywanie nacini klawiszy i czytanie wysyanych e-maili. Atakujcy moe wykorzystywa te techniki do przechwytywania hase i zaszyfrowanych plikw, a nawet
kluczy szyfrujcych.

Uprawnione uycie rootkitw


Jak ju wspominalimy wczeniej, rootkity mog by te uywane jak najbardziej legalnie. Na przykad mog by stosowane przez agencje chronice prawo w celu zbierania
informacji na podobnej zasadzie, na jakiej stosuje si podsuchy. Takiego rozwizania
mona uy w zwizku z kadym przestpstwem, w ktrym wykorzystywany jest komputer. Chodzi tu o wamania komputerowe, tworzenie i dystrybucja dziecicej pornografii, piractwo oprogramowania lub muzyki.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

21

22

Rootkity. Sabotowanie jdra systemu Windows

Bro elektroniczna
Co prawda rootkity s czsto stosowane jako bro elektroniczna, jednak nie jest to
ich podstawowe zastosowanie.
Wojny tocz si na wielu frontach, przy czym front ekonomiczny z ca pewnoci
jest jednym z waniejszych. Od zakoczenia drugiej wojny wiatowej, przez cay czas
zimnej wojny, Zwizek Radziecki tworzy wiele grup zajmujcych si zbieraniem informacji na temat technologii rozwijanych w Stanach Zjednoczonych6.
Po wykryciu kilku takich grup w USA podsunito im faszywe plany, oprogramowanie
i materiay. W jednym z opublikowanych wypadkw to wanie zoliwe modyfikacje
oprogramowania zostay uznane za przyczyn wybuchu gazocigu na Syberii7. Eksplozja ta zostaa sfotografowana przez satelity, a eksperci okrelali j jako najbardziej
przeraajcy wybuch nienuklearny, jaki kiedykolwiek zosta zaobserwowany z przestrzeni kosmicznej8.

Rootkity wykorzystywane s rwnie w dziaaniach wojennych. Potencjay militarne


rnych pastw w znaczcym stopniu bazuj na sprzcie komputerowym. Jeeli te
komputery przestan dziaa, to z pewnoci wpynie to w obozie przeciwnika na cykl
podejmowania decyzji i skuteczno dziaania. Zalet wykorzystywania atakw komputerowych (w stosunku do atakw konwencjonalnych) jest ich mniejszy koszt, pene
bezpieczestwo onierzy i to, e nie powoduj one prawie adnych dodatkowych
zniszcze, a w wikszoci przypadkw nie s przyczyn absolutnie adnych trwaych
uszkodze. Na przykad, jeeli zbombardowalibymy wszystkie elektrownie w pewnym
kraju, to ich odbudowa pochonaby ogromn ilo rodkw. Jeeli jednak udaoby si
nam programowo unieszkodliwi sie dystrybucji energii, to w tym kraju nadal brakowaoby energii, ale powstae szkody nie byyby trwae, a ich usunicie nie byoby kosztowne.

Jak dugo istniej rootkity?


Jak ju mwilimy wczeniej, rootkity to wzgldnie nowe rozwizanie. Wikszo
metod stosowanych w nowoczesnych rootkitach nie zmienia si od lat 80. Na przykad
modyfikowanie tablic systemowych, pamici i logiki programw. Pod koniec lat 80.
techniki te wykorzystywane byy przez wirusy, ktre ukryway si przed skanerami
antywirusowymi. W tamtych czasach wirusy rozprzestrzeniay si za porednictwem
dyskietek i BBS-w.
Pniej Microsoft wprowadzi system Windows NT, w ktrym model pamici zosta
zmodyfikowany tak, e normalne programy uytkownika nie mogy ju modyfikowa
tablic systemowych. Powsta wtedy pewien zastj w rozwoju technologii wirusw,
poniewa aden z ich twrcw nie korzysta z jdra nowego systemu.
6

7
8

G. Weiss The Farewell Dossier w Studies in Intelligence (Waszyngton: CIA, Center for the Study
of Intelligence, 1996), dostpny na stronie www.cia.gov/csi/studies/96unclass/farewell.thml.
Co sugeruje, e eksplozja zostaa spowodowana przez sabota oprogramowania.
D. Hoffman, Zimna wojna zaognia si jeszcze bardziej w momencie, gdy w wyniku sabotau
w powietrze wylecia sowiecki rurocig., Sydney Morning Herald, 28 lutego 2004.

22 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

23

Pniej coraz wiksz popularno zacz zdobywa internet, w ktrym dominoway


systemy uniksowe. Wikszo komputerw podczonych do internetu dziaaa pod
kontrol tych systemw, w zwizku z czym wirusy byy prawdziw rzadkoci. Mniej
wicej w tym samym czasie zaczy powstawa robaki sieciowe. Wraz z powstaniem
pierwszego robaka o nazwie Morris Worm wiat komputerw stan przed zagroeniem
wykorzystywania bdw w oprogramowaniu (ang. software exploits)9. Na pocztku
lat 90. wielu hakerw poznao metody wyszukiwania i wykorzystywania bdw przepenienia bufora, ktre s bomb nuklearn wszystkich programw. Mimo to rodowisko twrcw wirusw przez prawie dekad nie chciao zastosowa tej techniki.
Na pocztku lat 90. haker mg si wama do systemu, ustanowi w nim przyczek,
a nastpnie wykorzysta zdobyty wanie komputer do zaatakowania kolejnego komputera. Po udanym wamaniu do komputera musia jednak w jaki sposb zapewni
sobie stay dostp do niego. Tak wanie narodziy si rootkity. Pocztkowo rootkity
byy prostymi programami tworzcymi w komputerze tylne wejcie dla swoich
twrcw, ale prawie wcale nieukrywajcymi si w systemie. W niektrych przypadkach zastpoway one najwaniejsze pliki systemowe ich zmodyfikowanymi wersjami,
ktre ukryway pewne pliku lub procesy. Prosz sobie wyobrazi program ls, ktry
przeznaczony jest do wypisywania plikw i katalogw. Rootkit pierwszej generacji
najprawdopodobniej podmieniby ten program wersj, ktra ukrywaaby plik o nazwie
dane_hakera. Dziki temu haker mgby spokojnie zapisywa na dysku swojej ofiary
wszystkie zgromadzone dane, zapisujc je do tego pliku. Zmodyfikowana wersja programu ls do dobrze ukrywaaby obecno tego pliku na dysku.
Administratorzy systemw zareagowali w tamtych czasach programami takimi jak
Tripwire10, ktre wykryway ewentualne podmiany okrelonych plikw. Kontynuujc
nasz poprzedni przykad, programy zabezpieczajce, takie jak Tripwire, mogyby
sprawdzi zawarto pliku ls i stwierdzi, e zosta on zmodyfikowany, co rwnaoby
si z wykryciem trojana.
Naturaln odpowiedzi atakujcych byo przeniesienie si do jdra systemu. Pierwsze
rootkity atakujce jdro zostay napisane dla systemw uniksowych. Po zainfekowaniu
jdra systemu takie rootkity mogy sabotowa dziaanie dowolnego programu zabezpieczajcego dziaajcego na danym komputerze. Innymi sowy, pliki trojanw przestay
by ju potrzebne. Bezpieczestwo rootkitu mogo by zapewnione przez odpowiednie zmodyfikowanie jdra systemu. Technika ta nie rnia si waciwie niczym od
technik stosowanych w wirusach pod koniec lat 80. w celu ukrywania si przez oprogramowaniem antywirusowym.

Robert Morris przygotowa pierwszego udokumentowanego robaka internetowego. Wicej informacji


na temat tego robaka znale mona w ksice K. Hafnera i J. Markoffa, Cyberpunkt: Outlaws and
hackers on the Computer Frontier, (Nowy Jork, Simon & Schuster, 1991).

10

www.tripwire.org.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

23

24

Rootkity. Sabotowanie jdra systemu Windows

Jak dziaaj rootkity?


Rootkity w swoim dziaaniu wykorzystuj prost koncepcj modyfikacji. Mwic oglnie, oprogramowanie przygotowane jest do tego, eby podejmowa okrelone decyzje
na podstawie okrelonych danych. Rootkit jest w stanie zlokalizowa i zmodyfikowa
to oprogramowanie tak, eby podejmowao niewaciwe decyzje.
Tego rodzaju modyfikacje mona wprowadza w wielu miejscach w programach. Niektre z nich omwimy w kolejnych punktach.

Poprawianie
Kod wykonywalny (czasami nazywany jest binark) skada si z serii instrukcji zapisanych w postaci cigu bajtw. Takie bajty musz by uoone w cile okrelonym
porzdku, ktry dla komputera ma jakiekolwiek znaczenie. Jeeli takie bajty zostan
zmodyfikowane, to jednoczenie zmodyfikowana zostanie logika oprogramowania.
Taka technika czasami nazywana jest poprawianiem (ang. patching), a podobna jest
do nakadania kolorowych atek na star kodr. Oprogramowania nie mona nazwa
sprytnym. Wykonuje ono tylko kolejne rozkazy i nie zajmie si niczym innym. To wanie
dlatego tak doskonale sprawdzaj si tego rodzaju modyfikacje. Co wicej, ich wprowadzanie wcale nie jest tak bardzo skomplikowane. Poprawianie bajtw kodu jest jedn
z najwaniejszych technik stosowanych w tak zwanych krakach, ktre usuwaj zabezpieczenia z oprogramowania. Innym zastosowaniem takich poprawek jest wprowadzanie
moliwoci oszukiwania w grach komputerowych (na przykad nieograniczone zoto,
zdrowie lub inne dodatki).

Jaja wielkanocne
Zmiany w logice oprogramowania mog by rwnie wbudowane. Takie tylne
wejcia w programie moe umieszcza jego twrca. Nie jest to oczywicie opisywane
w dokumentacji programu, a zatem takie funkcje zostaj w utajone. Czasami prezentowane podejcie nazywane jest jajami wielkanocnymi (ang. easter eggs) i przez twrcw
programw uywane jest do pozostawienia swojego specjalnego podpisu. Jest to swego
rodzaju specjalny znak mwicy, e to ten programista napisa dany program. Wczesne
wersje bardzo szeroko wykorzystywanego programu Microsoft Excel zawieray takie
jajo wielkanocne, ktre pozwalao zagra w trjwymiarow strzelank podobn do
starej gry Doom11 wywietlan w jednej z komrek arkusza kalkulacyjnego.

Spyware
Czasami jeden program specjalnie infekuje inny program, wprowadzajc do niego elementy szpiegujce (tzw. spyware). Niektre programy tego typu zapamituj strony
WWW, jakie odwiedzaj uytkownicy komputera. Takie programy szpiegujce mog
11

The Easter Eggs and Curios Database, www.eggheaven2000.com.

24 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

25

by bardzo trudne do wykrycia, podobnie jak i rootkity. Niektre z tych programw


podczaj si do przegldarek stron WWW lub powoki systemowej, przez co ich
usunicie jest niezwykle trudne. Pniej mog zamieni ycie uytkownika w pieko,
cay czas umieszczajc na pulpicie skrty do ofert nowych kredytw lub sprzeday
Viagry. Uytkownik takiego komputera jest zatem cigle uwiadamiany, e jego przegldarka stron WWW jest cakowicie niezabezpieczona12.

Modyfikacje kodw rdowych


Czasami oprogramowanie modyfikowane jest dosownie ju u samych rde. Programista moe wstawi do kodu rdowego programu wiersze zoliwego kodu. Ta
moliwo powoduje, e niektre organizacje wojskowe staraj si unika stosowania
pakietw o otwartych rdach, takich jak Linux. Takie projekty umoliwiaj niemal
kademu (w tym sensie, e kady oznacza osoby, ktrych nie znamy) dodanie do
rde nowego kodu. Oczywicie najwaniejsze czci kodu takich projektw jak BIND,
Apache lub Sendmail sprawdzane s przez wszystkich uczestnikw takich projektw.
Z drugiej strony, czy na pewno ktokolwiek przeglda kod projektw wiersz po wierszu? (Jeeli tak jest, to raczej nie udaje si zbyt skutecznie wyszukiwa dziur w zabezpieczeniach.) Prosz sobie wyobrazi, e tylne wejcie moe zosta wprowadzone
jako poprawka jakiego bdu w programie. Na przykad zoliwy programista moe
celowo narazi program na powstawanie bdw przepenienia bufora. A poniewa
bdzie to ukryte w poprawce pewnego bdu, to wykrycie takiego zagroenia nie bdzie
atwe. Co wicej, taki zoliwy programista moe twierdzi, e tego bdu nie wprowadzi celowo!
Tak, teraz zapewne usyszymy: Pewnie! Ja cakowicie ufam wszystkim tym, ktrzy
tworzyli wykorzystywane przeze mnie oprogramowanie, poniewa kady z nich jest
co najwyej o trzy podania rki od Linusa Torvaldsa13, a jemu ufam cakowicie!. No
dobrze, ale czy rwnym zaufaniem moemy obdarzy administratorw systemw, na
ktrych dziaaj serwery kontroli rde albo administratorw dystrybucji tych kodw
rdowych? A to tylko kilka przykadw miejsc, w ktrych atakujcy mog uzyska
dostp do kodw rdowych. Najlepszym przykadem, jak wielkie moe to by zagroenie, jest pamitne wamanie z 2003 roku na gwne serwery FTP projektu GNU
(gnu.org), bdce rdem wszystkich systemw opartych na Linuksie14. Modyfikacje
kodw rdowych mog si przenosi do setek rnych programw i w zwizku z tym
mog by bardzo trudne do zlokalizowania. W ten sposb mog zosta zaatakowane
nawet kody rdowe narzdzi stosowanych przez profesjonalistw15.
12

Wiele przegldarek WWW staje si upem tego rodzaju szpiegw, przy czym najwikszym celem
twrcw takiego oprogramowania jest, oczywicie, Internet Explorer.
13
Linus Torvalds jest ojcem Linuksa.
14
CERT Advisory CA-2003-21, dokument dostpny jest na stronie www.cert.org/advisories/
CA-2003-21.html.
15
Na przykad na stron monkey.org nalec do D. Songa wamano si w maju 2002 roku i wstawiono
poprawki do rde przechowywanych na tej stronie programw Dsniff, Fragroute i Fragrouter.
Prosz zobaczy te dokument Download Sites Hacked, Source Code Backdoored dostpny
na stronie www.securityfocus.com/news/462.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

25

26

Rootkity. Sabotowanie jdra systemu Windows

Legalno modyfikowania oprogramowania


Niektre formy modyfikowania oprogramowania s oczywicie nielegalne. Jeeli,
na przykad, uyjemy jednego programu do zmodyfikowania innego w celu usunicia
z niego mechanizmw zapewniajcych prawa wasnoci, to najprawdopodobniej naruszymy prawo (zaley do od konkretnego ustawodawstwa). Dotyczy to wszystkich
krakerw, ktre mona swobodnie pobiera z internetu. Konkretny przykad: jeeli
pobierzemy z sieci wersj prbn programu, ktra przestaje dziaa po 15 dniach,
a nastpnie zastosujemy wobec tego programu krak, ktry umoliwi jego dalsz
prac, tak jakby zosta legalnie zarejestrowany, taka bezporednia modyfikacja kodu
i logiki programu z ca pewnoci bdzie nielegalna.

Czym nie jest rootkit?


No dobrze, do tej pory opisalimy w szczegach czym jest rootkit i omwilimy mniej
wicej technologi umoliwiajc tworzenie rootkitw. Dowiedzielimy si, jak potnym narzdziem rootkit staje si w rkach sprawnego hakera. Ale w arsenale takiego
hakera znajduje si wiele narzdzi, wrd ktrych rootkit jest tylko jednym elementem
kolekcji. Naleaoby zatem powiedzie, czym rootkit nie jest.

Rootkit nie jest exploitem


Rootkity mona stosowa w poczeniu z exploitami (programami wykorzystujcymi
luki w innych programach), ale sam rootkit jest tylko prostym zestawem programw
narzdziowych. Programy te mog korzysta z nieudokumentowanych funkcji i metod,
ale najczciej nie korzystaj one z bdw programowych (takich jak bdy przepeniania bufora).
Rootkit jest najczciej instalowany w systemie po udanym uyciu exploitu. Wielu
hakerw ma przygotowanych ogromne iloci eksploitw, ale w swoim narzdziowniku przechowuj zwykle tylko jeden lub dwa rootkity. Niezalenie od tego, jakiego
exploita uyje wamywacz, eby dosta si do naszego systemu, pniej moe zainstalowa waciwy rootkit.
Co prawda sam rootkit nie jest eksploitem, lecz moe zawiera w sobie pewne czci
wykorzystujce bdy w innych programach. Rootkit najczciej wymaga dostpu do
jdra systemu i dlatego zawiera jeden lub kilka programw uruchamianych razem z systemem. Istnieje tylko kilka sposobw na umieszczenie swojego kodu w jdrze systemu
(na przykad jako sterownik urzdzenia), a wiele z nich mona wykry za pomoc
odpowiednich procedur.
Jedn z nowszych metod instalowania rootkitu w systemie jest wykorzystanie bdw
w oprogramowaniu. Wiele takich bdw pozwala na wykonanie dowolnego kodu lub
zainstalowanie oprogramowania firm trzecich. Prosz sobie wyobrazi, e w jdrze
nastpio przepenienie bufora (s udokumentowane bdy dajce takie efekty), ktre

26 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

27

pozwalaj na wykonanie dowolnego kodu w trybie jdra. Bdy przepenienia bufora


w jdrze mog powstawa w niemal kadym sterowniku (na przykad w sterowniku
drukarki). W czasie uruchamiania systemu program adujcy rootkit moe zatem wykorzysta takie bdy w oprogramowaniu do zaadowania rootkitu. Taki program adujcy nie korzysta z adnych udokumentowanych metod adowania i rejestrowania sterownika urzdzenia, ani adnej innej metody instalowania rootkitu. Wykorzystuje po prostu
bd przepenienia bufora do zainstalowania czci rooktitu dziaajcej w trybie jdra.
Wykorzystanie bdu przepenienia bufora jest mechanizmem pozwalajcym na zaadowanie kodu do jdra. Wikszo osb potraktuje to jak bd oprogramowania, ale
twrca rootkitu bdzie traktowa go jak nieudokumentowan funkcj umoliwiajc
zaadowanie kodu do jdra. Ze wzgldu na brak dokumentacji takiego rozwizania to
wejcie do jdra raczej nie zostanie objte adnym dochodzeniem wewntrzsystemowym. Co wicej, nie bdzie ono zabezpieczane przez programy typu firewall dziaajce na danym komputerze. Wykrycie takiego wamania moe si uda wycznie
komu, kto ma doskonale opanowane mechanizmy wstecznej inynierii kodu.

Rootkit nie jest wirusem


Program wirusa jest waciwie samorozprzestrzeniajcym si automatem. I to jest pierwsza rnica: rootkit nie tworzy swoich kopii i nie ma swojej wasnej woli. Rootkit jest
cakowicie pod kontrol osoby, ktra przeprowadzia atak, a wirus dziaa na wasn
rk.
W wikszoci przypadkw zastosowanie przez wamywacza wirusa byo by bardzo
gupie i niebezpieczne, poniewa wamywacz przede wszystkim musi si ukrywa.
Po pierwsze, przygotowanie i rozprzestrzenianie wirusa moe by nielegalne, a po
drugie, wikszo wirusw i robakw to bardzo haaliwe i samodzielne programy.
Rootkit pozwala atakujcemu na pen kontrol nad swoim programem. W przypadku
usankcjonowanego wamania (na przykad na wniosek sdu) atakujcy musi mie
pewno, e zaatakuje tylko okrelone komputery, aby nie przekroczy przyznanych
uprawnie i nie zagrozi powodzeniu przedsiwzicia. Takie operacje wymagaj bardzo
cisej kontroli, wic wykorzystanie wirusa cakowicie nie wchodzi tu w gr.
Moliwe jest takie przygotowanie wirusa lub robaka, eby rozprzestrzenia si z wykorzystaniem bdw w oprogramowaniu, ktre nie s wykrywane przez systemy wykrywania wama (chodzi tu gwnie o bdy typu zero-day16). Taki robak rozprzestrzeniaby
si powoli i byby bardzo trudny do wykrycia. Mgby zosta przetestowany w doskonale
przygotowanym rodowisku laboratoryjnym na modelu rodowiska docelowego. Mona
by w nim zapisa ograniczenie dziaania w pewnym obszarze, tak aby nie wymkn
si poza pewne cile okrelone granice. W kocu mgby zawiera te pewien licznik,
ktry po pewnym czasie cakowicie wyczyby takiego robaka, przez co nie sprawiaby
on adnych problemw po zakoczeniu swojej misji. W dalszej czci tego rozdziau
rozmawia bdziemy jeszcze na temat systemw wykrywania wama.

16

Tak nazw oznacza si wieo wykryte bdy, dla ktrych nie ma jeszcze poprawek.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

27

28

Rootkity. Sabotowanie jdra systemu Windows

Problem z wirusami
Co prawda rootkit nie jest wirusem, ale techniki stosowane w rootkitach mog by
rwnie wykorzystywane w wirusach. Jeeli wirus zostaby poczony z rootkitem, to
powstaaby wyjtkowo niebezpieczna technologia.
wiat ju wielokrotnie si przekona, do czego zdolne s wirusy. Niektre z nich rozprzestrzeniy si w cigu kilku godzin na wiele milionw komputerw.
Najpopularniejszy system operacyjny, Microsoft Windows, ma ju dug histori bdw
umoliwiajcych wirusom infekowanie milionw komputerw w internecie. Wikszo
zoliwych hakerw nie opisze wykrytych przez siebie bdw do twrcy oprogramowania. Innymi sowy, jeeli taki haker znajdzie w systemie Microsoft Windows bd
pozwalajcy na wykonanie dowolnego kodu, to na pewno firma Microsoft si o tym
nie dowie. Bd tego rodzaju znaleziony w domylnej instalacji systemu jest jak klucz
do bram krlestwa, a poinformowanie o tym bdzie producenta jest rwnoznaczne
z oddaniem tego klucza.
Poznanie technologii rootkitw jest bardzo istotne dla prawidowej ochrony przed
wirusami. Programici tworzcy wirusy ju od lat korzystaj z tej technologii do usprawnienia swoich produktw. To naprawd niebezpieczny trend. Zostay ju opublikowane algorytmy rozprzestrzeniania17 wirusw, ktre pozwalaj na spenetrowanie setek,
a moe i tysicy komputerw w cigu godziny. Powstay ju techniki pozwalajce na
zniszczenie systemw komputerowych, a nawet sprztu. Co wicej, wcale nie ubywa
bdw w systemach Windows pozwalajcych na ich zdalne wykorzystanie. Wirusy
korzystajce z technologii rootkitw bd coraz trudniejsze do wykrycia i coraz trudniej
bdzie si przed nimi zabezpieczy.

Rootkity i bdy w oprogramowaniu


Wykorzystywanie bdw w oprogramowaniu jest bardzo wanym zagadnieniem, cile
powizanym z rootkitami. (Nie bdziemy tu jednak opisywa metod zamania oprogramowania i wykorzystania takich bdw. Kady, kto jest zainteresowany tym zagadnieniem, powinien zapozna si z ksik Exploiting Software18).
Co prawda rootkit nie jest eksploitem, ale moe sta si czci narzdzia przygotowanego do wykorzystywania bdw w oprogramowaniu (wirusa lub programu typu
spyware).
Zagroenie ze strony rootkitw wzrasta tym bardziej, e cay czas ronie liczba dostpnych eksploitw. Jeeli powiemy, e w kadej chwili dostpnych jest przynajmniej sto
dziur w najnowszej wersji systemu Microsoft Windows, ktre mona w kadej chwili
17

N. Weaver, Warhol Worms: The Potential for Very Fast Internet Plagues, dostpne na stronie
www.cs.berkeley.edu/~nweaver/warhol.html.
18
G. Hoglund i G. McGraw, Exploiting Software.

28 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

29

wykorzysta19. W wikszoci takie bdy s Microsoftowi znane i powoli atane przez


dzia zapewniania jakoci w ramach systemu ledzenia bdw20. Takie bdy s czasami
poprawiane po cichu21.
Niektre z tak niebezpiecznych bdw w programach znajdowane s przez niezalenych
badaczy, ktrzy niestety nie informuj o nich producentw oprogramowania. Takie
bdy s miertelnymi puapkami, poniewa o ich istnieniu nie wie nikt z wyjtkiem
atakujcego. Oznacza to, e praktycznie nie mamy przed nimi adnej ochrony (nie
istnieje adna poprawka).
Wiele spord publicznie eksploitw ujawnionych rok temu, dzisiaj nadal jest bardzo
szeroko wykorzystywanych. Nawet jeeli istniej poprawki dla tych bdw, to wikszo
administratorw nie wykorzystuje ich do poprawienia swoich systemw we waciwym czasie. Jest to szczeglnie niebezpieczne, poniewa programy wykorzystujce
opublikowane bdy pojawiaj si ju w kilka dni po opublikowaniu informacji o takich
bdach wraz z odpowiednimi poprawkami.
Microsoft oczywicie bardzo powanie traktuje bdy w oprogramowaniu, ale przygotowanie odpowiednich poprawek do tak duego systemu operacyjnego moe zaj
do duo czasu.
Jeeli jaki badacz przele do Microsoftu informacj o bdzie, to najczciej firma
prosi go, aby nie publikowa tej informacji do czasu przygotowania poprawki, poniewa
jej przygotowanie jest bardzo drogie i zajmuje sporo czasu. Niektre z bdw nie s
jeszcze poprawione nawet w kilka miesicy po ich wykryciu.
Mona twierdzi, e takie ukrywanie bdw sprawia, e Microsoft nie spieszy si z tworzeniem dla nich poprawek. Dopki nikt nie wie o istnieniu bdu, nie ma potrzeby, eby
szybko tworzy tak poprawk. Firma eEye stara si zatem odpowiednio zapobiega
takim niepodanym tendencjom i podaje do oficjalnej wiadomoci informacj o istnieniu bdu, ale nie podaje jego szczegw.
Rysunek 1.2 przedstawia cz strony WWW firmy eEye22, na ktrej zobaczy mona
typowy komunikat o wykrytym bdzie. Podano w nim dat przekazania informacji
o bdzie do producenta, a take opnienie, z jakim producent przygotowa poprawk tego bdu. Takie opnienie wyliczane jest na podstawie zaoenia, e producent
powinien przygotowa poprawk w czasie 60 dni. Jak ju wielokrotnie mielimy okazj
si przekona, duym producentom oprogramowania przygotowanie takiej poprawki

19

Nie moemy dostarczy adnego dowodu na takie stwierdzenie, ale zostao ono wywiedzione z naszej
wiedzy na temat tego problemu.
20
Wikszo innych producentw oprogramowania stosuje podobne metody ledzenia i poprawiania
bdw w swoich produktach.
21
Ciche poprawianie oznacza, e bd jest poprawiony przez aktualizacj oprogramowania,
ale producent nigdy nie podaje do wiadomoci klientw informacji o istnieniu takiego bdu.
Taki bd uznawany jest za tajny i nikt nie ma prawa na jego temat rozmawia. Niestety,
jest to praktyka szeroko stosowana przez wielu duych producentw oprogramowania.
22
www.eEye.com.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

29

30

Rootkity. Sabotowanie jdra systemu Windows

Rysunek 1.2. Metoda stosowana przez firm eEye przy wstpnym publikowaniu bdw

zajmuje zwykle znacznie duej ni wspomniane 60 dni. Wyglda na to, e do tej pory
poprawki takich bdw powstaway nawet w cigu kilku dni, ale tylko w sytuacji, gdy
w internecie szala robak wykorzystujcy okrelony bd.
Jzyki z bezpiecznymi typami
Jzyki programowania posiadajce bezpieczne typy danych s zdecydowanie lepiej
zabezpieczone przed pewnymi rodzajami bdw, takimi jak przepenienia bufora.
Bez stosowania zabezpiecze typw dane programu s tylko jednym wielkim oceanem
bitw. Program moe pobra dowoln ilo takich bitw i interpretowa je w cakowicie
dowolny sposb, niezalenie od ich oryginalnego przeznaczenia. Na przykad, jeeli
w pamici umiecimy cig znakw GARY, to pniej moe on zosta wykorzystany
jako 32-bitowa liczba cakowita (o wartoci 0x47415259 lub dziesitnie 1.195.463.257
naprawd dua liczba), a nie jako tekst. Jeeli w programie moe doj do nieprawidowej interpretacji danych podanych przez uytkownika, to bardzo prawdopodobne
jest powstanie niebezpiecznych bdw.
Z drugiej strony, program napisany w jzyku z bezpiecznymi typami danych (takim
jak Java lub C#23) nigdy nie pozwoli na przeksztacenia cigu znakw GARY w liczb
cakowit. W takich jzykach cigi znakw zawsze traktowane s jako tekst.

Eksploity nadal s wielkim problemem


Potrzeba zabezpieczania oprogramowania znana bya ju od dugiego czasu, a mimo
to eksploity rnych programw nadal stanowi powany problem. Niestety, wszystkie
te problemy maj swoje rdo w samym oprogramowaniu. Trzeba tu jasno powiedzie,
e wikszo programw wcale nie jest bezpieczna. Firmy takie jak Microsoft coraz
bardziej staraj si projektowa bezpieczne oprogramowanie, ale kod aktualnie uywanych systemw operacyjnych nadal tworzony jest w jzykach C lub C++, ktrych natura
powoduje wprowadzanie do kodu wielu dziur w zabezpieczeniach. To wanie te jzyki
stanowi gwne rdo problemw znanych jako bdy przepenienia bufora. Takie
bdy s najpowaniejsz saboci tworzonych dzisiaj programw i umoliwiy przygotowanie tysicy najrniejszych eksploitw. Trzeba jednak pamita, e s to tylko
bdy, czyli co, co mona poprawi24.
23
24

Jzyka C# nie naley myli z jzykami C lub C++.


Co prawda bdy przepenienia bufora nie ograniczaj si wycznie do jzykw C i C++, to jednak
wanie w tych jzykach najtrudniej jest zapewni stosowanie praktyk bezpiecznych technik
programowania. Jzyki te nie maj bezpiecznych typw danych (bdzie o tym mowa w dalszej
czci rozdziau), korzystaj z funkcji wbudowanych, ktre mog spowodowa przepenienie bufora,
a na dodatek s bardzo uciliwe w debugowaniu.

30 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

31

Kiedy bdy przepenienia bufora strac na znaczeniu, cho na pewno nie nastpi to
w najbliszej przyszoci. Co prawda zdyscyplinowany programista moe napisa kod,
ktry nie bdzie zawiera tego rodzaju bdw (i to niezalenie od jzyka programowania;
bezpieczne mog by nawet programu tworzone w asemblerze), ale niestety, wikszo
programistw nie wykazuje si a tak skrupulatnoci. Aktualnie w czasie produkcji
oprogramowania firmy staraj si narzuci programistom praktyki bezpiecznego tworzenia kodu oraz stosowa automatyczne narzdzia do przegldania kodu i wyszukiwania
ewentualnych usterek. Takimi narzdziami posuguje si na przykad Microsoft25.
Narzdzia do automatycznego przegldania kodu mog wychwyci cz bdw, ale
z pewnoci nie s w stanie znale wszystkich. Wikszo programw komputerowych
jest na tyle skomplikowana, e ich automatyczne, dokadne przetestowanie moe by
naprawd trudne. Niektre programy mog mie zbyt wiele stanw, eby mona je
wszystkie sprawdzi26. Co ciekawe, niektre programy mog mie wicej rnych
stanw ni jest czsteczek we wszechwiecie27. Ze wzgldu na tak ogromn zoono
programw bardzo trudno jest choby oglnie okreli stopie bezpieczestwa programu
komputerowego.
Zastosowanie jzykw programowania z bezpiecznymi typami (takich jak Java lub C#)
niemal cakowicie wyeliminuje ryzyko wystpowania bdw przepenienia bufora.
Co prawda jzyki z bezpiecznymi typami danych nie gwarantuj cakowitego bezpieczestwa programw, ale zdecydowanie zmniejszaj ryzyko powstawania bdw przepenienia bufora, bdw konwersji znaku oraz bdw przepenienia liczb cakowitych
(wicej na ten temat w ramce ze strony ???). Niestety, takie jzyki nie mog si rwna
z jzykami C i C++ pod wzgldem wydajnoci i dlatego systemy Microsoft Windows
nawet w swoich najnowszych wersjach nadal tworzone s w jzykach C i C++. Twrcy
systemw osadzonych (ang. embedded systems) zaczynaj ju coraz czciej stosowa
jzyki z bezpiecznymi typami, ale i ten proces postpuje bardzo powoli. Co wicej,
miliony istniejcych ju systemw raczej nie zostan wymienione w najbliszym czasie.
To wszystko oznacza, e tradycyjne ju eksploity oprogramowania bd nam towarzyszyy jeszcze przez dugie lata.

25

Na przykad narzdzia PREfix i PREfast zostay przygotowane i opublikowane przez Jona Pincusa,
pracujcego w centrum badawczym Microsoftu. Prosz przejrze stron http://research.microsoft.com/
users/jpincus/.

26

Stan mona traktowa jak wewntrzn konfiguracj oprogramowania. Za kadym razem, gdy program
wykonuje jak operacj, zmienia si jego stan. Oznacza to, e wikszo programw moe przyjmowa
naprawd gigantyczn liczb rnych stanw.

27

Prosz sobie wyobrazi liczb moliwych permutacji pewnego cigu liczb binarnych. Za przykad
niech posuy nam program o wielkoci 160 MB, ktry swj stan przechowuje w 16 MB pamici
(mniej wicej 10% cakowitej wielkoci programu). Taki program moe mie teoretycznie nawet
2^16777216 rnych stanw, co jest liczb o wiele, wiele wiksz od liczby czsteczek we wszechwiecie
(zwykle ocenia si j na mniej wicej 10^80). [Dzikujemy Aaronowi Bornsteinowi za wyjanienie
tego przykadu.]

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

31

32

Rootkity. Sabotowanie jdra systemu Windows

Ofensywne technologie rootkitw


Dobry rootkit powinien umie omin wszelkie zabezpieczenia systemowe, takie jak
firewalle lub systemy wykrywania wama (Intrusion Detection Systems IDS). Istniej
dwa podstawowe typy systemw IDS: sieciowe (Network-based IDS NIDS) i stanowiskowe (host-based IDS HIDS). Czasami systemy HIDS przygotowywane s
tak, eby zatrzymywa ataki w czasie ich trwania. S to systemy obrony aktywnej,
ktre niejednokrotnie okrela si mianem stanowiskowych systemw przeciwdziaania
wamaniom (host-based Intrusion Prevention Systems HIPS). W ramach uproszczenia
systemy takie rwnie okrela bdziemy skrtem HIPS.

HIPS
Technologia systemw HIPS moe zosta przygotowana samodzielnie, ale mona te
kupi j w postaci gotowych programw. Oto przykadowe programy wykorzystujce
technologi HIPS:
t Blink (eEye Digital Security, www.eEye.com),
t Integrity Protection Driver (IPD, Pedestal Software, www.pedestal.com),
t Entercept (www.networkassociates.com),
t Okena Storm Watch (teraz nazywa si Cisco Security Agent, www.cisco.com),
t LIDS (Linux Intrusion Detection System, www.lids.org),
t WatchGuard ServerLock (www.watchguard.com).

Najwikszym zagroeniem dla rootkitw s systemy HIPS. Takie systemy s w stanie


wykry rootkit w czasie jego instalowania, a take przechwyci poczenia, jakie rootkit
utrzymuje w sieci. Wiele systemw HIPS wykorzystuje technologie obejmujce jdro
systemu i w zwizku z tym moe dokadnie monitorowa wszystkie zachowania systemu operacyjnego. Mona powiedzie, e systemy HIPS s antyrootkitami. Oznacza
to, e wykrywaj one i blokuj praktycznie wszystkie operacje, jakie rootkit moe
podejmowa w systemie. Jeeli chcemy zastosowa rootkit w systemie operacyjnym
chronionym przez system HIPS, to tak naprawd mamy tylko dwa rozwizania: w jaki
sposb obej mechanizmy systemu HIPS albo wybra mniej wymagajcy cel.
W rozdziale 10. omawia bdziemy sposoby tworzenia systemw HIPS. W rozdziale
tym przedstawimy te przykady kodu antyrootkitowego. Taki kod pozwala pozna
metody obchodzenia zabezpiecze tworzonych przez systemy HIPS, a poza tym uatwi
te tworzenie wasnego systemu ochrony przed rootkitami.

NIDS
Sieciowe systemy IDS (NIDS) rwnie stanowi zagroenie dla rootkitw, ale dobrze
zaprojektowany rootkit moe bardzo skutecznie unika wykrycia przez systemy NIDS.
Teoretycznie analiza statystyczna jest w stanie wykry utajone kanay komunikacyjne,

32 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

33

ale w rzeczywistoci udaje si to niezwykle rzadko. Poczenia sieciowe tworzone


przez rootkit najczciej ukrywaj si w bardzo niewinnie wygldajcych pakietach,
a wszystkie wane dane s przed wysaniem szyfrowane. Wikszo funkcjonujcych
systemw NIDS zajmuje si wycznie bardzo duymi strumieniami danych (nawet
do 300 MB/s), a wic te niewielkie iloci danych przesyanych przez rootkit zwykle
pozostaj niezauwaone. Systemy NIDS maj znacznie wiksz szans wykrycia rootkitw wykorzystujcych oglnie znane eksploity28.

Obchodzenie systemw IDS i IPS


W celu ominicia firewalli i oprogramowania typu IDS i ISP mona zastosowa dwa
rozwizania: aktywne i pasywne. Jeeli jednak rootkit ma by naprawd skuteczny, to
konieczne jest zastosowanie obu rozwiza. Rozwizania aktywne dziaaj w czasie
pracy rootkitu i maj na celu uniknicie wykrycia. Na wypadek, gdyby w kim narosy jakie podejrzenia, rozwizania pasywne maj na celu zmylenie ewentualnego
dochodzenia.
Dziaania aktywne polegaj na modyfikacjach systemowego sprztu i jdra ukierunkowanych na przeszkadzaniu w pracy systemom wykrywania i zapobiegania wamaniom. Takie dziaania najczciej potrzebne s do wyczenia programw typu HIPS
(takich jak Okena lub Entercept). Mwic oglnie, dziaania aktywne stosowane s
wobec programw dziaajcych w systemie i prbujcych wykry rootkit. Mog te
posuy rootkitowi do wyeliminowania zagroenia wykrycia ze strony narzdzi administracyjnych. Bardziej zoone mechanizmy mog spowodowa wyczenie dowolnego
narzdzia skanujcego lub zabezpieczajcego. Jeden z takich mechanizmw moe wyszukiwa w systemie skanerw antywirusowych i po znalezieniu wycza.
Dziaania pasywne polegaj na wprowadzaniu zamieszania w systemach przechowywania i przesyu danych. Przykadem moe by tu szyfrowanie danych przed ich zapisaniem w systemie plikw. Bardziej zaawansowana metoda polega na przeniesieniu
klucza rozszyfrowujcego z systemu plikw do pamici nieulotnej, takiej jak RAMK lub
EEPROM. Kolejnym dziaaniem pasywnym jest wykorzystywanie utajonych kanaw
komunikacyjnych pozwalajcych na wysyanie danych przez sie.
Rootkit nie powinien zosta wykryty przez skaner antywirusowy. Takie skanery nie
pracuj wycznie w czasie pracy systemu, ale wykorzystywane s te do skanowania
dyskw w trybie offline. Dyski czasami s kontrolowane na obecno wirusw
w specjalnych laboratoriach. W takich przypadkach rootkit musi by na tyle dobrze
ukryty w systemie plikw, eby skaner mimo wszystko go nie wykry.

28

Uywajc publicznego eksploitu, atakujcy moe udawa zachowanie znanego ju wczeniej robaka
(na przykad robaka Blaster). Wikszo administratorw zajmujcych si bezpieczestwem systemw
uzna takie zachowania za typowy atak robaka i przez to nie rozpozna waciwego ataku.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

33

34

Rootkity. Sabotowanie jdra systemu Windows

Pomijanie narzdzi wykrywajcych


W sytuacji idealnej rootkit nigdy nie zostanie wykryty przez narzdzia skanujce system.
Problem ten jest jednak niezwykle trudny do rozwizania. Do skanowania twardych
dyskw stosowane s bardzo zaawansowane narzdzia. Niektre z nich, takie jak Encase29, szukaj zych elementw w sytuacjach, gdy w danym systemie podejrzewana
jest obecno rootkitu lub wirusa. Inne narzdzia, takie jak Tripwire, stoj na stray
i maj za zadanie ochroni system przed infekcj.
Wprawiony uytkownik programw pokroju Encase bdzie szuka na dysku okrelonych
wzorcw bajtw. Takie narzdzia potrafi przeszuka cay dysk, a nie tylko zapisane
na nim pliki. Skanowane s rwnie pliki usunite oraz przestrze niewykorzystana.
W takiej sytuacji rootkit moe unikn wykrycia tylko przez unikanie stosowania atwo
rozpoznawalnych wzorcw danych. Bardzo przydatnym narzdziem jest tutaj steganografia. Mona stosowa te szyfrowanie, ale niestety, narzdzia mierzce stopie losowoci danych s w stanie zlokalizowa zaszyfrowane bloki. Poza tym w przypadku
stosowania szyfrowania pewna cz rootkitu (ta odpowiedzialna za rozszyfrowanie)
musi by niezaszyfrowana. Ochron takiego kodu mona zapewni przez stosowanie
polimorficznych algorytmw rozszyfrowujcych. Trzeba przy tym pamita, e skuteczno kadego narzdzia jest cile uzaleniona od umiejtnoci osb tworzcych
i obsugujcych to narzdzie. Jeeli wymylimy sposb ukrywania rootkitu, o ktrym
nie pomyleli oni, to najprawdopodobniej uda si nam unikn wykrycia.
Narzdzia przygotowujce kryptograficzne odciski palca wszystkich plikw w systemie
(na przykad tripwire) musz sobie przygotowa baz danych takich odciskw na
podstawie czystego systemu. Teoretycznie, jeeli kopia czystego systemu (czyli kopia
caego twardego dysku) zostanie wykonana jeszcze przed zainstalowaniem rootkitu,
to bdzie mona wykona analiz porwnawcz przygotowanego obrazu dysku z jego
aktualnym stanem. W ten sposb wykryte zostan wszystkie zmiany w stosunku
do pierwotnego obrazu dysku. Jedna z takich zmian na pewno spowodowaoby zainstalowanie rootkitu, ale na dysku na pewno bdzie wicej modyfikacji. Kady system
operacyjny z czasem podlega rnym zmianom. Oznacza to, e nasz rootkit moe unikn
wykrycia, jeeli tylko uda mu si ukry w typowym szumie zmian systemu plikw.
Poza tym tego rodzaju narzdzia sprawdzaj wycznie pliki, a niektre z nich mog
kontrolowa tylko wybrane pliki najprawdopodobniej te, ktre zostay uznane za
najistotniejsze. Programy te nie zajmuj si danymi znajdujcymi si w nietypowych
miejscach (na przykad w uszkodzonych sektorach dysku). Co wicej, bardzo czsto
ignorowane s tymczasowe pliki systemowe, co pozostawia nam wiele miejsc, w ktrych
mona si bezpiecznie ukry.
Jeeli atakujcy naprawd obawia si, e administrator atakowanego systemu ma przygotowane odciski palca wszystkich moliwych plikw i przez to rootkit zostanie atwo
wykryty, to powinien unika stosowania systemu plikw. Rootkit mona w caoci
zainstalowa w pamici i w ogle nie uywa dysku twardego. Wad takiego rozwizania
jest oczywicie fakt, e po ponownym uruchomieniu systemu rootkit cakowicie zniknie
z pamici ulotnej.
29

www.encase.com

34 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

Rozdzia 1. Nie zostawi ladu

35

Mona te zastosowa naprawd ekstremalne rozwizania i prbowa zainstalowa


rootkit w miejsce BIOS-u komputera albo innej dostpnej karcie pamici Flash.

Wnioski
Rootkity pierwszej generacji byy najnormalniejszymi programami. Dzisiejsze rootkity najczciej s konstruowane w postaci sterownikw urzdze. W nadchodzcych
latach powstajce rootkity mog prbowa modyfikowa lub instalowa si w mikrokodzie procesora. Niewykluczone, e bd one mogy istnie wycznie w ramach
mikroukadw skadajcych si na dany komputer. Nie jest na przykad wykluczone,
e twrcom rootkitw uda si tak zmodyfikowa obraz ukadw FPGA (Field Programmable Gate Array), eby utworzy w nich dla siebie tylne wejcie30. Oczywicie rootkity
tego rodzaju tworzone bd w celu zaatakowania bardzo konkretnego celu. Bardziej
rozpowszechnione bd oczywicie te rootkity, ktre wykorzystywa bd najoglniejsze
usugi udostpniane przez system operacyjny.
Technologia rootkitw ukrywajcych si w ramach ukadw FPGA nie nadaje si do
zastosowania w robakach internetowych. W tych szkodnikach cakowicie nie sprawdzaj si ataki uzalenione od konkretnej konfiguracji sprztowej. Robaki sieciowe
najlepiej rozprzestrzeniaj si w ogromnych i jednolitych rodowiskach. Innymi sowy,
robaki najlepiej czuj si w sytuacji, gdy na wszystkich komputerach dziaa takie samo
oprogramowanie. W wiecie rootkitw ukierunkowanych na konkretne rozwizania
sprztowe istnieje zbyt wiele drobnych rnic pomidzy komputerami, ktre uniemoliwiaj masowe atakowanie komputerw. Bardziej prawdopodobne jest to, e takie
ataki bd przeprowadzane na konkretnie wybrane cele, ktre atakujcy moe szczegowo przeanalizowa i przygotowa rootkit idealnie pasujcy do wybranej ofiary.
Rootkity bd wykorzystywa eksploity do czasu, a te nie zostan cakowicie wyeliminowane. Wsppraca rootkitu z eksploitami jest czym cakowicie naturalnym. Trzeba
jednak zaznaczy, e rootkity istniayby nawet wtedy, gdybymy nigdy nie syszeli
o eksploitach.
W cigu kilku nastpnych dziesicioleci najprawdopodobniej dzisiejszy krl wszystkich
eksploitw, czyli bdy przepenienia bufora, zostanie cakowicie wyeliminowany.
Zaawansowane jzyki z bezpiecznymi typami, zaawansowane kompilatory oraz technologie maszyn wirtualnych praktycznie cakowicie wyeliminuj zagroenie bdw
przepenienia bufora. Z ca pewnoci bdzie to dotkliwy cios dla wszystkich tych,
ktrzy w ten sposb zdalnie prbuj atakowa systemy. Nie oznacza to jednak, e w ten
sposb znikn rwnie eksploity. Nowa kategoria eksploitw opiera si bdzie zapewne
na bdach logiki znajdujcych si w programach, a nie na sabociach architektury.
30

Zakadamy teraz, e w takich ukadach bdzie do miejsca (co oznacza odpowiedni liczb bramek)
na dopisanie do ukadu nowych funkcji. Producenci sprztu prbuj jednak oszczdza na kadym
elemencie komputera, wic ukady FPGA s zwykle tylko tak due jak zapisywana do nich aplikacja.
Oznacza to, e w ukadzie moe brakowa miejsca na nowe funkcje, a zatem rootkit, instalujc si
w tak niewielkiej przestrzeni, bdzie prawdopodobnie musia usun z ukadu pewne funkcje.

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

(29-03-06)

35

36

Rootkity. Sabotowanie jdra systemu Windows

Rootkity bd istniay niezalenie od tego, czy nadal bdzie istniaa moliwo zdalnego stosowania eksploitw. Mona je umieszcza w systemach na wielu etapach, od
momentu tworzenia systemu, a po jego instalacj. Jak dugo bdzie istniaa ludzko,
znajd si te osoby pragnce szpiegowa innych. Oznacza to, e rootkity na zawsze
bd czci technologii komputerowych. Programy tworzce w systemie tylne wejcie
i technologie sabotau systemw operacyjnych s po prostu ponadczasowe!

36 (29-03-06)

D:\ !! 2006 druk\Rootkity. Sabotowanie jdra systemu Windows\R01.doc

You might also like