Grzegorz Blonski - Skuteczna obrona przed rootkitami.pdf

(676 KB) Pobierz
291259181 UNPDF
Skuteczna obrona
przed rootkitami
Obrona
Grzegorz Błoński
stopień trudności
Głośno o rootkitach zaczęło się mówić od czasu skandalu w roku
2005. Ujawniono wtedy, że irma Sony BMG Music Entertaiment
do ochrony praw własności wykorzystała rootkita (aries.sys)
umieszczonego w oprogramowaniu XCP Content Protection
DRM. Tak naprawdę rootkity zaczęły się pojawiać w systemach
komputerowych w połowie lat 90-tych XX wieku.
kerom we włamaniach do systemów
informatycznych, potrai ukryć pli-
ki oraz procesy, które osoba przygotowująca
atak chce uczynić niewidocznymi dla użytkow-
nika. Rootkity infekują jądro systemu – ukry-
wają siebie oraz inny złośliwy program (na
przykład trojana), za pomocą którego ataku-
jący może uzyskać dostęp do zainfekowanej
maszyny. Wykrycie rootkita w systemie, czy to
Windows czy Unix/Linux, nie należy do zadań
łatwych, lecz jeszcze trudniejsze jest skutecz-
ne pozbycie się nieproszonego gościa. Root-
kity nie potraią same się replikować. W związ-
ku z tym, aby z nich korzystać, hakerzy dokle-
jają ich kod do wszelkiego rodzaju trojanów,
backdoorów i innego rodzaju robaków, które
świetnie potraią się mnożyć. Dzięki temu na-
pastnicy są w stanie doprowadzić do masowe-
go rozprzestrzenienia się rootkita.
W miesiącu sierpniu tego roku ukazały się
informacje publikowane przez różne strony in-
ternetowe na temat nowego rootkitopodobne-
go oprogramowania w kolejnym produkcie So-
ny – napędzie USB typu pendrive wyposażo-
nym w czytnik linii papilarnych. Źródłem infor-
macji jest iński producent oprogramowania
antywirusowego F-Secure, którego pracow-
nicy wykryli, iż oprogramowanie produktu So-
ny MicroVault USM-F tworzy ukryty katalog na
dysku. Nie ma do niego dostępu z Windows
API i nie widzą go także niektóre programy
antywirusowe. Sony utrzymuje, że katalog jest
tworzony w celu ukrycia odcisków użytkowni-
ka przed dostępem osób niepowołanych, jed-
nak według F-Secure możliwe jest jego wyko-
rzystanie do innych celów i to już budzi obawy
zarówno użytkowników, jak i specjalistów zaj-
mujących się tego typu zagrożeniami. Warto
zadać sobie pytanie, dlaczego duże koncerny
Z artykułu dowiesz się
• co to jest rootkit,
• jakie są rodzaje rootkitów,
• jak się bronić przed rootkitami.
Co powinieneś wiedzieć
• znać obsługę linii poleceń w systemach Win-
dows i Unix/Linux,
• umieć korzystać z edytora rejestru regedit.exe .
2
hakin9 Nr 11/2007
www.hakin9.org
R ootkit jest narzędziem pomocnym ha-
291259181.019.png 291259181.020.png 291259181.021.png 291259181.022.png
Skuteczna obrona przed rootkitami
próbują stosować takie rozwiązania
w swoich produktach, czym naraża-
ją ich użytkowników na niepotrzeb-
ne ryzyko.
Rodzaje rootkitów
Kernel-mode rootkit – działający
w jądrze systemu program, który
potrai ukryć swoją obecność po-
przez podmianę fragmentu kodu
jądra. Najczęściej można zainfe-
kować się takim rodzajem root-
kita poprzez instalację sterowni-
ków z nieznanego miejsca w sieci
(dotyczy to w szczególności sys-
temów Windows). W przypadku
Linuksa sytuacja jest podobna,
ponieważ tego typu rootkity in-
fekują jądro poprzez mechanizm
LKM (Loadable Kernel Modules),
ładowalnych modułów.
Application rootkit – podmienia-
jący pliki binarne aplikacji rootkit,
niemający dostępu do jądra sys-
temu.
Memory-based rootkit – rezydu-
jący w pamięci operacyjnej kom-
putera, groźniejszy dla serwerów,
ponieważ te są dużo rzadziej re-
Rysunek 1. Interfejs użytkownika programu AVG Anti-Rootkit.
startowane niż komputery. Trud-
ny do wykrycia, ponieważ więk-
szość programów zwalczających
rootkity przeszukuje raczej zaso-
by dyskowe, a nie pamięć RAM.
Persistent rootkit – łatwy do wy-
krycia, ponieważ nie ukrywa się.
Zmieniając wpisy w rejestrze sys-
temu zakłóca pracę plików sys-
temowych, a przez to powoduje
niestabilną pracę systemu.
User-mode rootkit – jego działal-
ność ograniczona jest prawami
użytkownika, na których niekie-
dy łatwo jest mu się zainstalować
w systemie.
Rysunek 2. Rkhunter uruchomiony na nierozpoznanym systemie
www.hakin9.org
hakin9 Nr 11/2007
3
 
291259181.001.png 291259181.002.png
 
Obrona
Root-mode rootkit – rootkit, który
korzysta z praw administratora/
roota (w zależności od systemu,
w jakim się znajdzie).
Poza powyższym podziałem zwią-
zanym z trybem pracy , spotyka się
inne rodzaje tych złośliwych progra-
mów. Istnieją zagrożenia związane
z rootkitami, które mogą się zaszyć
w pamięci podzespołów komputera.
John Heasman z Next Generation
Security Software w swoich publi-
kacjach opisuje możliwość umiesz-
czenia kodu rootkita w pamięci BIOS
płyty głównej oraz karty graicznej.
Z jego artykułów wnioskować moż-
na, iż praktycznie każdy podzespół
komputera wyposażony nawet w nie-
wielką ilość pamięci, którą można
zapisać, może zostać wykorzystany
jako nośnik – a zarazem kryjówka –
dla rootkita. Heasman proponuje ja-
ko zabezpieczenie przed rootkita-
mi stosowanie w komputerach ukła-
dów TPM ( Trusted Platform Modu-
le ), które są dziełem Trusted Com-
puter Group. Układy TPM umożliwia-
ją między innymi szyfrowanie haseł
dostępu. Poza tym podczas urucha-
miania komputera układ TPM spraw-
dza zawartość BIOSu, którą porów-
nuje z tym, co ma zapisane w reje-
strach PCR ( Platform Coniguration
Registers ). Większość układów TPM
produkowanych jest w irmach Ini-
neon, National Semiconductor oraz
Broadcom. W układy te wyposaża
swoje produkty między innymi IBM,
ale także Dell, HP i Toshiba.
Rysunek 3. Rezultat pracy Rkhuntera.
Pe386 na widelcu
Niektóre rootkity (na przykład Pe-
386 , znany też jako Rustock.B vel
lzx32 vel msguard ) działające w try-
bie kernel-mode wykorzystują do
ukrywania funkcję ADS ( Alternate
Data Streams ), która jest dostępna
w systemie plików NTFS. ADS to do-
datkowe strumienie danych, które
można zapisywać – jako niewidocz-
ne – pod innym plikiem na dysku.
Dane w strumieniu są niewidoczne
dla użytkownika, nie zmienia się na-
wet raportowany przez system ope-
racyjny rozmiar pliku, pod którym
jest zapisany strumień. Pliki w stru-
mieniu zapisywane są po dwukrop-
ku, czyli na przykład plik o nazwie
xyz.sys może zostać powiększony
o strumień z plikiem zzz.qqq , którego
nazwa będzie mieć postać xyz.sys:
zzz.qqq . Podstawowy plik xyz.sys
jest widoczny z poziomu Eksplorera
Windows czy linii komend, lecz stru-
mienie ADS i zapisane w nich pliki
nie mogą być bezpośrednio zaob-
serwowane.
Rustock.B jest rodzajem konia
trojańskiego, który został wyposa-
żony w mechanizmy rootkita w celu
ukrycia swej obecności w systemie.
Nie można się nim zarazić bezwied-
nie. To użytkownik, pobierając pli-
ki w sieciach peer-to-peer , ze stron
z warezami, czy otwierając podej-
rzany załącznik w e-mailu urucha-
mia tego konia trojańskiego. Jeśli
nie zostanie on natychmiast wykry-
ty przez potraiący go rozpoznać
program antywirusowy, uruchamia
rootkita, który zaszywa się w syste-
mie. Złośliwy kod tworzy strumień
danych ukrytych na ścieżce: %windir
%\System32:lzx32.sys po czym do-
daje ukrytą usługę o nazwie pe386
oraz ścieżce do pliku jak powyżej.
Kolejnym krokiem jest dodanie wpi-
sów w rejestrze (Ramka Dodanie
wpisów w rejestrze).
Ostatni wpis zawiera ciąg Win23
lzx iles loader i tu nie ma błędu, to
jest w istocie 23.
Następnie rootkit modyikuje wy-
brane obszary jądra systemu, żeby
zmienić funkcjonowanie poniższych
funkcji API:
Rysunek 4. Okno programu sigverif.exe
ZwOpenKey
ZwEnumatereKey
ZwQueryKey
ZwCreateKey
4
hakin9 Nr 11/2007
www.hakin9.org
291259181.003.png
 
291259181.004.png
 
291259181.005.png
 
291259181.006.png 291259181.007.png 291259181.008.png
 
291259181.009.png
 
Skuteczna obrona przed rootkitami
ZwSaveKey
ZwDeviceIoControlFile
ZwQuerySystemInformation
ZwInitializeRegistry
nie należy uruchomić komputer za
pomocą płyty instalacyjnej i po uka-
zaniu się okna dialogowego z wybo-
rem operacji wcisnąć R , aby prze-
łączyć się do konsoli odzyskiwania.
W kolejnym oknie należy wybrać za-
instalowany system, do którego
chcemy się zalogować i podać ha-
sło administratora zatwierdzając je
klawiszem Enter . W linii poleceń na-
leży wpisać polecenie DISABLE pe386
i zatwierdzić klawiszem Enter , co
spowoduje zatrzymanie usługi, któ-
rą wcześniej uruchomił rootkit. Te-
raz wystarczy w trybie awaryjnym
przeskanować system przy pomo-
cy programu antywirusowego z naj-
nowszymi bazami wirusów w ce-
lu odnalezienia tego, co zostało na
dysku po działalności rootikta.
Na koniec warto przy użyciu
edytora rejestru pozbyć się wpi-
sów, których dokonał rootkit pod-
czas zarażania systemu. W sieci
można znaleźć program o nazwie
Rustbfix.exe, który potrafi wykryć
oraz usunąć tego rootkita. Niestety
w przypadku mojego systemu apli-
kacja ta zawiodła. Dopiero po wy-
konaniu wcześniej opisanych kro-
ków udało mi się usunąć zagroże-
nie całkowicie.
Frank Boldewin na swojej stronie
www.reconstructer.org opublikował
obszerną analizę Rustocka.B, łącz-
nie z jego kodem źródłowym. Arty-
kuł ten nosi tytuł A Journey to the
Center of Rustock.B Rootkit . Pole-
cam go wszystkim czytelnikom pra-
gnącym dowiedzieć się jeszcze wię-
cej na temat tego rootkita.
Narzędzia
Ze względu na zagrożenia, jakie nie-
sie za sobą możliwość zainfekowa-
nia rootkitami, każdy administrator
pragnie zadbać o bezpieczeństwo
systemów, którymi administruje. Me-
tody obrony przed rootkitami może-
my podzielić na trzy grupy:
Rootkit wyszukuje w obrazie jądra
systemu ciągu FATAL_UNHAN-
DLED_HARD_ERROR i nadpisuje
go swoim kodem. Zmienia funkcjo-
nowanie modułów systemowych
( ndis.sys, wanarp.sys, tcpip.sys) od-
powiedzialnych za komunikację sie-
ciową – tak, by móc omijać irewal-
le i dokonywać ewentualnych zmian
zawartości wysyłanych pakietów
TCP/IP. Jego obecność w systemie
może być rozpoznana po wzmożo-
nym ruchu na interfejsach siecio-
wych, ponieważ jednym z jego za-
dań jest praca jako ukryty serwer
proxy. Często też wykorzystywany
jest do wysyłania spamu, zatem do-
datkowo naraża komputer-oiarę na
jego otrzymywanie. Nierzadko zda-
rza się, że zainfekowany system da-
je nam sygnały, iż dzieje się w nim
coś niedobrego – ciągłymi BSODa-
mi, które naprawdę potraią uprzy-
krzyć życie. Wiele osób używa kom-
putera nie podejrzewając, że spo-
wolnione działanie systemu to wła-
śnie taki nieproszony gość.
Aby pozbyć się Rustocka.B
z komputera, należy wykonać kil-
ka czynności zależnych od syste-
mu operacyjnego. Jeśli nasz sys-
tem to Windows NT/2K/XP/2K3, to
w pierwszej kolejności musimy wy-
łączyć funkcję Przywracanie Sys-
temu . W przypadku systemów Win-
dows 9x pomijamy ten krok. Następ-
• zapobieganie,
• wykrywanie,
• usuwanie.
Zapobieganie – jakkolwiek możliwe
– jest bardzo trudne do zrealizowa-
nia, ponieważ kod rootkitów jest, jak
wiadomo, wciąż udoskonalany i roz-
wijany. Wykrywanie jest realizowa-
ne za pomocą odpowiednich progra-
mów lub też przy użyciu specjalizo-
wanych urządzeń przeznaczonych
do tego celu.
W systemach operacyjnych Win-
dows w celu zapobiegania infekcjom
rootkitów mamy możliwość między
innymi zastosowania programów róż-
nych producentów, które w większo-
ści przypadków są darmowe, a ich
nazwa zawiera słowa Anti-Rootkit .
Przykładem niech będzie aplikacja
AVG Anti-Rootkit .
Praktycznie każdy producent
oprogramowania antywirusowego
dla systemów Windows – czy to dar-
mowego, czy też komercyjnego –
ma w swojej ofercie również progra-
my tego typu. Także Uniksy i Linuk-
sy nie są pozbawione podobnych
narzędzi, najbardziej znanymi i naj-
częściej używanymi są chkrootkit
oraz rkhunter .
Rysunek 5. Pomoc programu sfc.exe w konsoli.
www.hakin9.org
hakin9 Nr 11/2007
5
 
291259181.010.png 291259181.011.png
 
Obrona
Na Zdjęciu 2 widać, że program
nie rozpoznał systemu operacyjnego
skanowanego komputera. Nie prze-
szkadza mu to jednak w pracy – na-
wet w przypadku nieodnalezienia
kluczy MD5.
Na kolejnym Zdjęciu 3 można zo-
baczyć, że Rkhunter po zakończo-
nym skanowaniu wyświetla informa-
cje o ilości przeskanowanych plików,
ilości podejrzanych plików i aplikacji
(w przypadku, gdy je wykryje) oraz o
czasie skanowania.
Opisane powyżej aplikacje dla
Windows oraz Unix/Linux podczas
skanowania systemu korzystają
z techniki zwanej cross - check , któ-
ra polega na porównywaniu listy pli-
ków zwracanej przez system ope-
racyjny z tym, co na naszym dysku
faktycznie się znajduje. W przypad-
ku, gdy rootkit zainfekuje system,
potrai się on skutecznie maskować
i niestety nie zawsze metoda ta po-
zwala na jego wykrycie.
W ramach projektu Strider au-
torstwa Microsoftu powstała apli-
kacja Ghostbuster, która podcho-
dzi do tematu wykrywania rootkitów
nieco inaczej. Program (niestety, na
razie nie upubliczniony) porównuje
listę plików w zainfekowanym syste-
mie z listą plików ze zdrowego sys-
temu. Porównanie takie pozwala na
wykrycie plików (oraz uruchamia-
nych przez nie procesów), których
w systemie nie powinno być. Wy-
mogiem wykorzystania tej aplikacji
jest jej uruchomienie w niezainfeko-
wanym systemie (aby mieć możli-
wość wiarygodnego porównania).
Aby tego dokonać, możemy sko-
rzystać z programu BartPE i z je-
go pomocą zbudować bootowalne-
go CD z systemem Windows oraz
programami do wykrywania rootki-
tów. Strider Ghostbuster jest jesz-
cze niedostępny, ale program Root-
kit Revealer irmy Sysinternals wy-
korzystuje bardzo podobne mecha-
nizmy, można więc skorzystać wła-
śnie z niego.
W sieci dostępna jest cała gama
przeróżnych programów pozwalają-
cych na znalezienie, zidentyikowa-
nie i często usunięcie rootkita – jak
chociażby RootKit Unhooker, So-
phos Antirootkit, UnHackMe, Root-
Kit Hook Analyzer, IceSword, Helios,
DarkSpy, F-Secure BlackLight czy
polskie Gmer oraz System Virginity
Veriier (ten ostatni autorstwa Joan-
ny Rutkowskiej).
Użytkownicy systemów unikso-
wych także mają możliwość urucho-
mienia aplikacji chkrootkit czy rkhun-
ter z bootowalnej płyty CD.
W sieci można znaleźć także
co najmniej kilka bootowalnych dys-
trybucji Linuksa zawierających pro-
gramy chkrootkit oraz rkhunter. Jed-
ną z nich jest InSeRT ( Inside Se-
curity Rescue Toolkit ), którą można
pobrać ze strony http://www.inside-
security.de . Kolejna dystrybucja
to GRML ( http://grml.org ), bazująca
na Knoppiksie i wyposażona w bli-
sko 2500 pakietów, wśród których
znajduje się między innymi chkro-
otkit.
projektowanego sprzętu. Niestety,
z racji braku możliwości zakupu
i praktycznego wykorzystania tego
typu urządzeń ograniczę się do ich
ogólnego opisu. Urządzenie o na-
zwie Tribble powstało na potrze-
by prowadzenia śledztwa w przy-
padkach cyfrowych przestępstw.
W jego projektowaniu brali udział
Joe Grand z Grand Idea Studio oraz
Brian Carrier z Digital-Evidence.
Zbudowano je na bazie procesora
Intel IQ80303 wyposażonego mię-
dzy innymi w mostek PCI-to-PCI ,
pozwalający na transfer danych
z prędkościami do 528MB/s. Insta-
luje się je w serwerze lub kompu-
terze, na którym istnieje podejrze-
nie ataku, w celu zapisania zawar-
tości pamięci RAM do późniejszej
analizy. Karta PCI zainstalowana
w systemie po uruchomieniu proce-
dury zapisu pamięci dokonuje zrzu-
tu zawartości pamięci RAM oraz re-
jestrów CPU. Zapisaną zawartość
pamięci można więc analizować
pod kątem przeróżnych kryteriów,
między innymi przeprowadzając te-
sty na obecność rootkitów.
Kolejne urządzenie o podobnych
możliwościach to RAM Capture To-
ol, wyprodukowany przez BBN Tech-
nologies Inc. Na temat tego urządze-
nia można powiedzieć tyle, że pracu-
je również na szynie PCI, lecz szcze-
gółowe informacje na jego temat nie
są ogólnie dostępne.
Działania
prewencyjne
Działalność rootkitów w systemie
jest przez nie same maskowana
Sprzęt widmo
Do wykrycia rootkita w systemie
można również użyć specjalnie za-
Dodanie wpisów w rejestrze
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Security
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Imagepath=”\??\%windir%\System32:lzx32.sys”
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Start=”1”
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Group=”Base”
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Extparam=””
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Security\Security=”(binary registry data)”
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Errorcontrol=”0”
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Type=”1”
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\pe386\Displayname=”Win23 lzx iles loader”
6
hakin9 Nr 11/2007
www.hakin9.org
291259181.012.png
 
291259181.013.png
 
291259181.014.png
 
291259181.015.png 291259181.016.png 291259181.017.png
 
291259181.018.png
 
Zgłoś jeśli naruszono regulamin