Stan zagrożeń w internecie znajduje się obecnie na poziomie standardowym. Nie występują duże epidemie a eksperci z Kaspersky Lab nie zanotowali żadnych poważnych incydentów związanych z bezpieczeństwem. Poziom zagrożenia: 1

Anatomia Flashfake'a. Część 2

Tagi:

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).

 enlarge.gif
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.

 enlarge.gif
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.

 enlarge.gif
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 <nobr>(MD50x8ACFEBD614C5A9D4FBC65EDDB1444C58)</nobr>, 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.

 enlarge.gif
Złośliwy dodatek do Firefoxa zakamuflowany jako nakładka Adobe Flash Player

 enlarge.gif
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...