Rustock - mit czy rzeczywisto艣膰?

Alexander Gostev
Starszy analityk wirus贸w, Kaspersky Lab

Nieuchwytny rootkit

W grudniu 2006 roku w艣r贸d badaczy rootkit贸w (zar贸wno czarnych, jak i bia艂ych kapeluszy), rozesz艂y si臋 pog艂oski o tym, 偶e kto艣 stworzy艂 i wypu艣ci艂 "ca艂kowicie niewykrywalnego" rootkita, znanego jako Rustock.C, kt贸rego nie mo偶na wykry膰 na komputerach, na kt贸rych jest aktywny, przy pomocy 偶adnego istniej膮cego rozwi膮zana do zwalczania wirus贸w czy rootkit贸w.

D艂ugie poszukiwania "mitycznego rootkita" okaza艂y si臋 bezowocne. W rezultacie, wszelkie informacje o rootkicie Rustock.C traktowane by艂y w kr臋gach badaczy rootkit贸w jak 偶art. Sytuacja ta trwa艂a do maja 2008 roku.

Diagnoza "lekarska"

Na pocz膮tku maja rosyjska firma Dr.Web poinformowa艂a spo艂eczno艣膰 antywirusow膮, 偶e ich eksperci wykryli nowego rootkita o nazwie Ntldrbot, znanego r贸wnie偶 jako Rustock.C. Wiadomo艣膰 ta by艂a r贸wnie nieprzyjemna co sensacyjna.

Wed艂ug firmy Dr.Web, rootkit unikn膮艂 schwytania przez producent贸w antywirusowych od pa藕dziernika 2007 roku. Pojawi艂y si臋 g艂osy, 偶e Rustock.C zosta艂 wykorzystany do stworzenia jednej z najwi臋kszych dzisiaj sieci zombie s艂u偶膮cej do rozsy艂ania spamu. Dr.Web powo艂ywa艂 si臋 r贸wnie偶 na badanie przeprowadzone przez Secure Works, wed艂ug kt贸rego botnet stworzony przy u偶yciu rootkita Rustock stanowi艂 trzeci膮 pod wzgl臋dem wielko艣ci sie膰 zombie, zdoln膮 do rozes艂ania w ci膮gu jednego dnia nawet do 30 bilion贸w wiadomo艣ci spamowych. Jednak szacunki Secure Works nie mog艂y mie膰 nic wsp贸lnego z nowo wykrytym rootkitem, poniewa偶 a偶 do maja 2008 roku by艂 on nieznany. Eksperci Secure Works mieli najprawdopodobniej na my艣li botnet stworzony przy u偶yciu wcze艣niejszych wariant贸w rootkita Rustock - A oraz B (Trojan-Clicker.Win32.Costrat i SpamTool.Win32.Mailbot, wed艂ug klasyfikacji firmy Kaspersky Lab).

Z informacji opublikowanych przez firm臋 Dr.Web wynika, 偶e jej eksperci zdobyli pr贸bk臋 prawdziwego rootkita Rustock.C pod koniec marca 2008 roku. Ponad miesi膮c zaj臋艂o im analizowanie kodu rootkita, stworzenie i opublikowanie narz臋dzi umo偶liwiaj膮cych wykrywanie i leczenie. Inne firmy antywirusowe zosta艂y poinformowane o wynikach dopiero p贸藕niej.

Stworzony przez firm臋 Dr.Web opis rootkita pozostawia艂 zbyt wiele pyta艅 bez odpowiedzi. Po pierwsze, nie by艂o jasne, w jaki spos贸b i kiedy rozprzestrzeni艂 si臋 rootkit i dlaczego od pa藕dziernika 2007 roku nikt nie zdo艂a艂 go wykry膰.

Rozpowszechnian膮 przez firm臋 Dr.Web pr贸bk膮 kodu rootkita by艂 sterownik Windows o rozmiarze 244 448 bajt贸w.

Niestety brakowa艂o tak zwanego droppera, tj. pliku s艂u偶膮cego do instalowania rootkita w systemie. Gdyby zosta艂 dostarczony, bardzo u艂atwi艂by prac臋 laboratorium antywirusowego, polegaj膮c膮 na analizowaniu rootkita i opracowywaniu procedur wykrywania i leczenia rootkita Rustock.C. Ponadto m贸g艂by pom贸c wyja艣ni膰, w jaki spos贸b zosta艂 rozprzestrzeniony ten rootkit.

Nie pojawi艂y si臋 偶adne wiarygodne informacje dotycz膮ce wyst臋powania rootkita "na wolno艣ci". R贸wnie dobrze Rustock.C m贸g艂 by膰 jedynie okazem w kolekcji jakiego艣 "zbieracza" i nie by艂 rozprzestrzeniany, co wyja艣nia艂oby, dlaczego znalezienie go zaj臋艂o tak du偶o czasu.

Analiza laboratoryjna

2 maja firma Kaspersky Lab rozpocz臋艂a dog艂臋bn膮 analiz臋 kodu rootkita. Zadanie, przed jakim stan臋li nasi eksperci, by艂o naprawd臋 trudne, poniewa偶 ca艂y kod rootkita zosta艂 zaszyfrowany przy pomocy nieznanej metody i nie m贸g艂 zosta膰 zanalizowany przy pomocy zwyk艂ej analizy skompresowanego kodu oraz technik emulacji. Sytuacje komplikowa艂 dodatkowo fakt, 偶e ka偶dy plik rootkita posiada艂 pewien rodzaj po艂膮czenia sprz臋towego z zainfekowanym komputerem i nie m贸g艂 by膰 wykonany ani analizowany na innych komputerach czy wirtualnych maszynach.

Jednak nasi eksperci potrzebowali tylko dw贸ch dni, aby pokona膰 te trudno艣ci, z艂ama膰 klucz i odszyfrowa膰 wi臋kszo艣膰 cia艂a rootkita. Wieczorem 14 maja mogli艣my ogl膮da膰 fragmenty prawdziwego kodu rootkita Rustock.C.

Podczas szukania rozwi膮zania skomplikowanego problemu technicznego, kt贸ry opisali艣my wy偶ej, pr贸bowali艣my r贸wnie偶 znale藕膰 plik, kt贸ry zainstalowa艂 rootkita w systemie, poniewa偶 pomog艂oby to nie tylko przyspieszy膰 proces analizy kodu rootkita, ale r贸wnie偶 ustali膰 藕r贸d艂a rozprzestrzeniania rootkita Rustock.C.

W wyniku naszego badania znale藕li艣my 599 plik贸w rootkita Rustock.C. Niekt贸re z nich stanowi艂y tak zwane czyste cia艂o rootkita, inne by艂y zainfekowanymi sterownikami systemowymi. W rzeczywisto艣ci wszystkie pliki by艂y wynikiem polimorficznych zmian dokonanych w tym samym kodzie.

Kiedy stworzono rootkita?

Mieli艣my wi臋c sze艣膰set plik贸w r贸偶nych rozmiar贸w, kt贸re zosta艂y schwytane w nasze pu艂apki w innym czasie. Wszystkie te pliki zosta艂y zebrane w okresie od 10 wrze艣nia 2007 roku do 14 maja 2008 roku. Wyprzedzaj膮c troch臋 opis zdarze艅, mo偶na w tym miejscu powiedzie膰, 偶e nigdy nie znale藕li艣my pr贸bek rootkita Rustock.C, kt贸re zosta艂y stworzone przed wrze艣niem 2007 roku. Mo偶liwe, 偶e wcze艣niej powsta艂o kilka wariant贸w dla cel贸w testowych. Jednak rootkit, kt贸ry Dr.Web okre艣la jako Ntldrbot, z pewno艣ci膮 pochodzi z wrze艣nia 2007 roku.

A co z pog艂oskami o rootkicie Rustock.C, jakie kr膮偶y艂y pod koniec 2006 roku? Uwa偶amy, 偶e w tym czasie Rustock.C jeszcze nie istnia艂. Zosta艂 stworzony prawdopodobnie w odpowiedzi na histeri臋, jaka towarzyszy艂a poszukiwaniu go. 艢wiadczy o tym fakt, 偶e nazwa szkodliwego programu zawarta w kodzie rootkita brzmi "Rustock.C". Nazwa ta r贸偶ni si臋 od tych, kt贸re autor nada艂 wariantom Rustock.A i B ('spambot' plus numer wersji). Nazwa Rustock zosta艂a nadana przez firm臋 Symantec pierwszym wariantom rootkita pochodz膮cym z 2005 i 2006 roku. Takiej nazwy u偶yli badacze rootkit贸w, a "nieuchwytny" rootkit otrzyma艂 nazw臋 Rustock.C poprzez analogi臋 do znanych wariant贸w Rustock.A i .B. By膰 mo偶e autor nada艂 t臋 nazw臋 nowemu rootkitowi, aby potwierdzi膰, 偶e pog艂oski o jego istnieniu s膮 prawdziwe.

Niezale偶nie od tego, jak by艂o naprawd臋, pierwsze "dzia艂aj膮ce" pr贸bki rootkita Rustock.C pojawi艂y si臋 we wrze艣niu 2007 roku, a jego rozw贸j rozpocz膮艂 si臋 kilka miesi臋cy wcze艣niej.

Modyfikacje

Analiza 599 dost臋pnych plik贸w ujawni艂a wiele interesuj膮cych fakt贸w, kt贸re wcze艣niej nie by艂y znane.

Zidentyfikowali艣my cztery modyfikacje rootkita Rustock.C.

Wariant C1 pojawi艂 si臋 10 wrze艣nia 2007 roku. "Czyste cia艂o" rootkita ma rozmiar od 244 440 do 244 512 bajt贸w i zawiera sterownik oraz DLL. Tak膮 modyfikacj臋 zbadali eksperci z firmy Dr.Web i zaprezentowali innym producentom antywirusowym.

Wariant C2 pojawi艂 si臋 26 wrze艣nia. Jego rozmiar wynosi od 158 432 do 158 464 bajt贸w.

Warianty C3 i C4 zosta艂y stworzone 9 i 10 pa藕dziernika 2007 roku. Ich rozmiar waha si臋 od 158 400 do 158 496 bajt贸w.

Mimo 偶e modyfikacja C1 jest o prawie 100 KB wi臋ksza ni偶 te, kt贸re pojawi艂y si臋 p贸藕niej, pomi臋dzy ni膮 a innymi modyfikacjami nie wida膰 du偶ych r贸偶nic. Autor zoptymalizowa艂 tylko algorytm zaciemniana dla cia艂a rootkita. Kod DLL (spambot) niewiele r贸偶ni si臋 w poszczeg贸lnych wariantach.

Spambot

Analiza rootkita zaj臋艂a nam pi臋膰 dni: zosta艂 on ca艂kowicie rozpakowany i wykonany na wirtualnych maszynach (mimo 偶e nie posiadali艣my "droppera"). Pozwoli艂o to uzyska膰 dost臋p do kodu DLL (spambot), kt贸rego ochrona i utrzymanie jest g艂贸wnym celem rootkita Rustock.C.

Podczas swojego dzia艂ania rootkit wypakowuje ze swojego cia艂a bibliotek臋 DLL i wykonuje j膮 w pami臋ci systemu, wstrzykuj膮c j膮 do procesu winlogon.exe. Biblioteka DLL istnieje tylko w pami臋ci RAM i nigdy nie jest obecna na dysku twardym w postaci pliku. Jej celem jest wysy艂anie spamu z zainfekowanego komputera. Aby wykona膰 to zadanie, 艂膮czy si臋 z serwerem pod adresem 208.66.194.215 i otrzymuje od niego szablony wiadomo艣ci. Adres IP nale偶y do ameryka艅skiego dostawcy us艂ug hostingowych MCCOLO, kt贸rego zasoby od d艂u偶szego czasu by艂y wykorzystywane do rozprzestrzeniania szkodliwych program贸w i utrzymywania stron cyberprzest臋pczych.

Wykrywanie i leczenie

Mimo r贸偶nych metod wykorzystywanych przez autora rootkita Rustock.C w celu ochrony jego cia艂a (艂膮cznie z programem szyfruj膮cym i kluczem szyfrowania), dodanie rootkita do baz antywirusowych firmy Kaspersky Lab nie stanowi艂o 偶adnego problemu. Wygl膮da na to, 偶e ktokolwiek stworzy艂 tego rootkita, by艂 tak pewny jego skuteczno艣ci, 偶e nie przywi膮zywa艂 zbytniej wagi do zabezpieczenia go przed ochron膮 antywirusow膮. Autor chcia艂 utrudni膰 analiz臋 kodu szkodnika (zar贸wno przez producent贸w antywirusowych, jak i innych tw贸rc贸w wirus贸w), przed艂u偶y膰 czas potrzebny na tak膮 analiz臋.

Leczenie plik贸w systemowych zainfekowanych przez rootkita jest bardziej problematyczne. Dzia艂anie rootkita polega na infekowaniu wy艂膮cznie sterownik贸w Windows stworzonych przez firm臋 Microsoft, kt贸re uruchamiaj膮 si臋 wraz ze startem systemu. W艂a艣nie w ten spos贸b rootkit zdo艂a艂 zar贸wno przej膮膰 system, jak i ukry膰 swoj膮 obecno艣膰. Pierwotny sterownik, kt贸ry zosta艂 zainfekowany, by艂 przechowywany w ostatniej sekcji cia艂a rootkita i r贸wnie偶 by艂 zaszyfrowany.

Algorytm wykorzystywany przez rootkita do szyfrowania zainfekowanego przez siebie sterownika okaza艂 si臋 do艣膰 prosty i w 偶aden spos贸b nie by艂 zwi膮zany ze sprz臋tem zainfekowanego komputera. Dzi臋ki temu mogli艣my w pe艂ni zaimplementowa膰 wykrywanie i leczenie.

Rootkit ten zosta艂 sklasyfikowany jako Virus.Win32.Rustock.a, poniewa偶 w rzeczywisto艣ci jest on w pe艂ni funkcjonalnym wirusem plikowym dzia艂aj膮cym w trybie j膮dra.

Kaspersky Lab opublikowa艂 procedury wykrywania i leczenia zainfekowanych plik贸w 20 maja 2008 roku (8 dni po tym, jak rozpocz臋to badania nad rootkitami).

W nowej wersji produkt贸w antywirusowych firmy Kaspersky Lab - Kaspersky Anti-Virus 2009 oraz Kaspersky Internet Security 2009 - w pe艂ni zaimplementowano wykrywanie rootkita Rustock.C, kt贸ry jest aktywny w zainfekowanym systemie, oraz leczenie zainfekowanych plik贸w. U偶ytkownicy innych wersji mog膮 skanowa膰 swoje komputery w celu wykrycia Rustocka przy u偶yciu Dysku Ratunkowego dla dowolnej wersji produkt贸w antywirusowych firmy Kaspersky Lab. Produkty te wykrywaj膮 r贸wnie偶 i lecz膮 podejrzane pliki pod warunkiem, 偶e infekcja nie jest aktywna na komputerze.

Pytania i odpowiedzi

Wydawa艂oby si臋, 偶e problem znalaz艂 rozwi膮zanie: rootkit zosta艂 zwalczony, a jego ofiary otrzyma艂y niezawodne rozwi膮zanie do wykrywania i usuwania tego zagro偶enia. Jednak zasadnicze pytania pozostawa艂y bez odpowiedzi: w jaki spos贸b Rustock rozprzestrzenia艂 si臋 i czy naprawd臋 istnieje "na wolno艣ci"? Znalezienie odpowiedzi na te pytania by艂y dla nas spraw膮 honoru.

Rozprzestrzenianie Rustocka

Przez kilka dni wszystkie dost臋pne pr贸bki rootkita by艂y dok艂adnie analizowane w celu zidentyfikowania ich "ustawie艅 sprz臋towych". W ten spos贸b mogliby艣my mniej wi臋cej okre艣li膰, na jak膮 skal臋 zosta艂 rozprzestrzeniony Rustock. Dane te zosta艂y por贸wnane z datami wykrycia ka偶dej z tych pr贸bek.

W okresie od 10 wrze艣nia do 23 listopada 2007 roku znale藕li艣my 599 pr贸bek, z czego 590 zosta艂o przechwyconych przez nasze pu艂apki. Tylko 9 uzyskali艣my w okresie od 23 listopada 2007 do po艂owy maja 2008 roku.

Statystyki te pos艂u偶y艂y nam do zaw臋偶enia poszukiwa艅 i por贸wnania plik贸w z czterema modyfikacjami znanego nam rootkita.

Analiza da艂a nast臋puj膮ce wyniki:

Modyfikacje Daty wykrycia Okres(y) epidemii Liczba plik贸w
C1 10 wrze艣nia 2007 10-13 wrze艣nia 2007 321
C2 26 wrze艣nia 2007 27 wrze艣nia – 9 pa藕dziernika 2007;
12 – 22 listopada 2007
199
C3 9-10 pa藕dziernika 2007 9 – 17 pa藕dziernika 2007;
12– 22 listopada 2007
31
C4 9-10 pa藕dziernika 2007 9 – 17 pa藕dziernika 2007;
12– 22 listopada 2007
48

W okresie od 17 pa藕dziernika 2007 do 12 listopada 2007 roku nie wykryli艣my 偶adnego rootkita Rustock. Jednak w okresie od 12 do 22 listopada nast膮pi艂 nowy wzrost aktywno艣ci, kt贸ra dotyczy艂a g艂贸wnie modyfikacji C2 (kt贸ra pojawi艂a si臋 26 wrze艣nia), w mniejszym za艣 stopniu modyfikacji C3 i C4.

Od 23 listopada 2007 roku Rustock by艂 przez kilka miesi臋cy nieaktywny (lub znikn膮艂 na dobre?).

Zebrane dane okaza艂y si臋 bardzo u偶yteczne, wci膮偶 jednak nie by艂o jasne, na jak膮 skal臋 rozprzestrzenia艂 si臋 Rustock, ani te偶 jakie metody zosta艂y u偶yte w celu jego dystrybucji. Mimo ca艂ego wysi艂ku nie uda艂o si臋 zidentyfikowa膰 "droppera" rootkita.

W ko艅cu jednak dopisa艂o nam szcz臋艣cie. Znale藕li艣my ponad 500 dodatkowych plik贸w rootkita, kt贸re stanowi艂y wszystkie brakuj膮ce ogniwa w 艂a艅cuchu.

Botnet

Nasze przypuszczenie, 偶e aktywna dystrybucja Rustocka rozpocz臋艂a si臋 10 wrze艣nia 2007 roku potwierdzi艂o si臋. Teraz dok艂adnie wiemy, w jaki spos贸b i z jakich serwer贸w rootkit zosta艂 pobrany i zainstalowany na komputerach. Znamy te偶 odpowiedzi na takie pytania, jak "Gdzie jest dropper?" oraz "Czy u偶ytkownicy produkt贸w antywirusowych naprawd臋 byli bezbronni wobec nieuchwytnego rootkita, kt贸ry rozprzestrzenia艂 si臋 przez przynajmniej trzy miesi膮ce?".

Niestety, metoda i kana艂y wykorzystywane do dystrybucji Rustocka zaniepokoj膮 wielu ekspert贸w bezpiecze艅stwa IT. Ka偶demu specjali艣cie z zakresu rozwi膮za艅 antywirusowych nie b臋d膮 obce nast臋puj膮ce nazwy:

CoolWebSearch / IFrameBiz / Trafficadvance / LoadAdv.

Tak, po raz kolejny mamy do czynienia z jedn膮 z najbardziej znanych grup cyberprzest臋pczych w Internecie, a powy偶sze nazwy dotycz膮 stron internetowych i szkodliwych program贸w. Gang ten istnieje od pocz膮tku 2004 roku lub d艂u偶ej i nadal jest aktywny. Najbardziej znanymi i najszerzej rozpowszechnionymi tworami tej grupy by艂y takie trojany, jak Harnig, Tibs, Femad, LoadAdv i r贸偶ne modyfikacje trojana Trojan-Downloader.Agent i Small, jak r贸wnie偶 Inject Trojan.

Grupa ta od zawsze nale偶a艂a do awangardy pod wzgl臋dem innowacyjno艣ci wirus贸w: jako pierwsza zastosowa艂a na du偶膮 skal臋 trojany downloadery w plikach chm; to w艂a艣nie na jej serwerach znaleziono pierwsze warianty exploit贸w wykorzystuj膮cych luki w zabezpieczeniach przetwarzania plik贸w ANI i ICO. To w艂a艣nie ta grupa wykorzystywa艂a trojany napisane w j臋zyku programowania Java (Trojan-Downloader.Java.ClassLoader) i zapocz膮tkowa艂a mod臋 na downloadery skryptowe.

Znakiem rozpoznawczym grupy IFrameBiz by艂y domeny w obszarze .biz i nazwy plik贸w w formacie loadadv*.exe.

艢lady grupy prowadz膮 do Rosji, gdzie bez w膮tpienia mieszka wi臋kszo艣膰 jej cz艂onk贸w. W pocz膮tkowych etapach swojego istnienia grupa ta w du偶ym stopniu wykorzystywa艂a zasoby hostingowe zlokalizowane w St. Petersburgu. Wiadomo r贸wnie偶, 偶e wsp贸艂pracowa艂a z nies艂awn膮 sieci膮 RBN (Russia Business Network), kt贸r膮 wielu ekspert贸w wi膮偶e z tym miastem.

W ci膮gu czterech lat swego istnienia grupa stworzy艂a jeden z najpot臋偶niejszych obecnie system贸w rozprzestrzeniania szkodliwych program贸w. Jej botnet, z艂o偶ony z milion贸w komputer贸w zainfekowanych r贸偶nymi trojanami downloaderami (g艂贸wnie Tibs i Femad ) potrafi w bardzo kr贸tkim czasie zainstalowa膰 dowolny nowy szkodliwy program na zainfekowanym komputerze. Obecnie jest to najlepsza alternatywa dla wysy艂ania szkodliwego kodu za po艣rednictwem poczty elektronicznej, metoda, z kt贸r膮 bran偶a antywirusowa ju偶 dawno wie, jak sobie radzi膰.

Botnet IFrameBiz jest aktywnie wykorzystywany w celu rozprzestrzeniania nowych szkodliwych program贸w. Klienci p艂ac膮 za czas, w kt贸rym ich trojany b臋d膮 rozprzestrzeniane za po艣rednictwem botnetu. Nast臋pnie trojany s膮 pobierane na zainfekowane maszyny. Powszechn膮 praktyk膮 jest instalowanie przez tego samego downloadera (np. Tibs ) kilku trojan贸w od r贸偶nych klient贸w. Istnieje spore zapotrzebowanie na tak膮 us艂ug臋, a klienci nie maj膮 poj臋cia, 偶e ich zlecenia s膮 realizowane w tym samym czasie co zlecenia kilku innych klient贸w.

Us艂ugi oferowane przez botnet IFrameBiz by艂y i s膮 wykorzystywane przez tw贸rc贸w wielu program贸w adware, przez osoby, kt贸re chc膮 stworzy膰 swoje w艂asne botnety, spamer贸w, osoby przeprowadzaj膮ce ataki DDoS itd. Mo偶na powiedzie膰, 偶e sie膰 RBN stanowi sprz臋towo-techniczn膮 cz臋艣膰 biznesu tw贸rc贸w wirus贸w, natomiast IFrameBiz cz臋艣膰 programow膮, jak r贸wnie偶 punkt startowy dla licznych szkodliwych program贸w.

Autorzy Rustocka z艂o偶yli zam贸wienie na rozprzestrzenianie swojego rootkita za po艣rednictwem botnetu IFrameBiz latem 2007 roku. Stworzono zupe艂nie nowy modu艂 rozprzestrzeniania rootkita za po艣rednictwem kana艂贸w IFrameBiz. By膰 mo偶e trojany IFrameBiz nie potrafi艂y niezauwa偶enie aktywowa膰 Rustocka w systemach u偶ytkownika, mo偶e autorzy rootkita chcieli zachowa膰 kod rootkita w tajemnicy, obawiaj膮c si臋, 偶e ich pomys艂 lub technologia zostan膮 skradzione.

Rekonstrukcja zdarze艅

Poni偶szy przyk艂ad pokazuje, co zdarzy艂o si臋 pod koniec wrze艣nia 2007 roku na zainfekowanym komputerze, kt贸ry stanowi艂 cz臋艣膰 botnetu IFrameBiz.

Downloader (prawdopodobnie Tibs) zainstalowany w systemie 艂膮czy si臋 z jednym z serwer贸w botnetu w strefie .hk (tj. Chorwacja - grupa ta zacz臋艂a wykorzystywa膰 domeny w tej strefie w 2007 roku) i pr贸buje pobiera膰 plik loadadv351.exe.

Plik ten jest ulepszonym modu艂em tego samego botnetu - Trojan.Win32.Inject.mt zgodnie z klasyfikacj膮 stosowan膮 przez firm臋 Kaspersky Lab. Nazwa odzwierciedla dzia艂anie tego szkodliwego programu: wstrzykiwanie swojego kodu do procesu Explorer.exe. Dzi臋ki temu trojan mo偶e obej艣膰 wiele r贸偶nych zap贸r sieciowych i bez ogranicze艅 pobiera膰 pliki do systemu.

Trojan przesy艂a raporty o pomy艣lnej instalacji do serwer贸w IFrameBiz i otrzymuje od nich polecenia, m贸wi膮ce mu, kt贸re pliki powinny zosta膰 pobrane i sk膮d. Raporty te pe艂ni膮 r贸wnie偶 funkcj臋 systemu statystycznego rodzaj贸w dla botnetu, pozwalaj膮c ich w艂a艣cicielom na 艣ledzenie liczby pomy艣lnych pobra艅 szkodliwych program贸w i dostarczanie raport贸w klientom.

Trojan pobiera kilka plik贸w z r贸偶nych serwer贸w - z serwer贸w klienta lub z zasob贸w klienta na serwerach IFrameBiz. W takim przypadku, pliki s膮 艂adowane z zasob贸w klienta wydzier偶awionych od IFrameBiz (http:// *.biz/progs/*). Jednocze艣nie zbierane s膮 i wysy艂ane informacje o zainfekowanym komputerze, 艂膮cznie z systemem operacyjnym, dyskiem twardym itd. Informacje te s膮 niezb臋dne w celu okre艣lenia statusu botnetu, jego dystrybucji geograficznej itd.

W rezultacie, w systemie pojawia si臋 kilka nowych plik贸w. Interesuj膮 nas szczeg贸lnie dwa z nich: nazwijmy je '1.exe' i '2.exe'. Na razie skoncentrujemy si臋 na pliku 1.exe (plikowi 2.exe przyjrzymy si臋 p贸藕niej).

Plik ten jest kolejnym downloaderem, aczkolwiek raczej niezwyk艂ym. Jego pierwsza pr贸bka zosta艂a wykryta przez Kaspersky Lab 10 wrze艣nia 2007 roku, w dniu, w kt贸rym pojawi艂y si臋 pierwsze warianty Rustocka. W 艣wietle fakt贸w opisanych wy偶ej, trudno nazwa膰 to dziwnym zbiegiem okoliczno艣ci. Od tego samego dnia produkty Kaspersky Lab wykrywa艂y tego downloadera jako Trojan-Downloader.Win32.Agent.ddl.

Szkodliwy program zawiera sterownik, kt贸ry 艂aduje si臋 do j膮dra systemu operacyjnego (innymi s艂owy mamy tu do czynienia z rootkitem). Kod sterownika jest zaszyfrowany przy u偶yciu zaawansowanego algorytmu szyfrowania, bardzo podobnego do algorytmu wykorzystanego do szyfrowania Rustocka.

Po usuni臋ciu wszystkich warstw ochrony ze sterownika, ukazuje si臋 interesuj膮ca cz臋艣膰: downloader dla Rustocka jest nie mniej "mityczny" ni偶 sam rootkit.

Brakuj膮ce ogniwo

Mimo 偶e pog艂oski o rootkicie Rustock kr膮偶y艂y ju偶 od grudnia 2006 roku, pierwszy i jedyny raz, gdy wspomniano o rzeczywistym istnieniu downloadera, mia艂 miejsce pod koniec pa藕dziernika 2007 roku, prawie dwa miesi膮ce po tym, jak zosta艂 wykryty i dodany do naszych antywirusowych baz danych. Nie powinno nas zatem dziwi膰, 偶e skoro Rustock.C wymkn膮艂 si臋 badaczom antywirusowym, nikt nie zastanawia艂 si臋 nad jego downloaderem.

Jednak nawet po wykryciu rootkita Rustock.C, gdy nale偶a艂o rozpocz膮膰 poszukiwania jego "droppera", niekt贸re firmy antywirusowe pomy艣la艂y, 偶e wykrycie rootkita wystarcza. Nie tracili czasu na ustalanie, w jaki spos贸b rootkit zdo艂a艂 przedosta膰 si臋 do komputer贸w u偶ytkownik贸w i czy u偶ytkownicy nie byli zabezpieczeni przed nieuchwytnym rootkitem.

Nasze badanie dostarczy艂o odpowiedzi na oba te pytania. 10 wrze艣nia 2007 roku, tj. pierwszego dnia, w kt贸rym Rustock.C zosta艂 rozprzestrzeniony za po艣rednictwem botnetu IFrameBiz, oprogramowanie Kaspersky Anti-Virus wykry艂o jego "droppera": by艂 to Trojan-Downloader.Win32.Agent.ddl. Nast臋pnie wielu producent贸w antywirusowych doda艂o sygnatur臋 tego trojana do swoich antywirusowych baz danych.

Przez kilka miesi臋cy komputery u偶ytkownik贸w mog艂y by膰 chronione przed infekcj膮 nieuchwytnego rootkita jedynie poprzez niezw艂oczne wykrycie jego downloadera.

Niestety nawet dzisiaj (pocz膮tek czerwca 2008) niekt贸re produkty antywirusowe nadal nie wykrywaj膮 trojana Agent.ddl.

Downloader

Jak ju偶 wspomnieli艣my wcze艣niej, trojan sk艂ada si臋 z dw贸ch komponent贸w: cia艂a i sterownika. Sterownik zbiera nast臋puj膮ce informacje o systemie: identyfikatory producenta, model urz膮dzenia dla p艂yty g艂贸wnej, jak r贸wnie偶 dat臋 instalacji i dok艂adn膮 wersj臋 systemu operacyjnego. Informacje te s膮 nast臋pnie szyfrowane i wysy艂ane do serwera autora Rustocka (lub jego klient贸w): 208.66.194.215.

Serwer, do kt贸rego wysy艂ane s膮 dane (208.66.194.215), jest tym samym, kt贸ry zosta艂 wykorzystany dla biblioteki DLL rootkita (spambot): jest to 藕r贸d艂o wiadomo艣ci spamowych wysy艂anych przez Rustocka. Jednak metoda stosowana przez sterownik downloadera w celu interakcji z serwerem jest inna ni偶 metoda wykorzystywana przez spambot.

Sterownik Agent.ddl dzia艂a bezpo艣rednio z wirtualnym narz臋dziem TCP/IP, z pier艣cienia 0, uniemo偶liwiaj膮c wykrywanie ruchu wychodz膮cego przy u偶yciu pewnych program贸w nads艂uchuj膮cych i/lub zap贸r sieciowych na komputerach z aktywnymi infekcjami. Agent.ddl ustanawia po艂膮czenie na porcie 443, pr贸buj膮c zamaskowa膰 swoje dane jako pakiety HTTPS. W rezultacie, nawet gdy badacze przechwyc膮 ruch na bramie, mog膮 nie wiedzie膰, 偶e w rzeczywisto艣ci nie maj膮 do czynienia z danymi HTTPS, ale z zaszyfrowanymi danymi zebranymi na zainfekowanym komputerze.

Poni偶ej przedstawiamy przyk艂ad pakietu z zainfekowanej maszyny, kt贸ry zosta艂 zamaskowany jako dane HTTPS:

Wraz z ka偶dym uruchomieniem sterownika zmienia si臋 klucz szyfrowania. Wykrywanie zostaje utrudnione, poniewa偶 zewn臋trzny obserwator nie zna algorytmu i klucza szyfrowania.

Nale偶y wspomnie膰, 偶e autorzy trojana downloadera pr贸bowali utrudni膰 偶ycie ka偶demu, kto chcia艂 zbada膰 kod sterownika tak bardzo jak to mo偶liwe.

Adres IP serwera centralnego oraz numer portu, na kt贸rym sterownik ustanawia po艂膮czenia, s膮 zakodowane w ciele programu w taki spos贸b, aby ukrywa艂y swoj膮 funkcj臋:

push 00000BB01 ; port – 443
push 0E00C04E1
sub d,[esp],00849C211; r贸偶nica to 0xD7C242D0, czyli adres IP
208.66.194.215

Autorzy w艂o偶yli r贸wnie偶 wiele wysi艂ku w zaciemnienie swojego kodu. Na przyk艂ad prosta operacja:

mov [eax], ecx

po zaciemnieniu wygl膮da nast臋puj膮co:

push ebx
mov ebx, 0x03451b8c
sub ebx,eax
sub ebx, 0x03451b8c
neg ebx
mov [ebx], ecx
pop ebx

Jedno polecenie zosta艂o zast膮pione siedmioma. Mo偶na wi臋c sobie wyobrazi膰, jak wygl膮da reszta sterownika!

Wr贸膰my teraz do komunikacji sieciowej. Szkodliwy kod wysy艂a艂 do serwera pakiet z informacjami o zainfekowanym komputerze. W odpowiedzi na otrzymane dane serwer prawdopodobnie wys艂a艂 plik, kt贸ry zosta艂 specjalnie zaszyfrowany dla okre艣lonej maszyny, z kluczem pasuj膮cym do sprz臋tu komputera, z kt贸rego otrzymano pakiet.

W ten spos贸b autorzy rozwi膮zali problem wykrycia, zbadania i uruchomienia droppera przez zewn臋trznych analityk贸w, dzi臋ki czemu nie musieliby znajdowa膰 klucza szyfrowania w celu zbadania kodu rootkita.

Wygenerowany plik rootkita, jego "czyste cia艂o", jest pobierany na atakowan膮 maszyn臋, na kt贸rej jest uruchamiany przez trojana Agent.ddl. Rustock.C infekuje sw贸j pierwszy sterownik systemowy, dodaj膮c kolejny komputer do nowego botnetu spamowego.

Serwer wykorzystywany przez rootkita Rustock.C jest teraz zablokowany. Wszystkie wysy艂ane do niego pakiety s膮 filtrowane przez routery sieciowe. Wydaje si臋, 偶e organy 艣cigania interesuj膮 si臋 teraz r贸wnie偶 tym adresem IP.

Wnioski

Rekonstrukcja zdarze艅 dokonana przez naszych ekspert贸w pokazuje, 偶e rootkit rozprzestrzenia艂 si臋 aktywnie od wrze艣nia do listopada 2007. Wykorzystanie sieci IFrameBiz mog艂o zapewni膰 mu szerokie rozpowszechnienie. Jednocze艣nie opisane wy偶ej fakty wskazuj膮 na to, 偶e nieuchwytno艣膰 rootkita wynika艂a z wysokiego poziomu szyfrowania jego kodu i zastosowania licznych technik zapobiegaj膮cych debugowaniu, kt贸re utrudnia艂y jego analiz臋 przez wi臋kszo艣膰 ekspert贸w.

Producenci antywirusowi mieli tego rootkita od momentu pojawienia si臋 go "na wolno艣ci". Od mniej wi臋cej tego samego czasu wi臋kszo艣膰 produkt贸w antywirusowych, z bardzo nielicznymi wyj膮tkami, zapewnia艂o wykrywanie jego aktywno艣ci podczas instalacji w systemie, jak r贸wnie偶 wykrywanie komponent贸w odpowiedzialnych za jego instalacj臋 i dystrybucj臋. Przy pomocy prostych narz臋dzi do monitorowania zmian w systemie plik贸w 艂atwo mo偶na by艂o uniemo偶liwi膰 mu przedostanie si臋 do systemu.

Mimo 偶e w przypadku Rustocka mia艂o to miejsce kilkana艣cie razy, jego kod nie zosta艂 szczeg贸艂owo zanalizowany a偶 do maja 2008 roku.

Rustock.C rzeczywi艣cie istnieje, nie jest 偶adnym mitem. Mitem natomiast jest nieuchwytno艣膰 tego rootkita: nie wynika ona z 偶adnych nadzwyczajnych mo偶liwo艣ci maskowania tego szkodnika, ale opiera si臋 na pog艂oskach, jakie pojawi艂y si臋 pod koniec 2006 roku i dzia艂a艂y na korzy艣膰 autor贸w szkodliwego oprogramowania.

Tylko rootkit stworzony z my艣l膮 o istniej膮cych mo偶liwo艣ciach wykrywania b臋dzie potrafi艂 obej艣膰 艣rodki ochrony zapewniane przez takie systemy. Wojna na poziomie j膮dra sprowadza si臋 do pytania, kto b臋dzie pierwszy - rootkit czy rozwi膮zanie do ochrony przed rootkitami.

Celem autora Rustocka nie by艂o stworzenie niewykrywalnego rootkita. Chcia艂 jedynie utrudni膰 analiz臋 szkodnika po jego wykryciu. Dzi臋ki temu mo偶na by艂o op贸藕ni膰 moment wykrycia go przez rozwi膮zania antywirusowe w stosunku do rozpocz臋cia jego dystrybucji.

Pozostaje tylko jedno pytanie: dlaczego w po艂owie pa藕dziernika 2007 roku autor Rustocka przesta艂 ulepsza膰 swojego szkodnika i wypuszcza膰 nowe warianty? Czy to znaczy, 偶e rozpocz膮艂 nowy projekt i gdzie艣 istnieje ju偶 'Rustock.D'?

Nie znamy jeszcze odpowiedzi na to pytanie, jednak niezale偶nie od tego, jaka jest, pojedynczy szkodliwy program, nawet taki, kt贸ry pozostawa艂 niewykryty przez kilka miesi臋cy, nie wp艂ywa na og贸ln膮 sytuacj臋: ka偶dego dnia pojawiaj膮 si臋 tysi膮ce innych szkodliwych program贸w skutecznie neutralizowanych przez rozwi膮zania antywirusowe.

W sytuacji, gdy Internet pozostaje domem dla IFrameBiz i innych podobnych grup, kt贸re ka偶dego dnia rozprzestrzeniaj膮 setki nowych szkodliwych program贸w, w艂amuj膮 si臋 na strony internetowe i wywo艂uj膮 liczne epidemie, nie ma sensu 艣wi臋towa膰 pojedynczego zwyci臋stwa.

PS Wcze艣niej pisali艣my, 偶e Trojan.Win32.Inject.mt instalowa艂 dwa pliki w systemie - 1.exe oraz 2.exe - nie om贸wili艣my jednak charakteru drugiego pliku.

By艂 to wariant Sinowala, trojana szpieguj膮cego. Tego samego, kt贸ry dwa miesi膮ce po zdarzeniach opisanych w tym artykule przyprawi艂 o b贸l g艂owy firmy antywirusowe i znany jest jako 'bootkit'.

Rustock i Sinowal by艂y rozprzestrzeniane w tym samym czasie i za po艣rednictwem tego samego botnetu. Nowe warianty Rustocka przesta艂y pojawia膰 si臋 w po艂owie pa藕dziernika 2007 roku. Pierwsze pr贸bki "bootkita" zosta艂y wykryte miesi膮c p贸藕niej, w listopadzie 2007 roku.

Czy to zbieg okoliczno艣ci? Mo偶e pewnego dnia dowiemy si臋.

殴r贸d艂o:
Kaspersky Lab