Przebieg kampanii FlashHole
Analiza przeprowadzona przez firmę Kaspersky wykazała, że ataki rozpoczęły się w lipcu 2025 roku. Hakerzy wykorzystują strony phishingowe kierujące użytkowników do przygotowanych repozyoriów GitHub. Strony te ładują kod JavaScript z zewnętrznych domen, co inicjuje łańcuch wykonywania w pamięci operacyjnej.
W procesie infekcji wykorzystywane jest narzędzie bezpieczeństwa INISAFE CrossWeb EX. Proces tego narzędzia uruchamia legalny plik systemowy fsquirt.exe, który wykonuje kod powłoki instalujący downloader TechHub. Narzędzie to pobiera dodatkowe złośliwe oprogramowanie z prywatnych repozyoriów GitHub.
Wykorzystane narzędzia i mechanizmy
W operacji zaobserwowano kilka nowych oraz znanych narzędzi:
- LPEClient: szkodliwe oprogramowanie profilujące ofiary, które odbiera klucze publiczne ML-KEM-1024 i generuje współdzielone klucze pozwalające odszyfrować kolejne ładunki.
- ClientHub: loader obsługujący komunikację z serwisem Dropbox oraz bezpośrednią wymianę danych z LPEClient.
- Cubridge: modularny backdoor zapewniający zarządzanie plikami, wykonywanie poleceń, rekonesans, wykonywanie zrzutów ekranu oraz pobieranie dodatkowych ładunków.
Atakujący korzystają także z narzędzi wymierzonych w przeglądarki oparte na silniku Chromium w celu kradzieży danych uwierzytelniających, plików cookies oraz historii przeglądania. Większość kodu uruchamiana jest w pamięci, choć mechanizmy utrzymania pozostawiają na dysku pewne pliki.
Zastosowanie kryptografii postkwantowej
W operacji FlashHole wykorzystano standard kryptografii postkwantowej ML-KEM zatwierdzony przez NIST. LPEClient uzyskuje z serwera C2 tablicę bajtów zawierającą cztery bloki o wielkości 1568 bajtów z kluczami publicznymi ML-KEM-1024.
Oprogramowanie generuje cztery pary kluczy współdzielonych i tekstów kryptograficznych z tych bloków, szyfruje je algorytmem GOST i przesyła z powrotem do serwera C2 za pośrednictwem ClientHub. Współdzielone sekrety dostarczają materiału kluczowego dla algorytmu Threefish, który odszyfrowuje odpowiedź zawierającą parametry i ostateczny ładunek wykonywalny Cubridge ładowany bezpośrednio do pamięci.