Použití senzoru založeného na eBPF pro Microsoft Defender for Endpoint v Linuxu

Platí pro:

Rozšířený filtr paketů Berkeley (eBPF) pro Microsoft Defender for Endpoint v Linuxu poskytuje dodatečná data událostí pro operační systémy Linux. EBPF se dá použít jako alternativní technologie k auditování, protože eBPF pomáhá řešit několik tříd problémů, ke kterým dochází u poskytovatele auditovaných událostí, a je přínosný v oblastech výkonu a stability systému.

Mezi klíčové výhody patří:

  • Omezení hluku protokolů souvisejících s auditem v celém systému
  • Optimalizovaná systémová pravidla událostí jinak způsobují konflikty mezi aplikacemi
  • Snížení režijních nákladů na monitorování událostí souborů (čtení/otevření souboru)
  • Vyšší propustnost četnosti událostí a nižší nároky na paměť
  • Optimalizovaný výkon pro konkrétní konfigurace

Jak funguje eBPF

U eBPF teď události získané od poskytovatele auditovaných událostí proudí ze senzoru eBPF. To pomáhá se stabilitou systému, zlepšuje využití procesoru a paměti a snižuje využití disku. Pokud je povolený eBPF, odstraní se také všechna vlastní pravidla související s auditem, což pomáhá omezit možnost konfliktů mezi aplikacemi. Data související s protokolem eBPF se přihlásí do souboru /var/log/microsoft/mdatp/microsoft_defender_core.log.

Kromě toho senzor eBPF využívá funkce jádra Linuxu, aniž by bylo nutné použít modul jádra, který pomáhá zvýšit stabilitu systému.

Poznámka

EBPF se používá ve spojení s auditovaným, zatímco auditovaný se používá pouze pro události přihlášení uživatelů a zaznamenává tyto události bez jakýchkoli vlastních pravidel a automaticky je tokuje. Mějte na paměti, že auditované položky budou v budoucích verzích postupně odebrány.

Požadavky na systém

Senzor eBPF pro Microsoft Defender for Endpoint v Linuxu je podporován v následující minimální distribuci a verzích jádra:

Distribuce Linuxu Distribuční verze Verze jádra
Ubuntu 16.04 4.15.0
Fedora 33 5.8.15
Centos 7.6 3.10.0-957.10
SLES 15 5.3.18-18.47
RHEL 7.6 3.10.0-957.10
Debian 9.0 4.19.0
Oracle Linux RHCK 7.9 3.10.0-1160
Oracle Linux UEK 7.9 5.4
Amazon Linux 2 2 5.4.261-174.360

Poznámka

Oracle Linux 8.8 s jádrem verze 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 způsobí zablokování jádra, když je povolený eBPF jako doplňkový poskytovatel subsystému. Tato verze jádra by se neměla používat pro režim eBPF. Kroky pro zmírnění rizik najdete v části Řešení potíží a diagnostika.

Použití eBPF

Senzor eBPF je automaticky povolený pro všechny zákazníky ve výchozím nastavení pro verze agenta 101.23082.0006 a vyšší. Aby zákazníci mohli tuto funkci používat, musí ji aktualizovat na výše uvedené podporované verze. Pokud je v koncovém bodu povolený senzor eBPF, defender for Endpoint v Linuxu aktualizuje supplementary_events_subsystem na ebpf.

Zvýraznění subsystému ebpf v příkazu mdatp health

Pokud chcete ručně zakázat eBPF, můžete spustit následující příkaz:

sudo mdatp config ebpf-supplementary-event-provider --value [enabled/disabled]

Soubor mdatp_managed.json můžete také aktualizovat:

{
    "features": {
        "ebpfSupplementaryEventProvider": "disabled"
    }
}

Podrobný ukázkový soubor JSON – Nastavení předvoleb pro Microsoft Defender for Endpoint v Linuxu najdete na odkazu.

Důležité

Pokud eBPF zakážete, poskytovatel doplňkových událostí se přepne zpět na auditovaný. V případě, že se eBPF nepovolí nebo se nepodporuje v žádném konkrétním jádru, automaticky se přepne zpět na auditované a zachovají se všechna auditovaná vlastní pravidla.

Stav eBPF (povoleno/zakázáno) na koncových bodech Linuxu můžete také zkontrolovat pomocí rozšířeného proaktivního vyhledávání na portálu Microsoft Defender. Postup je následující:

  1. Přejděte na portál Microsoft Defender a přihlaste se.

  2. V navigačním podokně přejděte na Rozšířené proaktivní vyhledávání>.

  3. V části Rozšířené proaktivní vyhledávání přejděte na Správa ohrožení zabezpečení defenderu.

  4. Spusťte následující dotaz: DeviceTvmInfoGathering.

  5. Ve výstupu ve sloupci Další pole vyberte Zobrazit další a vyhledejte STAV EBPF: true.

Neměnný režim Auditd

U zákazníků, kteří používají auditované v neměnném režimu, se po povolení eBPF vyžaduje restartování, aby bylo možné vymazat pravidla auditu přidaná Microsoft Defender for Endpoint. Jedná se o omezení v neměnném režimu auditování, který zablokuje soubor pravidel a zakazuje úpravy a přepisování. Tento problém se vyřešil restartováním. Po restartování spusťte následující příkaz a zkontrolujte, jestli se pravidla auditu vymazali.

% sudo auditctl -l

Výstup výše uvedeného příkazu by neměl obsahovat žádná pravidla ani žádná pravidla přidaná uživatelem. V případě, že se pravidla neodeberou, pomocí následujících kroků vymažte soubor pravidel auditu.

  1. Přepnutí do režimu ebpf
  2. Odebrání souboru /etc/audit/rules.d/mdatp.rules
  3. Restartujte počítač.

Řešení potíží a diagnostika

Stav agenta můžete zkontrolovat spuštěním mdatp příkazu stavu. Zkontrolujte aktuální verzi jádra pomocí následujícího příkazového řádku a ujistěte se, že je senzor eBPF pro Defender for Endpoint v Linuxu podporovaný:

uname -a

Známé problémy

  1. Povolení eBPF ve verzi RHEL 8.1 se SAP může způsobit paniku jádra. Pokud chcete tento problém zmírnit, můžete provést jeden z následujících kroků:

    • Použijte verzi distribuce vyšší než RHEL 8.1.
    • Pokud potřebujete použít RHEL verze 8.1, přepněte do auditovaného režimu.
  2. Použití Oracle Linuxu 8.8 s jádrem verze 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 může způsobit paniku jádra. Pokud chcete tento problém zmírnit, můžete provést jeden z následujících kroků:

    • Pokud chcete použít eBPF jako doplňkového poskytovatele subsystému, použijte verzi jádra vyšší nebo nižší než 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 v Systému Oracle Linux 8.8. Všimněte si, že minimální verze jádra pro Oracle Linux je RHCK 3.10.0 a Oracle Linux UEK je 5.4.
    • Pokud potřebujete použít stejnou verzi jádra, přepněte do auditovaného režimu.
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Následující dvě sady dat pomáhají analyzovat potenciální problémy a určit nejúčinnější možnosti řešení.

  1. Pomocí následujících pokynů shromážděte diagnostický balíček z nástroje analyzátoru klienta: Řešení potíží s výkonem pro Microsoft Defender for Endpoint v Linuxu.

  2. Shromážděte balíček diagnostiky ladění, když Defender for Endpoint využívá vysoké využití prostředků podle následujících pokynů: Microsoft Defender for Endpoint na linuxových prostředcích.

Řešení potíží s výkonem

Pokud na koncových bodech Microsoft Defender dochází k nárůstu spotřeby prostředků, je důležité identifikovat proces, přípojný bod nebo soubory, které spotřebovávají nejvíce procesoru a paměti, a pak použít potřebná vyloučení. Pokud wdavdaemon (nadřazený proces) po použití možných vyloučení av stále využívá prostředky, použijte příkaz ebpf-statistics k získání nejvyššího počtu systémových volání:

sudo mdatp diagnostic  ebpf-statistics
Output
Monitor 20 seconds
Top file paths:
/var/log/microsoft/mdatp/microsoft_defender.log : 10
/var/log/microsoft/mdatp/rotated/microsoft_defender.log00001 : 2
/var/log/microsoft/mdatp/rotated/microsoft_defender.log : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374993 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374991 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374989 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374987 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374985 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374983 : 1
/home/gargank/tmp-stress-ng-rename-13550-31/stress-ng-rename-13550-31-374981 : 1

Top initiator paths:
/usr/bin/stress-ng : 50000
/opt/microsoft/mdatp/sbin/wdavdaemon : 13

Top syscall ids:
82 : 1699333
90 : 10
87 : 3

Ve výše uvedeném výstupu vidíte, že stress-ng je hlavní proces, který generuje velké množství událostí a může vést k problémům s výkonem. S největší pravděpodobností stres-ng generuje systémové volání s ID 82. Pokud chcete tento proces vyloučit, můžete vytvořit lístek u Microsoftu. V budoucnu v rámci chystaných vylepšení budete mít větší kontrolu nad tím, jak tato vyloučení na svém konci uplatňovat.

Vyloučení použitá pro auditované není možné migrovat ani kopírovat do eBPF. Běžné obavy, jako jsou například hlučné protokoly, poplach jádra, hlučné volání syscall, se už stará interně eBPF. Pokud chcete přidat další vyloučení, obraťte se na Microsoft a požádejte o uplatnění potřebných vyloučení.

Viz také