Compartilhar via


Usar sensor baseado em eBPF para Microsoft Defender para Ponto de Extremidade no Linux

Aplica-se a:

O eBPF (Filtro de Pacote de Berkeley) estendido para Microsoft Defender para Ponto de Extremidade no Linux fornece dados de eventos suplementares para sistemas operacionais Linux. O eBPF pode ser usado como uma tecnologia alternativa a ser auditada porque o eBPF ajuda a resolver várias classes de problemas vistos com o provedor de eventos auditado e é benéfico nas áreas de desempenho e estabilidade do sistema.

Os principais benefícios incluem:

  • Redução do ruído de log relacionado a auditorias em todo o sistema
  • Regras de evento otimizadas em todo o sistema, caso contrário, causam conflito entre aplicativos
  • Sobrecarga reduzida para o monitoramento de evento de arquivo (leitura/abertura de arquivo)
  • Taxa de evento aprimorada e volume de memória reduzido
  • Desempenho otimizado para configurações específicas

Como o eBPF funciona

Com o eBPF, os eventos obtidos anteriormente do provedor de eventos auditado agora fluem do sensor eBPF. Isso ajuda na estabilidade do sistema, melhora a utilização da CPU e da memória e reduz o uso de disco. Além disso, quando o eBPF está habilitado, todas as regras personalizadas relacionadas à auditoria são eliminadas, o que ajuda a reduzir a possibilidade de conflitos entre aplicativos. Os dados relacionados ao eBPF são registrados no arquivo /var/log/microsoft/mdatp/microsoft_defender_core.log.

Além disso, o sensor eBPF usa recursos do kernel do Linux sem exigir o uso de um módulo do kernel que ajuda a aumentar a estabilidade do sistema.

Observação

O eBPF é usado em conjunto com auditado, enquanto auditado é usado apenas para eventos de logon do usuário e captura esses eventos sem regras personalizadas e os flui automaticamente. Lembre-se de que a auditoria será removida gradualmente em versões futuras.

Pré-requisitos do sistema

O sensor eBPF para Microsoft Defender para Ponto de Extremidade no Linux tem suporte nas seguintes versões mínimas de distribuição e kernel:

Distribuição linux Versão de distribuição Versão do 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

Observação

O Oracle Linux 8.8 com kernel versão 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 resultará na trava do kernel quando o eBPF estiver habilitado como provedor de subsistema suplementar. Essa versão do kernel não deve ser usada para o modo eBPF. Consulte a seção Solução de problemas e diagnóstico para as etapas de mitigação.

Usar eBPF

O sensor eBPF é habilitado automaticamente para todos os clientes por padrão para versões do agente "101.23082.0006" e superiores. Os clientes precisam atualizar para as versões com suporte acima mencionadas para experimentar o recurso. Quando o sensor eBPF está habilitado em um ponto de extremidade, o Defender para Ponto de Extremidade no Linux atualiza supplementary_events_subsystem para ebpf.

Realce do subsistema ebpf no comando mdatp health

Caso queira desabilitar manualmente o eBPF, você poderá executar o seguinte comando:

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

Você também pode atualizar o arquivo mdatp_managed.json:

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

Consulte o link para o arquivo json de exemplo detalhado – Defina preferências para Microsoft Defender para Ponto de Extremidade no Linux.

Importante

Se você desabilitar o eBPF, o provedor de eventos suplementar retornará para auditado. Caso o eBPF não fique habilitado ou não tenha suporte em nenhum kernel específico, ele retornará automaticamente para auditado e manterá todas as regras personalizadas auditadas.

Você também pode marcar o status do eBPF (habilitado/desabilitado) em seus pontos de extremidade linux usando a caça avançada no Portal do Microsoft Defender. As etapas são as seguintes:

  1. Acesse o portal do Microsoft Defender e entre.

  2. No painel de navegação, acesse Caça>avançada à caça.

  3. Em Busca avançada, acesse Gerenciamento de Vulnerabilidades do Defender.

  4. Execute a seguinte consulta: DeviceTvmInfoGathering.

  5. Na saída, na coluna Campos adicionais , selecione Mostrar mais e procure EBPF STATUS: true.

Modo imutável de Auditd

Para clientes que usam auditado no modo imutável, uma reinicialização é necessária após a habilitação do eBPF para limpar as regras de auditoria adicionadas pelo Microsoft Defender para Ponto de Extremidade. Essa é uma limitação no modo imutável de auditado, que congela o arquivo de regras e proíbe a edição/substituição. Esse problema é resolvido com a reinicialização. Após a reinicialização, execute o comando abaixo para marcar se as regras de auditoria forem desmarcadas.

% sudo auditctl -l

A saída do comando acima não deve mostrar regras ou regras adicionadas pelo usuário. Caso as regras não tenham sido removidas, execute as etapas a seguir para limpar o arquivo de regras de auditoria.

  1. Alternar para o modo ebpf
  2. Remover o arquivo /etc/audit/rules.d/mdatp.rules
  3. Reinicializar o computador

Solução de problemas e diagnóstico

Você pode marcar a status de integridade do agente executando o comando de integridademdatp. Verifique se o sensor eBPF do Defender para Ponto de Extremidade no Linux tem suporte verificando a versão atual do kernel usando a seguinte linha de comando:

uname -a

Problemas Conhecidos

  1. Habilitar o eBPF na versão do RHEL 8.1 com o SAP pode resultar em pânico no kernel. Para atenuar esse problema, você pode tomar uma das seguintes etapas:

    • Use uma versão de distro maior que RHEL 8.1.
    • Alterne para o modo auditado se precisar usar a versão do RHEL 8.1.
  2. Usar o Oracle Linux 8.8 com o kernel versão 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 pode resultar em pânico no kernel. Para atenuar esse problema, você pode tomar uma das seguintes etapas:

    • Use uma versão do kernel superior ou inferior a 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 no Oracle Linux 8.8 se quiser usar o eBPF como provedor de subsistema suplementar. Observe que a versão mínima do kernel para Oracle Linux é RHCK 3.10.0 e Oracle Linux UEK é 5.4.
    • Alternar para o modo auditado se precisar usar a mesma versão do kernel
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Os dois conjuntos de dados a seguir ajudam a analisar possíveis problemas e determinar as opções de resolução mais eficazes.

  1. Colete um pacote de diagnóstico da ferramenta de analisador de cliente usando as seguintes instruções: Solucionar problemas de desempenho para Microsoft Defender para Ponto de Extremidade no Linux.

  2. Colete um pacote de diagnóstico de depuração quando o Defender para Ponto de Extremidade estiver utilizando recursos elevados usando as seguintes instruções: Microsoft Defender para Ponto de Extremidade nos recursos do Linux.

Solução de problemas de desempenho

Se você vir um aumento no consumo de recursos Microsoft Defender em seus pontos de extremidade, é importante identificar o processo/ponto de montagem/arquivos que está consumindo a maior parte da utilização da CPU/Memória e, em seguida, aplicar as exclusões necessárias. Depois de aplicar possíveis exclusões de AV, se wdavdaemon (processo pai) ainda estiver consumindo os recursos, use o comando ebpf-statistics para obter a contagem de chamadas do 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

Na saída acima, você pode ver que o stress-ng é o processo superior que gera um grande número de eventos e pode resultar em problemas de desempenho. O mais provável é que o stress-ng esteja gerando a chamada do sistema com a ID 82. Você pode criar um tíquete com a Microsoft para excluir esse processo. No futuro, como parte dos próximos aprimoramentos, você tem mais controle para aplicar essas exclusões no final.

As exclusões aplicadas a auditadas não podem ser migradas ou copiadas para o eBPF. Preocupações comuns, como logs barulhentos, pânico do kernel, chamadas barulhentas já são atendidas pelo eBPF internamente. Caso deseje adicionar quaisquer exclusões adicionais, entre em contato com a Microsoft para obter as exclusões necessárias aplicadas.

Confira também