UAT-9921 i VoidLink: „cloud-native” malware w Zig, które celuje w Linuxa i środowiska chmurowe - Security Bez Tabu

UAT-9921 i VoidLink: „cloud-native” malware w Zig, które celuje w Linuxa i środowiska chmurowe

Wprowadzenie do problemu / definicja luki

VoidLink to rozbudowany, modułowy framework implantów i C2 ukierunkowany na systemy Linux — ze szczególnym naciskiem na nowoczesną infrastrukturę (chmura, Kubernetes, Docker). W kampaniach zaobserwowanych przez Cisco Talos narzędzie jest używane przez nowo nazwany klaster aktywności UAT-9921, który po uzyskaniu dostępu instaluje elementy C2 na przejętych hostach i wykorzystuje je m.in. do skanowania oraz rekonesansu wewnątrz i na zewnątrz sieci.

W praktyce nie mówimy o „pojedynczym backdoorze”, tylko o ekosystemie: implant + system pluginów + mechanizmy ukrywania (w tym kernel-level) + zaplecze zarządzania, które przypomina komercyjne platformy red-teamowe, ale jest obserwowane w realnych włamaniach.


W skrócie

  • Aktor: UAT-9921 (Talos: aktywność co najmniej od 2019 r.).
  • Cele: przede wszystkim technologia, ale też finanse; zachowanie wskazuje na skanowanie i oportunizm (np. całe sieci klasy C).
  • Initial access (Talos): pre-pozyskane poświadczenia lub RCE przez Java serialization, m.in. w kontekście Apache Dubbo; sygnały o możliwym użyciu złośliwych dokumentów, ale bez próbek.
  • Post-compromise: implant VoidLink + SOCKS proxy + narzędzie FSCAN do rekonesansu i ruchu bocznego.
  • Technologia: Zig (implant), C (pluginy), Go (backend); kompilacja pluginów „na żądanie” pod różne dystrybucje Linuksa.
  • Chmura/kontenery: rozpoznawanie dostawców chmury, pobieranie poświadczeń (m.in. z env/config/metadata), scenariusze eskalacji w Kubernetes i ucieczki z kontenerów.
  • Stealth: rootkitowe mechanizmy (m.in. LD_PRELOAD/LKM/eBPF), adaptacja do środowiska i wykrytych zabezpieczeń.
  • C2: Ontinue opisuje AES-256-GCM po HTTPS, maskowane jako zwykły ruch web; zbieżności „w stylu” beaconów znanych z Cobalt Strike.
  • Zarządzanie: RBAC (SuperAdmin/Operator/Viewer), audytowalność akcji — nietypowe dla czysto „przestępczych” frameworków.

Kontekst / historia / powiązania

VoidLink został szeroko opisany wcześniej przez Check Point Research jako „cloud-first” framework malware dla Linuksa, rozwijany dynamicznie i wyposażony w bogaty zestaw funkcji (od user-mode po kernel-level), z elementami sugerującymi chińskojęzyczne środowisko wytwórcze (bez jednoznacznego przypisania afiliacji).

Kluczowe jest to, że obrazy sytuacji różnią się w czasie:

  • Check Point podkreślał, że w momencie publikacji nie widział dowodów realnych infekcji (bardziej „widać rozwój narzędzia” niż kampanię).
  • Talos raportuje natomiast ofiary powiązane z VoidLink od okolic września (aktywność do stycznia 2026) i wskazuje na konkretne TTP UAT-9921 w intruzjach.

W tle pojawia się jeszcze jeden trend: przyspieszenie cyklu tworzenia implantów. Talos wiąże rozwój VoidLink z użyciem AI-wspomaganego środowiska wytwórczego i ostrzega, że „kompilacja na żądanie” to fundament pod coraz bardziej automatyzowane (a w przyszłości także autonomiczne) łańcuchy ataku.


Analiza techniczna / szczegóły luki

1) Łańcuch ataku (w ujęciu Talos)

  1. Wejście: użycie pozyskanych wcześniej poświadczeń lub eksploatacja podatności typu Java serialization prowadzącej do RCE (Talos wskazuje m.in. Apache Dubbo).
  2. Utrwalenie i ukrycie: wdrożenie implantu VoidLink na przejętym serwerze.
  3. Rekonesans / lateral movement: uruchomienie SOCKS na skompromitowanych hostach i wykorzystanie FSCAN do rekonesansu wewnętrznego.
  4. Skalowanie: skanowanie zasobów także „na zewnątrz” (Talos wspomina o skanowaniu całych sieci klasy C), co sugeruje bardziej szerokie poszukiwanie okazji niż ręcznie dobierane cele.

2) Architektura: implant + pluginy + backend

VoidLink jest zbudowany jak platforma:

  • Zig jako język implantu,
  • C jako język pluginów,
  • Go jako backend,
  • oraz mechanizm kompilacji pluginów na żądanie, co ułatwia dopasowanie do dystrybucji/środowiska ofiary (i utrudnia obronę sygnaturową).

Check Point dodaje, że framework ma plugin system in-memory i obsługuje różne kanały C2 (w tym bardziej „nietypowe” jak ICMP czy DNS tunneling, obok HTTP/HTTPS).

3) Chmura i DevOps jako „naturalne” środowisko działania

Ontinue opisuje implant jako nastawiony na:

  • fingerprinting środowisk AWS/GCP/Azure/Alibaba/Tencent,
  • pozyskiwanie poświadczeń z env/config oraz API metadanych instancji,
  • wykrywanie runtime kontenerów,
  • oraz posiadanie pluginów pod container escape i eskalację w Kubernetes.

To spina się z obserwacjami Check Point, że VoidLink potrafi rozpoznać, czy działa w Kubernetes/Docker i dostosować zachowanie.

4) Stealth i komponent „rootkitowy”

Check Point wskazuje na wachlarz mechanizmów OPSEC i ukrywania: m.in. szyfrowanie kodu w runtime, reakcje na manipulację/tampering oraz rootkitowe podejście (LD_PRELOAD, LKM, eBPF).

Talos dodaje warstwę praktyczną: wykrywanie rozwiązań EDR i dobór strategii uniku, a także funkcje typu eBPF/LKM oraz scenariusze eskalacji/ucieczki z sandboxa.

5) C2, kryptografia i „pozory normalności”

Ontinue opisuje AES-256-GCM po HTTPS, maskowane tak, by wyglądało jak normalny ruch web. Wskazuje też podobieństwa wzorców komunikacji do architektury beaconów znanych z Cobalt Strike.

6) Zarządzanie kampanią: RBAC, audyt i „defense-contractor grade”

Jedna z najbardziej nietypowych cech VoidLink (w porównaniu do wielu narzędzi stricte przestępczych) to:

  • audytowalność akcji
  • i RBAC z rolami SuperAdmin / Operator / Viewer.

Talos zaznacza wprost, że to może pasować do środowisk, gdzie potrzebny jest nadzór prawny/korporacyjny — oraz że z tego powodu nie da się całkowicie wykluczyć scenariusza „red team”, mimo iż w obserwowanych działaniach pojawiają się też exploity i użycie cudzych poświadczeń.

7) Wątek Windows i DLL side-loading

Talos widzi przesłanki, że istnieje także implant dla Windows, ładujący pluginy przez DLL side-loading (bez pozyskanego próbki do pełnego potwierdzenia).
W terminologii MITRE ATT&CK jest to jedna z odmian Hijack Execution Flow (DLL Sideloading).


Praktyczne konsekwencje / ryzyko

Dlaczego to jest istotne operacyjnie (a nie tylko „kolejny malware”)?

  • Cloud-native post-exploitation: jeśli implant realnie umie „czytać” chmurę, kontenery i API dostawców, to kompromitacja pojedynczego hosta może szybciej przełożyć się na dostęp do sekretów, repozytoriów i tożsamości workloadów.
  • Stealth na poziomie kernela + adaptacja do EDR: rośnie ryzyko długiej obecności (dwell time), a klasyczne artefakty user-mode mogą w ogóle się nie pojawić albo być niewiarygodne.
  • „Kompilacja na żądanie”: obrona oparta wyłącznie na statycznych sygnaturach/IOC ma krótszą „przydatność”, bo funkcje mogą być dogrywane w locie, pod konkretną ofiarę.
  • Skalowanie przez skanowanie i proxy: obserwowane SOCKS+FSCAN oraz skanowanie sieci klasy C zwiększa ryzyko „rozlania się” incydentu na kolejne segmenty i usługi.

Rekomendacje operacyjne / co zrobić teraz

1) Ogranicz wektory wejścia

  • Zweryfikuj ekspozycję usług JVM/Java, a szczególnie komponentów, gdzie realnie występuje ryzyko Java serialization → RCE (Talos wskazuje Apache Dubbo jako przykład kontekstu).
  • Wymuś MFA, ogranicz logowanie administracyjne z Internetu, zredukuj „credential sprawl”, rotuj hasła/tokeny w systemach, gdzie podejrzewasz wyciek.

2) Utwardź chmurę i kontenery „pod kradzież sekretów”

  • Ogranicz dostęp do instance metadata (tam gdzie to możliwe), stosuj polityki minimalnych uprawnień dla ról/identity workloadów.
  • Przejrzyj miejsca, z których zwykle „wyciekają” sekrety: zmienne środowiskowe, pliki konfiguracyjne, katalogi narzędzi CI/CD, integracje Git/registry.

(Uzasadnienie: Ontinue opisuje pozyskiwanie poświadczeń właśnie z env/config/metadata i scenariusze ataku na kontenery/Kubernetes.)

3) Poluj na TTP po kompromitacji

  • Monitoruj anomalie: SOCKS proxy na serwerach aplikacyjnych, skanowanie portów i ruch narzędzi typu FSCAN.
  • Wdróż sensowne egress filtering (zwłaszcza z workloadów, które „nie powinny” rozmawiać z Internetem) oraz alerty na nietypowe beacony HTTPS.

4) Detekcja na hostach Linux: kernel, eBPF, LKM

  • Zwiększ telemetrię wokół ładowania modułów jądra (LKM) i nietypowych aktywności eBPF; szukaj sygnałów „rootkitowych” oraz zachowań anty-analizowych.
  • Tam, gdzie to realne: ogranicz możliwość ładowania niepodpisanych modułów, rozważ twardsze profile (np. lockdown mode, odpowiednie polityki w środowiskach produkcyjnych).

5) Jeśli masz komponenty Windows: kontroluj DLL side-loading

  • W audytach aplikacji i EDR uwzględnij scenariusze DLL side-loading (MITRE: DLL Sideloading), szczególnie przy binarkach uruchamianych z katalogów, gdzie atakujący może dopisać pliki.

6) Wykorzystaj sygnatury i coverage od dostawców

Talos podaje konkretne elementy coverage (m.in. zakresy reguł Snort oraz sygnaturę ClamAV dla VoidLink). Jeśli korzystasz z tych technologii lub integracji Cisco, to szybki „health check” pokrycia ma sens.


Różnice / porównania z innymi przypadkami (jeśli dotyczy)

W porównaniu do klasycznych frameworków C2 używanych powszechnie w kampaniach (np. „rodziny” podejścia Cobalt-Strike-like), VoidLink wyróżnia się kilkoma rzeczami:

  • Linux-first i cloud-first zamiast „Windows jako domyślny target”.
  • Kompilacja pluginów na żądanie (bardziej dynamiczny dobór funkcji pod ofiarę).
  • RBAC + audytowalność, co wygląda jak projektowanie z myślą o „nadzorze” i procesie.
  • Głębokie mechanizmy stealth (kernel/eBPF/LKM/LD_PRELOAD) oraz adaptacja do narzędzi obronnych.

Podsumowanie / kluczowe wnioski

UAT-9921 to nowo nazwany klaster, który — według Talos — używa VoidLink jako platformy post-exploitation do ukrywania się, skanowania i poruszania po sieciach ofiar, zwłaszcza w kontekście Linuksa i środowisk chmurowych.

VoidLink jest istotny nie tylko przez „feature listę”, ale przez kierunek: cloud-native, modularnie rozbudowywany implant z elementami kernel-stealth i automatyzacją wytwarzania, który może skracać czas od kompromitacji do skutecznego ruchu bocznego i eksfiltracji.


Źródła / bibliografia

  1. Cisco Talos: New threat actor, UAT-9921, leverages VoidLink framework in campaigns (Cisco Talos Blog)
  2. Check Point Research: VoidLink – The Cloud-Native Malware Framework (Check Point Research)
  3. Ontinue: VoidLink: Dissecting an AI-Generated C2 Implant (Ontinue)
  4. MITRE ATT&CK: Hijack Execution Flow: DLL (DLL Sideloading) (attack.mitre.org)
  5. The Hacker News: UAT-9921 Deploys VoidLink Malware to Target Technology and Financial Sectors (The Hacker News)