Uso del sensor basado en eBPF para Microsoft Defender para punto de conexión en Linux

Se aplica a:

El filtro de paquetes de Berkeley extendido (eBPF) para Microsoft Defender para punto de conexión en Linux proporciona datos de eventos adicionales para los sistemas operativos Linux. eBPF se puede usar como una tecnología alternativa para auditar porque eBPF ayuda a abordar varias clases de problemas vistos con el proveedor de eventos auditados y es beneficioso en las áreas de rendimiento y estabilidad del sistema.

Entre las principales ventajas se encuentran:

  • Reducción del ruido de registro relacionado con auditorías en todo el sistema
  • Reglas de eventos optimizadas para todo el sistema que, de lo contrario, provocan conflictos entre aplicaciones
  • Sobrecarga reducida para la supervisión de eventos de archivo (lectura y apertura de archivos)
  • Rendimiento mejorado de la velocidad de eventos y reducción de la superficie de memoria
  • Rendimiento optimizado para configuraciones específicas

Funcionamiento de eBPF

Con eBPF, los eventos obtenidos anteriormente del proveedor de eventos auditados ahora fluyen desde el sensor eBPF. Esto ayuda con la estabilidad del sistema, mejora el uso de cpu y memoria y reduce el uso del disco. Además, cuando se habilita eBPF, se eliminan todas las reglas personalizadas relacionadas con auditorías, lo que ayuda a reducir la posibilidad de conflictos entre aplicaciones. Los datos relacionados con eBPF se registran en el archivo /var/log/microsoft/mdatp/microsoft_defender_core.log.

Además, el sensor eBPF usa funcionalidades del kernel de Linux sin necesidad de usar un módulo de kernel que ayude a aumentar la estabilidad del sistema.

Nota:

eBPF se usa junto con auditada, mientras que auditada solo se usa para eventos de inicio de sesión de usuario y captura estos eventos sin ninguna regla personalizada y los fluye automáticamente. Tenga en cuenta que la auditoría se eliminará gradualmente en futuras versiones.

Requisitos previos del sistema

El sensor eBPF para Microsoft Defender para punto de conexión en Linux se admite en las siguientes versiones mínimas de distribución y kernel:

Distribución de Linux Versión de distribución Versión del kernel
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

Nota:

Oracle Linux 8.8 con la versión 5.15.0-0.30.20.el8uek.x86_64 del kernel, 5.15.0-0.30.20.1.el8uek.x86_64 provocará un bloqueo del kernel cuando eBPF esté habilitado como proveedor de subsistemas complementarios. Esta versión del kernel no debe usarse para el modo eBPF. Consulte la sección Solución de problemas y diagnósticos para conocer los pasos de mitigación.

Uso de eBPF

El sensor eBPF se habilita automáticamente para todos los clientes de forma predeterminada para las versiones de agente "101.23082.0006" y posteriores. Los clientes deben actualizar a las versiones admitidas mencionadas anteriormente para experimentar la característica. Cuando el sensor eBPF está habilitado en un punto de conexión, Defender para punto de conexión en Linux actualiza supplementary_events_subsystem a ebpf.

Resaltado del subsistema ebpf en el comando mdatp health

En caso de que quiera deshabilitar manualmente eBPF, puede ejecutar el siguiente comando:

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

También puede actualizar el archivo mdatp_managed.json:

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

Consulte el vínculo para obtener un archivo JSON de ejemplo detallado: establezca preferencias para Microsoft Defender para punto de conexión en Linux.

Importante

Si deshabilita eBPF, el proveedor de eventos complementario vuelve a auditar. En caso de que eBPF no se habilite o no se admita en ningún kernel específico, cambiará automáticamente a auditado y conservará todas las reglas personalizadas auditadas.

También puede comprobar el estado de eBPF (habilitado o deshabilitado) en los puntos de conexión de Linux mediante la búsqueda avanzada en Microsoft Defender Portal. Los pasos son los siguientes:

  1. Vaya al portal de Microsoft Defender e inicie sesión.

  2. En el panel de navegación, vaya a Búsquedade búsqueda> avanzada.

  3. En Búsqueda avanzada, vaya a Administración de vulnerabilidades de Defender.

  4. Ejecute la consulta siguiente: DeviceTvmInfoGathering.

  5. En la salida, en la columna Campos adicionales , seleccione Mostrar más y, a continuación, busque EBPF STATUS: true.

Modo inmutable de Auditado

Para los clientes que usan auditados en modo inmutable, se requiere un reinicio después de la habilitación de eBPF para borrar las reglas de auditoría agregadas por Microsoft Defender para punto de conexión. Se trata de una limitación en el modo inmutable de auditado, que inmoviliza el archivo de reglas y prohíbe la edición o sobrescritura. Este problema se resuelve con el reinicio. Después del reinicio, ejecute el siguiente comando para comprobar si se borraron las reglas de auditoría.

% sudo auditctl -l

La salida del comando anterior no debe mostrar ninguna regla ni ninguna regla agregada por el usuario. En caso de que no se quitaran las reglas, realice los pasos siguientes para borrar el archivo de reglas de auditoría.

  1. Cambiar al modo ebpf
  2. Quitar el archivo /etc/audit/rules.d/mdatp.rules
  3. Reinicio de la máquina

Solución de problemas y diagnósticos

Puede comprobar el estado de mantenimiento del agente ejecutando el mdatp comando health. Asegúrese de que el sensor de eBPF para Defender para punto de conexión en Linux sea compatible comprobando la versión actual del kernel mediante la siguiente línea de comandos:

uname -a

Problemas conocidos

  1. La habilitación de eBPF en la versión 8.1 de RHEL con SAP puede provocar un pánico en el kernel. Para mitigar este problema, puede realizar uno de los pasos siguientes:

    • Use una versión de distribución superior a RHEL 8.1.
    • Cambie al modo auditado si necesita usar la versión RHEL 8.1.
  2. Con Oracle Linux 8.8 con la versión 5.15.0-0.30.20.el8uek.x86_64 del kernel, la versión 5.15.0-0.30.20.1.el8uek.x86_64 podría provocar el pánico del kernel. Para mitigar este problema, puede realizar uno de los pasos siguientes:

    • Use una versión del kernel superior o inferior a 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 en Oracle Linux 8.8 si desea usar eBPF como proveedor de subsistemas complementarios. Tenga en cuenta que la versión mínima del kernel para Oracle Linux es RHCK 3.10.0 y Oracle Linux UEK es 5.4.
    • Cambie al modo auditado si necesita usar la misma versión del kernel.
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Los dos conjuntos de datos siguientes ayudan a analizar posibles problemas y a determinar las opciones de resolución más eficaces.

  1. Recopile un paquete de diagnóstico de la herramienta del analizador de cliente mediante las siguientes instrucciones: Solución de problemas de rendimiento para Microsoft Defender para punto de conexión en Linux.

  2. Recopile un paquete de diagnóstico de depuración cuando Defender for Endpoint usa recursos elevados mediante las siguientes instrucciones: Microsoft Defender para punto de conexión en recursos de Linux.

Solución de problemas de rendimiento

Si ve un aumento en el consumo de recursos por Microsoft Defender en los puntos de conexión, es importante identificar el proceso, el punto de montaje o los archivos que consumen la mayoría del uso de CPU/memoria y, a continuación, aplicar las exclusiones necesarias. Después de aplicar posibles exclusiones de AV, si wdavdaemon (proceso primario) sigue consumiendo los recursos, use el comando ebpf-statistics para obtener el recuento de llamadas del sistema superior:

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

En la salida anterior, puede ver que stress-ng es el proceso superior que genera un gran número de eventos y puede dar lugar a problemas de rendimiento. Lo más probable es que stress-ng genere la llamada del sistema con el identificador 82. Puede crear un vale con Microsoft para que este proceso se excluya. En el futuro, como parte de las próximas mejoras, tendrá más control para aplicar dichas exclusiones al final.

Las exclusiones aplicadas a auditadas no se pueden migrar ni copiar a eBPF. Las preocupaciones comunes, como los registros ruidosos, el pánico del kernel y las llamadas syscall ruidosos, ya están a cargo de eBPF internamente. En caso de que quiera agregar más exclusiones, póngase en contacto con Microsoft para que se apliquen las exclusiones necesarias.

Consulte también