Zespół Stairwell Threat Research zidentyfikował niedawno nowe złośliwe narzędzia wykorzystywane podczas włamań przez ChamelGang – profesjonalnego cyberprzestępcę mającego powiązania z Chinami. Grupa ta była wcześniej obserwowana jako podmiot atakujący organizacje energetyczne, lotnicze i rządowe w Rosji, Stanach Zjednoczonych, Japonii, Turcji, Tajwanie, Wietnamie, Indiach, Afganistanie, Litwie i Nepalu.
Przegląd narzędzi zidentyfikowanych przez Stairwell Threat Research ujawnił, że grupa ChamelGang poświęciła dużo czasu i wysiłku na badanie oraz rozwój solidnego zestawu narzędzi służących włamywaniu się do Linuksa. Jednym z nich jest ChamelDoH, implant C++ zaprojektowany do komunikacji przez tunelowanie DNS-over-HTTPS (DoH). Zbadana próbka to duży plik binarny C++ przeznaczony do uzyskiwania zdalnego dostępu do systemu, w którym jest zainstalowany. Komunikuje się ze skonfigurowaną infrastrukturą dowodzenia i kontroli za pośrednictwem tunelowania DoH.
Próbka wykorzystuje zmodyfikowany alfabet base64 do kodowania komunikacji jako subdomen dla złośliwego, kontrolowanego przez aktora serwera DNS. Implant gromadzi różne części informacji systemowych w celu profilowania zainfekowanej maszyny i jest zdolny do wykonywania podstawowych operacji zdalnego dostępu, takich jak przesyłanie, pobieranie, usuwanie i wykonywanie plików.
Gromadzenie informacji
Po wykonaniu w środowisku implant wykorzysta różne wywołania systemowe do wygenerowania obiektu JSON zawierającego fragmenty danych rozpoznawczych. Klucze JSON i opis każdej wartości zostały zamieszczone poniżej:
- host_name – nazwa hosta
- ip – każdy adres IP przypisany na hoście
- system_type – Linux, Windows itp.
- system_version – build i dystrybucja systemu
- i.e. #43-Ubuntu SMP PREEMPT_DYNAMIC Tue Apr 18 18:21:28 UTC 2023
- whoami – konto, w kontekście którego uruchomiony został ChamelDoH
- process_pid – identyfikator procesu ChamelDoH
- bits – rodzaj architektury systemu, x64 lub x86
- pwd – katalog, w jakim uruchomiony został malware
- id – pseudolosowo wygenerowany numer ID, który określa nam instancje ChamelDoH dla infrastruktury atakującego
Tunelowanie DNS-over-HTTPS
ChamelDoH jest nowatorski w swojej metodzie C&C. Konfiguracja C2 implantu to element kodu JSON zawierający dwa klucze:
- ns_record – tablica złośliwych serwerów C2
- doh – tablica legalnych adresów dostawców usług chmurowych, która może być użyta do tunelowania
Analizowana próbka zawierała następującą konfigurację:
Taka konfiguracja jest następnie wykorzystywana przez implant do tworzenia żądań DoH przy użyciu skonfigurowanych dostawców i złośliwych serwerów nazw, kodowania komunikacji C2 jako subdomen i wysyłania żądań TXT dla wygenerowanej domeny zawierającej zakodowaną komunikację C2.
Ze względu na to, że dostawcy DoH są powszechnie wykorzystywani jako serwery DNS dla legalnego ruchu, nie można ich łatwo zablokować w całym przedsiębiorstwie. Ponadto HTTPS zapobiega inspekcji tych żądań bez rozszywania ruchu, więc dział defensywy nie może łatwo zidentyfikować, jakie żądania domeny są wysyłane przez DoH i selektywnie wykrywać lub zapobiegać nietypowemu ruchowi. Wynik tej taktyki jest podobny do C2 przez przekierowanie domeny, gdzie ruch jest wysyłany do legalnej usługi hostowanej w sieci CDN, ale przekierowywany do serwera C2 za pośrednictwem nagłówka hosta żądającego – zarówno wykrywanie, jak i zapobieganie są trudne. Diagram komunikacji DoH w ChamelDoH został dołączony poniżej, aby lepiej zilustrować cały proces.
ChamelDoH szyfruje swoją komunikację za pomocą AES128, a wynik koduje base64, dzięki czemu można go poprzedzić jako subdomenę. Ponieważ alfabet base64 zawiera pewne znaki inne niż alfanumeryczne, ChamelDoH wykorzystuje zmodyfikowany alfabet base64, aby zapewnić przesyłanie zakodowanych danych przez DNS. Zastępuje te znaki łańcuchami wieloznakowymi, np. „=” – „A3C3C3CA”.
Ponieważ żądania DNS są żądaniami TXT, złośliwy serwer C2 jest w stanie odpowiedzieć dowolnymi danymi, a zatem wykorzystuje standardowy alfabet base64.
Możliwości
Implant umożliwia wykonywanie podstawowych operacji zdalnego dostępu, takich jak przesyłanie, pobieranie, usuwanie i wykonywanie plików. Lista wszystkich zaimplementowanych poleceń została zamieszczona poniżej:
- run – wykonaj plik
- sleep – przeczekaj przez określoną liczbę sekund
- wget – pobierz plik z URL
- upload – przeczytaj i wyślij plik
- download – pobierz i zapisz do pliku
- rm – usuń plik
- cp – skopiuj plik do nowej lokalizacji
- cd – zmień katalog
Podsumowanie
Na podstawie powyższego przykładu możemy śmiało wysunąć tezę, że zaawansowane złośliwe oprogramowanie korzysta z coraz to nowych technik w celu uniknięcia wykrycia. Cyberprzestępcy wiedzą, które obszary są najmniej monitorowane w środowiskach korporacyjnych i wykorzystują te słabości. Warto zwrócić na to uwagę i szukać szkodliwej aktywności tam, gdzie najmniej się jej spodziewamy.