Avaliar a proteção contra exploits

Este artigo explica como usar o modo de auditoria para avaliar mitigações de proteção contra exploits, rever diretrizes de compatibilidade, configurar definições do sistema e do programa para testes, e interpretar eventos de auditoria antes de ativar mitigações em produção.

A Proteção contra exploit ajuda a proteger os dispositivos contra software malicioso que utiliza exploits para propagar e infetar outros dispositivos. A mitigação pode ser aplicada ao sistema operativo ou a uma aplicação individual. Muitas das funcionalidades que fazem parte do Enhanced Mitigation Experience Toolkit (EMET) estão incluídas na proteção de exploração. (O EMET chegou ao fim do suporte.)

Na auditoria, pode ver como funciona a mitigação para determinadas aplicações num ambiente de teste. O modo de auditoria mostra o que aconteceria se ativasse a proteção contra exploits no seu ambiente de produção. Ao usar o modo de auditoria, pode verificar se a proteção contra exploits não afeta negativamente as suas aplicações de negócio e verificar quais eventos suspeitos ou maliciosos ocorrem.

Diretrizes gerais para avaliar a proteção contra exploits

As mitigações da proteção contra exploits funcionam a um nível baixo no sistema operativo e alguns tipos de software que executam operações de baixo nível semelhantes podem ter problemas de compatibilidade quando estão configurados para serem protegidos através da proteção contra exploits.

Que tipos de software não devem ser protegidos pela proteção contra exploits?

  • Software antimalware e de prevenção ou deteção de intrusões
  • Depuradores
  • Software que processa tecnologias de gestão de direitos digitais (DRM) (ou seja, videojogos)
  • Software que utiliza tecnologias de antidepuração, ofuscação ou interceção

Que tipo de aplicações deve considerar ativar a proteção contra exploits?

Aplicações que recebem ou processam dados não fidedignos.

Que tipo de processos estão fora do âmbito da proteção contra exploits?

Serviços

  • Serviços de sistema
  • Serviços de rede

Mitigações de proteção contra exploits ativadas por predefinição

A tabela seguinte lista as mitigações de proteção contra exploits que estão ativadas por defeito:

Mitigação Ativado por predefinição
Prevenção de Execução de Dados (DEP) Aplicações de 64 bits e 32 bits
Validar cadeias de exceção (SEHOP) Aplicações de 64 bits
Validar a integridade da heap Aplicações de 64 bits e 32 bits

Mitigações descontinuadas de "Definições do programa"

As seguintes mitigações nas definições do programa estão obsoletas. A tabela explica porque cada um foi removido:

Mitigações de "Definições do programa" Motivo
Filtragem de endereços de exportação (EAF) Problemas de compatibilidade da aplicação
Filtragem de endereços de importação (IAF) Problemas de compatibilidade da aplicação
Simular execução (SimExec) Substituído por Arbitrary Code Guard (ACG)
Validar invocação de API (CallerCheck) Substituído por Arbitrary Code Guard (ACG)
Validar a integridade da pilha (StackPivot) Substituído por Arbitrary Code Guard (ACG)

Melhores práticas de aplicações do Office

Para aplicações do escritório como Outlook, Word, Excel, PowerPoint e OneNote, use regras de redução de superfície de ataque (ASR) em vez de Proteção contra Exploits. As regras ASR fornecem uma forma mais moderna de prevenir o uso indevido destas aplicações:

Para o Adobe Reader, utilize a seguinte regra ASR:

Impedir o Adobe Reader de criar processos subordinados

O Google Chrome já não recomenda ativar o Exploit Protection (EMET) porque é redundante ou substituído por mitigações de ataques incorporadas.

Lista de compatibilidade de aplicações

A tabela seguinte lista produtos específicos que têm problemas de compatibilidade com as mitigações incluídas na proteção contra exploits. Tem de desativar mitigações incompatíveis específicas se quiser proteger o produto através da proteção contra exploits. Tenha em atenção que esta lista tem em consideração as predefinições das versões mais recentes do produto. Os problemas de compatibilidade podem ser introduzidos quando aplica determinados suplementos ou outros componentes ao software padrão.

Note

As mitigações EMET podem ser incompatíveis com a Oracle Java quando executadas usando definições que reservam uma grande parte da memória para a máquina virtual (ou seja, usando a opção -Xms).

Produto Mitigação de proteção contra exploits
.NET 2.0/3.5 EAF/IAF
Consola do 7-Zip/GUI/Gestor de Ficheiros EAF
Processadores AMD 62xx EAF
Avecto (Beyond Trust) Power Broker EAF, EAF+, Pivô da Pilha
Determinados controladores de vídeo AMD (ATI) Sistema ASLR=AlwaysOn
DropBox EAF
Excel Power Query, Power View, Power Map e PowerPivot EAF
Google Chrome (já não recomendado) EAF+
Immidio Flex+ EAF
Componentes Web do Microsoft Office (OWC) DEP do sistema=AlwaysOn
Microsoft PowerPoint EAF
Microsoft Teams EAF+
Oracle Javaǂ Heapspray
Pitney Bowes Auditoria de Impressão 6 SimExecFlow
A versão do Siebel CRM é 8.1.1.9 SEHOP
Skype EAF
SolarWinds Syslogd Manager EAF
Leitor multimédia do Windows ASLR obrigatória, EAF

ǂ As mitigações do EMET podem ser incompatíveis com o Oracle Java quando são executadas através de definições que reservam uma grande parte da memória para a máquina virtual (ou seja, através da opção -Xms).

Ativar as definições do sistema de proteção contra exploits para testes

Estas definições de sistema da Proteção contra Explorações estão ativadas por predefinição, exceto a Randomização Obrigatória da Disposição do Espaço de Endereços (ASLR) no Windows 10 e posteriores, no Windows Server 2019 e posteriores e na edição Core do Windows Server, versão 1803 e posteriores.

Definições do sistema Configuração
Proteção do Fluxo de Controlo (CFG) Utilizar predefinição (Ativado)
Prevenção de Execução de Dados (DEP) Utilizar predefinição (Ativado)
Forçar a aleatoriedade para imagens (ASRL Obrigatório) Utilizar predefinição (Desativado)
Aleatorizar alocações de memória (ASRL inferior para cima) Utilizar predefinição (Ativado)
ASRL de alta entropia Utilizar predefinição (Ativado)
Validar cadeias de exceção (SEHOP) Utilizar predefinição (Ativado)

O exemplo XML seguinte mostra a configuração padrão de mitigação do sistema:

<?xml version="1.0" encoding="UTF-8"?>
<MitigationPolicy>
  <SystemConfig>
    <DEP Enable="true" EmulateAtlThunks="false" />
    <ASLR ForceRelocateImages="false" RequireInfo="false" BottomUp="true" HighEntropy="true" />
    <ControlFlowGuard Enable="true" SuppressExports="false" />
    <SEHOP Enable="true" TelemetryOnly="false" />
    <Heap TerminateOnError="true" />
  </SystemConfig>
</MitigationPolicy>

Ativar as definições do programa exploit protection para testes

Sugestão

Recomendamos vivamente que reveja a abordagem moderna para mitigações de vulnerabilidades, que consiste em utilizar regras ASR.

Pode definir mitigações num modo de teste para programas específicos utilizando a aplicação Segurança do Windows ou o Windows PowerShell.

Aplicação Segurança do Windows

Use a aplicação Segurança do Windows para configurar mitigações de proteção contra exploits no modo de teste para um programa específico:

  1. Abrir a aplicação Segurança do Windows. Selecione o ícone de escudo na barra de tarefas ou procure a Segurança do Windowsno menu Iniciar.

  2. Selecione o mosaico Controlo de aplicações e do browser (ou o ícone da aplicação na barra de menus à esquerda) e, em seguida, selecione Proteção contra explorações.

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

    1. Se a aplicação que pretende configurar já estiver listada, selecione-a e, em seguida, selecione Editar.

    2. Se a aplicação não estiver listada na parte superior da lista, selecione Adicionar programa para personalizar. 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. Especifique 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.
  4. Depois de selecionar a aplicação, verá uma lista de todas as mitigações que podem ser aplicadas. Escolher Auditoria aplica a mitigação apenas no modo de teste. Será notificado se precisar de reiniciar o processo, a aplicação ou o Windows.

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

PowerShell

Para definir mitigações ao nível da aplicação para o modo de teste, utilize Set-ProcessMitigation com o cmdlet Modo de auditoria .

Use a seguinte Set-ProcessMitigation sintaxe para ativar ou auditar mitigações para uma aplicação específica. Substitua os marcadores de posição pelos cmdlets de escopo, executável, ação e mitigação:

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.
  • <Ação>:
    • -Enable para ativar a mitigação
      • -Disable para desativar a mitigação
  • <Mitigação>:
    • O cmdlet de mitigação, conforme definido na tabela abaixo. Cada mitigação é separada por uma vírgula.
Mitigação Cmdlet do modo de teste
Proteção de Código Arbitrário (ACG) AuditDynamicCode
Bloquear imagens de integridade baixa AuditImageLoad
Bloquear tipos de letra não fidedignos AuditFont, FontAuditOnly
Proteção de integridade do código AuditMicrosoftSigned, AuditStoreSigned
Desativar chamadas do sistema Win32k AuditSystemCall
Não permitir processos filhos AuditChildProcess

Por exemplo, o seguinte comando ativa o Arbitrary Code Guard (ACG) em modo de auditoria para uma aplicação chamada testing.exe, para que possa testar o impacto das restrições dinâmicas de código antes de as aplicar:

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

Pode desativar o modo de auditoria ao substituir -Enable por -Disable.

Ver eventos de auditoria da proteção contra explorações

Para rever quais as aplicações que seriam bloqueadas, abra Visualizador de Eventos e filtre os seguintes eventos no registo de Security-Mitigations.

Funcionalidade Fornecedor/origem ID do Evento Descrição
Proteção contra exploits Mitigações de Segurança (Modo Kernel/Modo de Utilizador) 1 Auditoria ACG
Proteção contra exploits Mitigações de Segurança (Modo Kernel/Modo de Utilizador) 3 Não permitir a auditoria de processos filho
Proteção contra exploits Mitigações de Segurança (Modo Kernel/Modo de Utilizador) 5 Bloquear auditoria de imagens de integridade baixa
Proteção contra exploits Mitigações de Segurança (Modo Kernel/Modo de Utilizador) 7 Bloquear auditoria de imagens remotas
Proteção contra exploits Mitigações de Segurança (Modo Kernel/Modo de Utilizador) 9 Desativar auditoria de chamadas do sistema win32k
Proteção contra exploits Mitigações de Segurança (Modo Kernel/Modo de Utilizador) 11 Auditoria de proteção de integridade do código