Home → Analizy → Zagrożenia → Ogólne zagrożenia → Anatomia Flashfake'a. Część 2
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.
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).
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.
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.
Blok ten zawiera następujące rodzaje wpisów (definiujących funkcjonalność):
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.
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.
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.
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.
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.
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...
Analizy
Blog