LucidRook: nowe malware uderza w NGO i uczelnie, wykorzystując Lua, Rust i DLL sideloading

securitybeztabu.pl 1 dzień temu

Wprowadzenie do problemu / definicja

LucidRook to nowo ujawnione, wieloetapowe złośliwe oprogramowanie wykorzystywane w ukierunkowanych kampaniach spear-phishingowych przeciwko organizacjom pozarządowym oraz uczelniom na Tajwanie. Zagrożenie wyróżnia się modułową architekturą, wykorzystaniem interpretera Lua osadzonego bezpośrednio w bibliotece DLL oraz silnym naciskiem na utrudnianie analizy powłamaniowej. Z perspektywy cyberbezpieczeństwa LucidRook należy traktować jako stager, czyli komponent pośredni odpowiedzialny za rozpoznanie środowiska, pobieranie kolejnych ładunków oraz przygotowanie dalszych działań operacyjnych.

W skrócie

LucidRook został powiązany z aktywnością grupy śledzonej jako UAT-10362. Ataki obserwowano co najmniej od października 2025 roku i były one prowadzone dzięki wiadomości phishingowych zawierających zaszyfrowane archiwa z hasłem podanym w treści e-maila. Badacze opisali dwa łańcuchy infekcji: wariant oparty na skrócie LNK oraz wariant oparty na pliku EXE podszywającym się pod legalne oprogramowanie ochronne.

Po uruchomieniu malware wykonuje rekonesans systemu, pakuje i szyfruje zebrane dane, a następnie eksfiltruje je przez FTP. Dodatkowo pobiera zaszyfrowany ładunek drugiego etapu w postaci skompilowanego bytecode Lua, co zwiększa elastyczność operatorów i utrudnia pełną rekonstrukcję incydentu.

Kontekst / historia

Według dostępnych ustaleń kampania była wymierzona w podmioty z Tajwanu, w tym organizacje non-profit i prawdopodobnie uniwersytety. W przynętach wykorzystywano dokumenty pozorujące oficjalną korespondencję administracyjną, co zwiększało wiarygodność wiadomości i skłaniało ofiary do uruchomienia dostarczonych plików.

Istotnym elementem tej operacji była regionalizacja ataku. Część próbek uruchamiała się wyłącznie w środowiskach zgodnych językowo z tradycyjnym chińskim używanym na Tajwanie. Taka selekcja ogranicza widoczność kampanii w typowych sandboxach i środowiskach laboratoryjnych, które często używają konfiguracji anglojęzycznych.

Badacze wskazali również na powiązane narzędzie o nazwie LucidKnight, które prawdopodobnie pełni rolę komponentu rozpoznawczego. To sugeruje, iż operatorzy dysponują bardziej rozbudowanym zestawem narzędzi, umożliwiającym etapowe profilowanie celu przed wdrożeniem pełnego łańcucha infekcji.

Analiza techniczna

W analizowanych incydentach zaobserwowano dwa główne scenariusze dostarczenia zagrożenia. W pierwszym ofiara otrzymywała archiwum zawierające plik LNK z ikoną dokumentu oraz ukryty katalog z kolejnymi komponentami. Kliknięcie skrótu uruchamiało legalne elementy systemu Windows w modelu living-off-the-land, co pomagało ominąć część mechanizmów detekcji. Następnie aktywowany był dropper nazwany LucidPawn.

LucidPawn odszyfrowywał i zapisywał na dysku dwa główne komponenty: legalny plik wykonywalny związany z DISM, przemianowany tak, by przypominał przeglądarkę Microsoft Edge, oraz złośliwą bibliotekę DismCore.dll. Taki układ umożliwiał sideloading DLL, czyli uruchomienie złośliwego kodu przez zaufany proces. Mechanizm persistence opierał się na skrócie w folderze autostartu, co pozwalało wznowić działanie malware po restarcie systemu.

Drugi łańcuch infekcji wykorzystywał plik EXE napisany w .NET, podszywający się pod oprogramowanie bezpieczeństwa. Po uruchomieniu dropper dekodował osadzone binaria i zapisywał je w katalogu systemowym, przygotowując analogiczny zestaw do uruchomienia LucidRook oraz utrzymania trwałości.

Sam LucidRook to 64-bitowa biblioteka DLL działająca jako stager. Zawiera interpreter Lua 5.4.8 oraz komponenty skompilowane w Rust, co zwiększa złożoność analizy statycznej i dynamicznej. Po uruchomieniu malware realizuje dwa podstawowe zadania. Po pierwsze, wykonuje rekonesans hosta, zbierając informacje o koncie użytkownika, nazwie komputera, procesach, zainstalowanym oprogramowaniu oraz innych cechach środowiska. Po drugie, łączy się z infrastrukturą C2 i pobiera kolejny etap działania w postaci zaszyfrowanego archiwum zawierającego bytecode Lua.

Na uwagę zasługuje sposób obsługi drugiego etapu. Zamiast klasycznego pobierania pliku PE lub skryptu w postaci jawnej, LucidRook weryfikuje sygnaturę bytecode Lua i wykonuje go wewnątrz osadzonego interpretera. Taki model daje operatorom dużą elastyczność operacyjną: mogą gwałtownie zmieniać logikę działania bez modyfikacji głównego loadera. Dodatkowo utrudnia to odtworzenie pełnego przebiegu incydentu, o ile obrońcy zabezpieczą jedynie pierwszy etap, a nie przechwycą chwilowo hostowanego payloadu.

Malware stosuje również zaawansowaną obfuskację ciągów znaków. Ukrywane są nazwy plików, rozszerzenia, identyfikatory wewnętrzne oraz adresy infrastruktury. Deszyfracja zachodzi dopiero w czasie wykonania z użyciem obliczanych dynamicznie adresów oraz kluczy rekonstruowanych w pamięci. To znacząco utrudnia automatyczne rozpakowanie próbki i budowę reguł wykrywania opartych wyłącznie na statycznych wskaźnikach.

Kanał komunikacji C2 opiera się na FTP. Zebrane dane są szyfrowane kluczem RSA, pakowane do archiwum chronionego hasłem i przesyłane na serwer operatora. Następnie malware inicjuje kolejną sesję FTP w celu pobrania ładunku kolejnego etapu. Badacze zwrócili uwagę, iż część tej infrastruktury mogła bazować na publicznie dostępnych lub skompromitowanych serwerach FTP należących do lokalnych firm, co dodatkowo utrudnia klasyczne blokowanie na podstawie reputacji domen czy adresów.

Konsekwencje / ryzyko

LucidRook stanowi istotne zagrożenie dla organizacji o wysokiej wartości wywiadowczej, szczególnie tych działających w sektorze publicznym, edukacyjnym i społecznym. Ryzyko nie ogranicza się do jednorazowej infekcji stacji roboczej. Jako stager malware może być używany do przygotowania dalszych działań, w tym wdrożenia kolejnych modułów, pozyskania danych operacyjnych, rozpoznania infrastruktury i potencjalnego rozszerzenia dostępu.

Najpoważniejsze konsekwencje obejmują wyciek danych organizacyjnych, profilowanie personelu i systemów, a także utratę integralności środowiska końcowego. Z punktu widzenia zespołów SOC i DFIR szczególnie problematyczne są: selektywne uruchamianie zależne od języka systemu, wykorzystywanie legalnych binariów systemowych, krótkotrwale hostowane payloady oraz wielowarstwowe szyfrowanie danych i konfiguracji.

W praktyce LucidRook pokazuje również rosnący trend łączenia mniej typowych technologii, takich jak Lua i Rust, z technikami LOLBAS oraz sideloadingiem DLL. Taka kombinacja utrudnia detekcję sygnaturową i wymusza silniejsze oparcie ochrony o telemetrię behawioralną.

Rekomendacje

Organizacje powinny w pierwszej kolejności wzmocnić ochronę przed spear-phishingiem, zwłaszcza dla użytkowników obsługujących korespondencję zewnętrzną i dokumenty urzędowe. Warto wdrożyć blokowanie lub ścisłe ograniczenie uruchamiania plików LNK oraz archiwów chronionych hasłem pochodzących z poczty elektronicznej.

Konieczne jest monitorowanie anomalii związanych z uruchamianiem legalnych narzędzi systemowych w nietypowych kontekstach, w szczególności procesów powiązanych z PowerShell, DISM, katalogami autostartu oraz lokalizacjami użytkownika i ProgramData. Wykrywanie powinno obejmować przypadki DLL sideloadingu, tworzenia skrótów persistence i wykonywania bibliotek przez nietypowe eksporty.

Z perspektywy sieciowej warto kontrolować i ograniczać ruch FTP wychodzący, szczególnie do nieautoryzowanych hostów. Tam, gdzie to możliwe, należy całkowicie wyłączyć ten protokół dla stacji roboczych użytkowników. Pomocne będzie także wykrywanie archiwów ZIP lub RAR tworzonych lokalnie przez nietypowe procesy oraz późniejszych połączeń do zewnętrznych serwerów transferowych.

  • wdrożenie EDR z naciskiem na detekcję zachowań post-exploitation,
  • monitorowanie uruchamiania interpreterów i niestandardowych loaderów w DLL,
  • analiza artefaktów persistence w folderach Startup,
  • korelacja zdarzeń związanych z ukrytymi katalogami i podejrzanymi plikami o nazwach imitujących legalne komponenty,
  • stosowanie izolowanych sandboxów z różnymi konfiguracjami językowymi, aby zwiększyć szansę ujawnienia próbek geoselektywnych.

Dla zespołów reagowania ważne jest także zabezpieczenie pełnego łańcucha artefaktów, w tym pobranych archiwów, tymczasowych plików payloadu, logów FTP oraz pamięci operacyjnej. W przypadku zagrożeń modułowych sama próbka loadera może nie wystarczyć do pełnego ustalenia celu końcowego ataku.

Podsumowanie

LucidRook to przykład nowoczesnego malware wykorzystywanego w precyzyjnych kampaniach ukierunkowanych. Łączy osadzony interpreter Lua, komponenty Rust, techniki DLL sideloadingu, obfuskację i selektywne wykonanie zależne od regionu. Dzięki temu operatorzy zyskują elastyczne narzędzie do rozpoznania i rozwijania dalszych etapów ataku przy ograniczonej widoczności dla obrońców.

Dla organizacji najważniejsze pozostaje odejście od wyłącznie sygnaturowego modelu ochrony na rzecz wykrywania behawioralnego, kontroli łańcucha uruchomień oraz ścisłego monitorowania nietypowych kanałów eksfiltracji. Kampania z użyciem LucidRook pokazuje, iż choćby pozornie nieskomplikowane wektory wejścia, takie jak archiwum z plikiem LNK lub fałszywym EXE, mogą prowadzić do zaawansowanej i trudnej do zbadania kompromitacji.

Źródła

  1. BleepingComputer — https://www.bleepingcomputer.com/news/security/new-lucidrook-malware-used-in-targeted-attacks-on-ngos-universities/
  2. Cisco Talos — New Lua-based malware “LucidRook” observed in targeted attacks against Taiwanese organizations — https://blog.talosintelligence.com/new-lua-based-malware-lucidrook/
Idź do oryginalnego materiału