Share via


Utilizar o sensor baseado em eBPF para Microsoft Defender para Endpoint no Linux

Aplica-se a:

O Filtro de Pacotes berkeley (eBPF) alargado para Microsoft Defender para Endpoint no Linux fornece dados suplementares de eventos para sistemas operativos Linux. O eBPF pode ser utilizado como uma tecnologia alternativa à auditoria, uma vez que o eBPF ajuda a resolver várias classes de problemas observados com o fornecedor de eventos auditados e é benéfico nas áreas de desempenho e estabilidade do sistema.

Os principais benefícios incluem:

  • Dados irrelevantes relacionados com auditorias ao nível do sistema reduzidos
  • Regras de eventos otimizadas ao nível do sistema, caso contrário, estão a causar conflitos entre aplicações
  • Sobrecarga reduzida para monitorização de eventos de ficheiros (leitura/abertura de ficheiros)
  • Melhoramento do débito da taxa de eventos e redução da quantidade de memória
  • Desempenho otimizado para configurações específicas

Como funciona o eBPF

Com o eBPF, os eventos obtidos anteriormente a partir do fornecedor de eventos auditados agora fluem do sensor eBPF. Isto ajuda na estabilidade do sistema, melhora a utilização da CPU e da memória e reduz a utilização do disco. Além disso, quando o eBPF está ativado, todas as regras personalizadas relacionadas com auditoria são eliminadas, o que ajuda a reduzir a possibilidade de conflitos entre aplicações. Os dados relacionados com o eBPF são registados no ficheiro /var/log/microsoft/mdatp/microsoft_defender_core.log.

Além disso, o sensor eBPF utiliza capacidades do kernel do Linux sem exigir a utilização de um módulo de kernel que ajude a aumentar a estabilidade do sistema.

Nota

O eBPF é utilizado em conjunto com a auditoria, enquanto a auditoria é utilizada apenas para eventos de início de sessão do utilizador e captura estes eventos sem quaisquer regras personalizadas e flui-os automaticamente. Tenha em atenção que a auditoria será gradualmente removida em versões futuras.

Pré-requisitos do sistema

O sensor eBPF para Microsoft Defender para Endpoint no Linux é suportado nas seguintes versões mínimas de distribuição e kernel:

Distribuição do 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

Nota

O Oracle Linux 8.8 com a versão de kernel 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 resultará num bloqueio de kernel quando o eBPF estiver ativado como fornecedor de subsistema suplementar. Esta versão de kernel não deve ser utilizada para o modo eBPF. Veja a secção Resolução de Problemas e Diagnóstico para obter os passos de mitigação.

Utilizar eBPF

O sensor eBPF é ativado automaticamente para todos os clientes por predefinição para as versões de agente "101.23082.0006" e superiores. Os clientes têm de atualizar para as versões suportadas acima mencionadas para experimentar a funcionalidade. Quando o sensor eBPF está ativado num ponto final, o Defender para Endpoint no Linux atualiza supplementary_events_subsystem para ebpf.

Realce do subsistema ebpf no comando mdatp health

Caso pretenda desativar manualmente o eBPF, pode executar o seguinte comando:

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

Também pode atualizar o ficheiro mdatp_managed.json:

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

Veja a ligação para obter o ficheiro json de exemplo detalhado – Definir preferências para Microsoft Defender para Endpoint no Linux.

Importante

Se desativar o eBPF, o fornecedor de eventos suplementar muda novamente para auditado. Caso o eBPF não fique ativado ou não seja suportado em nenhum kernel específico, mudará automaticamente para auditado e manterá todas as regras personalizadas auditadas.

Também pode verificar o estado do eBPF (ativado/desativado) nos pontos finais do linux através da investigação avançada no Portal do Microsoft Defender. Os passos são os seguintes:

  1. Aceda ao portal Microsoft Defender e inicie sessão.

  2. No painel de navegação, aceda a Investigação>Avançada de Investigação.

  3. Em Investigação avançada, aceda a Gestão de Vulnerabilidades do Defender.

  4. Execute a seguinte consulta: DeviceTvmInfoGathering.

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

Modo imutável auditado

Para os clientes que utilizam auditorias no modo imutável, é necessário reiniciar após a ativação do eBPF para limpar as regras de auditoria adicionadas pelo Microsoft Defender para Endpoint. Esta é uma limitação no modo imutável de auditoria, que bloqueia o ficheiro de regras e proíbe a edição/substituição. Este problema é resolvido com o reinício. Após o reinício, execute o comando abaixo para verificar se as regras de auditoria foram desmarcadas.

% sudo auditctl -l

O resultado do comando acima não deve mostrar regras nem regras adicionadas pelo utilizador. Caso as regras não foram removidas, execute os seguintes passos para limpar o ficheiro de regras de auditoria.

  1. Mudar para o modo ebpf
  2. Remover o ficheiro /etc/audit/rules.d/mdatp.rules
  3. Reiniciar o computador

Resolução de Problemas e Diagnóstico

Pode verificar o estado de funcionamento do agente ao executar o comando de mdatp estado de funcionamento. Certifique-se de que o sensor eBPF para Defender para Endpoint no Linux é suportado ao verificar a versão atual do kernel com a seguinte linha de comandos:

uname -a

Problemas Conhecidos

  1. Ativar o eBPF na versão RHEL 8.1 com SAP pode resultar em pânico no kernel. Para mitigar este problema, pode seguir um dos seguintes passos:

    • Utilize uma versão de distribuição superior ao RHEL 8.1.
    • Mude para o modo auditado se precisar de utilizar a versão RHEL 8.1.
  2. Utilizar o Oracle Linux 8.8 com a versão de kernel 5.15.0-0.30.20.el8uek.x86_64, 5.15.0-0.30.20.1.el8uek.x86_64 poderá resultar em pânico no kernel. Para mitigar este problema, pode seguir um dos seguintes passos:

    • Utilize uma versão de 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 utilizar o eBPF como fornecedor de subsistema suplementar. Tenha em atenção que a versão mínima do kernel para Oracle Linux é RHCK 3.10.0 e Oracle Linux UEK é 5.4.
    • Mudar para o modo auditado se precisar de utilizar a mesma versão do kernel
sudo mdatp config  ebpf-supplementary-event-provider  --value disabled

Os dois conjuntos de dados seguintes ajudam a analisar potenciais problemas e a determinar as opções de resolução mais eficazes.

  1. Recolha um pacote de diagnóstico da ferramenta de analisador de cliente com as seguintes instruções: Resolver problemas de desempenho de Microsoft Defender para Endpoint no Linux.

  2. Recolha um pacote de diagnóstico de depuração quando o Defender para Endpoint utiliza recursos elevados com as seguintes instruções: Microsoft Defender para Endpoint em recursos do Linux.

Resolver problemas de desempenho

Se vir um aumento no consumo de recursos ao Microsoft Defender nos pontos finais, é importante identificar o processo/ponto de montagem/ficheiros que está a consumir 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 av, se wdavdaemon (processo principal) ainda estiver a consumir os recursos, utilize o comando ebpf-statistics para obter a contagem de chamadas de 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

No resultado acima, pode ver que stress-ng é o processo principal que gera um grande número de eventos e pode resultar em problemas de desempenho. O mais provável é que o stress esteja a gerar a chamada do sistema com o ID 82. Pode criar um pedido de suporte com a Microsoft para excluir este processo. No futuro, como parte das melhorias futuras, tem mais controlo para aplicar essas exclusões no final.

As exclusões aplicadas à auditoria não podem ser migradas ou copiadas para o eBPF. Preocupações comuns, como registos ruidosos, pânico de kernel, syscalls ruidosas já são tratados internamente pelo eBPF. Caso pretenda adicionar mais exclusões, contacte a Microsoft para obter as exclusões necessárias aplicadas.

Consulte também