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

Nota

A partir do Defender para Endpoint no Linux, versão 101.2408.0000, o AuditD já não é suportado como fornecedor de eventos suplementar. Para mais informações, consulte Perguntas Frequentes - Transição para eBPF.

O Filtro de Pacotes Berkeley estendido (eBPF) para o Microsoft Defender para Endpoint no Linux fornece dados adicionais sobre eventos para os sistemas operativos Linux. O eBPF ajuda a resolver várias classes de problemas observados com o fornecedor de eventos AuditD e é benéfico nas áreas de desempenho e estabilidade do sistema.

Os principais benefícios incluem:

  • Redução do ruído nos registos relacionado com o AuditD em todo o sistema
  • Regras de eventos ao nível do sistema otimizadas, que de outro modo causavam conflitos entre aplicações
  • Sobrecarga reduzida para monitorização de eventos de ficheiros (leitura/abertura de ficheiros)
  • Melhoria do débito de eventos e redução da utilização 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 AuditD 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. O eBPF ajuda a reduzir a possibilidade de conflitos entre aplicações, uma vez que não são necessárias regras personalizadas. 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 de Linux sem exigir a utilização de um módulo de kernel que ajude a aumentar a estabilidade do sistema.

Pré-requisitos do sistema

O sensor eBPF requer o Defender for Endpoint na versão 101.23082.0006 do agente Linux ou posterior. Certifique-se de que o seu endpoint está atualizado para uma versão suportada do agente antes de avançar.

O sensor eBPF é suportado nas seguintes versões mínimas de distribuição e kernel:

Distribuição de 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
Rocky Linux 8 8.7 4.18.0-425
Rocky Linux 9 9.2 5.14.0-284
Alma Linux 8 8.4 4.18.0-305
Alma Linux 9 9.2 5.14.0-284

Nota

O Oracle Linux 8.8 com a versão 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. Consulte a secção de Resolução de Problemas e Diagnóstico para os passos de mitigação.

Ativar e configurar o sensor eBPF

O sensor eBPF é ativado automaticamente para todos os clientes por predefinição para versões de 101.23082.0006 agente e posteriores. Os clientes precisam de atualizar para uma versão suportada 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.

Destaque do subsistema eBPF no comando health do mdatp

Para ativar ou desativar o fornecedor de eventos suplementares eBPF, execute o seguinte comando:

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

Em alternativa, pode desativar o fornecedor de eventos suplementares eBPF definindo ebpfSupplementaryEventProvider como disabled no ficheiro mdatp_managed.json:

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

Para um ficheiro JSON de exemplo detalhado, consulte Preferências definidas para Microsoft Defender para Endpoint no Linux.

Importante

Se desativar o eBPF ou, no caso de o eBPF não ser suportado em nenhum kernel específico, o fornecedor de eventos suplementar muda para o Netlink. Todas as operações dos processos continuarão a decorrer sem interrupções, mas poderá perder eventos específicos relacionados com ficheiros e sockets que, de outro modo, seriam capturados pelo eBPF.

Também pode verificar o estado do eBPF (ativado/desativado) nos dispositivos Linux com a 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 Hunting>Investigação avançada.

  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 de AuditD

Para os clientes que utilizam AuditD 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. Este requisito constitui uma limitação do modo imutável do AuditD, que congela o ficheiro de regras e proíbe a edição/sobrescrita. Reiniciar limpa as regras de auditoria do Microsoft Defender para Endpoint que não podem ser removidas enquanto o AuditD está em modo imutável.

Após o reinício, liste as regras atuais do AuditD para confirmar que as regras de auditoria do Defender for Endpoint foram aprovadas com sucesso:

% sudo auditctl -l

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

  1. Mude para o modo eBPF.

  2. Remova o ficheiro /etc/audit/rules.d/mdatp.rules.

  3. Reinicie o computador.

Resolução de Problemas e Diagnóstico

Pode verificar o estado de saúde do agente executando o comando mdatp health. Para verificar se a versão do seu kernel cumpre os requisitos do sensor eBPF listados nos pré-requisitos do sistema, verifique a versão atual do kernel executando o seguinte comando:

uname -a

Problemas Conhecidos

Esteja atento aos seguintes problemas conhecidos ao usar o sensor eBPF no Linux:

  1. Aviso: No RHEL 8.1 com SAP, ativar o eBPF pode causar um pânico kernel. Antes de ativar o eBPF nesta configuração, siga um dos seguintes passos de mitigação:

    • Utilize uma versão de distribuição superior ao RHEL 8.1.
    • Mude para o modo AuditD 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 pode 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. A versão mínima do kernel para o Oracle Linux é RHCK 3.10.0 e Oracle Linux UEK é 5.4.

    • Mudar para o modo AuditD 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 a partir da ferramenta Analisador de Cliente, seguindo as instruções seguintes: Resolver problemas de desempenho do Microsoft Defender para Endpoint no Linux.

      2. Recolha um pacote de diagnóstico para depuração quando o Defender para Endpoint estiver a utilizar muitos recursos, seguindo as instruções seguintes: Recursos do Microsoft Defender para Endpoint no Linux.

  3. O sistema fica bloqueado no Oracle Linux 7.9 a executar o Defender para Linux quando o Ksplice é utilizado para a aplicação em tempo real de patches do kernel.

    • A instalação automática de patches do Ksplice limita-se a adicionar uma tarefa cron ao terminal.
    • Para mitigar o problema de bloqueio, pode criar uma tarefa cron que primeiro irá parar o serviço mdatp, aplicar a aplicação de patches baseada em ksplice e, em seguida, iniciar o serviço.
    • Uma vez que a aplicação de patches de kernel é de poucos segundos, a atividade não terá grande exposição em termos de segurança.

Resolver problemas de desempenho

Se verificar um aumento do consumo de recursos pelo Microsoft Defender nos seus terminais, é importante identificar o processo/ponto de montagem/ficheiros que estão a causar a maior parte da utilização de CPU/memória. Em seguida, pode aplicar as exclusões necessárias. Depois de aplicar possíveis exclusões antivírus, 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

A seguinte amostra mostra as estatísticas eBPF recolhidas ao longo de um intervalo de monitorização de 20 segundos, incluindo os principais caminhos de ficheiros, processos iniciadores e IDs de chamadas de sistema:

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 mdatp diagnostic ebpf-statistics, stress-ng é o processo que mais gera eventos e pode causar problemas de desempenho. É muito provável que o stress-ng esteja a gerar a chamada do sistema com o ID 82. Pode criar um pedido junto da Microsoft para pedir a exclusão deste processo.

As exclusões aplicadas ao AuditD não podem ser migradas ou copiadas para o eBPF. Preocupações comuns, como logs ruidosos, kernel panic e chamadas de sistema ruidosas, já são tratadas internamente pelo eBPF. Caso pretenda adicionar mais exclusões, contacte a Microsoft para obter as exclusões necessárias aplicadas.

FAQs - Transição para eBPF

1. Por que deve considerar mudar para o eBPF?

O Filtro de Pacotes Berkeley estendido (eBPF) para o Microsoft Defender para Endpoint no Linux serve como uma alternativa eficiente ao AuditD e resolve vários desafios associados ao fornecedor de eventos do AuditD, oferecendo vantagens significativas em termos de desempenho e estabilidade do sistema. Alguns dos principais benefícios incluem -

  • Desempenho: o eBPF melhora significativamente o desempenho ao reduzir a sobrecarga nos recursos do sistema em comparação com o AuditD.

  • Eficiência de Recursos: o eBPF utiliza menos recursos, o que ajuda a manter a estabilidade do sistema mesmo em condições de carga pesadas.

  • Escalabilidade: a arquitetura do eBPF é mais dimensionável, tornando-a uma escolha melhor para ambientes com cargas de trabalho crescentes ou complexas.

  • Tecnologia Moderna: o eBPF representa uma tecnologia moderna e orientada para o futuro que se alinha com futuros desenvolvimentos de kernel Linux, garantindo um melhor suporte a longo prazo.

2. Como posso continuar a utilizar o AuditD?

Se preferir continuar a utilizar o AuditD:

  • Versões Suportadas: pode permanecer no Defender para Endpoint no Linux versão 101.24072.0000, que irá suportar AuditD durante a validade da compilação, que é de aproximadamente nove meses. Isto fornece um período de transição suficiente para planear a sua mudança para o eBPF. A data de expiração pode ser verificada ao executar o comando mdatp health no servidor Linux.

  • Plano a longo prazo: embora seja uma opção permanecer na versão 101.24072.0000, recomendamos que planeie a sua transição para o eBPF dentro deste prazo, para garantir que beneficia das mais recentes melhorias de segurança e desempenho e que continue a beneficiar de suporte contínuo.

Dito isto, a nossa recomendação seria planear uma mudança para a utilização do eBPF como fornecedor principal de eventos.

3. O que acontece se o eBPF não for suportado em alguns cenários?

Nos casos em que o eBPF não é suportado:

  • Netlink Fallback: o sistema volta a utilizar o fornecedor de eventos Netlink. Enquanto o Netlink continua a capturar eventos de processo (por exemplo, exec, exit, fork, gidou tid), não suporta eventos relacionados com o sistema de ficheiros (por exemplo, rename, unlink) ou eventos de socket.

  • Impacto: as suas cargas de trabalho não serão interrompidas, mas poderá não detetar eventos específicos relacionados com ficheiros e sockets que, de outro modo, o eBPF captaria.

4. Como posso gerir exclusões com as Versões Atualizadas?

Seguem-se alguns motivos comuns para colocar exclusões para AuditD:

  • Desempenho quando uma chamada de sistema ou processo está a gerar muito ruído

  • Pânico do kernel, há ocasiões em que muitas chamadas de sistema, especificamente chamadas de sistema de rede e do sistema de ficheiros, provocaram um pânico do kernel.

  • Registos ruidosos, em que os registos de auditoria estão a utilizar o espaço em disco. O cliente colocou as exclusões para os processos ruidosos para reduzir o tamanho do registo.

Já com o eBPF, os dois primeiros casos de uso são os principais candidatos à migração. Os registos já não são um problema com o eBPF. No caso das duas primeiras utilizações, pode escolher entre as seguintes opções:

  • Contactar o suporte: contacte a Microsoft para aplicar as exclusões do back-end.

  • Exclusões Globais: nas versões atualizadas do Defender para Endpoint no Linux, as exclusões podem ser geridas com exclusões globais. As exclusões globais aplicam-se ao antivírus e ao EDR e podem ser configuradas através do json gerido atualmente. Para obter mais informações, consulte Configurar e validar exclusões do Microsoft Defender para Endpoint no Linux.

5. O que devo fazer caso existam problemas?

  • Contactar o Suporte: se encontrar problemas durante ou após a transição para o eBPF, contacte o suporte técnico para obter assistência. Estamos empenhados em garantir uma transição suave e estamos disponíveis para ajudar a resolver quaisquer desafios que possa enfrentar.

  • Canais de Suporte: pode contactar o suporte através do portal Microsoft Defender. Além disso, os nossos fóruns de base de dados de conhecimento e comunidade são recursos valiosos para resolver problemas comuns.

Para mais informações sobre resolução de problemas e gestão de recursos para Defender for Endpoint no Linux, consulte os seguintes artigos: