Personalizar a proteção contra exploits
Aplica-se a:
- API do Microsoft Defender para Endpoint 1
- Microsoft Defender para Endpoint Plano 2
- Microsoft Defender XDR
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.
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.
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.
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.
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.
Repita esta ação para todas as mitigações ao nível do sistema que pretende configurar.
Vá para a secção Definições do Programa e escolha a aplicação à qual pretende aplicar mitigações:
- Se a aplicação que pretende configurar já estiver listada, selecione-a e, em seguida, Editar
- 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.
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.
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.
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
.
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.
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.
- Proteger dispositivos contra exploits
- Ativar a proteção contra exploits
- Ativar a proteção contra exploits
- Importar, exportar e implementar configurações de proteção contra exploits
Gorjeta
Quer saber mais? Engage com a comunidade de Segurança da Microsoft na nossa Comunidade Tecnológica: Microsoft Defender para Endpoint Tech Community.