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

Poznámka

Počínaje defenderem for Endpoint na Linux verze 101.2408.0000se auditD už nepodporuje jako doplňkový poskytovatel událostí. Další informace najdete v tématu Nejčastější dotazy – přechod na eBPF.

Rozšířený filtr paketů Berkeley (eBPF) pro Microsoft Defender for Endpoint na Linux poskytuje dodatečná data událostí pro Linux operační systémy. EBPF pomáhá řešit několik tříd problémů, ke kterým dochází u poskytovatele událostí AuditD, a je přínosný v oblasti výkonu a stability systému.

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

  • Snížení šumu protokolu souvisejícího s AuditD 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 událostí AuditD 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. eBPF pomáhá omezit možnost konfliktů mezi aplikacemi, protože nejsou vyžadována žádná vlastní pravidla. Data související s protokolem eBPF se přihlásí do souboru /var/log/microsoft/mdatp/microsoft_defender_core.log.

Senzor eBPF navíc využívá možnosti jádra Linux bez použití modulu jádra, který pomáhá zvyšovat stabilitu systému.

Požadavky na systém

Senzor eBPF vyžaduje Defender pro koncový bod ve verzi 101.23082.0006 agenta Linuxu nebo novější. Než budete pokračovat, ujistěte se, že je váš koncový bod aktualizovaný na podporovanou verzi agenta.

Senzor eBPF je podporován v následujících minimálních verzích distribuce a jádra:

Linux Distribuce 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
Rocky Linux 8 8.7 4.18.0-425
Rocky Linux 9 9.2 5.14.0-284
Alma Linux 8 8.4 4.18.0-305
Alma Linux 9 9.2 5.14.0-284

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 .

Povolení a konfigurace senzoru eBPF

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

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

Pokud chcete povolit nebo zakázat doplňkového zprostředkovatele událostí eBPF, spusťte následující příkaz:

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

Případně můžete poskytovatele doplňkových událostí eBPF zakázat nastavením ebpfSupplementaryEventProvider v disabled souboru mdatp_managed.json:

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

Podrobný ukázkový soubor JSON najdete v tématu Nastavení předvoleb pro Microsoft Defender for Endpoint v Linuxu.

Důležité

Pokud zakážete eBPF nebo v případě, že eBPF není podporován v žádném konkrétním jádru, přepne se doplňkový zprostředkovatel událostí na Netlink. Všechny operace procesu budou i nadále bez problémů postupovat, ale můžete přijít o konkrétní události související se soubory a sokety, které by jinak eBPF zachytával.

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é vyhledávání přejděte na Defender Správa zranitelností.

  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í AuditD 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. Tento požadavek představuje omezení v neměnném režimu AuditD, který zablokuje soubor pravidel a zakazuje úpravy a přepisování. Restartování vymaže pravidla auditu Microsoft Defender for Endpoint, která se nedají odebrat, když je AuditD v neměnném režimu.

Po restartování vypíšete aktuální pravidla AuditD a ověřte, že Defender pro pravidla auditu koncového bodu byly úspěšně vymazány:

% sudo auditctl -l

Ve výstupu předchozího příkazu by se neměla zobrazovat žádná pravidla ani žádná pravidla přidaná uživatelem. V případě, že se pravidla neodebrala, vymažte soubor pravidel auditu následujícím postupem:

  1. Přepněte do režimu ebpf.

  2. Odeberte soubor /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. Pokud chcete ověřit, že vaše verze jádra splňuje požadavky senzoru eBPF uvedené v požadavcích na systém, zkontrolujte aktuální verzi jádra spuštěním následujícího příkazu:

uname -a

Známé problémy

Při používání senzoru eBPF v Linuxu mějte na paměti následující známé problémy:

  1. Upozornění: Na RHEL 8.1 se SAP může povolení eBPF způsobit panice jádra. Před povolením funkce eBPF pro tuto konfiguraci proveďte jeden z následujících kroků pro zmírnění rizik:

    • Použijte verzi distribuce vyšší než RHEL 8.1.
    • Pokud potřebujete použít RHEL verze 8.1, přepněte do režimu AuditD.
  2. Použití 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 může způsobit poplach 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 oracle Linux 8.8. 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 režimu AuditD.

      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 klientského analyzátoru: Řešení potíží s výkonem pro Microsoft Defender for Endpoint na Linux.

      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 Linux prostředky.

  3. Systém přestane reagovat na Oracle Linux 7.9, na kterém běží Defender for Linux, když se pro živé opravy jádra používá ksplice.

    • Automatická instalace oprav ksplice jednoduše přidá úlohu cron do koncového bodu.
    • Pokud chcete tento problém vyřešit, můžete vytvořit úlohu cron, která nejprve zastaví službu mdatp, použije opravy založené na ksplice a pak službu spustí.
    • Vzhledem k tomu, že oprava jádra je několikasekundová aktivita, nebude to mít velké ohrožení z hlediska zabezpečení.

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

Pokud na koncových bodech Microsoft Defender dochází ke zvýšené spotřebě prostředků, je důležité identifikovat proces, přípojný bod nebo soubory, které způsobují většinu využití procesoru nebo paměti. Pak můžete použít potřebná vyloučení. Pokud wdavdaemon po použití možných vyloučení antivirového softwaru (nadřazený proces) prostředky stále spotřebovává, použijte příkaz ebpf-statistics, abyste získali nejvyšší počet systémových volání:

sudo mdatp diagnostic  ebpf-statistics

Následující ukázkový výstup ukazuje statistiky eBPF shromážděné během 20sekundového intervalu monitorování, včetně hlavních cest k souborům, procesů iniciátoru a ID volání systému:

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ýstupu mdatp diagnostic ebpf-statistics je stres-ng hlavním procesem, který generuje velký počet 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.

Vyloučení použitá na AuditD se nedají 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í.

Nejčastější dotazy – Přechod na eBPF

1. Proč byste měli zvážit přechod na eBPF?

Rozšířený filtr paketů Berkeley (eBPF) pro Microsoft Defender for Endpoint na Linux slouží jako efektivní alternativa k AuditD a řeší různé výzvy spojené s poskytovatelem událostí AuditD a zároveň poskytuje významné výhody z hlediska výkonu a stability systému. Mezi klíčové výhody patří:

  • Výkon: EBPF výrazně zlepšuje výkon tím, že v porovnání s AuditD snižuje režijní náklady na systémové prostředky.

  • Efektivita prostředků: EBPF využívá méně prostředků, což pomáhá udržovat stabilitu systému i v podmínkách s velkým zatížením.

  • Škálovatelnost: Architektura eBPF je škálovatelnější, takže je lepší volbou pro prostředí s rostoucími nebo složitými úlohami.

  • Moderní technologie: eBPF představuje moderní, do budoucna vypadající technologii, která je v souladu s budoucím vývojem Linux jádra a zajišťuje lepší dlouhodobou podporu.

2. Jak můžu auditD dál používat?

Pokud chcete pokračovat v používání AuditD:

  • Podporované verze: Na Defenderu for Endpoint můžete zůstat Linux verze 101.24072.0000, která bude podporovat AuditD během platnosti buildu, což je přibližně devět měsíců. To poskytuje dostatečné přechodné období pro naplánování přechodu na eBPF. Datum vypršení platnosti můžete zkontrolovat spuštěním příkazu mdatp health na Linux serveru.

  • Long-Term Plán: I když je možnost zůstat v buildu 101.24072.0000 , doporučujeme v tomto časovém rámci naplánovat přechod na eBPF, abyste měli jistotu, že budete mít prospěch z nejnovějších vylepšení zabezpečení a výkonu a také budete mít nepřetržitou podporu.

Přesto doporučujeme naplánovat přechod na použití eBPF jako primárního poskytovatele událostí.

3. Co se stane, když se v některých scénářích nepodporuje eBPF?

V případech, kdy se eBPF nepodporuje:

  • Náhradní služba Netlink: Systém se vrátí k použití zprostředkovatele událostí Netlink. Netlink sice dál zaznamenává události procesu (například exec, exit, fork, gidnebo tid), ale nepodporuje události související se systémem souborů (například rename, unlink) ani události soketů.

  • Dopad: Vaše úlohy se nenaruší, ale můžete zmeškat konkrétní události související se soubory a sokety, které by jinak eBPF zachytával.

4. Jak můžu spravovat vyloučení pomocí aktualizovaných verzí?

Tady jsou některé běžné důvody pro umisťování vyloučení pro AuditD:

  • Výkon, protože některé syscall nebo procesy generují velké množství šumu

  • Panika jádra, existují chvíle, kdy mnoho syscall konkrétně síťových volání nebo volání systému souborů vedlo k poplachu jádra.

  • Hlučné protokoly, ve kterých protokoly auditu využívají místo na disku. Zákazník umístil vyloučení pro hlučné procesy, aby zmenšil velikost protokolu.

U eBPF jsou kandidáty na migraci první dva případy použití. Protokoly už nejsou problémem s eBPF. Pro první dva případy použití si můžete vybrat z následujících možností:

  • Kontaktujte podporu: Pokud chcete použít vyloučení z back-endu, obraťte se na Microsoft.

  • Globální vyloučení: V aktualizovaných verzích Defenderu for Endpoint na Linux je možné vyloučení spravovat s globálními vyloučeními. Globální vyloučení platí pro antivirový program i pro EDR a v současné době je možné je nakonfigurovat prostřednictvím spravovaného kódu JSON. Další informace najdete v tématu Konfigurace a ověření vyloučení Microsoft Defender for Endpoint v systému Linux.

5. Co mám dělat v případě problémů?

  • Kontaktujte podporu: Pokud během přechodu na eBPF nebo po přechodu na eBPF narazíte na nějaké problémy, požádejte o pomoc technickou podporu. Snažíme se zajistit hladký přechod a jsme vám k dispozici, abychom vám pomohli vyřešit všechny výzvy, kterým můžete čelit.

  • Kanály podpory: Podporu můžete kontaktovat prostřednictvím portálu Microsoft Defender. Naše znalostní báze a komunitní fóra jsou navíc cennými zdroji informací pro řešení běžných problémů.

Další informace o řešení potíží a správě prostředků pro Defender pro koncový bod v Linuxu najdete v následujících článcích: