Personalizar a proteção contra exploits

Aplica-se a:

Quer experimentar o Defender para Ponto Final? Inscrever-se para uma avaliação gratuita.

A proteção contra exploits aplica automaticamente várias técnicas de mitigação de exploração nos processos do sistema operativo e em aplicações individuais.

Configure estas definições utilizando a aplicação Segurança do Windows num dispositivo individual. Em seguida, exporte a configuração como um ficheiro XML para que possa implementar noutros dispositivos. Utilize a Política de Grupo para distribuir o ficheiro XML por vários dispositivos ao mesmo tempo. Também pode configurar as mitigações com o PowerShell.

Este artigo lista cada uma das mitigações disponíveis na proteção contra exploits. Indica se a mitigação pode ser aplicada em todo o sistema ou a aplicações individuais e fornece uma breve descrição de como a mitigação funciona.

Também descreve como ativar ou configurar as mitigações utilizando fornecedores de serviços de configuração (CSPs) de gestão de dispositivos móveis (MDM), Segurança do Windows, PowerShell e gestão de dispositivos móveis (MDM). Este é o primeiro passo para criar uma configuração que pode implementar na sua rede. O passo seguinte envolve gerar, exportar, importar e implementar a configuração em vários dispositivos.

Aviso

Algumas tecnologias de mitigação de segurança podem ter problemas de compatibilidade com algumas aplicações. Deve testar a proteção de exploração em todos os cenários de utilização de destino utilizando o modo de auditoria antes de implementar a configuração num ambiente de produção ou no resto da sua rede.

Mitigações da proteção contra exploits

Todas as mitigações podem ser configuradas para aplicações individuais. Algumas mitigações também podem ser aplicadas ao nível do sistema operativo.

Pode definir cada uma das mitigações como ligado, desligado, ou para o valor predefinido. Algumas mitigações têm opções adicionais indicadas na descrição da tabela.

Os valores predefinido são sempre especificados entre parênteses na opção Utilizar predefinição para cada mitigação. No exemplo seguinte, a predefinição da Prevenção de Execução de Dados é "On".

A configuração Utilizar predefinição para cada uma das definições de mitigação indica a nossa recomendação para um nível base de proteção para a utilização diária para utilizadores de casa. As implementações empresariais devem considerar a proteção necessária para as suas necessidades individuais e podem ter de modificar a configuração fora das predefinições.

Para os cmdlets do PowerShell associados para cada mitigação, veja a tabela de referência do PowerShell na parte inferior deste artigo.

Mitigação Descrição Pode ser aplicado a Modo de auditoria disponível
Proteção do fluxo de controlo (CFG) Garante a integridade do fluxo de controlo de chamadas indiretas. Opcionalmente, pode suprimir exportações e utilizar CFG estrito. Ao nível do sistema e da aplicação Não
Prevenção de Execução de Dados (DEP) Impede que o código seja executado a partir de páginas de memória apenas de dados, como a heap e stacks. Apenas configurável para aplicações de 32 bits (x86), permanentemente ativadas para todas as outras arquiteturas. Opcionalmente, pode ativar a emulação thunk da ATL. Ao nível do sistema e da aplicação Não
Forçar a aleatoriedade de imagens (ASLR Obrigatório) Forçar o reposicionamento de imagens não compiladas com /DYNAMICBASE. Opcionalmente, pode falhar o carregamento de imagens que não têm informações de relocalização. Ao nível do sistema e da aplicação Não
Aleatorizar alocações de memória (ASLR ascendente) Aleatoriza localizações para alocações de memória virtual. Inclui heaps, stacks, TEBs e PEBs da estrutura do sistema. Opcionalmente, pode utilizar uma variação de aleatorização mais ampla para processos de 64 bits. Ao nível do sistema e da aplicação Não
Validar cadeias de exceção (SEHOP) Garante a integridade de uma cadeia de exceções durante a distribuição de exceções. Apenas configurável para aplicações de 32 bits (x86). Ao nível do sistema e da aplicação Não
Validar integridade da área dinâmica para dados Termina um processo quando são detetados danos na pilha. Ao nível do sistema e da aplicação Não
Proteção de código arbitrário (ACG) Impede a introdução de código executável sem suporte para imagens e impede a modificação de páginas de código. Opcionalmente, pode permitir a opção de não participar no thread e permitir a regressão remota (configurável apenas com o PowerShell). Apenas ao nível da aplicação Sim
Bloquear imagens de integridade baixa Impede o carregamento de imagens assinaladas com Integridade Baixa. Apenas ao nível da aplicação Sim
Bloquear imagens remotas Impede o carregamento de imagens a partir de dispositivos remotos. Apenas ao nível da aplicação Não
Bloquear tipos de letra não fidedignos Impede o carregamento de tipos de letra baseados em GDI não instalados no diretório de tipos de letra do sistema, particularmente tipos de letra da Web. Apenas ao nível da aplicação Sim
Proteção de integridade do código Restringe o carregamento de imagens assinadas pela Microsoft, WHQL ou superior. Opcionalmente, pode permitir imagens assinadas na Microsoft Store. Apenas ao nível da aplicação Sim
Desativar pontos de extensão Desativa vários mecanismos de extensibilidade que permitem a injeção de DLL em todos os processos, tais como DLLs AppInit, hooks de janela e fornecedores de serviços Winsock. Apenas ao nível da aplicação Não
Desativar chamadas do sistema Win32k Impede que uma aplicação use a tabela de chamada do sistema Win32k. Apenas ao nível da aplicação Sim
Não permitir processos subordinados Impede que uma aplicação crie processos subordinados. Apenas ao nível da aplicação Sim
Filtragem de endereços de exportação (EAF) Detete operações perigosas que estão a ser resolvidas por código malicioso. Opcionalmente, pode validar o acesso por módulos normalmente utilizados por exploits. Apenas ao nível da aplicação Sim
Filtragem de endereços de importação (IAF) Detete operações perigosas que estão a ser resolvidas por código malicioso. Apenas ao nível da aplicação Sim
Simular exceção (SimExec) Garante que as chamadas para APIs confidenciais regressam a autores de chamadas legítimas. Apenas configurável para aplicações de 32 bits (x86). Não compatível com ACG. Apenas ao nível da aplicação Sim
Validar invocação de API (CallerCheck) Garante que as APIs confidenciais são invocadas por autores de chamada legítimos. Apenas configurável para aplicações de 32 bits (x86). Não compatível com ACG Apenas ao nível da aplicação Sim
Validar utilização de identificador Faz com que seja criada uma exceção em quaisquer referências de identificador inválida. Apenas ao nível da aplicação Não
Validar integridade da dependência da imagem Impõe a assinatura de código para o carregamento de dependências de imagens do Windows. Apenas ao nível da aplicação Não
Validar integridade da pilha (StackPivot) Garante que o stack não foi redirecionado para APIs confidenciais. Não compatível com ACG. Apenas ao nível da aplicação Sim

Importante

Se adicionar uma aplicação à secção Definições do programa e configurar as definições de mitigação individuais, serão preservadas acima da configuração para as mesmas mitigações especificadas na secção Definições do sistema. A matriz e os exemplos seguintes ajudam a ilustrar como funcionam as predefinições:

Ativado nas Definições de programa Ativado nas Definições de sistema Comportamento
Sim Não Conforme definido nas definições de Programa
Sim Sim Conforme definido nas definições de Programa
Não Sim Conforme definido nas Definições de sistema
Não Não Predefinição, conforme definido em Utilizar predefinição
  • Exemplo 1 O Mikael configura a Prevenção de Execução de Dados (DEP) na secção Definições do sistema para estar Desligado por predefinição. O Mikael então adiciona a aplicação test.exe à secção Definições de programa. Nas opções para essa aplicação, em Prevenção de Execução de Dados (DEP), ele ativa Ignorar definições de sistema e muda o botão para a posição Ativado. Não existem outras aplicações listadas na secção Definições de programa. O resultado será que o DEP só será ativado para test.exe. Todas as outras aplicações não terão a DEP aplicada.

  • Exemplo 2 A Josie configura a Prevenção de Execução de Dados (DEP) na secção Definições do sistema para estar Desligado por predefinição. Josie então adiciona a aplicação test.exe à secção Definições de programa. Nas opções para essa aplicação, em Prevenção de Execução de Dados (DEP), ela ativa Ignorar definições de sistema e muda o botão para a posição Ativado. A Josie também adiciona a aplicação miles.exe à secção Definições de programa e configura a Proteção de fluxo de controlo (CFG) com Ativado. Ela também não ativa a opção Ignorar definições de sistema para a DEP ou quaisquer outras mitigações para essa aplicação. O resultado será que o DEP será ativado para test.exe. A DEP não será ativada para nenhuma outra aplicação, incluindo miles.exe. A configuração será ativado para miles.exe.

Nota

Se tiver encontrado problemas neste artigo, pode reportá-lo diretamente a um parceiro do Cliente Windows Server/Windows ou utilizar os números de suporte técnico da Microsoft para o seu país/região.

Configurar mitigações ao nível do sistema com a aplicação Segurança do Windows

  1. Abra a aplicação Segurança do Windows selecionando o ícone de escudo na barra de tarefas ou procurando no menu Iniciar por Segurança do Windows.

  2. Selecione o mosaico Controlo de aplicações e browsers (ou o ícone da aplicação na barra de menus à esquerda) e, em seguida, Exploit Protection.

  3. Na secção Definições do sistema, localize a mitigação que pretende configurar e, em seguida, especifique uma das seguintes definições. As aplicações que não estão configuradas individualmente na secção Definições de programa utilizam as definições configuradas aqui:

    • Ativada por predefinição - A mitigação está ativada para aplicações que não têm esta mitigação definida na secção definições do Programa específicas da aplicação
    • Desativada por predefinição - A mitigação está desativada para aplicações que não têm esta mitigação definida na secção definições do Programa específicas da aplicação
    • Utilizar predefinição - A mitigação está ativada ou desativada, dependendo da configuração predefinida configurada pela instalação do Windows 10 ou do Windows 11; o valor predefinido (Ativada ou Desativada) é sempre especificado junto à etiqueta Utilizar predefinição para cada mitigação

    Nota

    Poderá ver uma janela de Controlo de Conta de Utilizador ao alterar algumas definições. Insira as credenciais de administrador para aplicar a definição.

    Alterar algumas definições pode exigir um reinício.

  4. Repita esta ação para todas as mitigações ao nível do sistema que pretende configurar.

  5. Vá para a secção Definições do Programa e escolha a aplicação à qual pretende aplicar mitigações:

    1. Se a aplicação que pretende configurar já estiver listada, selecione-a e, em seguida, Editar
    2. Se a aplicação não estiver listada, na parte superior da lista, selecione Adicionar programa para personalizar e, em seguida, escolha como pretende adicionar a aplicação:
      • Utilize Adicionar por nome de programa para que a mitigação seja aplicada a qualquer processo em execução com esse nome. Tem de especificar um ficheiro com uma extensão. Pode introduzir um caminho completo para limitar a mitigação apenas à aplicação com esse nome nessa localização.
      • Utilize Selecionar o caminho de ficheiro exato para utilizar uma janela padrão do seletor de ficheiros do Explorador do Windows para encontrar e selecionar o ficheiro que pretende.
  6. Depois de selecionar a aplicação, verá uma lista de todas as mitigações que podem ser aplicadas. Para ativar a mitigação, selecione a caixa de verificação e, em seguida, altere o cursor de deslize para Ativado. Selecione outras opções adicionais. Selecionar Auditar aplicará a mitigação apenas no modo de auditoria. Será notificado se precisar de reiniciar o processo ou a aplicação ou se precisar de reiniciar o Windows.

  7. Repita estes passos para todas as aplicações e mitigações que pretende configurar. Selecione Aplicar quando terminar de configurar a sua configuração.

Agora, pode exportar estas definições como um ficheiro XML ou continuar a configurar mitigações específicas da aplicação.

Exportar a configuração como um ficheiro XML permite-lhe copiar a configuração de um dispositivo para outros dispositivos.

Referência do PowerShell

Pode utilizar a aplicação Segurança do Windows para configurar a Proteção contra exploit ou pode utilizar cmdlets do PowerShell.

As definições de configuração modificadas mais recentemente serão sempre aplicadas, independentemente de utilizar o PowerShell ou a Segurança do Windows. Isto significa que, se utilizar a aplicação para configurar uma mitigação, utilize o PowerShell para configurar a mesma mitigação, a aplicação será atualizada para mostrar as alterações que fez com o PowerShell. Se, em seguida, utilizar a aplicação para alterar novamente a mitigação, essa alteração seria aplicada.

Importante

Quaisquer alterações implementadas num dispositivo através da Política de Grupo substituirão a configuração local. Ao configurar uma configuração inicial, utilize um dispositivo que não tenha uma configuração de Política de Grupo aplicada para garantir que as suas alterações não são substituídos.

Pode utilizar o verbo do PowerShell Get ou Set com o cmdlet ProcessMitigation. Utilizar Get irá lista o estado de configuração atual de quaisquer mitigações que tenham sido ativadas no dispositivo - adicione o cmdlet -Name e o exe da aplicação para ver mitigações apenas para essa aplicação:

Get-ProcessMitigation -Name processName.exe

Importante

As mitigações ao nível do sistema que não tenham sido configuradas irão mostrar um estado de NOTSET.

Para as definições ao nível do sistema, NOTSET indica que a predefinição para essa mitigação foi aplicada.

Para definições ao nível da aplicação, NOTSET indica que a definição ao nível do sistema para a mitigação será aplicada.

A predefinição para cada mitigação ao nível do sistema pode ser consultada na Segurança do Windows.

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

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

Localização:

  • <Âmbito>:
    • -Name para indicar que as mitigações devem ser aplicadas a uma aplicação específica. Especifique o executável da aplicação após este sinalizador.
    • -System para indicar que a mitigação deve ser aplicada ao nível do sistema
  • <Ação>:
    • -Enable para ativar a mitigação
    • -Disable para desativar a mitigação
  • <Mitigação>:
    • O cmdlet da mitigação, conforme definido na tabela de cmdlets de mitigação abaixo, juntamente com quaisquer subopções (entre espaços). Cada mitigação é separada por uma vírgula.

Por exemplo, para ativar a mitigação de Prevenção de Execução de Dados (DEP) com a emulação de ATL thunk e para um executável chamado testing.exe na pasta C:\Apps\LOB\tests e para impedir esse executável de criar processos subordinados, utilize 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 quisesse aplicar a DEP ao nível do sistema, utilizaria o seguinte comando:

Set-Processmitigation -System -Enable DEP

Para desativar mitigações, pode substituir -Enable por -Disable. No entanto, para mitigações ao nível da aplicação, isto irá forçar a mitigação a ser desativada apenas para essa aplicação.

Se precisar de restaurar a mitigação para a predefinição do sistema, também tem de incluir o cmdlet -Remove, como no exemplo seguinte:

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

Também pode definir algumas mitigações para o modo de auditoria. Em vez de utilizar o cmdlet do PowerShell para a mitigação, utilize o cmdlet Modo de auditoria, conforme especificado na tabela de cmdlets de mitigação abaixo.

Por exemplo, para ativar o Arbitrary Code Guard (ACG) no modo de auditoria para o testing.exe utilizado anteriormente, utilizaria o seguinte comando:

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

Pode desativar o modo de auditoria utilizando o mesmo comando, mas substituindo -Enable por -Disable.

Tabela de referência do PowerShell

Esta tabela lista os cmdlets do PowerShell (e o cmdlet de modo de auditoria associado) que podem ser utilizados para configurar cada mitigação.

Mitigação Aplica-se a Cmdlets do PowerShell Cmdlet do modo de auditoria
Proteção do fluxo de controlo (CFG) Ao nível do sistema e da aplicação CFG, StrictCFG, SuppressExports Auditoria não disponível
Prevenção de Execução de Dados (DEP) Ao nível do sistema e da aplicação DEP, EmulateAtlThunks Auditoria não disponível
Forçar a aleatoriedade de imagens (ASLR Obrigatório) Ao nível do sistema e da aplicação ForceRelocateImages Auditoria não disponível
Aleatorizar alocações de memória (ASLR ascendente) Ao nível do sistema e da aplicação BottomUp, HighEntropy Auditoria não disponível
Validar cadeias de exceção (SEHOP) Ao nível do sistema e da aplicação SEHOP, SEHOPTelemetry Auditoria não disponível
Validar integridade da área dinâmica para dados Ao nível do sistema e da aplicação TerminateOnError Auditoria não disponível
Proteção de código arbitrário (ACG) Apenas ao nível da aplicação DynamicCode AuditDynamicCode
Bloquear imagens de integridade baixa Apenas ao nível da aplicação BlockLowLabel AuditImageLoad
Bloquear imagens remotas Apenas ao nível da aplicação BlockRemoteImages Auditoria não disponível
Bloquear tipos de letra não fidedignos Apenas ao nível da aplicação DisableNonSystemFonts AuditFont, FontAuditOnly
Proteção de integridade do código Apenas ao nível da aplicação BlockNonMicrosoftSigned, AllowStoreSigned AuditMicrosoftSigned, AuditStoreSigned
Desativar pontos de extensão Apenas ao nível da aplicação ExtensionPoint Auditoria não disponível
Desativar chamadas do sistema Win32k Apenas ao nível da aplicação DisableWin32kSystemCalls AuditSystemCall
Não permitir processos subordinados Apenas ao nível da aplicação DisallowChildProcessCreation AuditChildProcess
Filtragem de endereços de exportação (EAF) Apenas ao nível da aplicação EnableExportAddressFilterPlus, EnableExportAddressFilter [1] Auditoria não disponível[2]
Filtragem de endereços de importação (IAF) Apenas ao nível da aplicação EnableImportAddressFilter Auditoria não disponível[2]
Simular exceção (SimExec) Apenas ao nível da aplicação EnableRopSimExec Auditoria não disponível[2]
Validar invocação de API (CallerCheck) Apenas ao nível da aplicação EnableRopCallerCheck Auditoria não disponível[2]
Validar utilização de identificador Apenas ao nível da aplicação StrictHandle Auditoria não disponível
Validar integridade da dependência da imagem Apenas ao nível da aplicação EnforceModuleDepencySigning Auditoria não disponível
Validar integridade da pilha (StackPivot) Apenas ao nível da aplicação EnableRopStackPivot Auditoria não disponível[2]

[1]: Utilize o seguinte formato para ativar módulos EAF para dlls para um processo:

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

[2]: A auditoria para esta mitigação não está disponível através de cmdlets do PowerShell.

Personalizar a notificação

Para obter mais informações sobre como personalizar a notificação quando uma regra é acionada e bloqueia uma aplicação ou ficheiro, consulte Segurança do Windows.

Consulte também

Sugestão

Quer saber mais? Engage com a comunidade de Segurança da Microsoft na nossa Comunidade Tecnológica: Microsoft Defender para Endpoint Tech Community.