Zpět na domů

eBPF-rootkit v Linuxu: únik DB přes dodavatele

Reálný incident: eBPF-rootkit nasazen přes dodavatele DBA unikl PII z DB. Detekce podle anomálií provozu a /proc. Doporučení: audit bpf(), 2FA, bastion host, Falco.

Jak eBPF-rootkit unikl DB přes narušení dodavatele
Advertisement 728x90

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

Google AdInline article slot

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.

Google AdInline article slot

Š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 list a bpftool map list s odesláním do SIEM.
  • Audit syscallu bpf() přes auditd nebo ebpf_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í se bpftool.
  • Ú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ů.

Google AdInline article slot

— Editorial Team

Advertisement 728x90

Číst dál