eBPF rootkit přes dodavatele: odhalení skrytého úniku databáze v Linuxu
Databázový server na Ubuntu generoval o 5–10 % více odchozího provozu než příchozího po dobu jednoho měsíce. Logy a procesy vypadaly čistě, poskytovatel potvrdil normální provoz sítě. Audit odhalil eBPF rootkit, zavedený přes kompromitovaný notebook dodavatele DBA. Útočníci využili dodavatelského řetězce k instalaci programu, který skrýval procesy a exfiltroval PII data na C2 server.
První stopa: podezřelé pravidlo iptables
V /etc/iptables/rules.v4 se objevilo pravidlo povolující odchozí TCP spojení na IP z VPN poolu dodavatele:
-A OUTPUT -d xxx.xxx.xxx.xxx -p tcp --dport YYYY -j ACCEPT
Toto pravidlo v základní konfiguraci chybělo. Umožňovalo nepozorovaně odesílat komprimované výpisy tabulek databáze. Analýza /var/log/auth.log ukázala přihlášení přes SSH klíč dodavatele z IP ze stejného poolu. Přístup k serveru byl po pracích odvolán, ale VPN zůstal aktivní.
Nesoulad v /proc ukázal na rootkit
Příkaz ps auxf zobrazoval standardní procesy, ale počet adresářů v /proc převyšoval počet PID o jeden. To naznačovalo zachycení systémových volání getdents a getdents64. Kontrola /proc/modules a analýza paměti jádra z LiveCD neodhalila LKM moduly — seznam odpovídal referenčnímu.
eBPF jako základ rootkitu: detaily implementace
Nástroj bpftool odhalil eBPF programy připojené k kprobe bodům __x64_sys_getdents a __x64_sys_kill. Další program na socketu přesměrovával provoz. V /usr/share/man/man3/ byl nalezen binární soubor systemd-snoop, který načítal eBPF přes libbpf.
Škodlivý kód v noci vypisoval tabulky s PII, komprimoval je a odesílal na C2. eBPF není vidět v seznamu modulů, protože se načítá přes syscall bpf(). Detekce vyžaduje root oprávnění pro bpftool nebo analýzu paměti jádra. V tomto případě nebyly objekty skryty.
Scénář útoku
- Kompromitovaný notebook dodavatele.
- Během plánovaných prací přes SSH klíč — přihlášení na server.
- Přidání pravidla iptables a instalace
systemd-snoop. - Noční exfiltrace dat přes eBPF proxy.
Opatření pro detekci eBPF rootkitů
Standardní AIDE je k ničemu — eBPF nemodifikuje soubory v /lib/modules. Doporučené přístupy:
- Pravidelné sbírání
bpftool prog listabpftool map lists odesláním do SIEM. - Audit syscallu
bpf()přesauditdneboebpf_exporter. - Monitorování s Falco, Tracee nebo Osquery pro anomální eBPF aktivitu.
- Analýza NetFlow na nesoulady provozu a korelaci s GeoIP.
Ochrana dodavatelského řetězce před dodavateli
Autentizace a přístup
- Povinné 2FA pro SSH i s klíči.
- Minimální oprávnění: bez root, pouze přes bastion host s logováním relací.
- Rotace klíčů každých 6 měsíců, odvolání do 24 hodin při ukončení spolupráce.
- Dočasné VPN relace s automatickým odpojením.
Infrastruktura
- GitOps pro firewall: změny iptables pouze přes Ansible s Git kontrolou.
- Centralizovaný ELK/ Graylog + SIEM pro korelaci logů, NetFlow a GeoIP.
Co je důležité
- eBPF rootkity skrývají procesy, nejsou vidět v
/proc/modules, detekují sebpftool. - Útok přes dodavatele: kompromitace notebooku + ponechaný VPN přístup.
- Příznaky: asymetrie provozu, nesoulad PID v
/proc. - Ochrana: 2FA, bastion, audit
bpf(), NetFlow monitorování. - Nástroje: Falco, Tracee, ebpf_exporter pro runtime detekci.
Tento případ ukazuje, jak drobná anomálie provozu odhalila roční exfiltraci dat. Zavedení proaktivního monitorování eBPF a přísné kontroly přístupu minimalizuje rizika od externích týmů.
— Editorial Team
Zatím žádné komentáře.