W lipcu 2021 roku pisaliśmy o botnecie o nazwie XLoader, który z powodzeniem ukrywał swoją infrastrukturę C2. Opisaliśmy dwie wersje złośliwego oprogramowania kradnące dane na systemach Windows oraz MacOS. Jednak świat nie stoi w miejscu i dotyczy to również szkodliwego oprogramowania.

Od tego czasu botnet XLoader otrzymał dwie znaczące aktualizacje. Zmiany zostały opisane szczegółowo przez zespół Checkpoint Research, gdzie możemy również znaleźć metody identyfikacji serwerów C&C. Po ulepszeniach botnetu jeszcze trudniej odróżnić prawdziwe serwery C2 od legalnych domen wykorzystywanych przez XLoader jako zasłona dymna.


Metody z 2021 roku

Wszystkie próbki XLoader mają w swoich konfiguracjach 64 domeny i jeden identyfikator URI. Domeny z konfiguracji szkodliwego oprogramowania to w rzeczywistości wabiki, mające na celu odwrócenie uwagi badaczy. Nazwa domeny dla prawdziwego serwera C&C została ukryta wśród 64 wabików, podczas gdy identyfikator URI, który zawsze uważany był za adres serwera C&C, jest tylko kolejną przynętą i mógł nawet wskazywać na legalną stronę internetową. Szkodliwe oprogramowanie w wyżej wymienionych wersjach losowo wybiera 16 wabiących domen, z których dwie są zastępowane fałszywym adresem serwera C&C i prawdziwym adresem serwera C&C. Dostęp do prawdziwego serwera C&C jest możliwy z dużym opóźnieniem. Poniżej schemat działania starej ale i tak mocno zaawansowanej metody zaciemniania adresów C&C.

źródło: research.checkpoint.com

Wersja XLoader 2.5

Pierwsze próbki nowej wersji XLoadera pojawiły się na wolności już miesiąc po publikacjach, w sierpniu 2021 r., ujawniając infrastrukturę C&C XLoadera. Na pierwszy rzut oka nie widać było żadnej różnicy, ponieważ struktura konfiguracji pozostała dokładnie taka sama. Jednak podczas emulacji próbek w piaskownicy zmianę było widać jak na żywym organizmie. Przy długim czasie emulacji próbka uzyskała dostęp do ponad 16 domen, w przeciwieństwie do wcześniejszych wersji. Analiza kodu w deassablerze otworzyła oczy i pokazała nowe funkcjonalności.

Podobnie jak w poprzednich wersjach, XLoader najpierw tworzy listę 16 domen, które są losowo wybierane z 64 domen zapisanych w konfiguracji. Po każdej próbie dostępu do wybranych 16 domen wykonywany jest nowy fragmentu kodu. Jego celem jest częściowe nadpisanie listy dostępnych domen nowymi losowymi wartościami. Dlatego jeśli XLoader będzie działał wystarczająco długo, uzyska dostęp do nowych losowo wybranych domen. Należy zwrócić uwagę na fakt, że nadpisywanych jest tylko 8 pierwszych wartości, a pozostałe 8 pozostaje takie same jak te, które zostały wybrane bezpośrednio po uruchomieniu.

Podczas testów przeprowadzanych przez Checkpoint okazało się, że wiele z hostów, które miały być C&C nie odpowiadało lub wyglądało na legalne. Ponadto większość z nich pojawia się tylko raz w różnych konfiguracjach.

Po testach, zebrano następnie adresy IP wszystkich przypuszczalnie złośliwych hostów i stron głównych z odpowiednich witryn. Okazało się, że wszystkie domeny wskazują na kilka zakresów adresów IP, z których wszystkie należą do Namecheap. Niektóre domeny wskazują te same adresy IP. Wszystkie witryny wyświetlają strony, które wydają się być „w budowie”, głównie fałszywą stronę zaparkowanej domeny Namecheap lub Hostinger, mimo że wszystkie adresy IP należą do Namecheap.

Czy można jakoś znaleźć serwery C&C na liście 64 domen-wabików?

Przyjrzyjmy się teraz funkcji, która wypełnia początkową listę 16 domen w XLoader 2.5 i porównajmy ją z funkcją z XLoadera 2.3:

źródło: research.checkpoint.com

Jak widać, XLoader 2.5 wprowadził dodatkowy kod, który zastępuje jeszcze jedną domenę na liście stałą wartością. Co ciekawe, ta wartość nie pojawia się nigdzie indziej w kodzie i nie jest zapisywana. Jego pozycja na liście 16 domen jest wybierana losowo. Ponieważ pierwsze 8 domen jest nadpisywanych nowymi wartościami po pierwszym trafieniu, istnieje 50% szans, że ta domena zostanie nadpisana. Domniemamy tutaj, że jest to domena, która wskazuje na prawdziwy serwer C&C.

Schemat wyboru domeny jest teraz następujący:

źródło: research.checkpoint.com

Jeśli rzeczywista domena C&C pojawia się w drugiej części listy, jest ona otwierana w każdym cyklu raz na około 80-90 sekund. Jeśli pojawi się w pierwszej części listy, zostanie zastąpiona inną losową nazwą domeny.

Jednak nadal istnieje prawdopodobieństwo, że ta domena ponownie pojawi się na liście. Jest to możliwe, ponieważ 8 domen, które nadpisują pierwszą część listy, jest wybieranych losowo, a prawdziwa domena C&C może być jedną z nich. W tym przypadku prawdopodobieństwo uzyskania dostępu do prawdziwego serwera C&C w następnym cyklu wynosi 7/64 lub 1/8 w zależności od pozycji domeny „fake c2 (2)” (rysunek wyżej).

Autorzy szkodliwego oprogramowania po raz kolejny udowodnili swoje wysokie umiejętności techniczne i nieszablonowe podejście. Wdrażając Prawo Wielkich Liczb w złośliwym oprogramowaniu, osiągnęli dwa cele: nie tylko ukryli prawdziwe serwery C&C w typowych emulacjach piaskownicy (które zwykle są krótkie), ale także utrzymali stałość złośliwego oprogramowania w środowisku.

W poniższej tabeli podajemy obliczone już prawdopodobieństwo, że rzeczywisty serwer C&C nie zostanie ponownie uzyskany w określonym przedziale czasowym. Bierzemy pod uwagę najniższe możliwe prawdopodobieństwo pojawienia się serwera w danym cyklu, czyli 7/64, oraz najdłuższą możliwą przerwę pomiędzy dwoma cyklami, która wynosi 90 sekund.

źródło: research.checkpoint.com

Z tabeli widzimy, że na milion uruchomień tylko w jednym przypadku szkodliwe oprogramowanie może nie uzyskać dostępu do prawdziwego serwera C&C w ciągu 2,5 godziny.

Nawet 9 minut wystarczy, aby oszukać emulatory i uniemożliwić wykrycie prawdziwego serwera C&C, na podstawie opóźnień między dostępami do domen. Jednocześnie regularny okres odrzucania, utrzymywany przez złośliwe oprogramowanie za pomocą teorii prawdopodobieństwa, pozwala trzymać ofiary jako części botnetu bez poświęcania funkcjonalności.


Podsumowanie

Aby utrzymać się na „rynku”, autorzy złośliwego oprogramowania muszą stale rozwijać swoje produkty i wymyślać nowe sztuczki, zupełnie jak w przypadku legalnego software’u. W przypadku złośliwego oprogramowania XLoader widzimy żywy przykład takiego procesu.

W lipcu 2021 znaleziono metodę na wykrycie złośliwych serwerów C2 wśród tysięcy legalnych w XLoader v.2.3. Ulepszony XLoader v.2.5 wprowadził znaczące zmiany w tym algorytmie, wykorzystując moc Prawa Wielkich Liczb z teorii prawdopodobieństwa. Taka modyfikacja pozwoliła osiągnąć dwa cele: każdy węzeł w botnecie utrzymuje stały współczynnik odrzuceń, jednocześnie oszukując automatyczne skrypty i zapobiegając wykryciu prawdziwych serwerów C&C. Aktualnie wykrycie i zapobieganie działaniu botnetu XLoader stało się dużo trudniejsze, ale nie niemożliwe.

Polecamy zapoznać się z aktualnymi IoC na blogu Checkpoint.

Podziel się z innymi tym artykułem!