Executar Microsoft Defender Antivírus num sandbox
Aplica-se a:
- Microsoft Defender XDR
- Microsoft Defender para Endpoint Plano 2
- Microsoft Defender para Empresas
- API do Microsoft Defender para Endpoint 1
- Antivírus do Microsoft Defender
Plataformas:
- Windows
Quer experimentar o Defender para Ponto Final? Inscrever-se para uma avaliação gratuita.
Este artigo descreve como executar Microsoft Defender Antivírus num ambiente de sandbox para uma proteção melhorada contra adulteração.
Microsoft Defender Antivírus com as suas capacidades antivírus incorporadas podem ser executadas num sandbox no Windows a partir de 26 de outubro de 2018. Foi a primeira solução antivírus completa para ter esta capacidade e continua a liderar a indústria na elevação da fasquia da segurança.
Antes de começar, tem de cumprir os seguintes requisitos:
- Antivírus do Microsoft Defender (modo ativo)
- Windows 11 ou Windows 10 versão 1703 ou mais recente
- Windows Server 2022 ou Windows Server 2019 ou Windows Server 2016 ou mais recente
Os investigadores de segurança, dentro e fora da Microsoft, identificaram anteriormente formas de um atacante tirar partido de vulnerabilidades no Microsoft Defender analisadores de conteúdo do Antivírus que poderiam permitir a execução arbitrária de código. Para inspecionar todo o sistema quanto a conteúdo malicioso e artefactos, o antivírus é executado com privilégios elevados (Sistema Local, Autoridade NT\SYSTEM), tornando-o um alvo para ataques.
Enquanto o escalamento de privilégios de um sandbox é muito difícil nas versões mais recentes do Windows 10 ou mais recentes e, ao executar Microsoft Defender Antivírus num sandbox, garante que, no caso improvável de um compromisso, as ações maliciosas estão limitadas ao ambiente isolado, protegendo o resto do sistema de danos. Isto faz parte do investimento contínuo da Microsoft para se manter à frente dos atacantes através de inovações de segurança.
Os produtos antimalware modernos inspecionam muitas entradas, por exemplo, ficheiros no disco, fluxos de dados na memória e eventos comportamentais em tempo real. Muitas destas capacidades requerem acesso total aos recursos em questão. O primeiro grande esforço de sandbox estava relacionado com a colocação em camadas Microsoft Defender capacidades de inspeção do Antivírus nos componentes que têm de ser executados com privilégios completos e os componentes que podem ser em sandbox. O objetivo dos componentes em sandbox era garantir que englobavam a funcionalidade de maior risco, como analisar entradas não fidedignos, expandir contentores, etc. Ao mesmo tempo, tivemos de minimizar o número de interações entre as duas camadas para evitar um custo de desempenho substancial.
A utilização de recursos também é outro problema que requer investimentos significativos, tanto o processo privilegiado como o processo do sandbox precisam de ter acesso a atualizações de Informações de Segurança, outras deteções e metadados de remediação. Para evitar duplicações e preservar garantias de segurança fortes que sejam para evitar formas inseguras de partilhar o estado ou para introduzir um custo de runtime significativo de transmissão de dados/conteúdo entre os processos, utilizamos um modelo em que a maioria dos dados de proteção está alojada em ficheiros mapeados pela memória que são só de leitura no runtime. Isto significa que os dados de proteção podem ser alojados em vários processos sem qualquer sobrecarga.
Pode seguir estes passos para ativar o sandboxing ao definir uma variável de ambiente ao nível do computador:
Execute o seguinte comando como administrador no PowerShell ou CMD:
setx /M MP_FORCE_USE_SANDBOX 1
Reinicie o dispositivo. Depois de reiniciar, verá um novo processo para além de MsMpEng.exe que se encontra
MsMpEngCP.exe
nas seguintes pastas:Caminho Processo Descrição C:\ProgramData\Microsoft\Windows Defender\Scans MsMpEngCP.exe Processo de Conteúdo Executável do Serviço Antimalware C:\Users\All Users\Microsoft\Windows Defender\Scans MsMpEngCP.exe Processo de Conteúdo Executável do Serviço Antimalware Nota
CP em
MsMpEngCP.exe
é o processo de conteúdo.
Para desativar o sandboxing para Microsoft Defender Antivírus, execute o seguinte comando como administrador no PowerShell ou CMD:
setx /M MP_FORCE_USE_SANDBOX 0
Microsoft Defender Antivírus executa uma contingência in-proc que aloja a análise de conteúdos no processo privilegiado/principal para fornecer proteção.
Os processos de conteúdo, que são executados com privilégios baixos, também utilizam agressivamente todas as políticas de mitigação disponíveis para reduzir o ataque à superfície. Ativam e impedem alterações de runtime para técnicas modernas de mitigação de exploração, como Prevenção de Execução de Dados (DEP), Aleatoriedade do esquema de espaço de endereços (ASLR) e Proteção do Fluxo de Controlo (CFG). Também desativam as chamadas do sistema Win32K e todos os pontos de extensibilidade, bem como impõem que apenas o código assinado e fidedigno seja carregado.
Desempenho do MDAV com sandbox ativado
O desempenho é frequentemente a principal preocupação levantada em torno do sandboxing, especialmente tendo em conta que os produtos antimalware estão em muitos caminhos críticos, como a inspeção síncrona de operações de ficheiros e o processamento e agregação ou correspondência de um grande número de eventos de runtime. Para garantir que o desempenho não se degrada, tivemos de minimizar o número de interações entre o sandbox e o processo privilegiado. Ao mesmo tempo, efetue apenas estas interações em momentos-chave em que o custo não seria significativo, por exemplo, quando a E/S está a ser executada.
Microsoft Defender o Antivírus faz um esforço orquestrado para evitar E/S desnecessárias, por exemplo, minimizar a quantidade de dados lidos para cada ficheiro inspecionado é fundamental para manter um bom desempenho, especialmente em hardware mais antigo (disco rotativo, recursos remotos). Assim, foi crucial manter um modelo em que o sandbox pode pedir dados para inspeção conforme necessário, em vez de transmitir todo o conteúdo.
Fiabilidade do MDAV com sandbox ativado
Nota
Transmitir alças para o sandbox (para evitar o custo de transmissão do conteúdo real) não é uma opção porque existem muitos cenários, como inspeção em tempo real, AMSI, etc., em que não existe nenhuma alça "sharable" que possa ser utilizada pelo sandbox sem conceder privilégios significativos, o que diminui a segurança.
Outra preocupação significativa em relação ao sandboxing está relacionada com o mecanismo de comunicação entre processos para evitar potenciais problemas, como impasses e inversões prioritárias. A comunicação não deve introduzir potenciais estrangulamentos, seja ao limitar o chamador ou ao limitar o número de pedidos simultâneos que podem ser processados. Além disso, o processo do sandbox não deve acionar operações de inspeção por si só. Todas as inspeções devem ocorrer sem acionar mais análises. Isto requer o controlo total das capacidades do sandbox e garantir que não é possível acionar operações inesperadas. Os AppContainers de baixo privilégio são a forma perfeita de implementar garantias fortes, uma vez que o modelo baseado em capacidades permitirá um controlo detalhado sobre como especificar o que o processo de sandbox pode fazer.
Remediação do MDAV com sandbox ativado
Por último, um desafio significativo da perspetiva de segurança está relacionado com a remediação ou desinfecção de conteúdos. Dada a natureza sensível da ação (tentativas de restaurar um binário para o conteúdo de preinfeção original), precisávamos de garantir que isto acontece com privilégios elevados para mitigar casos em que o processo de conteúdo (sandbox) poderia ser comprometido e a desinfeção poderia ser utilizada para modificar o binário detetado de formas inesperadas.
O que fazer durante a resolução de problemas do processo de MsMpEng.CP.exe, se iniciar e parar após alguns minutos?
Recolha os registos de diagnóstico de suporte e quaisquer informações de falha de sistema/falha relevantes se existirem eventos de Relatório de Erros do Windows (WER) associados por volta do momento em que o processo para.