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

Petya: Trojan dwa w jednym

Dodany 13 maja 2016, 10:36 CEST
Tagi:

Infekowanie głównego rekordu rozruchowego (MBR) nie jest niczym nowym w świecie szkodliwych programów. Już w 1994 roku pojawił się wirus OneHalf, który infekował MBR i szyfrował zawartość dysku. Jednak szkodnik ten nie wyłudzał pieniędzy. W 2011 r. zaczęły rozprzestrzeniać się trojany blokujące MBR (Trojan-Ransom.Win32.Mbro), które infekowały główny rekord rozruchowy i uniemożliwiały dalsze załadowanie się systemu operacyjnego. Ofiara musiała zapłacić okup, aby problem został rozwiązany. Jednak wyleczenie systemu zainfekowanego takimi trojanami było łatwe, ponieważ poza MBR-em programy te zwykle nie szyfrowały żadnych danych na dysku.  

Obecnie pojawiło się nowe zagrożenie, które znacznie przewyższa to z przeszłości. Trojan Petya (wykrywany przez produkty firmy Kaspersky Lab pod nazwą Trojan-Ransom.Win32.Petr) infekuje MBR, uniemożliwiając normalne załadowanie systemu, i szyfruje główną tabelę plików (MFT) – istotny element systemu plików – blokując tym samym normalny dostęp do plików na dysku twardym.  

Scenariusz infekcji

Osoby rozprzestrzeniające trojana Petya atakują swoje potencjalne ofiary, wysyłając wiadomości spamowe zawierające odsyłacze, które pobierają archiwum ZIP. Archiwum to kryje plik wykonywalny trojana oraz obraz JPEG. Nazwy plików są w języku niemieckim (Bewerbungsunterlagen.PDF.exe, Bewerbungsmappe-gepackt.exe), wyglądają jak życiorysy kandydatów do pracy i są wymierzone w personel HR w krajach niemieckojęzycznych.  

petya_eng_1_auto.jpg

Zawartość archiwów pobranych z odsyłaczy w spamie

Cyberprzestępcy nie silili się na automatyczną eskalację przywilejów – manifest pliku wykonywalnego trojana zawiera następujący standardowy rekord:

petya_eng_2.png

Jeśli użytkownik uruchomi szkodliwy plik wykonywalny trojana Petya, system Windows wyświetli standardowe żądanie UAC eskalacji przywilejów. Jeśli administratorzy poprawnie skonfigurowali system (tzn. UAC jest włączony, a użytkownik nie pracuje z konta administratora), trojan nie będzie w stanie dalej działać.

Niestety, użytkownik, który posiada przywileje pozwalające mu zgodzić się na żądanie UAC, często nie docenia potencjalnych zagrożeń związanych z uruchomieniem nieznanego oprogramowania z podwyższonym poziomem uprawnień.

Jak to działa

Plik wykonywalny i paker

Infekcja przy użyciu trojana Petya rozpoczyna się od uruchomienia szkodliwego pliku wykonywalnego. Próbki omawianego trojana, które Kaspersky Lab otrzymał do analizy, są, podobnie jak większość innych próbek szkodliwego oprogramowania, chronione przy pomocy specjalnego pakera. W momencie uruchomienia się pliku wykonywalnego zaczyna działać kod szkodliwego pakera – wypakowuje szkodliwy plik DLL Setup.dll do nowo przydzielonego obszaru RAM, a następnie przekazuje mu kontrolę.  

Cyberprzestępcy zwykle wykorzystują pakery w celu uniknięcia wykrycia – obejścia statycznych sygnatur, oszukania analizatora heurystycznego itd. Badając pakera trojana Petya, zauważyliśmy nietypową sztuczkę stosowaną przez cyberprzestępców.

Cyberprzestępcy często próbują stworzyć pakera w taki sposób, aby spakowany szkodliwy plik wykonywalny w możliwie największym stopniu przypominał standardowy legalny plik. Czasami podmieniają fragment kodu legalnego pliku na szkodliwy. Tak było również w przypadku trojana Petya. Ciekawostkę stanowi tu fakt, że szkodliwym kodem zastąpiono część standardowej, wygenerowanej przez kompilator biblioteki DLL środowiska uruchomieniowego, podczas gdy funkcja WinMain pozostała nietknięta. Rysunek poniżej pokazuje przejście, począwszy od punktu wejścia („start”). Jak widać, funkcja wypakowania szkodliwego kodu (którą określiliśmy mianem „evil”) jest wywoływana z legalnej funkcji __calloc_crt, która stanowi część kodu środowiska uruchomieniowego.      

petya_eng_3_auto.png

Diagram przejść pomiędzy funkcjami szkodliwego pakera

Dlaczego zrobiono to w ten sposób? Najwidoczniej, twórcy szkodliwego pakera próbowali zmylić nieuważnego badacza lub automatyczne mechanizmy analizy: plik wygląda na legalny – WinMain nie zawiera szkodliwego kodu – dlatego może zostać przeoczony. Poza tym, jeśli punkt przerwania został ustawiony w WinMain podczas debugowania, wtedy szkodliwy kod będzie działał (i wyśle system do BSOD, o czym napiszemy szczegółowo w dalszej części) i zostanie wykonany, zanim jeszcze zostanie osiągnięty punkt przerwania.

Kaspersky Lab wykrył próbki trojana Petya, które podszywają się pod legalne pliki napisane w języku C/C++ oraz Delphi.

Szkodliwa biblioteka DLL

Setup.dll jest biblioteką DLL z jednym tylko eksportem: _ZuWQdweafdsg345312@0. Jest napisany w języku C i skompilowany w Microsoft Visual Studio. Cyberprzestępcy wykorzystali implementację algorytmów kryptograficznych dostępnych w bibliotece publicznej mbedtls (wcześniej polarssl). Setup.dll nie jest zapisywany na dysku twardym jako oddzielny plik, ale zawsze pozostaje w pamięci RAM.

Kiedy Setup.dll przejmuje kontrolę, odszyfrowuje dane zawarte w sekcji ‘.xxxx’, a następnie przechodzi do infekowania komputera ofiary.

petya_eng_4_auto.png

Zaszyfrowana sekcja ‘.xxxx’ zawierająca dane

petya_eng_5_auto.png

Fragment odszyfrowanych danych z sekcji ‘.xxxx’

Na wyższym poziomie abstrakcji działania biblioteki Setup.dll sprowadzają się do następujących kroków:

  1. Ponownie zapisz rekord rozruchowy na dysku twardym przy użyciu własnego szkodliwego programu ładującego;
  2. Wygeneruj klucz, ID infekcji i inne informacje pomocnicze, a następnie zapisz je na dysku twardym;
  3. Spowoduj przerwanie działania systemu i powtórne uruchomienie, przekazując tym samym kontrolę szkodliwemu programowi ładującemu.

Przyjrzyjmy się teraz dokładnie, w jaki sposób wszystko to jest implementowane w trojanie. Wcześniej jednak należy zdefiniować zastosowane terminy.

Sektor dysku twardego – minimalna adresowalna jednostka dysku twardego, zwykle o rozmiarze 512 bajtów.

Główny rekord startowy (MBR) – kod oraz dane zapisane w Sektorze 0. Po inicjalizacji sprzętu kod ten jest wykorzystywany do uruchomienia komputera. Sektor ten zawiera również tabelę partycji dysków twardych. Dysk podzielony z udziałem MBR może mieć do czterech partycji głównych, a maksymalny rozmiar partycji wynosi około 2,2 TB. 

Tabela partycji GUID (GPT) – nowocześniejszy standard układu dysku twardego. Obsługuje do 128 partycji, z których każda ma rozmiar do 9,4 ZB (1 ZB = 1021 bajtów).

Wróćmy teraz do omawianego trojana. Setup.dll potrafi infekować dyski partycjonowane według starego standardu MBR lub bardziej współczesnego standardu GPT. Występują dwie alternatywne gałęzie sekwencji wykonywania w szkodliwym programie; wybór zależy od danych w polu PartitionStyle struktury PARTITION_INFORMATION_EX.

petya_eng_6_auto.png

Wybór gałęzi wykonywania w celu zainfekowania dysku w zależności od tego, czy dysk posiada partycjonowanie MBR czy GPT

Infekowanie dysku z MBR

Podczas infekowania dysku z MBR Setup.dll wykonuje następujące działania:

  1. Szyfruje sektor 0 (pierwotny kod i dane MBR-a) poprzez prostą operację XOR 0x37 (ASCII ‘7’), zapisuje wynik do sektora 56;
  2. Szyfruje sektory 1-33 przy użyciu tej samej operacji XOR 0x37;
  3. Generuje dane konfiguracyjne dla szkodliwego programu ładującego, zapisuje je do sektora 54;
  4. Tworzy sektor weryfikacji 55 zawierający powtarzający się bajt 0x37;
  5. Kopiuje sygnaturę NT dysku oraz tabelę partycji zapisaną z oryginalnego MBR-a do własnego programu ładującego pierwszego poziomu; zapisuje szkodliwy kod pierwszego poziomu do sektora 0 dysku i zapisuje kod drugiego poziomu do sektorów 34-50 (określanych tutaj jako szkodliwy program ładujący);
  6. Wywołuje funkcję NtRaiseHardError, która powoduje zawieszenie się systemu operacyjnego (BSOD - ‘blue screen of death’).

Gdy dysk z MBR-em został zainfekowany, początek dysku posiada następującą strukturę:

Numer sektora

Zawartość

0

Szkodliwy program ładujący pierwszego poziomu

1 – 33

Zaszyfrowane sektory 1-33 (XOR 0x37)

34 – 50

Szkodliwy kod drugiego poziomu

54

Sektor konfiguracji szkodliwego programu

55

Sektor weryfikacji (zapełniony bajtem 0x37)

56

Zaszyfrowany oryginalny kod MBR-u (XOR 0x37)

Infekowanie dysku z GPT

Podczas infekowania dysku z GPT Setup.dll wykonuje więcej działań:

  1. Na podstawie danych głównego nagłówka GPT otrzymuje adres kopii nagłówka GPT;
  2. Szyfruje kopię nagłówka GPT przy użyciu XOR 0x37;
  3. Wykonuje wszystkie działania, które są wykonywane podczas szyfrowania dysku z MBR-em.

Gdy dysk z GPT został zainfekowany, początek dysku posiada następującą strukturę:

Numer sektora

Zawartość

0

Szkodliwy program ładujący pierwszego poziomu

1 – 33

Zaszyfrowane sektory 1-33 (XOR 0x37)

34 – 50

Szkodliwy kod drugiego poziomu

54

Sektor konfiguracji szkodliwego programu

55

Sektor weryfikacji (zapełniony bajtem 0x37)

56

Zaszyfrowany oryginalny kod MBR-u (XOR 0x37)

Backup LBA –
Backup LBA + 33

Zaszyfrowana kopia nagłówka GPT (XOR 0x37)

Generowanie danych konfiguracyjnych

W sektorze konfiguracji (sektor 54) trojan przechowuje dane, jakich potrzebuje do zaszyfrowania MFT i odszyfrowania ich, jeśli ofiara zapłaci okup. Generowanie danych konfiguracyjnych obejmuje następujące kroki: 

  1. Setup.dll generuje losowy ciąg o długości 16 znaków [1-9, a-x, A-X]; ciąg ten będziemy określać jako hasło;
  2. Generuje parę kluczy: ec_session_priv (prywatny klucz, losowa duża liczba całkowita) + ec_session_pub (klucz publiczny, punkt na standardowej krzywej eliptycznej secp192k1);
  3. Oblicza tajny klucz sesji: session_secret = ECDH (ec_session_priv, ec_master_pub); klucz publiczny cyberprzestępców ec_master_pub znajduje się w kodzie trojana;
  4. Oblicza aes_key = SHA512(session_secret) – wykorzystywane są tylko pierwsze 32 bajty sumy kontrolnej;
  5. Szyfruje ciąg ‘password’ przy użyciu operacji XOR z zastosowaniem pierwszych 16 bajtów ec_session_pub: hasło_xor = ec_session_pub[0, 15] xor hasło;
  6. Szyfruje wynik przy użyciu AES-256 z zastosowaniem klucza aes_key: hasło_aes_encr = AES_enc(hasło_xor);
  7. Tworzy array ec_session_data = [ec_session_pub, hasło_aes_encr];
  8. Oblicza base58: ec_session_data_b58 = base58_enc(ec_session_data);
  9. Wykorzystuje wynik do obliczenia SHA256: digest = sha256(ec_session_data_b58);
  10. Tworzy tablicę: ec_data = [check1, check2, ec_session_data_b58], gdzie check1, check2 stanowią bajty obliczane według wzorów:
    a = digest[0] & 0xF;
    b = (digest[0] & 0xF) < 10;
    check1 = (digest[0] >> 4) + 0x57 + ((digest[0] >> 4) < 10 ? 0xD9 : 0);
    check2 = a + 0x57 + (b ? 0xD9 : 0);
  11. Na podstawie “hasła” tworzy klucz dla szyfrowania MFT;

petya_eng_7.png

Pseudokod tworzący klucz dla szyfrowania MFT

12    Generuje IV – 8 losowych bajtów, które będą wykorzystywane podczas szyfrowania MFT;

13    Generuje ID infekcji i wykorzystuje je do tworzenia „spersonalizowanych” adresów URL dla stron internetowych wykorzystywanych do płacenia okupu.

Ostatecznie struktura danych konfiguracyjnych wygląda następująco:

petya_eng_8.png

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

9_eng_petya.png

Tak wyglądają dane konfiguracyjne po zapisaniu na dysku twardym:

petya_eng_10_auto.png

Należy zauważyć, że jeśli użytkownik wyłączy swój komputer po tym etapie i nie włączy go ponownie, wyrządzona szkoda będzie minimalna, ponieważ nie jest trudno odszyfrować dane zaszyfrowane przy użyciu 1-bajtowego XOR. Dobra rada: jeśli uruchomisz nieznany plik i twój system nagle zawiesi się, pokazując niebieski ekran, powinieneś wyłączyć komputer i zwrócić się o pomoc do wykwalifikowanego specjalisty. Specjalista powinien być w stanie zidentyfikować infekcję trojana Petya i przywrócić sektory dysku zaszyfrowane przy użyciu XOR. 

Jeśli jednak komputer został powtórnie uruchomiony, wtedy rozpoczyna się etap trzeci działania trojana – szkodliwy kod zapisany do sektorów 0 i 34–50.

Szkodliwy program ładujący

Po powtórnym uruchomieniu kontrolę przejmuje kod w sektorze 0 (program ładujący pierwszego poziomu). Ładuje on główny szkodliwy kod drugiego poziomu z sektorów 34–50 do pamięci i przekazuje mu kontrolę. Kod ten, z kolei, otrzymuje dostępne w systemie informacje dotyczące dysków twardych, szuka dysku, na którym została zapisana konfiguracja, odczytuje dane konfiguracyjne z sektora 54 i, w zależności od wartości w polu ‘config.state’, zaczyna szyfrowanie (jeśli wartość równa się 0) lub prosi użytkownika o podanie zakupionego klucza deszyfracji (jeśli wartość wynosi 1).  

petya_eng_11_auto.png

Fragment kodu implementującego logikę trojana

Szyfrowanie MFT

Główna tabela plików (MFT) stanowi strukturę danych z informacjami dotyczącymi każdego pliku oraz folderu w woluminie sformatowanym w NTFS, systemie plików, który jest wykorzystywany we wszystkich współczesnym wersjach systemu Windows. Tabela ta zawiera dane wymagane do znalezienia każdego pliku na dysku. Można ją porównać do spisu treści w książce, wskazującego, na której stronie można znaleźć dany rozdział. Podobnie, MFT wskazuje, w którym klastrze logicznym jest zlokalizowany plik.  

Właśnie ten obszar krytyczny jest atakowany przez trojana Petya. Jeśli wartość ‘config.state’ jest równa 0 podczas uruchomienia, wykonuje następujące on działania:

  1. Wyświetla fałszywy komunikat sprawdzania dysku:

petya_eng_12_auto.png

  1. Odczytuje klucz ‘config.salsa_key’ z sektora konfiguracji do lokalnej tablicy; ustawia wartość tego pola na zero na dysku, ustawia wartość pola ‘config.state’ na 1;
  1. Szyfruje sektor weryfikacji 55 przy użyciu szyfru strumieniowego Salsa20; sektor ten jest wcześniej zapełniony bajtem 0x37 (patrz sekcja „Infekowanie dysku z MBR” powyżej); 
  2. Szuka MFT każdej partycji na każdym połączonym dysku twardym;
  3. Szyfruje dane MFT przy użyciu szyfru Salsa20. Szyfrowanie jest wykonywane w częściach 8 sektorów (tj. rozmiar każdej części wynosi 4 KB). Licznik zaszyfrowanych części znajduje się w sektorze 57 pierwszego dysku.
  4. Po zakończeniu szyfrowania, system zostaje ponownie uruchomiony.

Po ponownym uruchomieniu Petya wyświetla animowany obraz migającej czerwonej i białej czaszki narysowanej w stylu ACCII-art

petya_eng_13_auto.gif

Jeśli użytkownik wciśnie jakikolwiek przycisk, trojan wyświetli tekst, który bez ogródek informuje ofiarę o tym, co się wydarzyło. 

Żądanie okupu i odszyfrowanie

petya_eng_14_auto.png

Na ekranie tym Petya wyświetla odsyłacze do losowych stron internetowych służących do zapłacenia okupu, zlokalizowanych w sieci Tor (adresy są wyszczególnione w config.mal_urls) oraz „indywidualnego kodu odszyfrowania”, który ofiara musi podać na dowolnej z powyższych stron. W rzeczywistości „kod” ten stanowi zawartość pola ‘config.ec_data’ z łącznikiem co sześć znaków. 

A zatem, w jaki sposób cyberprzestępcy planują odszyfrować MFT i czy w ogóle są w stanie to zrobić?

„Klucz”: pole na tym ekranie przyjmuje ciąg tekstowy od użytkownika. Ciąg ten jest sprawdzany pod kątem długości (wymagany jest ciąg mający 16 znaków), a następnie trojan wykorzystuje go do obliczenia 32-bajtowej wartości ‘salsa_key’ (przy użyciu algorytmu omówionego w sekcji „Generowanie danych konfiguracyjnych”). Następnie trojan próbuje odszyfrować sektor weryfikacji 55 przy użyciu tego klucza i sprawdza, czy odszyfrowany sektor jest całkowicie wypełniony bajtem 0x37. Jeśli tak, klucz uważa się za poprawny, a Petya wykorzystuje go do odszyfrowania MFT. Następnie, odszyfrowuje wszystkie sektory początkowe zaszyfrowane przy użyciu XOR 0x37, odszyfrowuje oryginalny MBR i skłania użytkownika do powtórnego uruchomienia komputera.   

A zatem, poprawny ciąg, jaki należy wprowadzić w polu „Key:”, jest dokładnie tym samym ciągiem ‘hasło‘, który jest generowany w pierwszym kroku podczas tworzenia danych konfiguracyjnych.

petya_eng_15_auto.png

Komunikat na ekranie wyświetlany po udanym odszyfrowaniu

Pozostaje pytanie: skąd cyberprzestępcy znają ten ciąg, aby móc go przekazać ofierze, która zapłaciła okup? Żadna automatyczna komunikacja nie jest nawiązywana z serwerami kontroli podczas całego cyklu życia infekcji. Odpowiedź tkwi w opisie algorytmu generowania danych konfiguracyjnych.   

Ofiarę skłania się do ręcznego wprowadzenia swojego „indywidualnego kodu odszyfrowania” ec_data na stronie internetowej wykorzystywanej do zapłaty okupu. Cyberprzestępca może wtedy wykonać następujące działania:

  1. Odszyfrować base58: base58_dec(ec_session_data_b58) = ec_session_data = [ec_session_pub, hasło_aes_encr]
  2. Obliczyć session_secret = ECDH(ec_session_pub, ec_master_priv), zgodnie z właściwościami Elliptic curve Diffie–Hellman, gdzie ec_master_priv to prywatny klucz znany tylko twórcom trojana;  
  3. Obliczyć aes_key = SHA256(session_secret);
  4. Odszyfrować AES-256: hasło_xor = AES_dec(hasło_encr);
  5. Znając ec_session_pub, obliczyć pierwotne hasło w oparciu o hasło_xor.

Strona służąca do zapłacenia okupu

Gdy odwiedzamy stronę w sieci Tor pod adresem URL podanym przez trojana, pojawia się witryna wymagająca podania CAPTCHA, a następnie zostaje załadowana główna strona płatności okupu. Wzrok od razu przykuwa rozkład strony z sierpem i młotem oraz słowem ‘ransomware’ w pseudo cyrylicy. Wygląda to na parodię Związku Radzieckiego w stylu gry Red Alert.   

petya_eng_16_auto.png

Na stronie tej znajduje się licznik czasu pokazujący, kiedy kwota okupu będzie dwukrotnie wyższa, jak również regularnie aktualizowane odsyłacze do wiadomości oraz publikacji związanych z trojanem Petya.

Wciśnięcie przycisku „Start the decryption process” spowoduje przejście na stronę proszącą o podanie wartości ‘ec_data’, która teraz jest określana jako „twój identyfikator” nie zaś „twój indywidualny kod odszyfrowania”. Wydaje się, że cyberprzestępcy wciąż nie zdecydowali się, jak nazwać tę część.

petya_eng_17_auto.png

Gdy użytkownik wprowadza ten ciąg, strona wyświetla wysokość okupu w bitcoinach, informacje odnośnie tego, jak zakupić bitcoiny, oraz adres, na który należy wysłać pieniądze.

Ponadto, istnieją dwie inne strony na tej witrynie: FAQ i Support.

petya_eng_18_auto.png

Strona FAQ

Strona FAQ jest interesująca pod tym względem, że zawiera fałszywe informacje: w rzeczywistości RSA nie jest w żaden sposób wykorzystywany przez trojana na żadnym etapie infekcji. 

petya_eng_19_auto.png

Strona Support

Na stronie wsparcia użytkownik może wysłać wiadomość do cyberprzestępców. Wyróżnia się w szczególności jedna fraza: „Prosimy pisać wiadomość w języku angielskim, nasz rosyjskojęzyczny personel nie zawsze jest dostępny”. To sugeruje, że co najmniej jedna osoba w grupie mówi po rosyjsku.

Rozkład geograficzny

Jak już zauważyliśmy wcześniej, wiadomości spamowe są wymierzone w użytkowników niemieckojęzycznych. Statystyki KSN wyraźnie pokazują, że Niemcy są głównym celem cyberprzestępców.

20_auto.png

Top 5 państw zaatakowanych przez trojana Petya według liczby zaatakowanych użytkowników:

Państwo

Liczba zaatakowanych użytkowników

1

Niemcy

579

2

Chiny

19

3

Indie

8

4

Japonia

5

5

Rosja

5

Podsumowanie

Po przeanalizowaniu trojana Petya odkryliśmy, że stanowi on nietypową hybrydę programu blokującego MBR oraz szyfrującego dane: nie tylko uniemożliwia uruchomienie systemu operacyjnego, ale również blokuje normalny dostęp do plików zlokalizowanych na dyskach twardych atakowanej maszyny.

Chociaż trojan Petya wyraźnie różni się od większości programów ransomware, które pojawiły się w ostatnich latach, nie można określić go jako coś zasadniczo nowego. Koncepcje, na których opiera się ten trojan, można było spotkać już we wcześniejszych szkodliwych programach; twórcy trojana Petya po prostu połączyli je wszystkie w jednym tworze. Należy jednocześnie stwierdzić, że implementacja kodu niskiego poziomu w celu zaszyfrowania i odszyfrowania danych przed uruchomieniem się systemu operacyjnego wymaga pewnych umiejętności technicznych.   

Inną ciekawostką dotyczącą trojana Petya jest pseudosowiecki układ graficzny na stronie płatności okupu; nazwa trojana również pasuje do obrazu „rosyjskiego trojana” kreowanego przez cyberprzestępców. Nie ma pewności odnośnie tego, czy twórcy tego trojana pochodzili z Rosji lub innych republik byłego Związku Radzieckiego; jednak tekst na stronie płatności sugeruje, że w gangu znajduje się co najmniej jedna osoba rosyjskojęzyczna.    

Produkty firmy Kaspersky Lab chronią użytkowników przed omawianym zagrożeniem: pliki wykonywalne trojana Petya są wykrywane przy użyciu werdyktu Trojan-Ransom.Win32.Petr; ponadto, mechanizm analizy zachowania proaktywnie wykrywa nawet nieznane wersje tego trojana przy użyciu werdyktu PDM:Trojan.Win32.Generic.

PS jak odszyfrować dane, nie płacąc okupu

8 kwietnia kilku niezależnych badaczy doniosło o znalezieniu metody przywrócenia hasła bez płacenia okupu cyberprzestępcom. Metoda ta opiera się na algorytmie genetycznym; przy użyciu 8-bajtowego IV (przechowywanego w sektorze konfiguracji 54) oraz zawartości zaszyfrowanego sektora weryfikacji 55 można obliczyć wartość hasła generowanego przez klucz salsa, który może być wykorzystywany do odszyfrowania MFT.