Share via


Diretrizes sobre como criar políticas de negação do WDAC

Com Windows Defender Controle de Aplicativo (WDAC), você pode criar políticas para negar explicitamente drivers e aplicativos específicos. Para criar políticas de negação de controle de aplicativo Windows Defender eficaz, você deve entender a ordem de precedência de regra que o WDAC aplica à medida que avalia arquivos em relação às políticas ativas.

Política de negação autônoma

Ao criar uma política que consiste exclusivamente em regras de negação, você deve incluir regras "Permitir Tudo" nas seções kernel e modo de usuário da política, além de suas regras de negação explícitas. As regras "Permitir Tudo" garantem que qualquer coisa não negada explicitamente por sua política tenha permissão para ser executada. Se você não adicionar regras "Permitir Tudo" a uma política somente negação, corre o risco de bloquear tudo. Esse resultado acontece porque algum código é explicitamente negado e todos os outros códigos são implicitamente negados, porque não há regras para autorizá-lo. Recomendamos usar o modelo de política AllowAll ao criar suas políticas de negação autônomas.

<FileRules>
  <Allow ID="ID_ALLOW_A_1" FriendlyName="Allow Kernel Drivers" FileName="*" />
  <Allow ID="ID_ALLOW_A_2" FriendlyName="Allow User mode components" FileName="*" />
</FileRules>
<SigningScenarios>
    <SigningScenario Value="131" ID="ID_SIGNINGSCENARIO_DRIVERS" FriendlyName="Kernel Mode Signing Scenario">
      <ProductSigners>
        <FileRulesRef>
          <FileRuleRef RuleID="ID_ALLOW_A_1" />
        </FileRulesRef>
      </ProductSigners>
    </SigningScenario>
    <SigningScenario Value="12" ID="ID_SIGNINGSCENARIO_WINDOWS" FriendlyName="User Mode Signing Scenario">
      <ProductSigners>
        <FileRulesRef>
          <FileRuleRef RuleID="ID_ALLOW_A_2" />
        </FileRulesRef>
      </ProductSigners>
    </SigningScenario>
</SigningScenarios>

A adição das regras anteriores de "Permitir Tudo" não afeta nenhuma outra política WDAC implantada que aplique uma lista de permissões explícita. Para ilustrar, considere o seguinte exemplo:

Policy1 é uma lista de permissões para aplicativos assinados pelo Windows e pela Microsoft.

Policy2 é nossa nova política de negação, que bloqueia MaliciousApp.exe e também o wmic.exe binário de componentes do Windows. Ele também inclui as regras "Permitir tudo".

  • MaliciousApp.exe está bloqueado, pois há uma regra de bloco explícita na Política2. Ele também é implicitamente bloqueado pela Policy1, pois não há regras de permissão que abrangem o arquivo nessa política.
  • O arquivo assinado pelo Windows wmic.exe está bloqueado, pois há uma regra de bloco explícita na Política2.
  • Todos os outros aplicativos assinados pelo Windows e pela Microsoft são permitidos, pois há uma regra de permissão explícita na Política1 e na Política2 que abrange o arquivo.
  • Todos os outros aplicativos são implicitamente negados. Por exemplo, ExampleApp.exe, não é permitido, pois é confiável apenas pela Política2 (devido às regras Permitir Tudo) e não pela Política1.

Considerações de política de permissão e negação misturadas

Se o conjunto de regras de negação for adicionado a uma política existente que inclua regras de permissão explícitas, não inclua as regras anteriores de "Permitir Tudo". Em vez disso, as regras de negação devem ser mescladas com a política WDAC existente por meio do Assistente WDAC ou usando o seguinte comando do PowerShell:

$DenyPolicy = <path_to_deny_policy>
$ExistingPolicy = <path_to_existing_policy>
Merge-CIPolicy -PolicyPaths $ DenyPolicy, $ExistingPolicy -OutputFilePath $ExistingPolicy

Práticas recomendadas

  1. Teste primeiro no modo Auditoria – como em todas as novas políticas, recomendamos implantar sua nova política de negação no Modo de Auditoria e monitorar os eventos do bloco de auditoria 3076 para garantir que apenas os aplicativos que você pretendia bloquear sejam bloqueados. Mais informações sobre o monitoramento de eventos de blocos por meio dos logs de Visualizador de Eventos e da Caça Avançada: Gerenciamento e solução de problemas Windows Defender políticas de Controle de Aplicativos

  2. Tipos de regras de negação recomendados – regras de atributo de arquivo e de sinalização são recomendadas de uma perspectiva de segurança, gerenciabilidade e desempenho. As regras de hash só devem ser usadas se necessário. Como o hash de um arquivo é alterado com qualquer alteração no arquivo, é difícil acompanhar uma política de bloco baseada em hash em que o invasor pode atualizar trivialmente o arquivo. Embora o WDAC tenha otimizado a análise das regras de hash, alguns dispositivos podem ver impactos de desempenho na avaliação de runtime se as políticas tiverem dezenas de milhares ou mais regras de hash.

Criando um tutorial de política negar

As regras e políticas de negação podem ser criadas usando os cmdlets do PowerShell ou o Assistente WDAC. Recomendamos criar regras de signatário (PCACertificate, Publisher e FilePublisher) sempre que possível. Nos casos de binários não assinados, as regras devem ser criadas em atributos do arquivo, como o nome de arquivo original ou o hash.

Regra de negação baseada em editor de software

$DenyRules += New-CIPolicyRule -Level FilePublisher -DriverFilePath <binary_to_block> -Fallback SignedVersion,Publisher,Hash -Deny

Regra de negação baseada em atributos de software

$DenyRules += New-CIPolicyRule -Level FileName -DriverFilePath <binary_to_block> -Fallback Hash -Deny

Regra de negação baseada em hash

$DenyRules += New-CIPolicyRule -Level Hash -DriverFilePath <binary_to_block> -Deny

Mesclar regras de negação com a política de modelo AllowAll

Depois de criar suas regras de negação, você pode mesclá-las com a política de modelo AllowAll:

$DenyPolicy = <path_to_deny_policy_destination>
$AllowAllPolicy = $Env:windir + "\schemas\CodeIntegrity\ExamplePolicies\AllowAll.xml"
Merge-CIPolicy -PolicyPaths $AllowAllPolicy -OutputFilePath $DenyPolicy -Rules $DenyRules
Set-CiPolicyIdInfo -FilePath $DenyPolicy -PolicyName "My Deny Policy" -ResetPolicyID

Implantar a Política de Negação

Agora você deve ter uma política de negação preparada para implantar. Consulte o Guia de Implantação do WDAC para implantar sua política em seus pontos de extremidade gerenciados.