Databáze hrozeb Rootkity Linuxový rootkit LinkPro

Linuxový rootkit LinkPro

Nedávné narušení prostředí Amazon Web Services (AWS) odhalilo dříve nezdokumentovaný rootkit GNU/Linux, sledovaný jako LinkPro. Tento backdoor je pozoruhodný svým dvojím využitím modulů eBPF: jeden slouží ke skrytí artefaktů a druhý funguje jako nenápadný spouštěč – „klepání“, které probudí funkčnost vzdálených příkazů až po odhalení speciálně vytvořeného TCP paketu. Řetězec útoku a mechanismy rootkitu ilustrují sofistikovaného operátora, který kombinuje zneužívání kontejnerů, maskování na úrovni jádra a flexibilní aktivaci sítě, aby zmařil detekci a forenzní korelaci.

Přenašeč infekce a počáteční nasazení

Průnik začal zneužitím odhalené instance Jenkins zranitelné vůči CVE‑2024‑23897 (CVSS 9.8). Z této pozice útočníci vložili škodlivý obraz Dockeru (kvlnt/vv, který byl od té doby odstraněn z Docker Hubu) do několika clusterů Kubernetes. Obraz používal základ Kali Linuxu a obsahoval malou složku aplikace určenou k zajištění perzistence, vzdáleného přístupu a postupného stahování backdoorů.

Uvnitř škodlivého obrazu Dockeru

Složka aplikace v obrázku obsahovala tři klíčové soubory s odlišnými rolemi:

start.sh — shellový skript, který spouští SSH službu a spouští další dvě komponenty.

link — program s otevřeným zdrojovým kódem (vnt) zkompilovaný/zabalený tak, aby fungoval jako VPN/proxy klient, který se připojuje odchozím způsobem k vnt.wherewego[.]top:29872. To umožňuje útočníkovi dosáhnout napadeného hostitele odkudkoli a přes něj se přesunout k dalším cílům.

aplikace – stahovací program založený na Rustu (označovaný jako vGet), který načítá šifrovaný datový obsah vShell z úložiště S3 a poté navazuje propojení WebSocket se svým command-and-control (C2) serverem na adrese 56.155.98[.]37.

Další datové části doručené do uzlů Kubernetes

Kromě škodlivého obrazu operátoři na uzly umístili také dvě další komponenty: dropper, který instaluje další backdoor vShell, a LinkPro, rootkit napsaný v Golangu. LinkPro je navržen tak, aby běžel v jednom ze dvou režimů – pasivním (reverzní) nebo aktivním (forward) – v závislosti na jeho konfiguraci. V pasivním režimu čeká na aktivaci speciálním síťovým paketem; v aktivním režimu sám navazuje kontakt s C2. Režim forward podporuje pět transportních protokolů (HTTP, WebSocket, UDP, TCP, DNS), zatímco reverzní režim omezuje komunikaci na HTTP.

Jak LinkPro přetrvává

Celkové spuštění a perzistence malwaru se řídí jasnou posloupností:

  • Nainstalujte modul Hide eBPF. Tento modul obsahuje programy Tracepoint a Kretprobe pro eBPF, které slouží ke skrytí procesů a síťové aktivity LinkPro.
  • Pokud se instalace modulu Hide eBPF nezdaří – nebo pokud byl zakázán – nainstalujte sdílenou knihovnu do souboru /etc/libld.so a přidejte tuto cestu do souboru /etc/ld.so.preload jako záložní mechanismus skrytí.
  • Pro reverzní (pasivní) provoz nainstalujte modul Knock eBPF. Knock obsahuje program XDP a program TC, takže kanál C2 se aktivuje až po přijetí specifického „magického paketu“.
  • Zajistěte perzistenci vytvořením služby systemd.
  • Provádějte příkazy přijaté z C2.
  • Při vypnutí systému nebo při signalizaci (SIGHUP, SIGINT, SIGTERM) odinstalujte moduly eBPF a odstraňte/obnovte modifikaci /etc/libld.so preload, aby se systém vrátil do předchozího stavu.

Magický balíček a mechanismus aktivace Knock

Pasivní aktivace LinkPro závisí na přesném TCP paketu: jakýkoli TCP paket, jehož velikost okna se rovná 54321, je považován za „magický paket“. Když Knock tento paket detekuje, uloží zdrojovou IP adresu a označí ji hodinovou expirací. Následné TCP pakety z tohoto zdroje jsou monitorovány a v případě potřeby Knock přepíše hlavičky tak, aby byl provoz operátora přesměrován na naslouchací port LinkPro (2333). Odchozí pakety jsou upraveny tak, aby se původní port vrátil do sítě (zdrojový port přepsán na 2233). Záměr je přímočarý, ale účinný: umožnit útočníkovi dosáhnout LinkPro přes jakýkoli port, který front-endový firewall povoluje, a zároveň ztížit korelaci externích protokolů firewallu s aktivitou interní sítě hostitele.

Jak se LinkPro skrývá

LinkPro používá dvoustupňovou strategii maskování:

Skrývání jádra/eBPF : Modul Hide eBPF instaluje programy Tracepoint a Kretprobe, které zachycují systémová volání, jako například getdents (pro skrytí souborů/adresářů) a sys_bpf (pro skrytí vlastních programů BPF). Tento přístup vyžaduje jádro sestavené s povolenou volbou CONFIG_BPF_KPROBE_OVERRIDE.

Záložní funkce LD_PRELOAD v uživatelském prostoru : Pokud není k dispozici potřebná funkcionalita jádra, LinkPro zapíše sdílenou knihovnu (libld.so) a umístí její cestu do souboru /etc/ld.so.preload. Protože soubor /etc/ld.so.preload způsobí, že se zadaná knihovna načte do každého dynamicky linkovaného procesu (těch, které používají /lib/ld-linux.so a glibc), implantovaná knihovna libld.so zachytí funkce libc brzy (před vlastním chováním glibc) a upraví návratové hodnoty z volání libc, aby skryla artefakty, které by jinak odhalily její přítomnost.

Možnosti rootkitu a sada příkazů

LinkPro podporuje interaktivní i automatizované vzdálené akce. Mezi jeho implementované funkce patří:

  • Spuštění pseudoterminálu /bin/bash a spuštění interaktivních relací shellu.
  • Spouštění libovolných příkazů shellu.
  • Výčet souborů a adresářů a provádění operací se soubory.
  • Stahování a zápis souborů na disk.
  • Zřízení proxy tunelu SOCKS5 pro pivoting a proxying „žijící mimo zemi“.

Podpora síťových protokolů a chování C2

V aktivním (forward) režimu je LinkPro flexibilní: může komunikovat pomocí transportů HTTP, WebSocket, UDP, TCP nebo DNS. V pasivním (reverzním) režimu je jeho komunikace omezena na HTTP, ale těží ze skrytosti, protože naslouchá až poté, co paket Knock Magic otevře dočasné hodinové příkazové okno.

Chování při čištění a odinstalaci

Pokud proces obdrží signály o ukončení, LinkPro se snaží odstranit stopy: odinstaluje nainstalované moduly eBPF a smaže nebo obnoví soubor /etc/libld, který seskupí do předchozího stavu, takže systém vypadá nezměněn. Tato záměrná čisticí rutina naznačuje, že operátor má obavy z vyhýbání se chybám a minimalizace dlouhodobých forenzních stop.

Operační kontext a atribuce

Kampaň využívala vysoce závažný exploit Jenkins, škodlivé image kontejnerů, několik variant zadních vrátek a stealth na úrovni jádra – tato kombinace ukazuje na motivovaného a schopného operátora. Definitivní připisování nebylo zveřejněno; sada nástrojů a zjevné využití kompromitovaného systému pro proxying a trvalý vzdálený přístup však silně naznačují finančně motivovanou aktivitu (otáčení serverů, proxying pro další narušení nebo další prodej přístupu).

Závislost jádra a záložní chování

Protože LinkPro spoléhá na funkce přepsání BPF kprobe pro své nenápadné zachycení v jádru, aplikuje techniku skrytí na úrovni jádra pouze tehdy, když hostitelské jádro zveřejní CONFIG_BPF_KPROBE_OVERRIDE. Pokud tato funkce jádra chybí, LinkPro se záměrně vrací k metodě sdílené knihovny LD_PRELOAD, aby se skryl v uživatelském prostoru, a zajistil tak skrytí v široké škále prostředí.

Závěrečná poznámka

LinkPro demonstruje, jak moderní útoky mohou kombinovat kompromitaci kontejnerů, zavaděče ve fázích, instrumentaci jádra (eBPF) a chytré síťové triky (aktivace magických paketů a přepisování portů) pro zachování nenápadnosti a flexibility. Detekce a náprava vyžadují pečlivou kontrolu neoprávněných programů eBPF, neočekávaných položek v souboru /etc/ld.so.preload, neobvyklých služeb systemd a síťových připojení k uvedené infrastruktuře (forenzní indikátory zahrnují IP adresu 56.155.98[.]37, porty 29872, 2333, 2233 a odstraněný název obrazu Dockeru kvlnt/vv).

Trendy

Nejvíce shlédnuto

Načítání...