Base de dades d'amenaces Rootkits Rootkit de Linux LinkPro

Rootkit de Linux LinkPro

Una vulneració recent d'un entorn d'Amazon Web Services (AWS) va revelar un rootkit GNU/Linux prèviament indocumentat, anomenat LinkPro. Aquesta porta del darrere destaca pel seu doble ús de mòduls eBPF: un configurat per ocultar artefactes i un altre que actua com un disparador furtiu, un "cop" que desperta la funcionalitat de comandament remot només després que es vegi un paquet TCP especialment dissenyat. La cadena d'atac i els mecanismes del rootkit il·lustren un operador sofisticat que combina l'abús de contenidors, l'ocultació a nivell de nucli i l'activació de xarxa flexible per frustrar la detecció i la correlació forense.

Vector d’infecció i desplegament inicial

La intrusió va començar amb l'explotació d'una instància de Jenkins exposada i vulnerable a CVE-2024-23897 (CVSS 9.8). Des d'aquest punt de suport, els atacants van introduir una imatge de Docker maliciosa (kvlnt/vv, que ja s'ha eliminat de Docker Hub) a diversos clústers de Kubernetes. La imatge utilitzava una base de Kali Linux i contenia una petita carpeta d'aplicació destinada a establir persistència, accés remot i una descàrrega de porta del darrere per etapes.

Dins de la imatge maliciosa de Docker

La carpeta d'aplicacions de la imatge contenia tres fitxers clau amb funcions diferents:

start.sh : un script de shell que inicia un servei SSH i executa els altres dos components.

enllaç — un programa de codi obert (vnt) compilat/empaquetat per actuar com a client VPN/proxy, connectant-se en direcció sortint a vnt.wherewego[.]top:29872. Això permet a l'atacant arribar a l'amfitrió compromès des de qualsevol lloc i pivotar cap a altres objectius a través d'ell.

app — un descarregador basat en Rust (anomenat vGet) que obté una càrrega útil vShell xifrada d'un bucket S3 i, a continuació, estableix un enllaç WebSocket al seu servidor de comandament i control (C2) a 56.155.98[.]37.

Càrregues útils addicionals lliurades als nodes de Kubernetes

Juntament amb la imatge maliciosa, els operadors també van col·locar dos components més als nodes: un dropper que instal·la una altra porta del darrere vShell i LinkPro, un rootkit escrit per Golang. LinkPro està dissenyat per executar-se en dos modes: passiu (invers) o actiu (encaminat), depenent de la seva configuració. En mode passiu, espera ser activat per un paquet de xarxa especial; en mode actiu, inicia el contacte amb el propi C2. El mode d'encaminament admet cinc protocols de transport (HTTP, WebSocket, UDP, TCP, DNS), mentre que el mode invers limita les comunicacions a HTTP.

Com persisteix LinkPro

L'execució general del programari maliciós i el comportament de persistència segueixen una seqüència clara:

  • Instal·leu el mòdul Hide eBPF. Aquest mòdul inclou els programes Tracepoint i Kretprobe eBPF que s'utilitzen per ocultar els processos i l'activitat de xarxa de LinkPro.
  • Si la instal·lació del mòdul Hide eBPF falla, o si s'ha desactivat, instal·leu una biblioteca compartida a /etc/libld.so i afegiu aquesta ruta a /etc/ld.so.preload com a mecanisme d'ocultació alternatiu.
  • Per a un funcionament invers (passiu), instal·leu el mòdul Knock eBPF. Knock conté un programa XDP i un programa TC, de manera que el canal C2 només s'activa després de rebre un "paquet màgic" específic.
  • Establiu la persistència creant un servei systemd.
  • Executar les ordres rebudes del C2.
  • En apagar-se o quan es rebi un senyal (SIGHUP, SIGINT, SIGTERM), desinstal·leu els mòduls eBPF i elimineu/restaureu la modificació de precàrrega /etc/libld.so perquè el sistema torni al seu estat anterior.

El paquet màgic i el mecanisme d’activació de cops

L'activació passiva de LinkPro depèn d'un paquet TCP precís: qualsevol paquet TCP la mida de la finestra del qual sigui igual a 54321 es tracta com el "paquet màgic". Quan Knock detecta aquest paquet, emmagatzema la IP d'origen i l'etiqueta amb una caducitat d'una hora. Els paquets TCP posteriors d'aquest origen es controlen i, quan s'escau, Knock reescriu les capçaleres perquè el trànsit de l'operador es redirigeixi al port d'escolta de LinkPro (2333). Els paquets sortints s'ajusten per presentar el port original a la xarxa (port d'origen reescrit a 2233). La intenció és senzilla però efectiva: permetre a l'atacant arribar a LinkPro a través de qualsevol port que permeti el tallafocs front-end, alhora que dificulta la correlació dels registres del tallafocs externs amb l'activitat de xarxa interna de l'amfitrió.

Com s’amaga LinkPro

LinkPro utilitza una estratègia d'ocultació de dos nivells:

Amagament del nucli/eBPF : El mòdul Amaga eBPF instal·la programes Tracepoint i Kretprobe que intercepten crides al sistema com ara getdents (per amagar fitxers/directoris) i sys_bpf (per amagar els seus propis programes BPF). Aquest enfocament requereix un nucli construït amb CONFIG_BPF_KPROBE_OVERRIDE habilitat.

Reserva LD_PRELOAD a l'espai d'usuari : si la capacitat del nucli no és present, LinkPro escriu una biblioteca compartida (libld.so) i situa la seva ruta a /etc/ld.so.preload. Com que /etc/ld.so.preload fa que la biblioteca especificada es carregui a tots els processos enllaçats dinàmicament (aquells que utilitzen /lib/ld-linux.so i glibc), el libld.so implantat enganxa les funcions de libc abans d'hora (abans del propi comportament de glibc) i altera els retorns de les crides a libc per ocultar artefactes que, d'altra manera, exposarien la seva presència.

Capacitats i conjunt d’ordres del rootkit

LinkPro admet accions remotes tant interactives com automatitzades. Les seves funcions implementades inclouen:

  • Inici d'un pseudoterminal /bin/bash i execució de sessions interactives de shell.
  • Execució d'ordres arbitràries de shell.
  • Enumerar fitxers i directoris i realitzar operacions amb fitxers.
  • Descàrrega i escriptura de fitxers al disc.
  • Establiment d'un túnel de proxy SOCKS5 per a la intermediació pivotant i la de viure fora de la terra.

Suport de protocols de xarxa i comportament C2

En mode actiu (directe), LinkPro és flexible: es pot comunicar mitjançant transports HTTP, WebSocket, UDP, TCP o DNS. En mode passiu (invers), la seva comunicació està restringida a HTTP, però es beneficia de la sigil·losi perquè només escolta després que el paquet màgic Knock hagi obert una finestra d'ordres temporal d'una hora.

Comportament de neteja i desinstal·lació

Si el procés rep senyals de terminació, LinkPro pretén eliminar les traces: desinstal·la els mòduls eBPF instal·lats i elimina o restaura el fitxer /etc/libld, agrupant-lo al seu estat anterior perquè el sistema sembli sense canvis. Aquesta rutina de neteja deliberada indica un operador preocupat per l'evasió i la minimització de les petjades forenses a llarg termini.

Context operacional i atribució

La campanya va utilitzar un exploit de Jenkins d'alta gravetat, imatges de contenidors malicioses, múltiples variants de backdoor i furt a nivell de nucli, una combinació que apunta a un operador motivat i capaç. No s'ha fet pública cap atribució definitiva; tanmateix, el conjunt d'eines i l'ús aparent del compromís per a la intermediació i l'accés remot persistent suggereixen fermament una activitat amb motivació financera (pivoting, intermediació per a intrusions addicionals o revenda d'accés).

Dependència del nucli i comportament de reserva

Com que LinkPro es basa en les funcions de sobreescriptura de kprobe de BPF per a la seva intercepció furtiva del nucli, només aplica la tècnica d'ocultació a nivell de nucli quan el nucli amfitrió exposa CONFIG_BPF_KPROBE_OVERRIDE. Quan aquesta capacitat del nucli falta, LinkPro recorre deliberadament al mètode de biblioteca compartida LD_PRELOAD per ocultar-se a l'espai d'usuari, garantint l'ocultació en una àmplia gamma d'entorns.

Nota de cloenda

LinkPro demostra com les intrusions modernes poden combinar el compromís de contenidors, els carregadors per etapes, la instrumentació del nucli (eBPF) i trucs de xarxa intel·ligents (activació de paquets màgics i reescriptura de ports) per mantenir la sigil·losi i la flexibilitat. La detecció i la remediació requereixen una inspecció acurada de programes eBPF no autoritzats, entrades inesperades a /etc/ld.so.preload, serveis systemd inusuals i connexions de xarxa a la infraestructura indicada (els indicadors forenses inclouen l'adreça IP 56.155.98[.]37, els ports 29872, 2333, 2233 i el nom d'imatge de Docker eliminat kvlnt/vv).

Tendència

Més vist

Carregant...