Use políticas assinadas para proteger o controle do Windows Defender Application contra violação

Aplica-se a:

  • Windows 10
  • Windows 11
  • Windows Server 2016 e mais recente

Observação

Alguns recursos do Windows Defender Application Control só estão disponíveis em versões específicas do Windows. Saiba mais sobre a disponibilidade Windows Defender recursos do Controle de Aplicativos.

As políticas Windows Defender WDAC (Controle de Aplicativos) oferecem às organizações o nível mais alto de proteção contra malware disponível no Windows— devem ser assinadas com o PKCS nº 7. Além das regras de política impostas, as políticas assinadas não podem ser modificadas ou excluídas por um usuário ou administrador no computador. Essas políticas foram projetadas para evitar a violação administrativa e o acesso de exploração do modo de kernel. Com essa ideia das políticas em mente, é muito mais difícil remover políticas do WDAC assinadas. O SecureBoot deve ser habilitado para impedir que os usuários atualizem ou removam políticas do WDAC assinadas.

Antes de assinar com o PKCS nº 7 e implantar uma política do WDAC assinada, recomendamos que você audite a política para descobrir todos os aplicativos bloqueados que devem ter permissão para execução.

Assinar políticas do WDAC usando um certificado gerado pela CA no local ou um certificado de assinatura de código comprado é simples. Se você não tiver atualmente um certificado de assinatura de código exportado no formato .pfx (contendo chaves privadas, extensões e certificados raiz), consulte Opcional: Criar um certificado de assinatura de código para o controle de aplicativo do Windows Defender para criar um com sua AC local.

Antes de assinar políticas do WDAC PKCS nº 7 pela primeira vez, habilite as opções de regra 9 ("Menu Opções de Inicialização Avançadas") e 10 ("Auditoria de Inicialização em Caso de Falha") para deixar as opções de solução de problemas disponíveis para os administradores. Para garantir que uma opção de regra esteja habilitada, você pode executar um comando como, mesmo que não tenha certeza se a Set-RuleOption -FilePath <PathAndFilename> -Option 9opção já está habilitada. Nesse caso, o comando não tem efeito. Quando estiver validada e pronta para implantação corporativa, você poderá remover essas opções. Para obter mais informações sobre opções de regra, consulte Windows Defender de política de Controle de Aplicativo.

Para assinar uma Windows Defender de Controle de Aplicativos com SignTool.exe, você precisará dos seguintes componentes:

  • SignTool.exe, encontrado no SDK do Windows (Windows 7 ou posterior)

  • O formato binário da política do WDAC que você gerou em Criar uma política de controle de aplicativo Windows Defender de um computador de referência ou outra política do WDAC que você criou

  • Um certificado de assinatura de código de CA interno ou um certificado de assinatura de código comprado

Observação

Todas as políticas (formato base e suplementar e de política única) devem ser assinadas por pkcs7. PKCS 7 Standard

Campos de certificado, como 'nome comum da entidade' e 'nome comum do emissor', não podem ser codificados em UTF-8; caso contrário, telas azuis podem ocorrer. Essas cadeias de caracteres devem ser codificadas como PRINTABLE_STRING, IA5STRING ou BMPSTRING.

Se você não tiver um certificado de assinatura de código, consulte Opcional: crie um certificado de assinatura de código para Windows Defender Application Control para obter instruções sobre como criar um. Se você Windows Defender usar um certificado alternativo ou uma política WDAC (Controle de Aplicativo), atualize as etapas a seguir com as variáveis e o certificado apropriados para que os comandos funcionem corretamente. Para assinar a política do WDAC existente, copie cada um dos seguintes comandos em uma sessão do Windows PowerShell com privilégios elevados:

  1. Inicialize as variáveis que serão usadas:

    $CIPolicyPath=$env:userprofile+"\Desktop\"
    $InitialCIPolicy=$CIPolicyPath+"InitialScan.xml"
    

    Observação

    Este exemplo usa a política do WDAC que você criou na seção Criar uma política do Windows Defender Application Control em um computador de referência. Se você estiver assinando outra política, certifique-se de atualizar a $CIPolicyPath variável com as informações corretas.

  2. Importe o certificado de assinatura de código .pfx. Importe o certificado de assinatura de código que você usará para assinar a política do WDAC no repositório pessoal do usuário de assinatura no computador que fará a assinatura. Neste exemplo, você usa o certificado que foi criado na seção Opcional: Criar um certificado de assinatura de código para o Windows Defender Application Control.

  3. Exporte o certificado de assinatura de código .cer. Depois que o certificado de assinatura de código tiver sido importado, exporte a versão .cer para a área de trabalho. Essa versão será adicionada à política de maneira que possa ser atualizada mais tarde.

  4. Navegue até a área de trabalho como o diretório de trabalho:

    cd $env:USERPROFILE\Desktop
    
  5. Use Add-SignerRule para adicionar um certificado de signatário de atualização à política do WDAC:

    Add-SignerRule -FilePath $InitialCIPolicy -CertificatePath <Path to exported .cer certificate> -Kernel -User –Update
    

    Observação

    <O caminho para o certificado .cer exportado> deve ser o caminho completo para o certificado exportado na etapa 3. Além disso, adicionar signatários de atualização é crucial para poder modificar ou desativar essa política no futuro. Para obter mais informações sobre como desabilitar políticas do WDAC assinadas, consulte Desabilitar políticas Windows Defender Controle de Aplicativos assinadas no Windows.

  6. Use Set-RuleOption para remover a opção de regra de política não assinada:

    Set-RuleOption -FilePath $InitialCIPolicy -Option 6 -Delete
    
  7. Redefina a ID da política e use ConvertFrom-CIPolicy para converter a política em formato binário:

    $PolicyID= Set-CIPolicyIdInfo -FilePath $InitialCIPolicy  -ResetPolicyID
    $PolicyID = $PolicyID.Substring(11)
    $CIPolicyBin = $env:userprofile + "\Desktop\" + $PolicyID + ".cip"
    ConvertFrom-CIPolicy $InitialCIPolicy $CIPolicyBin
    
  8. Assine (PKCS nº 7) a política do WDAC usando SignTool.exe:

     <Path to signtool.exe> sign -v /n "ContosoDGSigningCert" -p7 . -p7co 1.3.6.1.4.1.311.79.1 -fd sha256 $CIPolicyBin
    

    Observação

    A variável <Path para signtool.exe> deve ser o caminho completo para o utilitário SignTool.exe. ContosoDGSigningCert é o nome do assunto do certificado que será usado para assinar a política do WDAC. Você deve importar esse certificado para o repositório de certificados pessoais no computador usado para assinar a política.

  9. Valide o arquivo assinado. Quando concluídos, os comandos devem gerar um arquivo de política assinado chamado {PolicyID}.cip para sua área de trabalho. Você pode implantar esse arquivo da mesma maneira como implanta uma política imposta ou não imposta. Para obter informações sobre como implantar políticas do WDAC, consulte Implantar e gerenciar políticas do Windows Defender Application Control com a Política de Grupo.

Observação

O dispositivo com a política assinada deve ser reinicializado uma vez com a Inicialização Segura habilitada para que o bloqueio UEFI seja definido.