Veszély-adatbázis Rootkitek LinkPro Linux Rootkit

LinkPro Linux Rootkit

Egy Amazon Web Services (AWS) környezet nemrégiben történt feltörése során egy korábban nem dokumentált GNU/Linux rootkitet tártak fel, amelyet LinkPro néven azonosítottak. Ez a hátsó ajtó az eBPF modulok kettős használatáról ismert: az egyik a műtermékek elrejtésére szolgál, a másik pedig egy rejtett triggerként működik – egy „kopogás”, amely csak egy speciálisan létrehozott TCP csomag észlelése után aktiválja a távoli parancsfunkciókat. A támadási lánc és a rootkit mechanizmusai egy kifinomult operátort illusztrálnak, aki a konténer-visszaélést, a kernel szintű elrejtést és a rugalmas hálózati aktiválást ötvözi a felderítés és a forenzikus korreláció meghiúsítása érdekében.

Fertőzésvektor és kezdeti telepítés

A behatolás egy, a CVE‑2024‑23897 (CVSS 9.8) sérülékenységnek kitett Jenkins-példány kihasználásával kezdődött. Erről a pozícióról a támadók egy rosszindulatú Docker-képet (kvlnt/vv, azóta eltávolították a Docker Hub-ból) több Kubernetes-klaszterbe juttattak. A kép Kali Linux alapot használt, és egy kis alkalmazásmappát tartalmazott, amelynek célja a perzisztencia, a távoli hozzáférés és a szakaszos hátsó ajtós letöltés biztosítása volt.

A rosszindulatú Docker kép belsejében

A képfájl alkalmazásmappája három, különböző szerepkörrel rendelkező kulcsfontosságú fájlt tartalmazott:

start.sh — egy shell szkript, amely elindít egy SSH szolgáltatást, és végrehajtja a másik két komponenst.

link — egy nyílt forráskódú program (vnt), amelyet VPN/proxy kliensként fordítottak/csomagoltak, és kimenőleg a vnt.wherewego[.]top:29872 címre csatlakozik. Ez lehetővé teszi a támadó számára, hogy bárhonnan elérje a feltört gazdagépet, és azon keresztül más célpontokra váltson.

alkalmazás – egy Rust-alapú letöltő (vGet néven ismert), amely titkosított vShell-payloadot kér le egy S3 tárolóból, majd WebSocket-kapcsolatot létesít a parancs- és vezérlő (C2) szerverével az 56.155.98[.]37 címen.

Kubernetes csomópontokra kézbesített további hasznos terhek

A rosszindulatú kép mellett az operátorok két másik komponenst is telepítettek a csomópontokra: egy droppert, amely egy másik vShell hátsó ajtót telepít, és a LinkPro-t, egy Golang által írt rootkitet. A LinkPro kétféle módban – passzív (fordított) vagy aktív (előre irányuló) – futhat a konfigurációjától függően. Passzív módban egy speciális hálózati csomag általi aktiválásra vár; aktív módban magával a C2-vel kezdeményez kapcsolatot. Az előre irányuló mód öt átviteli protokollt támogat (HTTP, WebSocket, UDP, TCP, DNS), míg a fordított mód a HTTP-re korlátozza a kommunikációt.

Hogyan működik a LinkPro?

A kártevő végrehajtásának és megmaradásának viselkedése egyértelmű sorrendet követ:

  • Telepítse az eBPF elrejtése modult. Ez a modul tartalmazza a Tracepoint és a Kretprobe eBPF programokat, amelyek a LinkPro folyamatainak és hálózati tevékenységének elrejtésére szolgálnak.
  • Ha az eBPF elrejtése modul telepítése sikertelen – vagy ha le van tiltva –, telepítsen egy megosztott könyvtárat az /etc/libld.so címen, és adja hozzá ezt az elérési utat az /etc/ld.so.preload fájlhoz tartalék elrejtési mechanizmusként.
  • Fordított (passzív) működéshez telepítse a Knock eBPF modult. A Knock egy XDP és egy TC programot tartalmaz, így a C2 csatorna csak egy adott „mágikus csomag” vétele után válik aktívvá.
  • A perzisztencia biztosítása egy systemd szolgáltatás létrehozásával.
  • Végrehajtja a C2-től kapott parancsokat.
  • Leállításkor vagy jelzés (SIGHUP, SIGINT, SIGTERM) esetén távolítsa el az eBPF modulokat, és távolítsa el/állítsa vissza az /etc/libld.so előtöltési módosítását, hogy a rendszer visszatérjen az előző állapotába.

A mágikus csomag és a kopogásos aktiválási mechanizmus

A LinkPro passzív aktiválása egy pontos TCP-csomagtól függ: minden olyan TCP-csomagot, amelynek ablakmérete megegyezik az 54321-gyel, „mágikus csomagként” kezel. Amikor a Knock érzékeli ezt a csomagot, eltárolja a forrás IP-címét, és egyórás lejárati dátummal látja el. A forrásból érkező további TCP-csomagokat figyeli, és szükség esetén a Knock átírja a fejléceket, így az operátor forgalma a LinkPro figyelőportjára (2333) kerül átirányításra. A kimenő csomagokat úgy módosítja, hogy az eredeti portot mutassák vissza a hálózatnak (a forrásportot 2233-ra írják át). A szándék egyszerű, de hatékony: lehetővé tenni a támadó számára, hogy a front-end tűzfal által engedélyezett bármelyik porton elérje a LinkPro-t, miközben megnehezíti a külső tűzfalnaplók és a gazdagép belső hálózati tevékenységének összefüggésbe hozását.

Hogyan rejti el magát a LinkPro

A LinkPro kétszintű elrejtési stratégiát alkalmaz:

Kernel/eBPF elrejtés : Az eBPF elrejtése modul telepíti a Tracepoint és Kretprobe programokat, amelyek elfogják a rendszerhívásokat, például a getdents-t (fájlok/könyvtárak elrejtéséhez) és a sys_bpf-et (a saját BPF programjainak elrejtéséhez). Ehhez a megközelítéshez olyan kernel szükséges, amelyre engedélyezett a CONFIG_BPF_KPROBE_OVERRIDE.

Felhasználói térbeli LD_PRELOAD tartalék : Ha a kernel képessége nincs jelen, a LinkPro egy megosztott könyvtárat (libld.so) ír, és annak elérési útját az /etc/ld.so.preload fájlba helyezi. Mivel az /etc/ld.so.preload hatására a megadott könyvtár minden dinamikusan összekapcsolt folyamatba betöltődik (azok, amelyek a /lib/ld-linux.so és a glibc könyvtárat használják), a beültetett libld.so korán (a glibc saját viselkedése előtt) bekapcsolja a libc függvényeket, és módosítja a libc hívások visszatérési értékeit, hogy elrejtse azokat az összetevőket, amelyek egyébként felfednék a jelenlétét.

Rootkit képességek és parancskészlet

A LinkPro támogatja mind az interaktív, mind az automatizált távoli műveleteket. A megvalósított funkciók a következők:

  • /bin/bash pszeudoterminál indítása és interaktív shell munkamenetek futtatása.
  • Tetszőleges shell parancsok végrehajtása.
  • Fájlok és könyvtárak felsorolása és fájlműveletek végrehajtása.
  • Fájlok letöltése és lemezre írása.
  • SOCKS5 proxy alagút létrehozása elforgatáshoz és a szárazföldön kívüli élő proxyzáshoz.

Hálózati protokoll támogatás és C2 viselkedés

Aktív (előre irányuló) módban a LinkPro rugalmas: HTTP, WebSocket, UDP, TCP vagy DNS átvitellel kommunikálhat. Passzív (fordított) módban a kommunikációja HTTP-re korlátozódik, de a lopakodás előnyeit élvezi, mivel csak azután figyel, hogy a Knock magic csomag megnyitott egy ideiglenes, egyórás parancsablakot.

Tisztítási és eltávolítási viselkedés

Ha a folyamat leállítási jeleket kap, a LinkPro célja a nyomok eltávolítása: eltávolítja a telepített eBPF modulokat, és törli vagy visszaállítja az /etc/libld fájlt, csoportosítva azt az előző állapotába, így a rendszer változatlannak tűnik. Ez a szándékos takarítási rutin arra utal, hogy az operátor aggódik a kijátszás és a hosszú távú forenzikus lábnyomok minimalizálása miatt.

Működési kontextus és attribúció

A kampány egy súlyos Jenkins sérülékenységet, rosszindulatú konténerképeket, több hátsó ajtó variánst és kernel szintű lopakodást alkalmazott – ez a kombináció egy motivált, rátermett operátorra utal. A pontos eredetet nem hozták nyilvánosságra; azonban az eszközkészlet és a kompromittált program látszólagos használata proxyzáshoz és tartós távoli hozzáféréshez erősen pénzügyileg motivált tevékenységre utal (pivoting, további behatolások proxyzása vagy hozzáférés viszonteladása).

Kernelfüggőség és tartalék viselkedés

Mivel a LinkPro a BPF kprobe felülírási funkcióira támaszkodik a rejtett kernel-elfogáshoz, a kernel szintű elrejtési technikát csak akkor alkalmazza, amikor a gazdakernel elérhetővé teszi a CONFIG_BPF_KPROBE_OVERRIDE metódust. Ahol ez a kernel-képesség hiányzik, a LinkPro szándékosan az LD_PRELOAD megosztott könyvtár metódushoz tér vissza, hogy elrejtse magát a felhasználói térben, biztosítva az elrejtést a környezetek széles skáláján.

Záró megjegyzés

A LinkPro bemutatja, hogyan tudják a modern behatolások kombinálni a konténerkompromittálást, a szakaszos betöltőket, a kernel instrumentációt (eBPF) és az okos hálózati trükköket (mágikus csomagaktiválás és portátírás) a rejtett működés és a rugalmasság fenntartása érdekében. Az észlelés és a hibaelhárítás alapos vizsgálatot igényel a jogosulatlan eBPF programok, a váratlan bejegyzések az /etc/ld.so.preload fájlban, a szokatlan systemd szolgáltatások és a jelzett infrastruktúrához való hálózati kapcsolatok szempontjából (a forenzikus indikátorok közé tartozik az 56.155.98[.]37 IP-cím, a 29872, 2333, 2233 portok, valamint az eltávolított Docker-kép neve, a kvlnt/vv).

Felkapott

Legnézettebb

Betöltés...