Anatomia Flashfake'a. Cz臋艣膰 2

Siergiej Golowanow
Ekspert z Kaspersky Lab

W pierwszej cz臋艣ci naszej analizy przyjrzeli艣my si臋 sposobom rozprzestrzeniania i mechanizmom infekcji stosowanym przez Flashfake'a (zwanego r贸wnie偶 Flashbackiem) - szkodliwy program, kt贸ry z ko艅cem kwietnia 2012 roku zainfekowa艂 oko艂o 748,000 komputer贸w opartych na systemie Mac OS X. W drugiej cz臋艣ci analizy przyjrzymy si臋 innym funkcjom szkodnika oraz zastanowimy si臋, w jaki spos贸b cyberprzestepcy, stoj膮cy za Flashfake'm, zarabiaj膮 pieni膮dze na botnecie, kt贸ry stworzyli.


Biblioteka dynamiczna

Szkodliwy program Flashfake sk艂ada si臋 z kilku modu艂贸w i biblioteki dynamicznej, kt贸ra jest wstrzykiwana w procesy przegl膮darki internetowej. Wspomniana biblioteka jest implementowana jako iniektor z艂o艣liwego kodu (zobacz diagram poni偶ej).

 
Schemat dzia艂ania Flashfake'a

Nasza baza sygnatur zawiera obecnie dwie modyfikacje biblioteki, powszechnie znanej jako libmbot.dylib. Ta biblioteka dynamiczna (o rozmiarze oko艂o 400 KB) jest standardow膮 paczk膮 Mach-O dla 32- i 64-bitowych system贸w operacyjnych.

Dzia艂anie biblioteki inicjowane jest przez standardow膮 funkcj臋 _dylibmain, kt贸ra jako parametr wej艣ciowy dopuszcza liczb臋 ca艂kowit膮. Domy艣lnie, 艂adowanie jest rozpoczynane cyfr膮 7.


Pseudokod do uruchomienia pierwotnej funkcjonalno艣ci biblioteki dynamicznej

Po sprawdzeniu parametru wej艣ciowego biblioteka zaczyna odszyfrowywanie bloku konfiguracyjnego, kt贸ry definiuje jej szkodliw膮 zawarto艣膰. Podczas odszyfrowywania u偶ywany jest algorytm RC4 z dekodowaniem base64. Blok konfiguracyjny jest tablic膮, kt贸rej ka偶dy wpis sk艂ada si臋 z identyfikatora, typu i warto艣ci. Ca艂a p贸藕niejsza dzia艂alno艣膰 biblioteki pochodzi z odpowiedniej instrukcji dla identyfikatora pozycji w tym bloku.

 
Przyk艂ad bloku konfiguracyjnego dynamicznej biblioteki Flashfake'a

Blok ten zawiera nast臋puj膮ce rodzaje wpis贸w (definiuj膮cych funkcjonalno艣膰):

  1. funkcja aktualizacji i infekcji przegl膮darek internetowych poprzez biblioteki DYLD_INSERT_LIBRARIES;
  2. wst臋pna lista domen pe艂ni膮cych rol臋 serwer贸w kontroli dla biblioteki dynamicznej;
  3. funkcja generowania nazw domen w strefach: "org", "com", "co.uk", "cn", i "in" - do wyszukiwania serwer贸w kontroli;
  4. funkcja do generowania domen trzypoziomowych dla domen: ".PassingGas.net", ".MyRedirect.us", ".rr.nu", ".Kwik.To", ".myfw.us", ".OnTheWeb.nu" itd.;
  5. funkcja wyszukiwania serwer贸w kontroli poprzez generowanie 偶膮da艅 wyszukiwania dla mobilnej wersji Twittera;
  6. funkcja wstrzykiwania zewn臋trznego kodu do kontekstu stron internetowych odwiedzanych przez u偶ytkownika.

Mechanizm iniekcji

Domy艣lnie, biblioteka, je偶eli jest uruchomiona w kontek艣cie przegl膮darki, 艣ledzi 偶膮dania u偶ytkownika przechwytuj膮c funkcje: send, recv, CFReadStreamRead i CFWriteStreamWrite. Po wykryciu, 偶e strona, o kt贸rej mowa w bloku konfiguracyjnym jest odwiedzana, biblioteka wstrzykuje do kontekstu przegl膮darki JavaScript z serwera kontroli.


JavaScript wstrzykiwany do kontekstu przegl膮darki internetowej

Warto艣膰 pola {DOMAIN} jest pobierana z listy wst臋pnych serwer贸w kontroli, np.

googlesindication.com, gotredirect.com, dotheredirect.com, adfreefeed.com, googlesindications.cn, googlesindications.in, instasearchmod.com, jsseachupdates.cn.

Domy艣lnie, JavaScript jest zawsze wykonywany ilekro膰 przegl膮darka otworzy stron臋 google.com. Jednak偶e, blok konfiguracyjny zawiera list臋 321 domen, dla kt贸rych istnieje zakaz uruchamiania skryptu JavaScript, kiedy pojawi膮 si臋 w wyniku wyszukiwania. Opr贸cz silnik贸w wyszukiwania lista zawiera spis sieci spo艂eczno艣ciowych, witryny z wiadomo艣ciami, sklepy internetowe i banki. Najprawdopodobniej te domeny trafi艂y na list臋 w celu minimalizacji ruchu sieciowego generowanego na serwerze cyberprzest臋pc贸w.

 
Lista domen wykluczonych z iniekcji skryptu JavaScript


Audyt wersji

Funkcjonalno艣膰 biblioteki dynamicznej obejmuje mechanizm samoaktualizacji. Tw贸rcy szkodnika zaimplementowali r贸wnie偶 mechanizm, kt贸ry przy u偶yciu algorytmu RSA weryfikuje serwery kontroli i sygnatury uaktualnie艅. W chwili obecnej dost臋pne s膮 dwie g艂贸wne wersje szkodliwej biblioteki. Niestety, data w艂膮czenia wszystkich szkodliwych plik贸w ustawiona jest jako 1 stycznia 1970 roku, co uniemo偶liwia nam stworzenie dok艂adnej osi czasu publikowania bibliotek. Niemniej jednak, r贸偶nice w funkcjach, zawartych w bibliotekach, by膰 mo偶e pozwol膮 nam ustali膰 moment ich wyst膮pienia.

W oparciu o nasz膮 analiz臋, charakterystyczne cechy wersji 1.0 (MD50x8ACFEBD614C5A9D4FBC65EDDB1444C58), kt贸ry by艂a aktywna do marca 2012 roku, to: losowe nazwy bibliotek, przechwytywanie funkcji CFReadStreamRead i CFWriteStreamWrite oraz instalacja w lokalizacji /Users/Shared/.svcdmp. Z艂o艣liwy JavaScript jest r贸wnie偶 zawarty w ciele bie偶膮cego szkodliwego programu. Jedyn膮 r贸偶nic膮 w wersji 1.1 s膮 zmiany na wst臋pnej li艣cie serwer贸w kontroli i algorytm generowania dla nich nowych nazw domen.

W wersji 2.0 (MD5 434C675B67AB088C87C27C7B0BC8ECC2) - aktywnej w marcu 2012 - dodano algorytm wyszukiwania serwer贸w kontroli poprzez Twitter.com. Z艂o艣liwy JavaScript zosta艂 przeniesiony z bloku konfiguracyjnego, a funkcjom send i recv dodano obs艂ug臋 przechwytywania ruchu sieciowego i spoofingu. Ustalona nazwa szkodliwej biblioteki - libmbot.dylib - zosta艂a r贸wnie偶 dodana w wersji 2.0 wraz z kilkoma loaderami i dodatkow膮 kontrol膮 parametru wej艣ciowego do aktywacji g艂贸wnej cz臋艣ci z艂o艣liwego programu. Wersja 2.1 zawiera nowy algorytm wyszukiwania serwer贸w kontroli za po艣rednictwem Twittera. Najnowsza wersja biblioteki - wersja 2.2 - jest w centrum zainteresowania, g艂贸wnie ze wzgl臋du na dodatek do przegl膮darki internetowej Firefox.


Dodatek do Firefoxa

W tej wersji biblioteki dynamicznej wszystkie machinacje na 偶膮daniach wyszukiwania w Google s膮 domy艣lnie przeprowadzane przez przechwyt funkcji send, recv, CFReadStreamRead i CFWriteStreamWrite. Jest to uniwersalne podej艣cie dla wszystkich przegl膮darek internetowych systemu Mac OS X, ale wymaga dodatkowego wysi艂ku podczas tworzenia kodu do dekodowania ruchu sieciowego u偶ytkownik贸w. Dlatego biblioteka pojawi艂a si臋 w bloku konfiguracyjnym jako dodatek do Firefoxa, zwany AdobeFlashPlayer 11.1, w celu zminimalizowania zmian w wersji 2.2.

 
Z艂o艣liwy dodatek do Firefoxa zakamuflowany jako nak艂adka Adobe Flash Player

 
Dodatek Genuine Adobe Flash

Szkodliwa nak艂adka posiada t臋 sam膮 funkcjonalno艣膰, co g艂贸wny modu艂 tzn. przechwytuje dane u偶ytkownika z Google i "podstawia" ruch sieciowy z wykorzystaniem danych serwera kontroli.


Podsumowanie

Flashfake jest obecnie najbardziej rozprzestrzenionym szkodliwym programem dla komputer贸w Mac OS X. Fakt ten jest nast臋pstwem zar贸wno niedba艂o艣ci firmy Apple, je偶eli chodzi o aktualizacj臋 system贸w operacyjnych, jak i wzrostu zdolno艣ci cyberprzest臋pc贸w do stosowania najnowszych trend贸w w dziedzinie szkodliwego oprogramowania: luk zero-day, 艣rodk贸w autoochrony, silnych kryptograficznie algorytm贸w do komunikacji z serwerami kontroli, sprawdzania obecno艣ci rozwi膮za艅 antywirusowych w systemie, wykorzystania us艂ug publicznie dost臋pnych do zarz膮dzania botnetami. Wszystkie te technologie s膮 zdolne razi膰 zar贸wno systemy Mac, jak i Windows. Poprzez zak艂贸canie aktywno艣ci u偶ytkownika na platformie Google, ludzie stoj膮cy za Flashfake'm utworzyli sta艂e 藕r贸d艂o dochodu, kt贸re jest zdolne do generowania tysi臋cy dolar贸w dziennie. Pozostaje niejasne, kt贸ry program partnerski umieszcza odno艣niki do fa艂szywych wynik贸w wyszukiwania i kto dok艂adnie odpowiedzialny jest za pomoc cyberprzest臋pcom w rozprzestrzenianiu szkodnika.

A to oznacza, 偶e jeszcze wr贸cimy do tego tematu...

殴ród艂o:
Kaspersky Lab