Share via


Utiliser un capteur eBPF pour Microsoft Defender pour point de terminaison sur Linux

S’applique à :

Le filtre eBPF (Berkeley Packet Filter) étendu pour Microsoft Defender pour point de terminaison sur Linux fournit des données d’événement supplémentaires pour les systèmes d’exploitation Linux. eBPF peut être utilisé comme technologie alternative à l’audit, car eBPF permet de résoudre plusieurs classes de problèmes rencontrés avec le fournisseur d’événements audité et est bénéfique dans les domaines des performances et de la stabilité du système.

Les principaux avantages sont les suivants :

  • Réduction du bruit du journal audité à l’échelle du système
  • Des règles d’événement optimisées à l’échelle du système entraînent un conflit entre les applications
  • Réduction de la surcharge pour l’analyse des événements de fichier (lecture/ouverture de fichier)
  • Débit d’événements amélioré et empreinte mémoire réduite
  • Performances optimisées pour des configurations spécifiques

Fonctionnement d’eBPF

Avec eBPF, les événements précédemment obtenus auprès du fournisseur d’événements audités circulent désormais à partir du capteur eBPF. Cela contribue à la stabilité du système, améliore l’utilisation du processeur et de la mémoire, et réduit l’utilisation du disque. En outre, quand eBPF est activé, toutes les règles personnalisées liées à l’audit sont éliminées, ce qui permet de réduire le risque de conflits entre les applications. Les données liées à eBPF sont consignées dans le fichier /var/log/microsoft/mdatp/microsoft_defender_core.log.

En outre, le capteur eBPF utilise les fonctionnalités du noyau Linux sans nécessiter l’utilisation d’un module de noyau qui contribue à augmenter la stabilité du système.

Remarque

eBPF est utilisé conjointement avec auditd, tandis que auditd est utilisé uniquement pour les événements de connexion utilisateur et capture ces événements sans règles personnalisées et les flux automatiquement. N’oubliez pas que audité sera progressivement supprimé dans les versions ultérieures.

Prérequis système

Le capteur eBPF pour Microsoft Defender pour point de terminaison sur Linux est pris en charge sur les versions minimales de distribution et de noyau suivantes :

Linux Distribution Version de distribution Version du noyau
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

Remarque

Oracle Linux 8.8 avec la version du noyau 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 entraîne un blocage du noyau lorsque eBPF est activé en tant que fournisseur de sous-système supplémentaire. Cette version du noyau ne doit pas être utilisée pour le mode eBPF. Reportez-vous à la section Résolution des problèmes et diagnostics pour connaître les étapes d’atténuation.

Utiliser eBPF

Le capteur eBPF est automatiquement activé pour tous les clients par défaut pour les versions de l’agent « 101.23082.0006 » et ultérieures. Les clients doivent effectuer une mise à jour vers les versions prises en charge mentionnées ci-dessus pour découvrir la fonctionnalité. Lorsque le capteur eBPF est activé sur un point de terminaison, Defender pour point de terminaison sur Linux met à jour supplementary_events_subsystem sur ebpf.

Mise en surbrillance du sous-système ebpf dans la commande mdatp health

Si vous souhaitez désactiver manuellement eBPF, vous pouvez exécuter la commande suivante :

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

Vous pouvez également mettre à jour le fichier mdatp_managed.json :

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

Reportez-vous au lien pour obtenir un exemple de fichier json détaillé - Définir des préférences pour Microsoft Defender pour point de terminaison sur Linux.

Importante

Si vous désactivez eBPF, le fournisseur d’événements supplémentaire revient à auditd. Dans le cas où eBPF n’est pas activé ou n’est pas pris en charge sur un noyau spécifique, il revient automatiquement à audité et conserve toutes les règles personnalisées auditées.

Vous pouvez également case activée le status d’eBPF (activé/désactivé) sur vos points de terminaison Linux à l’aide de la chasse avancée dans le portail Microsoft Defender. Les étapes sont les suivantes :

  1. Accédez au portail Microsoft Defender et connectez-vous.

  2. Dans le volet de navigation, accédez à Chasse>avancée chasse.

  3. Sous Repérage avancé, accédez à Gestion des vulnérabilités Defender.

  4. Exécutez la requête suivante : DeviceTvmInfoGathering.

  5. Dans la sortie, dans la colonne Champs supplémentaires , sélectionnez Afficher plus, puis recherchez EBPF STATUS : true.

Mode immuable d’Auditd

Pour les clients qui utilisent audité en mode immuable, un redémarrage est nécessaire après l’activation d’eBPF afin d’effacer les règles d’audit ajoutées par Microsoft Defender pour point de terminaison. Il s’agit d’une limitation en mode immuable audité, qui fige le fichier de règles et interdit la modification/le remplacement. Ce problème est résolu avec le redémarrage. Après le redémarrage, exécutez la commande ci-dessous pour case activée si les règles d’audit ont été effacées.

% sudo auditctl -l

La sortie de la commande ci-dessus ne doit afficher aucune règle ni aucune règle ajoutée par l’utilisateur. Si les règles n’ont pas été supprimées, effectuez les étapes suivantes pour effacer le fichier de règles d’audit.

  1. Basculer en mode ebpf
  2. Supprimez le fichier /etc/audit/rules.d/mdatp.rules
  3. Redémarrer l’ordinateur

Résolution des problèmes et diagnostics

Vous pouvez case activée l’status d’intégrité de l’agent en exécutant la commande d’intégrité mdatp . Assurez-vous que le capteur eBPF pour Defender pour point de terminaison sur Linux est pris en charge en vérifiant la version actuelle du noyau à l’aide de la ligne de commande suivante :

uname -a

Problèmes connus

  1. L’activation d’eBPF sur la version RHEL 8.1 avec SAP peut entraîner une panique du noyau. Pour atténuer ce problème, vous pouvez effectuer l’une des étapes suivantes :

    • Utilisez une version de distribution supérieure à RHEL 8.1.
    • Passez en mode audité si vous devez utiliser la version 8.1 de RHEL.
  2. L’utilisation d’Oracle Linux 8.8 avec la version du noyau 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 peut entraîner une panique du noyau. Pour atténuer ce problème, vous pouvez effectuer l’une des étapes suivantes :

    • Utilisez une version du noyau supérieure ou inférieure à 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 sur Oracle Linux 8.8 si vous souhaitez utiliser eBPF comme fournisseur de sous-système supplémentaire. Notez que la version minimale du noyau pour Oracle Linux est RHCK 3.10.0 et oracle Linux UEK est 5.4.
    • Passer en mode audité si vous avez besoin d’utiliser la même version du noyau
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Les deux ensembles de données suivants permettent d’analyser les problèmes potentiels et de déterminer les options de résolution les plus efficaces.

  1. Collectez un package de diagnostic à partir de l’outil analyseur client en suivant les instructions suivantes : Résoudre les problèmes de performances pour Microsoft Defender pour point de terminaison sur Linux.

  2. Collectez un package de diagnostic de débogage lorsque Defender pour point de terminaison utilise des ressources élevées en suivant les instructions suivantes : Microsoft Defender pour point de terminaison sur les ressources Linux.

Résolution des problèmes de performances

Si vous constatez une augmentation de la consommation des ressources par Microsoft Defender sur vos points de terminaison, il est important d’identifier le processus/point de montage/fichiers qui consomme la plus grande utilisation du processeur/de la mémoire, puis d’appliquer les exclusions nécessaires. Après avoir appliqué les exclusions AV possibles, si wdavdaemon (processus parent) consomme toujours les ressources, utilisez la commande ebpf-statistics pour obtenir le nombre d’appels système supérieur :

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

Dans la sortie ci-dessus, vous pouvez voir que stress-ng est le processus le plus important qui génère un grand nombre d’événements et peut entraîner des problèmes de performances. Le plus probablement stress-ng génère l’appel système avec l’ID 82. Vous pouvez créer un ticket avec Microsoft pour exclure ce processus. À l’avenir, dans le cadre des améliorations à venir, vous aurez davantage de contrôle pour appliquer ces exclusions de votre côté.

Les exclusions appliquées à auditd ne peuvent pas être migrées ou copiées vers eBPF. Les problèmes courants tels que les journaux bruyants, la panique du noyau, les syscalls bruyants sont déjà pris en charge par eBPF en interne. Si vous souhaitez ajouter d’autres exclusions, contactez Microsoft pour que les exclusions nécessaires soient appliquées.

Voir aussi