Brug eBPF-baseret sensor til Microsoft Defender for Endpoint på Linux

Gælder for:

Det udvidede Berkeley Packet Filter (eBPF) til Microsoft Defender for Endpoint på Linux leverer supplerende hændelsesdata til Linux-operativsystemer. eBPF kan bruges som en alternativ teknologi til overvågning, fordi eBPF hjælper med at håndtere flere klasser af problemer, der ses med udbyderen af overvågede hændelser, og er gavnlig inden for ydeevne og systemstabilitet.

De vigtigste fordele omfatter:

  • Reduceret overvågningsrelateret logstøj i hele systemet
  • Optimerede hændelsesregler for hele systemet, der ellers forårsager konflikt mellem programmer
  • Reducerede udgifter til filhændelse (fillæsning/-åbning) overvågning
  • Forbedret gennemløbshastighed for hændelser og reduceret hukommelsesforbrug
  • Optimeret ydeevne til bestemte konfigurationer

Sådan fungerer eBPF

Med eBPF flyder hændelser, der tidligere er hentet fra udbyderen af overvågede hændelser, nu fra eBPF-sensoren. Dette hjælper med systemstabilitet, forbedrer CPU- og hukommelsesudnyttelsen og reducerer diskforbruget. Når eBPF er aktiveret, fjernes alle overvågede brugerdefinerede regler også, hvilket hjælper med at reducere risikoen for konflikter mellem applikationer. Data relateret til eBPF logges på filen /var/log/microsoft/mdatp/microsoft_defender_core.log.

EBPF-sensoren bruger desuden Linux-kernens funktioner uden at kræve brug af et kernemodul, der hjælper med at øge systemets stabilitet.

Bemærk!

eBPF bruges sammen med overvåget, hvorimod overvåget kun bruges til brugerlogonhændelser og registrerer disse hændelser uden brugerdefinerede regler og flower dem automatisk. Vær opmærksom på, at revisionen gradvist fjernes i fremtidige versioner.

Systemforudsætningerne

eBPF-sensoren til Microsoft Defender for Endpoint på Linux understøttes på følgende minimumdistributions- og kerneversioner:

Linux-distribution Distributionsversion Kerneversion
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

Bemærk!

Oracle Linux 8.8 med kerneversion 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 medfører, at kernen hænger, når eBPF aktiveres som supplerende udbyder af undersystemer. Denne kerneversion bør ikke bruges til eBPF-tilstand. Se afsnittet Fejlfinding og diagnosticering for at få oplysninger om afhjælpningstrin.

Brug eBPF

eBPF-sensoren er automatisk aktiveret for alle kunder som standard for agentversioner "101.23082.0006" og nyere. Kunder skal opdatere til de ovennævnte understøttede versioner for at opleve funktionen. Når eBPF-sensoren er aktiveret på et slutpunkt, opdateres Defender for Endpoint på Linux supplementary_events_subsystem til ebpf.

ebpf-undersystemet fremhæves i mdatp-tilstandskommandoen

Hvis du vil deaktivere eBPF manuelt, kan du køre følgende kommando:

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

Du kan også opdatere mdatp_managed.json-filen:

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

Se linket for at få en detaljeret json-eksempelfil – Angiv indstillinger for Microsoft Defender for Endpoint på Linux.

Vigtigt!

Hvis du deaktiverer eBPF, skifter den supplerende hændelsesudbyder tilbage til overvåget. I tilfælde af at eBPF ikke bliver aktiveret eller ikke understøttes på en bestemt kerne, skifter den automatisk tilbage til overvågede og bevarer alle overvågede brugerdefinerede regler.

Du kan også kontrollere status for eBPF (aktiveret/deaktiveret) på dine Linux-slutpunkter ved hjælp af avanceret jagt på Microsoft Defender Portal. Fremgangsmåden er som følger:

  1. Gå til Microsoft Defender-portalen, og log på.

  2. Gå til Jagt>Avanceret jagt i navigationsruden.

  3. Under Avanceret jagt skal du gå til Defender Vulnerability Management.

  4. Kør følgende forespørgsel: DeviceTvmInfoGathering.

  5. I outputtet skal du i kolonnen Yderligere felter vælge Vis mere og derefter søge efter EBPF STATUS: true.

Uforanderlig tilstand for Overvåget

For kunder, der bruger auditeret i uforanderlig tilstand, kræves der en genstart efter aktivering af eBPF for at rydde de revisionsregler, der tilføjes af Microsoft Defender for Endpoint. Dette er en begrænsning i uforanderlig tilstand for overvåget, som fryser regelfilen og forbyder redigering/overskrivning. Dette problem er løst med genstarten. Kør nedenstående kommando efter genstart for at kontrollere, om overvågningsregler blev ryddet.

% sudo auditctl -l

Outputtet fra ovenstående kommando bør ikke vise nogen regler eller nogen brugertilsatte regler. Hvis reglerne ikke blev fjernet, skal du udføre følgende trin for at rydde filen med overvågningsregler.

  1. Skift til ebpf-tilstand
  2. Fjern filen /etc/audit/rules.d/mdatp.rules
  3. Genstart computeren

Fejlfinding og diagnosticering

Du kan kontrollere agentens tilstandsstatus ved at køre tilstandskommandoen mdatp . Sørg for, at eBPF-sensoren for Defender for Endpoint på Linux understøttes ved at kontrollere den aktuelle kerneversion ved hjælp af følgende kommandolinje:

uname -a

Kendte problemer

  1. Aktivering af eBPF på RHEL 8.1-version med SAP kan resultere i kerne panik. Du kan afhjælpe dette problem ved at benytte en af følgende fremgangsmåder:

    • Brug en distroversion, der er højere end RHEL 8.1.
    • Skift til overvågningstilstand, hvis du har brug for at bruge RHEL 8.1-versionen.
  2. Brug af Oracle Linux 8.8 med kerneversion 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 kan resultere i kerne panik. Du kan afhjælpe dette problem ved at benytte en af følgende fremgangsmåder:

    • Brug en kerneversion, der er højere eller lavere end 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 på Oracle Linux 8.8, hvis du vil bruge eBPF som supplerende udbyder af undersystemer. Bemærk, at den mindste kerneversion til Oracle Linux er RHCK 3.10.0, og Oracle Linux UEK er 5.4.
    • Skift til overvåget tilstand, hvis du har brug for at bruge den samme kerneversion
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Følgende to datasæt hjælper med at analysere potentielle problemer og finde de mest effektive løsningsmuligheder.

  1. Indsaml en diagnosticeringspakke fra værktøjet til klientanalyse ved hjælp af følgende instruktioner: Fejlfinding af problemer med ydeevnen for Microsoft Defender for Endpoint på Linux.

  2. Indsaml en diagnosticeringspakke til fejlfinding, når Defender for Endpoint bruger høje ressourcer ved hjælp af følgende instruktioner: Microsoft Defender for Endpoint på Linux-ressourcer.

Fejlfinding af problemer med ydeevnen

Hvis du får vist en stigning i ressourceforbruget efter Microsoft Defender på dine slutpunkter, er det vigtigt at identificere den proces/det tilslutningspunkt/de filer, der bruger mest CPU/hukommelsesudnyttelse, og derefter anvende de nødvendige udeladelser. Efter anvendelse af mulige AV udelukkelser, hvis wdavdaemon (forældre proces) stadig forbruger de ressourcer, så brug ebpf-statistik kommando for at få den øverste systemopkald antal:

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

I ovenstående output kan du se, at stress-ng er den øverste proces, der genererer et stort antal hændelser og kan resultere i problemer med ydeevnen. Mest sandsynligt stress-ng genererer systemet opkald med ID 82. Du kan oprette en billet hos Microsoft for at udelade denne proces. I fremtiden som en del af kommende forbedringer har du mere kontrol over at anvende sådanne undtagelser i slutningen.

Undtagelser, der anvendes på overvågede, kan ikke overføres eller kopieres til eBPF. Fælles bekymringer såsom støjende logge, kerne panik, støjende syscalls er allerede taget hånd om af eBPF internt. Hvis du vil tilføje yderligere undtagelser, skal du kontakte Microsoft for at få anvendt de nødvendige undtagelser.

Se også