Trusseldatabase Rootkits LinkPro Linux Rootkit

LinkPro Linux Rootkit

Et nylig angrep på et Amazon Web Services (AWS)-miljø avslørte et tidligere udokumentert GNU/Linux-rootkit, sporet som LinkPro. Denne bakdøren er kjent for sin doble bruk av eBPF-moduler: ett sett for å skjule artefakter, og et annet som fungerer som en skjult utløser – en «banking» som vekker fjernkommandofunksjonalitet bare etter at en spesiallaget TCP-pakke er sett. Angrepskjeden og rootkits mekanismer illustrerer en sofistikert operatør som blander containermisbruk, skjuling på kjernenivå og fleksibel nettverksaktivering for å frustrere deteksjon og rettsmedisinsk korrelasjon.

Infeksjonsvektor og førstegangsdistribusjon

Innbruddet startet med utnyttelsen av en eksponert Jenkins-instans som var sårbar for CVE-2024-23897 (CVSS 9.8). Fra dette fotfestet presset angriperne et ondsinnet Docker-bilde (kvlnt/vv, siden fjernet fra Docker Hub) inn i flere Kubernetes-klynger. Bildet brukte en Kali Linux-base og inneholdt en liten programmappe som var ment å etablere persistens, ekstern tilgang og en trinnvis bakdørsnedlasting.

Inne i det ondsinnede Docker-bildet

Bildets appmappe inneholdt tre nøkkelfiler med forskjellige roller:

start.sh — et skallskript som starter en SSH-tjeneste og kjører de to andre komponentene.

lenke — et åpen kildekode-program (vnt) kompilert/pakket for å fungere som en VPN/proxy-klient, som kobler utgående til vnt.wherewego[.]top:29872. Dette lar angriperen nå den kompromitterte verten hvor som helst og snu seg til andre mål gjennom den.

app – en Rust-basert nedlaster (referert til som vGet) som henter en kryptert vShell-nyttelast fra en S3-bøtte, og deretter etablerer en WebSocket-kobling til kommando-og-kontroll-serveren (C2) på 56.155.98[.]37.

Ytterligere nyttelaster levert til Kubernetes-noder

Ved siden av det ondsinnede bildet, slapp operatørene også to andre komponenter på nodene: en dropper som installerer en annen vShell-bakdør, og LinkPro, et Golang-skrevet rootkit. LinkPro er designet for å kjøre i en av to moduser – passiv (revers) eller aktiv (fremover) – avhengig av konfigurasjonen. I passiv modus venter den på å bli aktivert av en spesiell nettverkspakke; i aktiv modus initierer den kontakt med selve C2. Fremovermodus støtter fem transportprotokoller (HTTP, WebSocket, UDP, TCP, DNS), mens omvendt modus begrenser kommunikasjon til HTTP.

Hvordan LinkPro vedvarer

Skadevarens generelle utførelse og vedvarende oppførsel følger en tydelig sekvens:

  • Installer modulen Hide eBPF. Denne modulen inkluderer Tracepoint- og Kretprobe eBPF-programmer som brukes til å skjule LinkPros prosesser og nettverksaktivitet.
  • Hvis installasjonen av Hide eBPF-modulen mislykkes – eller hvis den har blitt deaktivert – installer et delt bibliotek på /etc/libld.so og legg til den banen i /etc/ld.so.preload som en alternativ skjulemekanisme.
  • For omvendt (passiv) drift, installer Knock eBPF-modulen. Knock inneholder et XDP-program og et TC-program, slik at C2-kanalen bare blir aktiv etter å ha mottatt en spesifikk «magisk pakke».
  • Etabler utholdenhet ved å opprette en systemd-tjeneste.
  • Utfør kommandoer mottatt fra C2.
  • Ved avslutning eller når signalisert (SIGHUP, SIGINT, SIGTERM), avinstaller eBPF-moduler og fjern/gjenopprett forhåndsinnlastingsmodifikasjonen /etc/libld.so slik at systemet går tilbake til sin tidligere tilstand.

Den magiske pakken og bankeaktiveringsmekanismen

LinkPros passive aktivering avhenger av en presis TCP-pakke: enhver TCP-pakke med en vindusstørrelse på 54321 behandles som den «magiske pakken». Når Knock oppdager den pakken, lagrer den kilde-IP-adressen og merker den med en utløpsdato på én time. Påfølgende TCP-pakker fra den kilden overvåkes, og når det er aktuelt, omskriver Knock overskriftene slik at operatørens trafikk omdirigeres til LinkPros lytteport (2333). Utgående pakker justeres for å presentere den opprinnelige porten tilbake til nettverket (kildeport omskrevet til 2233). Hensikten er enkel, men effektiv: la angriperen nå LinkPro gjennom hvilken som helst port som frontend-brannmuren tillater, samtidig som det blir vanskelig å korrelere eksterne brannmurlogger med vertens interne nettverksaktivitet.

Hvordan LinkPro skjuler seg selv

LinkPro bruker en todelt skjulingsstrategi:

Skjuling av kjerne/eBPF : Modulen Skjul eBPF installerer Tracepoint- og Kretprobe-programmer som fanger opp systemkall som getdents (for å skjule filer/kataloger) og sys_bpf (for å skjule sine egne BPF-programmer). Denne tilnærmingen krever en kjerne bygget med CONFIG_BPF_KPROBE_OVERRIDE aktivert.

Brukerområde LD_PRELOAD-reserve : Hvis kjernefunksjonaliteten ikke er tilstede, skriver LinkPro et delt bibliotek (libld.so) og plasserer banen i /etc/ld.so.preload. Fordi /etc/ld.so.preload fører til at det spesifiserte biblioteket lastes inn i alle dynamisk lenkede prosesser (de som bruker /lib/ld-linux.so og glibc), kobler den implanterte libld.so libc-funksjoner tidlig (før glibc sin egen oppførsel) og endrer returer fra libc-kall for å skjule artefakter som ellers ville avsløre dets tilstedeværelse.

Rootkit-funksjoner og kommandosett

LinkPro støtter både interaktive og automatiserte fjernhandlinger. De implementerte funksjonene inkluderer:

  • Starte en /bin/bash pseudoterminal og kjøre interaktive skalløkter.
  • Utfører vilkårlige skallkommandoer.
  • Liste opp filer og mapper og utføre filoperasjoner.
  • Laste ned og skrive filer til disk.
  • Etablering av en SOCKS5-proxytunnel for pivoting og live-off-the-land-proxying.

Støtte for nettverksprotokoller og C2-oppførsel

I aktiv (fremover) modus er LinkPro fleksibel: den kan kommunisere ved hjelp av HTTP-, WebSocket-, UDP-, TCP- eller DNS-transport. I passiv (omvendt) modus er kommunikasjonen begrenset til HTTP, men drar nytte av skjult funksjonalitet fordi den bare lytter etter at Knock-magipakken har åpnet et midlertidig kommandovindu på én time.

Opprydding og avinstallasjon

Hvis prosessen mottar avslutningssignaler, tar LinkPro sikte på å fjerne spor: den avinstallerer installerte eBPF-moduler og sletter eller gjenoppretter /etc/libld, og grupperer den til sin tidligere tilstand slik at systemet ser uendret ut. Denne bevisste oppryddingsrutinen indikerer at en operatør er bekymret for unnvikelse og minimerer langsiktige rettsmedisinske fotavtrykk.

Operasjonell kontekst og attribusjon

Kampanjen brukte et svært alvorlig Jenkins-angrep, ondsinnede containerbilder, flere bakdørsvarianter og stealth på kjernenivå – en kombinasjon som peker mot en motivert og dyktig operatør. Ingen definitiv tilskrivelse er offentliggjort; verktøysettet og den tilsynelatende bruken av kompromisset for proxy og vedvarende ekstern tilgang tyder imidlertid sterkt på økonomisk motivert aktivitet (pivoting, proxy for ytterligere inntrenging eller videresalg av tilgang).

Kjerneavhengighet og reserveoppførsel

Fordi LinkPro er avhengig av BPF kprobe-overstyringsfunksjoner for sin skjulte kjerneavlytting, bruker den bare skjulingsteknikken på kjernenivå når vertskjernen eksponerer CONFIG_BPF_KPROBE_OVERRIDE. Der denne kjernefunksjonen mangler, faller LinkPro bevisst tilbake til LD_PRELOAD-metoden med delt bibliotek for å skjule seg i brukerområdet, noe som sikrer skjuling på tvers av et bredt spekter av miljøer.

Avsluttende merknad

LinkPro demonstrerer hvordan moderne inntrengere kan kombinere containerkompromittering, trinnvise lastere, kjerneinstrumentering (eBPF) og smarte nettverkstriks (magisk pakkeaktivering og portomskriving) for å opprettholde skjulthet og fleksibilitet. Deteksjon og utbedring krever nøye inspeksjon av uautoriserte eBPF-programmer, uventede oppføringer i /etc/ld.so.preload, uvanlige systemd-tjenester og nettverkstilkoblinger til den angitte infrastrukturen (rettsmedisinske indikatorer inkluderer IP 56.155.98[.]37, porter 29872, 2333, 2233 og det fjernede Docker-bildenavnet kvlnt/vv).

Trender

Mest sett

Laster inn...