Compartilhar via


Personalizar a proteção de exploração

Aplica-se a:

Deseja experimentar o Defender para Ponto de Extremidade? Inscreva-se para uma avaliação gratuita.

A proteção de exploração aplica automaticamente uma série de técnicas de mitigação de exploração nos processos do sistema operacional e aplicativos individuais.

Defina essas configurações usando o aplicativo Segurança do Windows em um dispositivo individual. Em seguida, exporte a configuração como um arquivo XML para que você possa implantar em outros dispositivos. Use a Política de Grupo para distribuir o arquivo XML para vários dispositivos ao mesmo tempo. Você também pode configurar as mitigações com o PowerShell.

Este artigo lista todas as mitigações disponíveis no Exploit Protection. Ele indica se a mitigação pode ser aplicada no sistema ou nos aplicativos individuais e fornece uma breve descrição de como a mitigação funciona.

Ele também descreve como habilitar ou configurar as mitigações usando os provedores de serviços de configuração Segurança do Windows, PowerShell (CSPs) e o gerenciamento de dispositivo móvel (MDM). Essa é a primeira etapa na criação de uma configuração que você pode implantar na sua rede. A próxima etapa envolve geração, exportação, importação e implantação da configuração em vários dispositivos.

Aviso

Algumas tecnologias de atenuação de segurança podem ter problemas de compatibilidade com alguns aplicativos. Você deve testar a proteção contra abusos em todos os cenários de uso de destino usando o modo de auditoria antes de implantar a configuração em um ambiente de produção ou no resto da sua rede.

Mitigações de proteção de exploração

Todas as mitigações podem ser configuradas nos aplicativos individuais. Algumas mitigações também podem ser aplicadas no nível do sistema operacional.

Você pode definir todas as mitigações como ativado, desativado ou com seu valor padrão. Algumas mitigações têm opções adicionais indicadas na descrição na tabela.

Os valores padrão são sempre especificados entre colchetes na opção Usar padrão em cada mitigação. No exemplo a seguir, o padrão da Prevenção de Execução de Dados é "Ativado".

A configuração Usar padrão das configurações de mitigação indica nossa recomendação de um nível base de proteção para uso diário dos usuários domésticos. As implantações corporativas devem considerar a proteção necessária das suas necessidades individuais, e talvez precisem modificar a configuração fora dos padrões.

Quanto aos cmdlets do PowerShell associados às mitigações, consulte a Tabela de referência do PowerShell na parte inferior deste artigo.

Atenuação Descrição Pode ser aplicado a Modo de Auditoria disponível
Proteção de fluxo de controle (CFG) Garante a integridade do fluxo de controle em chamadas indiretas. Opcionalmente, pode suprimir as exportações e usar CFG estrito. Sistema e nível do aplicativo Não
Prevenção de Execução de Dados (DEP) Impede que o código seja executado das páginas de memória somente de dados, como heap e pilhas. Configurável só para aplicativos de 32 bits (x86), permanentemente habilitado para todas as outras arquiteturas. Opcionalmente, é possível habilitar a emulação de conversão de ATL. Sistema e nível do aplicativo Não
Forçar a aleatorização para imagens (ASLR obrigatória) Realoca à força imagens não compiladas com /DYNAMICBASE. Opcionalmente, pode ocorrer um erro durante o carregamento de imagens que não possui informações de realocação. Sistema e nível do aplicativo Não
Tornar aleatória as alocações de memória (ASLR de baixo para cima) Randomiza locais para alocações de memória virtual. Ele inclui heaps, pilhas, TEBs e PEBs da estrutura do sistema. Opcionalmente, pode usar uma variação de randomização mais ampla nos processos de 64 bits. Sistema e nível do aplicativo Não
Validar as correntes de exceção (SEHOP) Garante a integridade de uma cadeia de exceção durante a expedição da exceção. Configurável somente para aplicativos de 32 bits (x86). Sistema e nível do aplicativo Não
Validar integridade da pilha Encerra um processo quando a corrupção de heap é detectada. Sistema e nível do aplicativo Não
Proteção de código arbitrário (ACG) Impede a introdução do código executável sem suporte de imagem e impede que páginas de código sejam modificadas. Opcionalmente, pode permitir a recusa do thread e permitir o downgrade remoto (configurável somente com o PowerShell). Somente no nível do aplicativo Sim
Bloquear imagens de baixa integridade Impede o carregamento de imagens marcadas com Baixa Integridade. Somente no nível do aplicativo Sim
Bloquear imagens remotas Impede o carregamento de imagens de dispositivos remotos. Somente no nível do aplicativo Não
Bloquear fontes não confiáveis Impede o carregamento de fontes baseadas em GDI não instaladas no diretório das fontes do sistema, principalmente fontes da Web. Somente no nível do aplicativo Sim
Proteção da integridade do código Restringe o carregamento de imagens assinadas pela Microsoft, WHQL ou superior. Opcionalmente, pode permitir imagens assinadas pelo Microsoft Store. Somente no nível do aplicativo Sim
Desabilitar os pontos de extensão Desabilita vários mecanismos de extensibilidade que permitem a injeção de DLL nos processos, como DLLs appInit, ganchos de janela e provedores de serviços Winsock. Somente no nível do aplicativo Não
Desabilitar chamadas do sistema Win32k Impede que um aplicativo use a tabela de chamadas do sistema Win32k. Somente no nível do aplicativo Sim
Não permitir processos filho Impede que um aplicativo crie processos filho. Somente no nível do aplicativo Sim
Filtragem de endereços de exportação (EAF) Detecta operações perigosas sendo resolvidas por código mal-intencionado. Opcionalmente, pode validar o acesso por módulos comumente usados por explorações. Somente no nível do aplicativo Sim
Filtragem de endereços de importação (IAF) Detecta operações perigosas sendo resolvidas por código mal-intencionado. Somente no nível do aplicativo Sim
Simular a execução (SimExec) Garante que as chamadas para APIs confidenciais retornem aos chamadores legítimos. Configurável somente para aplicativos de 32 bits (x86). Não é compatível com ACG. Somente no nível do aplicativo Sim
Validar a invocação da API (CallerCheck) Garante que as APIs confidenciais sejam invocadas pelos chamadores legítimos. Configurável somente para aplicativos de 32 bits (x86). Não é compatível com ACG Somente no nível do aplicativo Sim
Validar o uso do identificador Faz com que uma exceção seja gerada nas referências de identificador inválidas. Somente no nível do aplicativo Não
Validar a integridade da dependência da imagem Impõe a assinatura do código no carregamento de dependência de imagem do Windows. Somente no nível do aplicativo Não
Validar a integridade da pilha (StackPivot) Garante que a pilha não tenha sido redirecionada às APIs confidenciais. Não é compatível com ACG. Somente no nível do aplicativo Sim

Importante

Se você adicionar um aplicativo à seção Configuração de programas e definir as configurações individuais de mitigação, elas serão respeitadas acima da configuração para as mesmas mitigações especificadas na seção Configuração do sistema. A matriz e os exemplos a seguir ajudam a ilustrar como os padrões funcionam:

Habilitado em Configurações do programa Habilitado em Configurações do sistema Comportamento
Sim Não Conforme definido em Configurações do programa
Sim Sim Conforme definido em Configurações do programa
Não Sim Conforme definido em Configurações do sistema
Não Não Padrão conforme definido na opção Uso padrão
  • Exemplo 1Mikael configura a Prevenção de Execução de Dados (DEP) na seção Configurações do sistema a ser Desativada por padrão. Depois. Mikael adiciona o aplicativo test.exe à seção Configurações do programa. Nas opções desse aplicativo, na Prevenção de Execução de Dados (DEP), ele ativa a opção Substituir as configurações do sistema e altera a opção para Ativada. Não há outros aplicativos listados na seção Configurações do programa. O resultado será que o DEP só será habilitado para test.exe. Todos os outros aplicativos não terão o DEP aplicado.

  • Exemplo 2 Josie configura a Prevenção de Execução de Dados (DEP) na seção Configurações do sistema a ser Desativada por padrão. Josie adiciona o aplicativo test.exe à seção de Configurações do programa. Nas opções desse aplicativo, na Prevenção de Execução de Dados (DEP), ela habilita a opção Recuperar as configurações do sistema e define a opção para Ativada. Pedro também adiciona o aplicativo miles.exe à seção de Configuração do aplicativo e configura a Guarda de fluxo de controla (GFC) para Ativado. Ela não ativa a opção Substituir as configurações do sistema da DEP ou outras mitigações desse aplicativo. O resultado será que a DEP só será habilitado para test.exe. O DEP não será habilitado para nenhum outro aplicativo, incluindo miles.exe. O CFG será habilitado para miles.exe.

Observação

Se você tiver encontrado problemas neste artigo, poderá denunciá-lo diretamente a um parceiro cliente do Windows Server/Windows ou usar os números de suporte técnico da Microsoft para seu país/região.

Configurar as mitigações no nível do sistema com o aplicativo Segurança do Windows

  1. Abra o aplicativo Segurança do Windows selecionando o ícone de escudo na barra de tarefas ou pesquisando o menu Iniciar para Segurança do Windows.

  2. Selecione o bloco Controle e navegador da Web (ou o ícone na barra de menu a esquerda) e então selecione Explorar proteção.

  3. Na seção Configurações do sistema, localize a mitigação que você quer definir e especifique uma das configurações a seguir. Os aplicativos que não estão configurados individualmente na seção Configurações do programa usam as configurações definidas aqui:

    • Ativado por padrão - A mitigação está ativada para os aplicativos que não têm essa mitigação definida na seção específica Configurações do programa
    • Desativado por padrão - A mitigação está desabilitada para os aplicativos que não têm essa mitigação definida na seção específica Configurações do programa
    • Uso padrão - A mitigação está tanto habilitada quanto desabilitada, dependendo da configuração padrão configurada na instalação do Windows 10 ou Windows 11; o valor padrão (Ativado ou Desativado) está sempre especificado próximo ao rótulo Uso padrão de cada atenuação

    Observação

    Você pode ver a janela Controle da Conta do Usuário ao alterar algumas configurações. Insira as credenciais de administrador para aplicar a configuração.

    Alterar algumas configurações pode exigir a reinicialização.

  4. Repita isso em todas as mitigações no nível do sistema que você quer configurar.

  5. Acesse a seção Configurações do programa e escolha o aplicativo ao qual você quer aplicar mitigações:

    1. Se o aplicativo que você quer configurar já estiver listado, escolha-o e selecione Editar
    2. Se o aplicativo não estiver listado, na parte superior da lista, selecione Adicionar o programa a ser personalizado e escolha como você quer adicionar o aplicativo:
      • Use Adicione pelo nome do programa para que a mitigação seja aplicada a qualquer processo em execução com esse nome. Especifique um arquivo com uma extensão. Você pode inserir um caminho completo para limitar a mitigação apenas ao aplicativo com esse nome nesse local.
      • Use Escolha o caminho exato do arquivo para usar uma janela padrão do seletor de arquivos Windows Explorer para localizar e selecionar o arquivo desejado.
  6. Depois de selecionar o aplicativo, você verá uma lista de todas as mitigações que podem ser aplicadas. Para habilitar a mitigação, marque a caixa de seleção e altere o controle deslizante para Ativado. Selecione as opções adicionais. Escolher Auditoria aplicará a mitigação somente no modo de auditoria. Você será notificado se precisar reiniciar o processo ou o aplicativo ou se precisar reiniciar o Windows.

  7. Repita essas etapas em todos os aplicativos e mitigações que você quer configurar. Selecione Aplicar quando terminar de configurar sua configuração.

Você já pode exportar essas configurações como um arquivo XML ou continuar a configurar as mitigações específicas do aplicativo.

Exportar a configuração como um arquivo XML permite que você copie a configuração de um dispositivo para outros dispositivos.

Referência do PowerShell

Você pode usar o aplicativo de Segurança do Windows para configurar o Exploit Protection ou usar os cmdlets do PowerShell.

As definições de configuração que foram modificadas mais recentemente sempre serão aplicadas, independentemente de você usar o PowerShell ou a Segurança do Windows. Isso significa que, se você usar o aplicativo para configurar uma mitigação e usar o PowerShell para configurar a mesma mitigação, o aplicativo será atualizado para mostrar as alterações que você fez com o PowerShell. Se você usar o aplicativo para alterar a mitigação novamente, essa alteração será aplicada.

Importante

Todas as alterações implantadas em um dispositivo pela Política de Grupo substituirão a configuração local. Ao definir uma configuração inicial, use um dispositivo que não terá uma configuração Política de Grupo aplicada para garantir que suas alterações não sejam substituídas.

Você pode usar o verbo do PowerShell Get ou Set com o cmdlet ProcessMitigation. Usar Get listará o status de configuração atual de quaisquer mitigações que foram habilitadas no dispositivo – adicione o cmdlet -Name e o app exe para ver mitigações apenas para esse aplicativo:

Get-ProcessMitigation -Name processName.exe

Importante

Mitigações no nível do sistema que não foram configuradas mostrarão um status de NOTSET.

Para configurações no nível do sistema, NOTSET indica que a configuração padrão para essa mitigação foi aplicada.

Para configurações no nível do aplicativo, NOTSET indica que a configuração no nível do sistema para a mitigação será aplicada.

A configuração padrão para cada mitigação no nível do sistema pode ser vista no Segurança do Windows.

Use Set para configurar cada mitigação no seguinte formato:

Set-ProcessMitigation -<scope> <app executable> -<action> <mitigation or options>,<mitigation or options>,<mitigation or options>

Onde:

  • <Escopo>:
    • -Name para indicar que as mitigações devem ser aplicadas a um aplicativo específico. Especifique o executável do aplicativo após esse sinalizador.
    • -System para indicar que a mitigação deve ser aplicada no nível do sistema
  • <Ação>:
    • -Enable para habilitar a mitigação
    • -Disable para desabilitar a mitigação
  • <Mitigação>:
    • O cmdlet da mitigação, conforme definido na tabela cmdlets de mitigação abaixo, juntamente com subopções (entre espaços). Cada mitigação está separada por uma vírgula.

Por exemplo, para habilitar a mitigação de Prevenção de Execução de Dados (DEP) com emulação de conversão de ATL e para um executável chamado testing.exe na pasta C:\Apps\LOB\tests, e para impedir que esse executável crie processos filho, você usaria o seguinte comando:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable DEP, EmulateAtlThunks, DisallowChildProcessCreation

Importante

Separe cada opção de mitigação por vírgulas.

Se você quisesse aplicar o DEP no nível do sistema, usaria o seguinte comando:

Set-Processmitigation -System -Enable DEP

Para desabilitar mitigações, você pode substituir -Enable por -Disable. Entretanto, quanto às mitigações no nível do aplicativo, essa ação forçará a mitigação a ser desabilitada apenas nesse aplicativo.

Se precisar restaurar a mitigação de volta para o padrão do sistema, você precisará incluir o -Remove cmdlet também, como no exemplo a seguir:

Set-Processmitigation -Name test.exe -Remove -Disable DEP

Você também pode definir as mitigações como modo de resposta. Em vez de usar o cmdlet do PowerShell na mitigação, use o cmdlet Modo de Auditoria, conforme especificado na tabela cmdlets de mitigação abaixo.

Por exemplo, para habilitar Proteção de Código Arbitrário (ACG) no modo de auditoria do testing.exe usado anteriormente, use o seguinte comando:

Set-ProcessMitigation -Name c:\apps\lob\tests\testing.exe -Enable AuditDynamicCode

Você pode desabilitar o modo de auditoria usando o mesmo comando, mas substituindo -Enable por -Disable.

Tabela de referência do PowerShell

Essa tabela lista os cmdlets do PowerShell (e o cmdlet de modo de auditoria associado) que podem ser usados para configurar as mitigações.

Atenuação Aplicável a Cmdlets do PowerShell Cmdlet do Modo de Auditoria
Proteção de fluxo de controle (CFG) Sistema e nível do aplicativo CFG, StrictCFG, SuppressExports Auditoria não disponível
Prevenção de Execução de Dados (DEP) Sistema e nível do aplicativo DEP, EmulateAtlThunks Auditoria não disponível
Forçar a aleatorização para imagens (ASLR obrigatória) Sistema e nível do aplicativo ForceRelocateImages Auditoria não disponível
Tornar aleatória as alocações de memória (ASLR de baixo para cima) Sistema e nível do aplicativo BottomUp, HighEntropy Auditoria não disponível
Validar as correntes de exceção (SEHOP) Sistema e nível do aplicativo SEHOP, SEHOPTelemetry Auditoria não disponível
Validar integridade da pilha Sistema e nível do aplicativo TerminateOnError Auditoria não disponível
Proteção de código arbitrário (ACG) Somente no nível do aplicativo DynamicCode AuditDynamicCode
Bloquear imagens de baixa integridade Somente no nível do aplicativo BlockLowLabel AuditImageLoad
Bloquear imagens remotas Somente no nível do aplicativo BlockRemoteImages Auditoria não disponível
Bloquear fontes não confiáveis Somente no nível do aplicativo DisableNonSystemFonts AuditFont, FontAuditOnly
Proteção da integridade do código Somente no nível do aplicativo BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Desabilitar os pontos de extensão Somente no nível do aplicativo ExtensionPoint Auditoria não disponível
Desabilitar chamadas do sistema Win32k Somente no nível do aplicativo DisableWin32kSystemCalls AuditSystemCall
Não permitir processos filho Somente no nível do aplicativo DisallowChildProcessCreation AuditChildProcess
Filtragem de endereços de exportação (EAF) Somente no nível do aplicativo EnableExportAddressFilterPlus, EnableExportAddressFilter [1] Auditoria não disponível[2]
Filtragem de endereços de importação (IAF) Somente no nível do aplicativo EnableImportAddressFilter Auditoria não disponível[2]
Simular a execução (SimExec) Somente no nível do aplicativo EnableRopSimExec Auditoria não disponível[2]
Validar a invocação da API (CallerCheck) Somente no nível do aplicativo EnableRopCallerCheck Auditoria não disponível[2]
Validar o uso do identificador Somente no nível do aplicativo StrictHandle Auditoria não disponível
Validar a integridade da dependência da imagem Somente no nível do aplicativo EnforceModuleDepencySigning Auditoria não disponível
Validar a integridade da pilha (StackPivot) Somente no nível do aplicativo EnableRopStackPivot Auditoria não disponível[2]

[1]: Use o seguinte formato para habilitar módulos EAF para dlls para um processo:

Set-ProcessMitigation -Name processName.exe -Enable EnableExportAddressFilterPlus -EAFModules dllName1.dll,dllName2.dll

[2]: A auditoria para essa mitigação não está disponível por meio de cmdlets do PowerShell.

Personalizar a notificação

Para obter mais informações sobre como personalizar a notificação quando uma regra é disparada e um aplicativo ou arquivo é bloqueado, consulte Segurança do Windows.

Confira também

Dica

Você deseja aprender mais? Engage com a comunidade de Segurança da Microsoft em nossa Comunidade Tecnológica: Microsoft Defender para Ponto de Extremidade Tech Community.