Tag: ransomware

Atak Petya & Mischa

Data publikacji: 28/06/2017, Kamil Frankowicz

Duet Petya & Mischa jest na rynku ransomware od końcówki 2015 roku. Po sukcesie ataku WannaCry, ostatni wariant został wzbogacony o funkcje propagacji wewnątrz sieci za pomocą exploita EternalBlue, PsExec oraz Windows Management Instrumentation Command-line (WMIC).

Wczorajsza kampania uderzyła przede wszystkim w sieci ukraińskie (dostawca energii Ukrenergo, system monitoringu promieniowania elektrowni w Czarnobylu oraz producent samolotów Antonov) oraz rosyjskie.

W przypadku Polski otrzymaliśmy tylko jedno potwierdzone zgłoszenie, lecz innymi kanałami udało się ustalić kilka zainfekowanych firm.

Czytaj więcej

Przystąpienie do projektu No More Ransom

Data publikacji: 11/04/2017, piotrb

No More Ransom logo
Na początku kwietnia tego roku nasz zespół oficjalnie dołączył do projektu No More Ransom walczącego z ransomware’em. Projekt, koordynowany m.in. przez Europol, zrzesza organy ścigania oraz firmy sektora prywatnego z całego świata i umożliwia ofiarom przestępców darmowe odszyfrowanie plików. Naszym głównym wkładem w projekt jest program deszyfrujący pliki, obsługujący rodziny Cryptomix, Cryptfile2 oraz Cryptoshield – które niedawno szczegółowo opisywaliśmy.

Dzięki platformie No More Ransom już ponad 10000 ofiar mogło bezpłatnie odszyfrować pliki, a teraz również i my możemy się przyczynić do zwiększenia tej liczby. Liczymy na owocną współpracę!

Analiza Sage 2.0

Data publikacji: 14/02/2017, Jarosław Jedynak

logo

Wstęp

Sage jest nową rodziną ransomware, wariantem CryLockera. Obecnie jest rozprowadzany przez tych samych aktorów, którzy zazwyczaj rozsyłają Cerbera, Locky’ego oraz Sporę.

Głównym wektorem infekcji jest malspam i złośliwe załączniki. Emaile z kampanii są puste, bez żadnego tekstu i zawierają jedynie plik .zip. W załączniku znajduje się złośliwy dokument programu Word z makrem pobierającym i instalującym ransomware.

Po uruchomieniu ransomware’u zostaje pokazane okno UAC Windowsa, które jest wyświetlane w pętli do momentu, aż użytkownik ostatecznie zgodzi się na nadanie praw administracyjnych aplikacji.

Na końcu rozpoczynany jest proces szyfrowania i pliki są przetwarzane:

Wiadomość z żądaniem okupu kieruje nas do panelu w sieci Tor, ale zanim możemy się zalogować musimy rozwiązać captchę:

W końcu jesteśmy witani przez „przyjazny użytkownikowi” panel:

Można nawet porozmawiać z twórcami malware (ale nie testowaliśmy tej opcji):

Co ciekawe, próbka nie usuwa się z systemu po infekcji, ale kopiuje się do folderu %APPDATA%\Roaming, i szyfruje wszystkie pliki ponownie po każdym restarcie komputera (do momentu aż zostanie zapłacony okup).

Analiza techniczna

Po tym krótkim wprowadzeniu, skoncentrujemy się bardziej na stronie technicznej, ponieważ Sage 2.0 nie jest zupełnie wtórną rodziną i kilka rzeczy nadaje się do opisania.

Główna funkcja programu wygląda tak:

Jak widzimy, po drodze wiele rzeczy jest sprawdzanych i komputer jest identyfikowany na kilka sposobów. Ciekawsze rzeczy jakie znaleźliśmy to m.in.:

Parametr służący do debugowania

Prawdopodobnie nie wszystko w kodzie działało od razu jak trzeba, ponieważ istnieje w nim parametr (przekazywany z linii poleceń) służący do testowania działania konfiguracji malware’u:

I rzeczywiście, jeśli zostanie przekazany, robi to co powinien:

Prawdopodobnie twórca zapomniał usunąć ten fragment kodu z ostatecznej wersji, bo funkcja ta jest bezużyteczna poza okresem programowania.

Sprawdzenie języka

Twórcy Sage’a 2.0 lubią niektóre kraje bardziej niż inne:

Funkcja ta sprawdza layouty klawiatury użytkownika:

    • next == 0x23 -> białoruski
    • next == 0x3F -> kazachski
    • next == 0x19 -> rosyjski
    • next == 0x22 -> ukraiński
    • next == 0x43 -> uzbecki
    • next == 0x85 -> sacha (jakucki)

Niestety, język polski nie trafił na listę wyjątków Sage’a w obecnej wersji. Może w przyszłości?

Namierzanie użytkownika

Sage próbuje poznać lokalizację swojego hosta odpytując maps.googleapis.com z aktualnym SSID sieci Wi-Fi oraz adresem MAC:

Plik kanarka

Przed szyfrowaniem próbka sprawdza czy istnieje specjalny plik:

Dzięki temu twórcy malware nie muszą się przejmować przypadkowym uruchomieniem swojego dzieła i zaszyfrowaniem własnego dysku. Ale jeśli plik nie zostanie znaleziony, szyfrowanie jest rozpoczynane.

Lista szyfrowanych rozszerzeń

Nie są szyfrowane oczywiście pliki – tylko te z rozszerzeniami pasującymi do whitelisty:

Szyfrowanie

Jak zwykle to najciekawsza część kodu każdego ransomware. Sage 2.0 szczególnie wyróżnia się pod tym względem, ponieważ szyfruje pliki korzystając z kryptografii krzywych eliptycznych.

Do szyfrowania użyta została krzywa eliptyczna postaci y^2 = x^3 + 486662x^x + x, z punktem bazowym x=9, określona nad ciałem skończonym zdefiniowanym przez liczbę pierwszą p = 2^255 – 19. Te wartości nie są wybrane przypadkowo – ta krzywa jest zwana również Curve25519 i należy do jednych z najnowocześniejszych współczesnych metod szyfrowania. Nie tylko jest to jedna z najszybszych krzywych eliptycznych, ale jest też mniej podatna na słabe generatory losowości. Została zaprojektowana przy uwzględnieniu możliwych ataków kanałem bocznym (side channel), unika wielu potencjalnych problemów implementacyjnych oraz (prawdopodobnie) nie ma backdoora stworzonego przez żadną trzyliterową agencję.

Klucz publiczny używany podczas generacji współdzielonego sekretu jest zapisany na stałe w próbce. Dokładny kod wygląda tak (struktury i funkcje nazwane przez nas):

Jest to prawidłowa implementacja protokołu krzywych eliptycznych Diffiego-Hellmana (ECDH), ale ponieważ klucze prywatne nie są nigdzie zapisywane, sekret może odzyskać jedynie strona będąca w posiadaniu klucza prywatnego serwera.

Funkcja ta może wyglądać skomplikowanie, ale prawie wszystkie jej składowe to funkcje opakowujące prymityw ECC – nazwany przez nas CurveEncrypt. Na przykład szukanie pasującego klucza publicznego to po prostu mnożenie przez punkt bazowy (który jest równy 9, czyli jeden bajt 9 i 31 zer):

Liczenie współdzielonego sekretu jest bardzo podobne, ale zamiast stałego punktu bazowego używamy klucza publicznego:

Z powodu własności Curve25519, konwertowanie między sekwencją dowolnych losowych bajtów i kluczem prywatnym jest bardzo proste – wystarczy maskować kilka bitów i ustawić jeden:

Dodatkowo z tego powodu generowanie klucza prywatnego jest trywialne (wystarczy wylosować 32 bajty i skonwertować je do klucza prywatnego):

To wszystko jeśli chodzi o generowanie klucza. Co z szyfrowaniem plików? Użyty jest algorytm ChaCha (to chyba pierwsza rodzina szyfrująca tym algorytmem, mimo że Petya używa bardzo zbliżonego algorytmu Salsa20), a klucz ChaCha jest dopisywany do końca pliku, po zaszyfrowaniu za pomocą Curve25519:

Gdzie funkcja AppendFileKeyInfo dokleja na koniec danych zaszyfrowany klucz oraz klucz publiczny:

Nie wiemy czemu została użyta ChaCha zamiast AES – prawdopodobnie to tylko próba wyróżnienia się albo paranoja przed wyimaginowanymi tylnymi furtkami agencji rządowych.

Podsumowując, istnieją dwa zbiory kluczy plus jedna para kluczy na każdy zaszyfrowany plik:

Kiedy ransomware kończy swoje operacje, znamy tylko my_public, sh_public, fl_shared, a potrzebujemy odzyskać chachakey żeby zdeszyfrować plik – nie zrobimytego bez znajomości prywatnych części.

Ten schemat szyfrowania jest dobrze przemyślany, ponieważ umożliwia szyfrowanie offline – nie ma potrzeby łączyć się z C&C i negocjowania kluczy szyfrujących. Wystarczy klucz publiczny, zapisany na stałe w programie. Zakładając że twórcy złośliwego oprogramowania nie popełnili drastycznych błędów implementacyjnych (a nie mamy powodu podejrzewać żeby to zrobili), odzyskanie zaszyfrowanych plików jest niemożliwe. Oczywiście zawsze jest możliwość, że klucze szyfrujące zostaną wcześniej upublicznione przez kogoś.

Dodatkowe informacje

Reguły Yara:

Hashe (sha256):

    • sample 1, 362baeb80b854c201c4e7a1cfd3332fd58201e845f6aebe7def05ff0e00bf339
    • sample 2, 3b4e0460d4a5d876e7e64bb706f7fdbbc6934e2dea7fa06e34ce01de8b78934c
    • sample 3, ccd6a495dfb2c5e26cd65e34c9569615428801e01fd89ead8d5ce1e70c680850
    • sample 4, 8a0a191d055b4b4dd15c66bfb9df223b384abb75d4bb438594231788fb556bc2
    • sample 5, 0ecf3617c1d3313fdb41729c95215c4d2575b4b11666c1e9341f149d02405c05

Więcej materiałów:

Evil: prosty ransomware, napisany w języku JavaScript

Data publikacji: 18/01/2017, Jarosław Jedynak

hacker-1944688_960_720

Evil: prosty ransomware, napisany w języku JavaScript

Wstęp

Evil jest nową odmianą ransomware, którą pierwszy raz zaobserwowaliśmy ósmego stycznia 2017 roku – wtedy został nam zgłoszony pierwszy incydent z nią związany. Było to wtedy zupełnie nowe zagrożenie i nie było na jego temat żadnych informacji dostępnych publicznie. Nie mieliśmy też żadnych próbek do analizy.

Pierwszą działającą próbkę zdobyliśmy dzień później, dziewiątego stycznia. W tym artykule opiszemy w skrócie naszą analizę i wnioski. Od tamtej porty dostaliśmy relatywnie dużo raportów o infekcji, więc istnieje ryzyko, że ta rodzina stanie się większym zagrożeniem w przyszłości.

Evil nie ma żadnego panelu służącego do deszyfrowania (podobnie jak np. CryptoMix) – zamiast tego dostarczany jest adres email twórców, pod który należy się skontaktować.

Czytaj więcej

Analiza techniczna rodziny CryptoMix/CryptFile2

Data publikacji: 04/01/2017, Jarosław Jedynak

skull and crossbones malware

Kampania

CryptoMix to kolejna rodzina ransomware która próbuje zdobyć pieniądze dla swoich twórcow przez szyfrowanie plików ofiar i wymuszanie na nich okupu za odszyfrowanie ich.
Do niedawna była znana bardziej jako CryptFile2, ale z nieznanych nam powodów została rebrandowana i teraz jest rozpoznawalna jako CryptoMix.
Została zaobserwowana niedawno jako malware serwowane przez Rig-V exploit kit.

Ten malware wyróżnia się na tle innych popularnych odmian, ale niekoniecznie pozytywnie.

Czytaj więcej

TorrentLocker: złośliwa faktura za telefon

Data publikacji: 24/10/2016, Paweł Srokosz

Na początku października otrzymaliśmy zgłoszenie o kolejnej kampanii spamowej, wymierzonej w klientów sieci Play i dystrybuującej oprogramowanie ransomware. Rozsyłane maile mają postać fałszywych faktur, z załączonym skryptem JS, który pobiera i uruchamia złośliwe oprogramowanie, znane pod nazwą TorrentLocker (określanym również jako Crypt0L0cker).

Czytaj więcej

Grupa Pocztowa

Data publikacji: 14/10/2015, Łukasz Siewierski

Podczas konferencji SECURE zaprezentowaliśmy nasze ustalenia dotyczące działalności grupy przestępczej, którą nazwaliśmy „Grupą Pocztową” ze względu na ich modus operandi. Szczegółowe ustalenia dotyczące tej grupy zebraliśmy również w formie raportu dostępnego pod poniższym linkiem.Czytaj więcej

Slave, Banatrix i maile od Poczty Polskiej

Data publikacji: 03/07/2015, Łukasz Siewierski

loveletter1W marcu 2015 firma S12sec poinformowała o nowym koniu trojańskim atakującym użytkowników polskiej bankowości elektronicznej. Nazwali to zagrożenie “Slave”, wywodząc nazwę z jednej ze ścieżek do dołączonych bibliotek, którą znaleźli w analizowanej próbce. W tym artykule postaramy się przedstawić nasze nowe ustalenia na temat tego złośliwego oprogramowania. Jesteśmy również przekonani (częściowo dzięki informacjom zawartym na kernelmode.info), że oprogramowanie to zostało napisane przez tego samego autora (bądź grupę autorów) co wcześniej opisywany przez nas Banatrix czy kampania mailowa, rzekomo od Poczty Polskiej, zawierająca oprogramowanie typu ransomware. Oznacza to, że autorami tego oprogramowania jest najprawdopodobniej osoba lub grupa osób pochodząca z Polski.

Czytaj więcej

12