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

Locky: program szyfrujący, który szturmem zdobywa świat

Dodany 8 kwietnia 2016, 10:54 CEST
Tagi:

W lutym 2016 roku Internetem wstrząsnęła epidemia wywołana nowym trojanem wyłudzającym okup: Locky (wykrywanym przez produkty firmy Kaspersky Lab jako Trojan-Ransom.Win32.Locky). Trojan ten aktywnie rozprzestrzenia się do dnia dzisiejszego. Produkty firmy Kaspersky Lab zarejestrowały próby zainfekowania użytkowników tym trojanem w 114 krajach na całym świecie.    

Z analizy próbek wynika, że trojan ten to całkowicie nowe zagrożenie typu ransomware, które zostało napisane od zera. A zatem, czym jest Locky i jak możemy się przed nim zabezpieczyć?

Rozprzestrzenianie

W celu rozprzestrzeniania tego trojana cyberprzestępcy rozsyłają masowe wysyłki z załączonymi szkodliwymi programami ładującymi.

Początkowo, szkodliwe wiadomości spamowe zawierały załączony plik DOC z makrem, które pobierało trojana Locky ze zdalnego serwera i wykonywało go.

locky_eng_1_auto.png

Wiadomość spamowa z załączonym szkodliwym dokumentem

locky_eng_2_auto.png

Fragment szkodliwego makra

Produkty firmy Kaspersky Lab wykrywają pliki zawierające szkodliwe makra jako Trojan-Downloader.MSWord.Agent oraz HEUR:Trojan-Downloader.Script.Generic.

Należy zauważyć, że we współczesnych wersjach Microsoft Office automatyczne wykonywanie makr jest wyłączone ze względów bezpieczeństwa. Jednak doświadczenie pokazuje, że użytkownicy często włączają makra ręcznie, nawet w dokumentach z nieznanych  źródeł, co może mieć destrukcyjne konsekwencje.  

W momencie pisania tego tekstu szkodliwy spam nadal jest rozsyłany, jednak zamiast załączonych plików DOC stosowane są obecnie archiwa ZIP zawierające jeden lub więcej zaciemnionych skryptów w JavaScript. Wiadomości są pisane w większości w języku angielskim, chociaż pojawiły się również wersje dwujęzyczne.  

locky_eng_3.png

Wiadomość spamowa w j. angielskim z załączonym archiwum

locky_eng_4.png

Wiadomość w j. niemieckim i angielskim z załączonym archiwum

Użytkownikowi proponuje się ręczne uruchomienie skryptów.

locky_eng_5.png

Zawartość archiwum załączonego do wiadomości

locky_eng_6_auto.png

Fragment zarchiwizowanego skryptu

Po uruchomieniu skrypt pobiera trojana Locky ze zdalnego serwera i uruchamia go.

Produkty firmy Kaspersky Lab wykrywają te programy ładujące skrypty jako Trojan-Downloader.JS.Agent i HEUR:Trojan-Downloader.Script.Generic.

Geografia ataków

Kaspersky Security Network zarejestrował ataki trojana Locky w 114 krajach. Poniżej znajduje się lista państw, w których trojan ten był najczęściej wykrywany:

 

Państwo

Liczba ataków

Niemcy

3989

Francja

2372

Kuwejt

976

Indie

512

Chiny

427

Afryka Południowa

220

Stany Zjednoczone

188

Włochy

128

Hiszpania

105

Meksyk

92

Należy zauważyć, że statystyki te dotyczą jedynie przypadków, w których został wykryty rzeczywisty trojan, i nie obejmują wykryć na wczesnym etapie identyfikowanych jako szkodliwy spam lub szkodliwy downloader.

locky_eng_7_auto.png

Geografia ataków programu o nazwie Trojan-Ransom.Win32.Locky

Jak widać, opisywany trojan przeprowadza ataki w praktycznie wszystkich regionach świata. Na podstawie listy języków obsługiwanych na stronie umożliwiającej zapłatę okupu (zobacz szczegóły poniżej) możemy określić, które państwa traktowane są przez cyberprzestępców jako główne cele.

Jak to działa

Trojan Locky to plik wykonywalny o rozmiarze około 100 kilobajtów. Został napisany w języku C++  przy użyciu STL i skompilowany w Microsoft Visual Studio. Podczas uruchomienia kopiuje się do %TEMP%\svchost.exe i usuwa strumień danych NTFS Zone.Identifier ze swojej kopii – w ten sposób po uruchomieniu pliku Windows nie wyświetli komunikatu informującego, że plik ten został pobrany z internetu i może być potencjalnie niebezpieczny. Następnie trojan uruchamia się z lokalizacji %TEMP%.   

Po uruchomieniu trojan sprawdza, czy istnieją poniższe klucze rejestru i jaka jest ich zawartość. 

Ścieżka

Typ

Wartość

HKEY_CURRENT_USER\Software\Locky\id

REG_SZ

ID infekcji

HKEY_CURRENT_USER\Software\Locky\pubkey

REG_BINARY

Publiczny klucz RSA w formacie  MSBLOB

HKEY_CURRENT_USER\Software\Locky\paytext

REG_BINARY

Tekst wyświetlany ofierze

HKEY_CURRENT_USER\Software\Locky\completed

REG_DWORD

Status (czy szyfrowanie zostało zakończone)

Jeśli w kluczach rejestru istnieją już dane (jest tak, w przypadku gdy trojan ten uruchomił się już wcześniej, ale jego poprzednia sesja z jakiegoś powodu nie powidła się), Locky odczytuje te dane i kontynuuje proces infekcji.

Jeśli uruchamia się po raz pierwszy, trojan wykonuje następujące działania:

  1. Kontaktuje się z serwerem kontroli (C&C) i zgłasza infekcję;
  2. Otrzymuje publiczny klucz RSA-2048 i ID infekcji z serwera kontroli, zapisuje te dane w rejestrze;
  3. Wysyła informacje dotyczące języka zainfekowanego systemu operacyjnego, otrzymuje tekst żądania okupu od cyberprzestępców, który zostanie wyświetlony ofierze, zapisuje tekst w rejestrze;   
  4. Szuka plików o określonych rozszerzeniach na dyskach lokalnych, szyfruje je;
  5. Usuwa kopie plików;
  6. Rejestruje się w celu automatycznego uruchomienia się (HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run);
  7. Szuka i szyfruje pliki z określonymi rozszerzeniami na dyskach sieciowych i w sieciowych zasobach plików bez przydzielonego symbolu dysku; 
  8. Wyświetla ofierze żądania okupu od cyberprzestępców;
  9. Kończy swój proces i usuwa własne dane z systemu.

locky_eng_8_auto.png

Fragment kodu określającego język systemu operacyjnego

Szyfrowanie pliku

Trojan szuka plików odpowiadających danej liście rozszerzeń. Następnie pliki są szyfrowane w sposób opisany poniżej.

locky_eng_9_auto.png

Lista rozszerzeń plików, które podlegają szyfrowaniu

Dla każdego pliku, który odpowiada rozszerzeniu znajdującemu się na liście, trojan generuje nowy klucz 128-bitowy i szyfruje zawartość pliku przy użyciu algorytmu AES-128 w trybie CTR. Zaszyfrowany plik otrzymuje nazwę <identyfikator składający się z 16 znaków HEX><16 losowych znaków HEX>.locky. Następnie na koniec pliku dodawana jest następująca struktura:     

locky_eng_10_auto.png

Struktura dodawana przez trojana na koniec zaszyfrowanego pliku

W składni języka C strukturę tę można opisać w następujący sposób:

 

2

3

4

5

6

7

8

9

struct file_data

{

uint32_t start_marker;          //Znacznik początku struktury = 0x8956FE93

char id[16];                           //ID infekcji

uint8_t aes_key[256];           //klucz AES zaszyfrowany algorytmem RSA-2048

uint32_t name_marker;         //Znacznik początku nazwy pliku zaszyfrowanego przy użyciu AES (= 0xD41BA12A po zaszyfrowaniu)

uint8_t orig_name[520];         //Oryginalna nazwa pliku zaszyfrowanego przy użyciu AES

WIN32_FILE_ATTRIBUTE_DATA attr; //Oryginalne atrybuty pliku zaszyfrowanego przy użyciu AES

 

};

 

 

Dołączona struktura opisana w składni języka C

 

Żądania okupu

Po zaszyfrowaniu plików użytkownika trojan wyświetla następujący komunikat z żądaniem okupu od cyberprzestępców. 

locky_eng_12_auto.png

Żądanie okupu w j. angielskim

locky_eng_13_auto.png

Żądanie okupu w j. niemieckim

Komunikat dotyczący okupu zawiera adres „tajnego serwera” cyberprzestępców, na którym umieścili oni informacje dotyczące okupu żądanego za program deszyfrujący. Wszystkie cztery odsyłacze w wiadomości prowadzą do tej samej strony internetowej w sieci Tor.

Podczas wcześniejszych kampanii spamowych strona umożliwiająca zapłatę okupu wyglądała tak:

locky_eng_14_auto.png

Wczesna wersja strony dotyczącej żądania okupu trojana Locky

Na stronie tej cyberprzestępcy sugerowali, aby ofiary płaciły w bitcoinach w celu odszyfrowania zaszyfrowanych plików na swoich komputerach. Przedstawiali również swoje zalecenia odnośnie tego, gdzie i jak uzyskać tę kryptowalutę.

Zawartość i rozkład strony zmieniały się z czasem. Obecnie strona ta jest dostępna w ponad 20 językach (wybór języka następuje z listy rozwijalnej) i wygląda tak:

locky_eng_15_auto.png

Najnowsza wersja strony umożliwiającej zapłacenie okupu żądanego przez trojana Locky

Jeśli rzucimy okiem na kod źródłowy tej strony, zauważymy pełną listę obsługiwanych języków. Cyberprzestępcy naturalnie traktują państwa odpowiadające tych językom jako główne cele tego trojana ransomware. Co ciekawe, lista nie zawiera języka rosyjskiego oraz innych języków krajów należących do Wspólnoty Niepodległych Państw. Z jakiegoś powodu cyberprzestępcy nie chcą atakować użytkowników w państwach, w których mieszkańcy posługują się tymi językami – co potwierdzają statystyki KSN. 

locky_eng_16.png

Lista języków obsługiwanych przez stronę umożliwiająca zapłacenie okupu żądanego przez trojana Locky

Komunikacja z C&C

Kod trojana zawiera od jednego do trzech adresów IP C&C. Ponadto, kod ten zawiera algorytm generujący nowe adresy C&C (DGA, domain generation algorithm) w zależności od bieżącego dnia, miesiąca i roku. Przy użyciu tego algorytmu każdego dnia generowanych jest sześć adresów C&C. Pseudokod ilustrujący algorytm DGA Locky’ego został zaznaczony na zrzucie ekranu poniżej.

locky_eng_17_auto.png

Pseudokod algorytmu generowania domeny C&C trojana Locky

Komunikacja z C&C następuje przy użyciu protokołu HTTP. Trojan wysyła żądanie POST do adresu w formacie http://<cnc_url>/main.php; przesyłane dane są szyfrowane przy pomocy prostego algorytmu symetrycznego.    

Przyjrzyjmy się możliwym rodzajom przesyłanych parametrów.

  1. Powiadomienie o infekcji i żądanie klucza.
    id=<id infekcji>
    &act=getkey&affid=<id partnera zapisany w kodzie trojana>
    &lang=<język systemu operacyjnego>
    &corp=<informacja o tym, czy trojan działa w korporacyjnej wersji systemu operacyjnego>
    &serv=<informacja o tym, czy trojan działa w serwerowej wersji systemu operacyjnego>
    &os=<wersja systemu operacyjnego>
    &sp=<wersja dodatku service pack systemu operacyjnego>
    &x64=<informacja o architekturze systemu operacyjnego - 32- lub 64-bity>

Sądząc po parametrze affid, Locky jest dystrybuowany za pośrednictwem programu afiliowanego lub partnerskiego.

  1. Wysyłanie listy zaszyfrowanych ścieżek.
    id=<id infekcji>
    &act=report&data=<lista ścieżek>

Dla każdego obsłużonego napędu trojan wysyła do C&C listę wszystkich ścieżek do wszystkich zaszyfrowanych plików. 

  1. Wysyłanie statystyk dla każdej obsłużonej stacji stacji dysków.
    id=<id infekcji>
    &act=stats&path=<ścieżka>
    &encrypted=<liczba zaszyfrowanych plików>
    &failed=<liczba błędów>
    &length=<łączny rozmiar zaszyfrowanych plików>

Należy zauważyć, że cyberprzestępca gromadzi bardzo szczegółowe dane statystyczne dla każdej infekcji. Inne, wcześniej analizowane rodziny oprogramowania ransomware nie były tak skrupulatne jeśli chodzi o gromadzenie statystyk.  

Środki ochrony

Produkty firmy Kaspersky Lab zapewniają ochronę przed trojanem ransomware Locky na wszystkich etapach ataku:  

  • Moduł antyspamowy wykrywa wiadomości e-mail wysyłane przez dystrybutorów trojana;
  • Programy ładujące skrypty są wykrywane przez statyczne i heurystyczne sygnatury ochrony poczty e-mail i plików za pomocą werdyktów: Trojan-Downloader.MSWord.Agent, Trojan-Downloader.JS.Agent, HEUR:Trojan-Downloader.Script.Generic; 
  • Plik wykonywalny trojana jest wykrywany przez sygnatury ochrony antywirusowej plików jako Trojan-Ransom.Win32.Locky; 
  • Nieznane próbki trojana Locky są proaktywnie wykrywane przez moduł Kontroli systemu przy użyciu werdyktu PDM:Trojan.Win32.Generic. 

Zapobieganie infekcjom

Locky to typowy trojan ransomware, który nie różni się znacząco od innych rodzin oprogramowania ransomware pod względem wewnętrznej organizacji czy zasad działania. Mimo to przykuł uwagę badaczy, ze względu na dużą aktywność i szerokie rozpowszechnienie. Według danych KSN, produkty Kaspersky Lab zablokowały ataki trojana Locky w ponad 100 państwach na całym świecie – jak dotąd żaden inny trojan ransomware nie przeprowadził ataków w tak wielu państwach jednocześnie.          

W celu zabezpieczenia się przed tym trojanem ransomware należy podjąć następujące środki zapobiegawcze:

  • Nie otwieraj załączników w e-mailach pochodzących od nieznanych nadawców;
  • Regularnie wykonuj kopię zapasową swoich plików i przechowuj kopie zapasowe na wymiennych nośnikach pamięci lub w chmurze – nie trzymaj ich na swoim komputerze;
  • Regularnie stosuj uaktualnienia dla swoich antywirusowych baz danych, systemu operacyjnego oraz innego oprogramowania zainstalowanego na komputerze;
  • W ramach zarządzania dostępem do współdzielonych folderów sieciowych utwórz oddzielny folder sieciowy dla każdego użytkownika.

Bardziej szczegółowe informacje dotyczące ochrony przed trojanami ransomware są dostępne na tej stronie.