LinkPro Linux Rootkit
Ang isang kamakailang kompromiso ng isang Amazon Web Services (AWS) na kapaligiran ay nagsiwalat ng isang dati nang hindi dokumentado na GNU/Linux rootkit, na sinusubaybayan bilang LinkPro. Ang backdoor na ito ay kapansin-pansin sa dalawa nitong paggamit ng mga module ng eBPF: isang set para sa pagtatago ng mga artifact, at isa pa na nagsisilbing isang patagong trigger — isang 'katok' na pumupukaw sa remote command functionality pagkatapos lamang makita ang isang espesyal na ginawang TCP packet. Ang chain ng pag-atake at ang mga mekanismo ng rootkit ay naglalarawan ng isang sopistikadong operator na pinagsasama ang pag-abuso sa container, pagkatago sa antas ng kernel, at flexible na pag-activate ng network upang biguin ang pagtuklas at forensic correlation.
Talaan ng mga Nilalaman
Vector ng Impeksyon At Paunang Deployment
Nagsimula ang panghihimasok sa pagsasamantala ng isang nakalantad na halimbawa ng Jenkins na vulnerable sa CVE‑2024‑23897 (CVSS 9.8). Mula sa foothold na iyon, itinulak ng mga umaatake ang isang nakakahamak na imahe ng Docker (kvlnt/vv, mula noong inalis mula sa Docker Hub) sa maraming kumpol ng Kubernetes. Gumamit ang larawan ng Kali Linux base at may dalang maliit na folder ng application na nilalayon upang magtatag ng pagpupursige, malayuang pag-access, at isang itinanghal na pag-download sa backdoor.
Sa loob ng The Malicious Docker Image
Ang folder ng app ng larawan ay naglalaman ng tatlong pangunahing file na may natatanging mga tungkulin:
start.sh — isang shell script na naglulunsad ng serbisyo ng SSH at nagpapatupad ng iba pang dalawang bahagi.
link — isang open-source program (vnt) na pinagsama-sama/naka-package para kumilos bilang VPN/proxy client, na kumukonekta palabas sa vnt.wherewego[.]top:29872. Nagbibigay-daan ito sa umaatake na maabot ang nakompromisong host mula sa kahit saan at mag-pivot sa iba pang mga target sa pamamagitan nito.
app — isang Rust-based downloader (tinukoy bilang vGet) na kumukuha ng naka-encrypt na vShell payload mula sa isang S3 bucket, pagkatapos ay nagtatatag ng isang WebSocket link sa command-and-control (C2) server nito sa 56.155.98[.]37.
Mga Karagdagang Payload na Naihatid Sa Kubernetes Nodes
Sa tabi ng nakakahamak na imahe, ang mga operator ay naghulog din ng dalawa pang bahagi sa mga node: isang dropper na nag-i-install ng isa pang vShell backdoor, at LinkPro, isang Golang-written rootkit. Ang LinkPro ay idinisenyo upang tumakbo sa isa sa dalawang mga mode — passive (reverse) o aktibo (forward) — depende sa configuration nito. Sa passive mode, naghihintay itong ma-activate ng isang espesyal na network packet; sa aktibong mode, sinisimulan nito ang pakikipag-ugnayan sa C2 mismo. Sinusuportahan ng forward mode ang limang transport protocol (HTTP, WebSocket, UDP, TCP, DNS), samantalang nililimitahan ng reverse mode ang mga komunikasyon sa HTTP.
Paano Nagpapatuloy ang LinkPro
Ang pangkalahatang execution at pagtitiyaga ng malware ay sumusunod sa isang malinaw na pagkakasunod-sunod:
- I-install ang Itago ang eBPF module. Kasama sa module na ito ang mga programang Tracepoint at Kretprobe eBPF na ginagamit upang itago ang mga proseso at aktibidad ng network ng LinkPro.
- Kung nabigo ang pag-install ng module ng Hide eBPF — o kung na-disable ito — mag-install ng nakabahaging library sa /etc/libld.so at idagdag ang path na iyon sa /etc/ld.so.preload bilang isang fallback hiding mechanism.
- Para sa reverse (passive) na operasyon, i-install ang Knock eBPF module. Ang Knock ay naglalaman ng isang XDP program at isang TC program, kaya ang C2 channel ay magiging aktibo lamang pagkatapos makatanggap ng isang partikular na 'magic packet.'
- Magtatag ng pagpupursige sa pamamagitan ng paglikha ng isang systemd service.
- Ipatupad ang mga utos na natanggap mula sa C2.
- Sa shutdown o kapag sinenyasan (SIGHUP, SIGINT, SIGTERM), i-uninstall ang mga eBPF module at alisin/ibalik ang /etc/libld.so preload modification para bumalik ang system sa dati nitong estado.
Ang Magic Packet At Ang Knock Activation Mechanism
Ang passive activation ng LinkPro ay nakasalalay sa isang tumpak na TCP packet: anumang TCP packet na ang laki ng window ay katumbas ng 54321 ay itinuturing bilang 'magic packet.' Kapag na-detect ng Knock ang packet na iyon, iniimbak nito ang source IP at tina-tag ito ng isang oras na expiration. Ang mga kasunod na TCP packet mula sa pinagmulang iyon ay sinusubaybayan at, kung naaangkop, muling isinusulat ng Knock ang mga header upang ang trapiko ng operator ay na-redirect sa nakikinig na port ng LinkPro (2333). Ang mga papalabas na packet ay inaayos upang ipakita ang orihinal na port pabalik sa network (pinagmulan na port ay muling isinulat sa 2233). Ang layunin ay diretso ngunit epektibo: payagan ang umaatake na maabot ang LinkPro sa pamamagitan ng anumang port na pinahihintulutan ng front-end na firewall, habang ginagawang mahirap na iugnay ang mga panlabas na log ng firewall sa aktibidad ng panloob na network ng host.
Paano Itinatago ng LinkPro ang Sarili
Gumagamit ang LinkPro ng two-tier na diskarte sa pagtatago:
Kernel/eBPF hiding : Ang Hide eBPF module ay nag-i-install ng Tracepoint at Kretprobe programs na humarang sa mga system call gaya ng getdents (upang itago ang mga file/directories) at sys_bpf (upang itago ang sarili nitong mga BPF program). Ang diskarte na ito ay nangangailangan ng isang kernel na binuo na may naka-enable na CONFIG_BPF_KPROBE_OVERRIDE.
User-space LD_PRELOAD fallback : Kung wala ang kernel capability, magsusulat ang LinkPro ng shared library (libld.so) at inilalagay ang path nito sa /etc/ld.so.preload. Dahil ang /etc/ld.so.preload ay nagiging sanhi ng pag-load sa tinukoy na library sa bawat dynamic na naka-link na proseso (yung mga gumagamit ng /lib/ld-linux.so at glibc), ang nakatanim na libld.so ay nag-hook ng libc nang maaga (bago ang sariling gawi ng glibc) at binabago ang pagbabalik mula sa mga tawag sa libc upang itago ang mga artifact na kung hindi man ay ilantad ang presensya nito.
Rootkit Capabilities At Command Set
Sinusuportahan ng LinkPro ang parehong interactive at automated na malayuang pagkilos. Ang mga ipinatupad na tampok nito ay kinabibilangan ng:
- Pagsisimula ng /bin/bash pseudo‑terminal at pagpapatakbo ng mga interactive na shell session.
- Pagpapatupad ng mga arbitrary na utos ng shell.
- Pag-enumerate ng mga file at direktoryo at pagsasagawa ng mga pagpapatakbo ng file.
- Pag-download at pagsulat ng mga file sa disk.
- Pagtatatag ng SOCKS5 proxy tunnel para sa pag-pivote at pag-live-off-the-land proxying.
Network Protocol Support At C2 Behavior
Sa active (forward) mode, ang LinkPro ay flexible: maaari itong makipag-usap gamit ang HTTP, WebSocket, UDP, TCP, o DNS transports. Sa passive (reverse) mode ang komunikasyon nito ay napipilitan sa HTTP ngunit nakikinabang sa stealth dahil nakikinig lang ito pagkatapos magbukas ang Knock magic packet ng pansamantalang isang-oras na command window.
Paglilinis at Pag-uninstall ng Gawi
Kung ang proseso ay tumatanggap ng mga signal ng pagwawakas, ang LinkPro ay naglalayong mag-alis ng mga bakas: ina-uninstall nito ang mga naka-install na eBPF module at tinatanggal o ibinabalik ang /etc/libld, pinapangkat ito sa dati nitong estado upang ang system ay hindi nagbabago. Ang sinadyang gawain ng paglilinis na ito ay nagpapahiwatig ng isang operator na nag-aalala tungkol sa pag-iwas at pagliit ng mga pangmatagalang forensic footprint.
Konteksto at Pagpapatungkol sa Operasyon
Gumamit ang campaign ng matinding pagsasamantala sa Jenkins, mga nakakahamak na larawan ng container, maraming variant sa backdoor, at kernel-level na stealth — isang kumbinasyon na tumuturo sa isang motivated, may kakayahang operator. Walang tiyak na pagpapatungkol na ginawang pampubliko; gayunpaman, ang toolset at ang maliwanag na paggamit ng kompromiso para sa pag-proxy at patuloy na malayuang pag-access ay lubos na nagmumungkahi ng aktibidad na may motibasyon sa pananalapi (pag-pivote, pag-proxy para sa mga karagdagang panghihimasok, o muling pagbebenta ng access).
Kernel Dependency At Fallback Behavior
Dahil umaasa ang LinkPro sa mga feature na override ng BPF kprobe para sa palihim nitong pag-interception sa kernel, inilalapat lang nito ang pamamaraan ng pagtatago sa antas ng kernel kapag inilantad ng host kernel ang CONFIG_BPF_KPROBE_OVERRIDE. Kung saan nawawala ang kakayahan ng kernel na iyon, sadyang bumabalik ang LinkPro sa LD_PRELOAD shared‑library na paraan upang itago ang sarili sa espasyo ng user, na tinitiyak ang pagtatago sa malawak na hanay ng mga kapaligiran.
Pangwakas na Tala
Ipinapakita ng LinkPro kung paano maaaring pagsamahin ng mga modernong panghihimasok ang container compromise, mga naka-stage na loader, kernel instrumentation (eBPF), at matalinong mga trick sa network (magic-packet activation at port-rewriting) upang mapanatili ang stealth at flexibility. Ang pagtuklas at remediation ay nangangailangan ng maingat na inspeksyon para sa mga hindi awtorisadong programa ng eBPF, hindi inaasahang mga entry sa /etc/ld.so.preload, mga hindi pangkaraniwang serbisyo ng systemd, at mga koneksyon sa network sa ipinahiwatig na imprastraktura (kabilang sa mga forensic indicator ang IP 56.155.98[.]37, port 29872, at 22333 na tinanggal na Docker, ang pangalan ng Docker, at 2233. kvlnt/vv).