Databáza hrozieb Rootkity LinkPro Linux Rootkit

LinkPro Linux Rootkit

Nedávne narušenie prostredia Amazon Web Services (AWS) odhalilo predtým nezdokumentovaný rootkit GNU/Linux, sledovaný ako LinkPro. Tento backdoor je pozoruhodný dvojitým použitím modulov eBPF: jeden slúži na skrývanie artefaktov a druhý funguje ako nenápadný spúšťač – „klopanie“, ktoré prebudí funkčnosť vzdialených príkazov až po objavení špeciálne vytvoreného paketu TCP. Reťazec útoku a mechanizmy rootkitu ilustrujú sofistikovaného operátora, ktorý kombinuje zneužívanie kontajnerov, skrývanie na úrovni jadra a flexibilnú aktiváciu siete, aby zmaril detekciu a forenznú koreláciu.

Vektor infekcie a počiatočné nasadenie

Prienik sa začal zneužitím exponovanej inštancie Jenkins zraniteľnej voči CVE‑2024‑23897 (CVSS 9.8). Z tejto pozície útočníci vložili škodlivý obraz Dockeru (kvlnt/vv, ktorý bol odvtedy odstránený z Docker Hubu) do viacerých klastrov Kubernetes. Obraz používal základ Kali Linuxu a obsahoval malý priečinok s aplikáciami určený na zabezpečenie perzistencie, vzdialeného prístupu a postupného sťahovania zadných vrátok.

Vnútri škodlivého obrázka Dockeru

Priečinok aplikácie v obrázku obsahoval tri kľúčové súbory s odlišnými úlohami:

start.sh — shellový skript, ktorý spúšťa SSH službu a vykonáva ďalšie dve komponenty.

odkaz — program s otvoreným zdrojovým kódom (vnt) skompilovaný/zabalený tak, aby fungoval ako VPN/proxy klient, ktorý sa pripája smerom von na vnt.wherewego[.]top:29872. To umožňuje útočníkovi dosiahnuť napadnutý hostiteľ odkiaľkoľvek a presunúť sa cez neho k iným cieľom.

aplikácia – sťahovací program založený na Ruste (označovaný ako vGet), ktorý načíta šifrovaný dátový súbor vShell z bucketu S3 a potom vytvorí prepojenie WebSocket so svojím serverom velenia a riadenia (C2) na adrese 56.155.98[.]37.

Ďalšie užitočné zaťaženia doručené do uzlov Kubernetes

Spolu so škodlivým obrázkom operátori na uzly umiestnili aj dva ďalšie komponenty: dropper, ktorý inštaluje ďalší backdoor vShell, a LinkPro, rootkit napísaný v jazyku Golang. LinkPro je navrhnutý tak, aby bežal v jednom z dvoch režimov – pasívnom (reverznom) alebo aktívnom (forwardnom) – v závislosti od jeho konfigurácie. V pasívnom režime čaká na aktiváciu špeciálnym sieťovým paketom; v aktívnom režime iniciuje kontakt so samotným C2. Režim forward podporuje päť transportných protokolov (HTTP, WebSocket, UDP, TCP, DNS), zatiaľ čo reverzný režim obmedzuje komunikáciu na HTTP.

Ako LinkPro pretrváva

Celkové spustenie a perzistencia škodlivého softvéru sa riadia jasnou postupnosťou:

  • Nainštalujte modul Hide eBPF. Tento modul obsahuje programy Tracepoint a Kretprobe eBPF, ktoré sa používajú na skrytie procesov a sieťovej aktivity LinkPro.
  • Ak inštalácia modulu Hide eBPF zlyhá – alebo ak bol zakázaný – nainštalujte zdieľanú knižnicu do súboru /etc/libld.so a pridajte túto cestu do súboru /etc/ld.so.preload ako záložný mechanizmus skrytia.
  • Pre reverznú (pasívnu) prevádzku nainštalujte modul Knock eBPF. Knock obsahuje program XDP a program TC, takže kanál C2 sa aktivuje až po prijatí špecifického „magického paketu“.
  • Zabezpečte perzistenciu vytvorením služby systemd.
  • Vykonajte príkazy prijaté z C2.
  • Pri vypnutí alebo po signalizácii (SIGHUP, SIGINT, SIGTERM) odinštalujte moduly eBPF a odstráňte/obnovte modifikáciu predbežného načítania /etc/libld.so, aby sa systém vrátil do predchádzajúceho stavu.

Magický paket a mechanizmus aktivácie Knock

Pasívna aktivácia LinkPro závisí od presného TCP paketu: akýkoľvek TCP paket, ktorého veľkosť okna sa rovná 54321, sa považuje za „magický paket“. Keď Knock tento paket zistí, uloží zdrojovú IP adresu a označí ju hodinovou expiráciou. Následné TCP pakety z tohto zdroja sú monitorované a v prípade potreby Knock prepíše hlavičky tak, aby prevádzka operátora bola presmerovaná na počúvací port LinkPro (2333). Odchádzajúce pakety sú upravené tak, aby sa pôvodný port vrátil do siete (zdrojový port sa prepíše na 2233). Zámer je jednoduchý, ale účinný: umožniť útočníkovi dostať sa k LinkPro cez akýkoľvek port, ktorý povoľuje front-endový firewall, a zároveň sťažiť koreláciu externých protokolov firewallu s aktivitou internej siete hostiteľa.

Ako sa LinkPro maskuje

LinkPro používa dvojúrovňovú stratégiu utajenia:

Skrytie jadra/eBPF : Modul Hide eBPF inštaluje programy Tracepoint a Kretprobe, ktoré zachytávajú systémové volania, ako napríklad getdents (na skrytie súborov/adresárov) a sys_bpf (na skrytie vlastných programov BPF). Tento prístup vyžaduje jadro zostavené s povolenou parameterom CONFIG_BPF_KPROBE_OVERRIDE.

Záložná metóda LD_PRELOAD v používateľskom priestore : Ak nie je k dispozícii funkcia jadra, LinkPro zapíše zdieľanú knižnicu (libld.so) a umiestni jej cestu do súboru /etc/ld.so.preload. Pretože súbor /etc/ld.so.preload spôsobí, že sa zadaná knižnica načíta do každého dynamicky prepojeného procesu (tých, ktoré používajú /lib/ld-linux.so a glibc), implantovaná knižnica libld.so zachytí funkcie libc skôr (pred vlastným správaním glibc) a zmení návraty z volaní libc, aby skryla artefakty, ktoré by inak odhalili jej prítomnosť.

Možnosti rootkitu a sada príkazov

LinkPro podporuje interaktívne aj automatizované vzdialené akcie. Medzi jeho implementované funkcie patria:

  • Spustenie pseudoterminálu /bin/bash a spúšťanie interaktívnych relácií shellu.
  • Vykonávanie ľubovoľných príkazov shellu.
  • Vymenovanie súborov a adresárov a vykonávanie operácií so súbormi.
  • Sťahovanie a zapisovanie súborov na disk.
  • Vytvorenie proxy tunela SOCKS5 pre pivoting a proxying typu „žijúci mimo zeme“.

Podpora sieťového protokolu a správanie C2

V aktívnom (doprednom) režime je LinkPro flexibilný: dokáže komunikovať pomocou transportov HTTP, WebSocket, UDP, TCP alebo DNS. V pasívnom (spätnom) režime je jeho komunikácia obmedzená na HTTP, ale využíva výhody utajenia, pretože počúva až po tom, čo paket Knock Magic otvoril dočasné hodinové príkazové okno.

Správanie pri čistení a odinštalovaní

Ak proces dostane signály o ukončení, LinkPro sa snaží odstrániť stopy: odinštaluje nainštalované moduly eBPF a vymaže alebo obnoví súbor /etc/libld, pričom ho zoskupí do predchádzajúceho stavu, takže systém sa javí ako nezmenený. Táto zámerná čistiaca rutina naznačuje, že operátor sa obáva vyhýbania sa chybám a minimalizácie dlhodobých forenzných stôp.

Operačný kontext a pripisovanie

Kampaň využívala vysoko závažný exploit Jenkins, obrazy škodlivých kontajnerov, viacero variantov zadných vrát a stealth na úrovni jadra – kombinácia, ktorá poukazuje na motivovaného a schopného operátora. Definitívne pripisovanie nebolo zverejnené; sada nástrojov a zjavné využitie kompromitácie na proxy a trvalý vzdialený prístup však silne naznačujú finančne motivovanú aktivitu (otáčanie, proxy pre ďalšie narušenia alebo ďalší predaj prístupu).

Závislosť jadra a záložné správanie

Keďže LinkPro sa pri svojom nenápadnom zachytávaní jadra spolieha na funkcie prepísania BPF kprobe, techniku skrývania na úrovni jadra aplikuje iba vtedy, keď hostiteľské jadro odhalí CONFIG_BPF_KPROBE_OVERRIDE. Ak táto funkcia jadra chýba, LinkPro sa zámerne vracia k metóde zdieľanej knižnice LD_PRELOAD, aby sa skrylo v používateľskom priestore, čím sa zabezpečí skrytosť v širokej škále prostredí.

Záverečná poznámka

LinkPro demonštruje, ako moderné prieniky dokážu kombinovať kompromitáciu kontajnerov, zavádzače vo viacerých fázach, inštrumentáciu jadra (eBPF) a šikovné sieťové triky (aktivácia magických paketov a prepisovanie portov) na zachovanie nenápadnosti a flexibility. Detekcia a náprava si vyžadujú starostlivú kontrolu neoprávnených programov eBPF, neočakávaných položiek v súbore /etc/ld.so.preload, nezvyčajných služieb systemd a sieťových pripojení k uvedenej infraštruktúre (forenzné indikátory zahŕňajú IP adresu 56.155.98[.]37, porty 29872, 2333, 2233 a odstránený názov obrazu Dockeru kvlnt/vv).

Trendy

Najviac videné

Načítava...