Jak działają nowe wirusy

Wyświetlenie strony internetowej zajmuje niewiele czasu, jednak skutki jej uruchomienia możemy odczuwać długo. Jeżeli w efekcie generowania strony dostanie się na nasz komputer wirus typu drive-by download, utracimy kontrolę nad własną maszyną. Nawet jeżeli tego w pierwszej chwili nie zauważymy, szkodnik przegląda nasze konta bankowe, wysyła spam bądź wykorzystuje komputer do innych celów, wypełniając rozkazy hakera.
Wirusy od 25 lat atakują komputery
Wirusy od 25 lat atakują komputery

Metoda, dzięki której wirus dostaje się na komputer, oraz sposób ukrywania się w systemie są skomplikowanymi procesami. Przyjrzyjmy się im dokładnie, niczym naukowcy oglądający prawdziwe wirusy przez mikroskop. Wraz z Magnusem Kalkuhlem, analitykiem wirusów z firmy Kaspersky, przeanalizowaliśmy wirusa Gumblar. Wirus – ze względu na podstępną metodę rozpowszechniania – ma potencjał, by stać się większym zagrożeniem niż robak Conficker. Pokażemy metodę, którą stosuje szkodnik, by łamać zabezpieczenia komputera i zagnieżdżać się głęboko w jądrze systemu.

Nowe zagrożenie
Gumblar – wirus typu drive-by download ukrywa się na zarażonych stronach.
Nie są to jednak tylko wątpliwej reputacji strony hakerskie czy pornograficzne, ale też normalne strony internetowe. Nawet nasz ulubiony blog może nieświadomie rozpowszechniać złośliwe oprogramowanie.

Szybsze rozprzestrzenianie

Kaspersky Lab informuje, że tylko w listopadzie 2009 roku dokonano około 1,7 miliona odwołań do stron zarażonych Gumblarem. Według ScanSafe, firmy zajmującej się bezpieczeństwem, Gumblar stanowi 29 proc. wszystkich blokowanych szkodliwych aplikacji.

Trudny do wykrycia

Gdy Gumblar zagnieździ się w systemie, wykorzystuje do ukrywania się wyjątkowo sprytną technikę, stosowaną przez rootkity i polegającą na wstrzyknięciu kodu w proces. W efekcie wirus staje się w Menedżerze zadań niewidoczny.

Ponadto wspólnie z producentem oprogramowania ochronnego Panda Security rozszyfrowaliśmy konia trojańskiego TDSS, który – podobnie jak Gumblar – wyposażony został w podstępną funkcję typu rootkit.  Przejdźmy teraz jednak do protokołu przeprowadzonego ataku w sekundowych krokach:

0,124

0,124

0,124

Odwiedzamy niewinnie wyglądającą stronę prowadzoną przez orkiestrę dętą z niewielkiego miasteczka. Do surfowania wykorzystujemy przeglądarkę Internet Explorer, choć akurat pod tym względem ani Firefox, ani Opera nie zapewniają lepszej ochrony.

0,361

0,361

0,361

Przeglądarka interpretuje kod źródłowy, strona wygląda podobnie jak wówczas, gdy odwiedzaliśmy ją wcześniej. Jednak dzisiaj wiele się zmieniło – szkodnik Gumblar już dawno przejął kontrolę nad stroną. W jej kodzie źródłowym został umieszczony bezpośrednio przed znacznikiem niepozorny fragment. Złośliwy kod składa się z jednego dynamicznie generowanego polecenia Java-Script, na które nie zwróci uwagi ani użytkownik, ani niektóre pakiety ochronne. Skrypt wywołuje w tle kod PHP.

0,758

Ten plik PHP znajduje się na innej skompresowanej stronie internetowej, będącej tylnymi drzwiami dla szkodnika – złośliwe oprogramowanie pobierane jest za pośrednictwem JavaScript.

W naszym przypadku szkodnik znajduje się na serwerze w Brazylii. Nazwa wirusa wzięła się od pierwszej wersji szkodnika, która powstała na początku roku 2009 i pobierała skrypt z chińskiej strony www.gumblar.cn. Choć teraz strona jest już offline, aktualnie złośliwe oprogramowanie rozprowadza około 2000 innych serwerów. Ten stan rzeczy utrudnia skuteczne zwalczanie wirusa. W przypadku dotychczas pojawiających się szkodników problem dotyczył tylko kilku domen, co umożliwiało stosunkowo proste opanowanie sytuacji. Strona orkiestry dętej nie jest więc jedyną, za pośrednictwem której

koń trojański się ostatnio rozpowszechnia.

Gumblar wykorzystuje nie tylko typowe metody wstrzykiwania kodu, ale też infekuje niezliczoną liczbę stron internetowych i w efekcie zaraża tysiące domowych komputerów. Według Kaspersky Lab w listopadzie 2009 roku Gumblar przeprowadził 1,7 miliona ataków na komputery – a jest ich coraz więcej. Zagrożenie, jakie powoduje Gumblar, jest tak poważne, ponieważ szkodnik nie zna barier językowych. Zarażone strony internetowe znajdują się nie tylko w angielskim obszarze językowym, ale też wielu innych językach.

1,126

1,126

1,126

W celu dokonania analizy wyłączyliśmy nasz skaner antywirusowy – aktywna i zaktualizowana ochrona rozpoznałaby szkodliwe oprogramowanie o nazwie Trojan-Downloader. JS.Gumblar.x. Dla antywirusów, które nie są zaktualizowane, to całkiem poważne wyzwanie.

Gumblar wykorzystuje luki jeszcze w dzień, w którym zostaje podana informacja o ich wykryciu (tzw. zagrożenie zero-day). Kolejną złośliwością twórców wirusa jest umieszczenie na brazylijskim serwerze niezliczonej ilości najróżniejszych szkodników wykorzystujących znane dziury. Podczas gdy my nieświadomie mamy dostęp do serwera ze złośliwym oprogramowaniem, ten analizuje system operacyjny, przeglądarkę oraz pozostałe składniki w poszukiwaniu słabych punktów naszego komputera. Gumblar koncentruje się przede wszystkim na lukach w aplikacjach Adobe Reader, Adobe Flash oraz pakiecie Microsoft Office. Serwer na podstawie luk wykrytych w atakowanym komputerze dynamicznie tworzy pakiet exploitów. I podsuwa nam szkodliwe oprogramowanie, które zostało dostosowane do naszego komputera!

Wirus z poczty: TDSS udaje aktualizację Flash
Gumblar rozpowszechniany jest jako drive-by download. Ale istnieje mnóstwo wirusów, które do komputera docierają za pośrednictwem emaili. Eksperci do spraw bezpieczeństwa producenta oprogramowania antywirusowego Panda Security przyjrzeli się bliżej koniowi trojańskiemu TDSS

TDSS dostaje się do systemu
Hakerzy rozpowszechniają za pośrednictwem wiadomości elektronicznych odnośnik, w którym zachęcają do obejrzenia interesującego filmu o Wielkim Zderzaczu Hadronów z CERN-u. Na stronie wpycha się internaucie wtyczkę Flash, która zawiera konia trojańskiego TDSS, łącznie z funkcją backdoor oraz sprytnie zaprogramowanym składnikiem rootkitowym.

Panda analizowała szkodnika i odkryła w kodzie assemblerowym trojana to, że TDSS ukrywa się poprzez nadpisanie funkcji systemowych i przekierowywanie ich do
własnej wersji. Gdy już złapiemy konia trojańskiego, to – z powodu jego funkcji rootkitowych – trudno się zorientować, że nasz komputer został zarażony. Jedyna wskazówka: gdy próbujemy uruchomić jakąkolwiek stronę internetową, najpierw wyświetlana jest informacja o błędzie, a haker próbuje wmówić użytkownikowi, że strona internetowa nie istnieje.

4,126

4,126

4,126

W celu lepszego zrozumienia działania szkodnika przyglądamy się kodowi źródłowemu

i widzimy, że został on specjalnie skonstruowany w tak skomplikowany sposób, aby właściwy sens kodu nie był widoczny na pierwszy rzut oka. Jest to metoda wykorzystywana przez hakerów do utrudniania życia automatycznym systemom rozpoznawania oraz osobom analizującym wirusy. Odkryliśmy, że zaraziliśmy się dropperem – trojanem wstrzykującym kolejne wirusy.

Program toruje drogę swym złym towarzyszom poprzez stworzenie obiektu i zagnieżdżenie pliku PDF, który zostaje otwarty w tle. Wygenerowany plik zawiera Exploit. Win32.Pidief.crv. Kolejny szkodnik zostaje umieszczony w naszym systemie – tym razem wykorzystano w tym celu błąd przepełnienia bufora, co umożliwia luka w Adobe Readerze. Na to, że doszło do ataku, wskazuje samoczynne zamknięcie się Adobe Readera, które następuje zaraz po jego uruchomieniu. Jednak w najgorszym wypadku może się okazać, że szkodliwe oprogramowanie zagnieździ się zupełnie niezauważenie w systemie.

5,693

“Wstrzyknięty” program jest teraz – przynajmniej na razie – ostatnim poziomem eskalacji infekcji, szkodnik Trojan-PSW. Win32.Kates.ad dostaje się do komputera. Specjalną techniką jest dzielenie przez programistów szkodnika na małe części. Modularyzacja ułatwia użycie wirusa. Poza tym dropper został tak skonfigurowany, aby później pobrać brakujące składniki.

7,953

Szkodnik umieszcza w Rejestrze następujący kod: »HKEY_LOCAL_MACHINESoftware Microsoft Windows NTCurrentVersionWindows LoadAppInit_DLLs = 1«.

8,131

Za pomocą drugiego wpisu »HKEY_LOCAL_MACHINESoft wareMicrosoft Windows NTCurrentVersionWindows AppInit_DLLs = winmm.dll« haker sprawia, że

każda aplikacja odwołująca się do biblioteki “user32.dll” – a są to praktycznie wszystkie

programy – również ładuje bibliotekę DLL szkodnika. Jest to plik “winmm.dll”, a konkretnie – szczegółowo przemyślana część rootkita o nazwie Daonol. Składnik potrafi przetrwać każdy restart komputera. Plik DLL wirusa niejako podpina się bowiem pod dowolny aktualnie uruchomiony proces, w naszym przykładzie Adobe Readera. Po czym “wstrzykuje” właściwy

kod w pamięć RAM aplikacji i kończy działanie pliku DLL. Proces jest widoczny jedynie przez ułamek sekundy. Mimo to obcy kod zostanie wykonany w pamięci RAM, która została zarezerwowana dla aplikacji Adobe Reader. Tę metodę iniekcji procesów odkrył Felix Leder za pomocą autorskiego narzędzia RE-Google.

10,218

10,218

10,218

Sposób rozpowszechniania się Gumblara jest wyjątkowo perfidny. Szkodnik czeka, aż użytkownik zaloguje się do swojego serwera sieciowego za pośrednictwem FTP, po

czym przechwytuje dane logowania i manipuluje stroną internetową. Szkodnik dokonuje

iniekcji kodu JavaScript, który również znalazł się na stronie orkiestry dętej – i w efekcie infekuje kolejne komputery. Aby haker miał dostęp do transferu przez FTP, znowu zostaje wykorzystany plik “winmm.dll”.

Znajdujący się wewnątrz rootkita składnik Daonol ma również do dyspozycji aplikację typu sniffer. Sniffer nadzoruje komunikację sieciową wszystkich aplikacji. W tym celu biblioteka DLL nadpisuje zawartość wewnętrznych funkcji nadawania oraz odbioru systemu Windows, które znajdują się w pliku “ws2_32.dll” i przekierowuje ich wywołania do własnej procedury sprawdzającej. Funkcja sprawdzająca następnie analizuje przepływające dane w poszukiwaniu pożądanych danych dostępowych oraz haseł FTP i je ekstrahuje.

10,228

Ostatni wpis w Rejestrze »HKEY_LOCAL_MACHINESoftwareMicrosoftWindows NTCurrentVersionDrivers32 midi9 = [filename] 0yAAAAAAAA« służy jako informacja dla nadchodzącego Gumblara, że system jest już zarażony.

11,545

11,545

11,545

Od teraz Gumblar nadzoruje ruch FTP sieci oraz manipuluje zapytaniami Google’a. Wirus przekierowuje je poprzez instalację serwera proxy działającego na porcie 7171, który jest zamaskowany jako plik “Sys32dll.exe”. Jeżeli na przykład będziemy wyszukiwać strony

banków, serwisów społecznościowych bądź sklepów internetowych, istnieje możliwość, że Google wyświetli prawidłowe wyniki, ale użytkownik i tak zostanie przekierowany na strony wyłudzające dane. Na tych stronach zostaną przechwycone dane logowania.

W związku z tą manipulacją wyszukiwanie za pośrednictwem Google’a narzędzi umożliwiających usunięcie Gumblara jest z góry skazane na niepowodzenie. To nie koniec złych wieści. Wiersz służący do iniekcji Gumblara znajdujący się na zainfekowanych stronach stanowi klucz dla innych szkodliwych aplikacji. Zarażone szkodnikiem komputery stają się tzw. zombi w sieci botnet. Hakerzy mają możliwość zdalnego sterowania komputerami i mogą robić, co im się żywnie podoba. Dlatego powinniśmy natychmiast zareagować – zaktualizujmy system operacyjny, aplikację Adobe Reader oraz wtyczkę Flash w celu uniknięcia zarażenia.

Modułowa budowa złośliwego oprogramowania z kodem rozruchowym (z prawej) oraz rootkitem (z lewej).

Modułowa budowa złośliwego oprogramowania z kodem rozruchowym (z prawej) oraz rootkitem (z lewej).

Conficker i Gumblar zdemaskowane
Felix Leder, doktorant na Uniwersytecie Bonn, z pomocą zespołu studentów stworzył
narzędzie, które analizuje złośliwe oprogramowanie i rozpoznaje znajdujące się wewnątrz funkcje. Pomocnik o nazwie RE-Google jest wtyczką do dezasemblera IDA Pro i dokonuje automatycznych zapytań w wyszukiwarce Google.

Najlepsze są proste rozwiązania
Ponieważ twórcy wirusów chętnie sięgają do już istniejących bibliotek oraz już istniejących części aplikacji, można za pomocą prostego wyszukania w Sieci rozszyfrować budowę licznych szkodników. W ten sposób Lederowi wraz z zespołem udało się zidentyfikować różne funkcje szyfrujące w robaku Conficker oraz bocie Waledac. Narzędzie RE-Google okazało się też skuteczne w przypadku Gumblara. Dzięki niemu Leder odkrył, jak działa funkcja rootkita oraz że bazuje na zestawie narzędzi Shock Shock. A ponadto że Gumblar odfiltrowuje z ruchu sieciowego dane logowania FTP. Udało się tego dokonać, mimo że funkcja nie została napisana w zrozumiałym języku, ale zaszyfrowana przez twórcę złośliwego kodu.