Koń trojański światowej klasy - historia infekcji

Tajna komunikacja

Chociaż ten trojan jest rozwinięciem znanego malware'u nazywanego Minit, charakteryzuje się unikalnymi cechami związanymi z komunikacją. Nie uruchamia on nowych połączeń, ale przejmuje istniejące sesje na serwerach SMTP i HTTP, jeśli tylko w nagłówkach znajdzie się odpowiednie wyrażenie. Unikalna jest także koncepcja samego transportu informacji. Cały proces został podzielony na etapy (fragmentacja, defragmentacja, szyfrowanie, interfejs do potoków), które oprogramowano za pomocą bloków funkcjonalnych. Bloki te można kolejno łączyć, zależnie od potrzeb włamywaczy. Komunikacja może odbywać się za pomocą nowych połączeń TCP/UDP, wewnątrz istniejących sesji HTTP w parametrach URL, wewnątrz linku URL, a także w nagłówkach HTTP. Możliwa jest także komunikacja w połączeniu SMTP, wyzwalana przez specjalnie przygotowany adres e-mail podawany podczas połączenia przychodzącego.

Gdy taki koń trojański znajdzie się na serwerze pocztowym (najczęściej jest nim Exchange), wystarczy nawiązać połączenie i podać odpowiedni adres e-mail, spełniający pewne zależności matematyczne. Jeśli adres jest właściwy, Turla przejmuje to połączenie i odbywa się transmisja danych. W logach serwera pocztowego nie znajdują się wtedy żadne informacje o tym połączeniu. Podobnie odbywa się komunikacja wewnątrz sesji HTTP przejętego serwera WWW.

Zobacz również:

  • Firmy na celowniku hakerów
  • Nie unikniemy ransomware
  • Co to jest XSS? Wyjaśnienie na temat ataków typu cross-site scripting

Jak specjaliści złapali węża

Infekcję serwera trojanem generacji Snake w jednej z firm udało się wykryć przez przypadek. Na serwerze obserwowano częstsze niż zwykle błędy STOP, wskazujące na problemy z jednym ze sterowników, przy czym problemy zdarzały się częściej, gdy program antywirusowy był włączony. Dokładniejsza analiza wskazała obecność obcego kodu w jądrze systemu Windows, następnie badacze uzyskali dowód na przejęcie kontroli nad całą siecią w tej organizacji.

Nawet dziś wykrycie takiego tajnego połączenia jest trudne. Fragment odpowiedzialny za wyzwolenie ukrytej komunikacji nie jest zapisany wprost, ale musi spełniać pewne zależności, zatem sygnatury dla narzędzia Snort byłyby mało użyteczne. Dopiero użycie narzędzia Suricata, w którym reguły można zaprogramować w języku LUA umożliwiłoby wychwytywanie takich połączeń. Inną wskazówką może być fakt, że w logach zapory sieciowej znajduje się informacja o połączeniu, którego nie ma w logach serwera WWW lub pocztowego.

Kto stoi za Turlą?

Niektóre detale wskazują na to, że twórcy tego konia trojańskiego pochodzą z Rosji. Panel webowy aplikacji służącej do infekcji przy wodopoju ma domyślne ustawienie kodowania Windows-1251 (cyrylica), znaczniki dostępu do plików wskazują na największą aktywność w godzinach pracy w strefie czasowej UTC+4, biblioteki zostały skompilowane przez deweloperów vlad, gilg i urik, a jedna z bibliotek ma nazwę zagruzchik.dll (загрузчик – ros. program startowy, boot loader). Za Rosją przemawiają również kraje, z których wysyłano próbki kodu do serwisu virustotal oraz rozproszenie geograficzne infekcji.

To napisali programiści światowej klasy

Kluczowym etapem infekcji jest pozyskanie uprawnień jądra systemu. Na drodze włamywaczy stoją zabezpieczenia wbudowane Windows 7 i 8, które nie pozwalają na załadowanie niepodpisanego sterownika. Te zabezpieczenia napastnicy musieli ominąć. Andrzej Dereszewski, główny konsultant w firmie Signal11, który brał udział w rozpoznaniu wirusa twierdzi, że autorami kodu byli eksperci, prawdopodobnie klasy światowej. Do uzyskania uprawnień jądra Windows włamywacze wykorzystali stary sterownik narzędzia wirtualizacji Virtualbox, który jest podpisany, jego podpis nadal jest ważny. Sterownik ten zawiera możliwe do wykorzystania błędy. Trojan korzysta z nieudokumentowanych opcji jądra systemu, a nowsze generacje nazwane Pfinet i Snake tworzą także szyfrowany kontener danych. Programiści przeszli na wirtualny wolumen prawdopodobnie dlatego, że wiele części kodu (na przykład komunikację) zaimplementowali w jądrze systemu, a odczyt z takiego wolumenu jest prostszy od otwierania pojedynczych plików tekstowych. Komunikacja tego konia trojańskiego wykorzystuje przemyślaną modułową strukturę z użyciem potoków. Przy pisaniu kodu zastosowano sprawne sposoby omijania zabezpieczeń wykrywających podejrzaną aktywność, twórcy potrafili poradzić sobie także z debuggerami.


TOP 200