Uhatietokanta Rootkitit LinkPro Linux Rootkit

LinkPro Linux Rootkit

Äskettäin Amazon Web Services (AWS) -ympäristöön tehdyssä hyökkäyksessä paljastui aiemmin dokumentoimaton GNU/Linux-rootkit-ohjelma, jonka tunnistettiin olevan LinkPro. Tämä takaovi on merkittävä eBPF-moduulien kaksoiskäytöstään: toinen on tarkoitettu esineiden piilottamiseen ja toinen toimii piilotettuna laukaisimena – "koputuksena", joka herättää etäkomentotoiminnot vasta, kun erityisesti muotoiltu TCP-paketti havaitaan. Hyökkäysketju ja rootkitin mekanismit kuvaavat hienostunutta operaattoria, joka yhdistää säilön väärinkäytön, ydintason piilottamisen ja joustavan verkon aktivoinnin estääkseen havaitsemisen ja rikosteknisen korrelaation.

Tartuntavektori ja alkuvaiheen käyttöönotto

Tunkeutuminen alkoi hyödyntämällä CVE-2024-23897-haavoittuvuudelle (CVSS 9.8) alttiina ollutta Jenkins-instanssia. Tältä tukikohdalta hyökkääjät lähettivät haitallisen Docker-kuvan (kvlnt/vv, sittemmin poistettu Docker Hubista) useisiin Kubernetes-klustereihin. Kuvassa käytettiin Kali Linux -pohjaa ja se sisälsi pienen sovelluskansion, jonka tarkoituksena oli luoda pysyvyys, etäkäyttö ja vaiheittainen takaportin lataus.

Haitallisen Docker-kuvan sisällä

Kuvan sovelluskansio sisälsi kolme avaintiedostoa, joilla oli erilliset roolit:

start.sh — komentosarja, joka käynnistää SSH-palvelun ja suorittaa kaksi muuta komponenttia.

linkki — avoimen lähdekoodin ohjelma (vnt), joka on käännetty/pakattu toimimaan VPN/välityspalvelimena ja muodostaa yhteyden ulospäin osoitteeseen vnt.wherewego[.]top:29872. Tämän avulla hyökkääjä voi tavoittaa vaarantuneen isännän mistä tahansa ja siirtyä sen kautta muihin kohteisiin.

sovellus – Rust-pohjainen latausohjelma (jota kutsutaan nimellä vGet), joka hakee salatun vShell-hyötykuorman S3-säiliöstä ja muodostaa sitten WebSocket-linkin komento- ja ohjauspalvelimeensa (C2) osoitteessa 56.155.98[.]37.

Kubernetes-solmuille toimitetut lisähyötykuormat

Haitallisen kuvan lisäksi operaattorit pudottivat solmuille kaksi muuta komponenttia: droperin, joka asentaa toisen vShell-takaoven, ja LinkPron, Golangilla kirjoitetun rootkitin. LinkPro on suunniteltu toimimaan kahdessa tilassa – passiivisessa (käänteisessä) tai aktiivisessa (eteenpäin) – kokoonpanostaan riippuen. Passiivisessa tilassa se odottaa aktivointia erityisellä verkkopaketilla; aktiivisessa tilassa se aloittaa yhteyden itse C2:een. Eteenpäin-tila tukee viittä siirtoprotokollaa (HTTP, WebSocket, UDP, TCP, DNS), kun taas käänteinen tila rajoittaa tietoliikenteen HTTP:hen.

Miten LinkPro pysyy toimintakunnossa

Haittaohjelman yleinen suoritus- ja pysyvyyskäyttäytyminen noudattaa selkeää järjestystä:

  • Asenna Piilota eBPF -moduuli. Tämä moduuli sisältää Tracepoint- ja Kretprobe eBPF -ohjelmat, joita käytetään LinkPron prosessien ja verkkotoiminnan piilottamiseen.
  • Jos Hide eBPF -moduulin asennus epäonnistuu – tai jos se on poistettu käytöstä – asenna jaettu kirjasto osoitteeseen /etc/libld.so ja lisää kyseinen polku tiedostoon /etc/ld.so.preload varajärjestelmäksi piilottamiseen.
  • Käänteistä (passiivista) toimintaa varten asenna Knock eBPF -moduuli. Knock sisältää XDP- ja TC-ohjelman, joten C2-kanava aktivoituu vasta tietyn "taikapaketin" vastaanottamisen jälkeen.
  • Luo pysyvyys luomalla systemd-palvelu.
  • Suorita C2:lta vastaanotetut käskyt.
  • Sammutuksen yhteydessä tai signaalin (SIGHUP, SIGINT, SIGTERM) saatua, poista eBPF-moduulit ja poista/palauta /etc/libld.so-esilatausmuutos, jotta järjestelmä palaa edelliseen tilaansa.

Maaginen paketti ja koputusaktivointimekanismi

LinkPron passiivinen aktivointi riippuu tarkasta TCP-paketista: mitä tahansa TCP-pakettia, jonka ikkunan koko on 54321, käsitellään "taikapakettina". Kun Knock havaitsee kyseisen paketin, se tallentaa lähteen IP-osoitteen ja merkitsee sen yhden tunnin vanhenemisajalla. Samasta lähteestä tulevia seuraavia TCP-paketteja seurataan ja tarvittaessa Knock kirjoittaa otsikot uudelleen siten, että operaattorin liikenne ohjataan LinkPron kuunteluporttiin (2333). Lähtevät paketit säädetään näyttämään alkuperäinen portti takaisin verkkoon (lähdeportti kirjoitetaan uudelleen 2233:een). Tarkoitus on yksinkertainen mutta tehokas: antaa hyökkääjälle mahdollisuus päästä LinkProhon minkä tahansa käyttöliittymän palomuurin salliman portin kautta ja samalla vaikeuttaa ulkoisten palomuurin lokien korrelointia isännän sisäisen verkkotoiminnan kanssa.

Miten LinkPro piilottaa itsensä

LinkPro käyttää kaksiportaista peittämisstrategiaa:

Ytimen/eBPF:n piilottaminen : Piilota eBPF -moduuli asentaa Tracepoint- ja Kretprobe-ohjelmat, jotka sieppaavat järjestelmäkutsuja, kuten getdents (tiedostojen/hakemistojen piilottamiseksi) ja sys_bpf (omien BPF-ohjelmien piilottamiseksi). Tämä lähestymistapa vaatii ytimen, joka on rakennettu CONFIG_BPF_KPROBE_OVERRIDE-ominaisuuden ollessa käytössä.

Käyttäjätilan LD_PRELOAD-varatoiminto : Jos ytimen ominaisuutta ei ole, LinkPro kirjoittaa jaetun kirjaston (libld.so) ja sijoittaa sen polun tiedostoon /etc/ld.so.preload. Koska /etc/ld.so.preload aiheuttaa määritetyn kirjaston latautumisen kaikkiin dynaamisesti linkitettyihin prosesseihin (ne, jotka käyttävät /lib/ld-linux.so- ja glibc-kirjastoja), asennettu libld.so kytkee libc-funktiot aikaisin (ennen glibc:n omaa toimintaa) ja muuttaa libc-kutsujen palautuksia piilottaakseen artefaktat, jotka muuten paljastaisivat sen olemassaolon.

Rootkit-ominaisuudet ja komentosarja

LinkPro tukee sekä interaktiivisia että automatisoituja etätoimintoja. Sen toteutettuihin ominaisuuksiin kuuluvat:

  • /bin/bash-pseudopäätteen käynnistäminen ja interaktiivisten komentotulkki-istuntojen suorittaminen.
  • Mielivaltaisten komentotulkkikomentojen suorittaminen.
  • Tiedostojen ja hakemistojen luettelointi ja tiedostotoimintojen suorittaminen.
  • Tiedostojen lataaminen ja kirjoittaminen levylle.
  • SOCKS5-välityspalvelintunnelin perustaminen kääntyvään ja maan ulkopuoliseen välityspalvelimeen.

Verkkoprotokollien tuki ja C2-käyttäytyminen

Aktiivisessa (eteenpäin) tilassa LinkPro on joustava: se voi kommunikoida HTTP-, WebSocket-, UDP-, TCP- tai DNS-siirtojen avulla. Passiivisessa (käänteisessä) tilassa sen kommunikointi on rajoitettu HTTP:hen, mutta se hyötyy piilotusominaisuuksista, koska se kuuntelee vasta sen jälkeen, kun Knock Magic -paketti on avannut tilapäisen tunnin mittaisen komentoikkunan.

Siivous- ja poistotoiminnot

Jos prosessi vastaanottaa lopetussignaaleja, LinkPro pyrkii poistamaan jäljet: se poistaa asennetut eBPF-moduulit ja poistaa tai palauttaa /etc/libld-tiedoston ryhmitellen sen edelliseen tilaansa, jotta järjestelmä näyttää muuttumattomalta. Tämä harkittu puhdistusrutiini osoittaa, että operaattori on huolissaan kiertoteiden välttämisestä ja pitkäaikaisten rikosteknisten jälkien minimoimisesta.

Toiminnallinen konteksti ja attribuutio

Kampanjassa käytettiin vakavaa Jenkins-haavoittuvuutta, haitallisia konttikuvia, useita takaporttivariantteja ja kernel-tason hiiviskelyä – yhdistelmä, joka viittaa motivoituneeseen ja kyvykkääseen käyttäjään. Lopullista henkilöllisyyttä ei ole julkistettu; työkalut ja haavoittuvuuden ilmeinen käyttö välityspalvelimena ja pysyvänä etäkäyttönä viittaavat kuitenkin vahvasti taloudellisesti motivoituneeseen toimintaan (pivoting, välityspalvelimena lisätunkeutumisten tekeminen tai käyttöoikeuksien jälleenmyynti).

Ytimen riippuvuus ja varakäyttäytyminen

Koska LinkPro käyttää BPF:n kprobe-ohitusominaisuuksia huomaamattomaan ytimen sieppaukseen, se käyttää ytimen tason piilotustekniikkaa vain, kun isäntäydin paljastaa CONFIG_BPF_KPROBE_OVERRIDE-metodin. Jos tämä ytimen ominaisuus puuttuu, LinkPro käyttää tarkoituksella LD_PRELOAD-jaetun kirjaston metodia piilottaakseen itsensä käyttäjätilassa, varmistaen piilottamisen monenlaisissa ympäristöissä.

Loppuhuomautus

LinkPro osoittaa, kuinka nykyaikaiset tunkeutumismenetelmät voivat yhdistää säilötietomurron, vaiheittaiset latausohjelmat, ytimen instrumentoinnin (eBPF) ja nerokkaat verkkotemput (pakettien taikaaktivointi ja porttien uudelleenkirjoittaminen) säilyttääkseen piilotuksen ja joustavuuden. Havaitseminen ja korjaaminen edellyttävät huolellista tarkastusta luvattomien eBPF-ohjelmien, odottamattomien merkintöjen /etc/ld.so.preload-tiedostossa, epätavallisten systemd-palveluiden ja ilmoitettuun infrastruktuuriin liittyvien verkkoyhteyksien varalta (rikosteknisiin indikaattoreihin kuuluvat IP-osoite 56.155.98[.]37, portit 29872, 2333, 2233 ja poistetun Docker-kuvan nimi kvlnt/vv).

Trendaavat

Eniten katsottu

Ladataan...