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

Observação

Alguns recursos do Windows Defender Application Control só estão disponíveis em versões específicas do Windows. Para obter mais informações, consulte Windows Defender disponibilidade de recursos do Controle de Aplicativo.

As políticas de WDAC (Controle de Aplicativo) assinadas Windows Defender dão às organizações o nível mais alto de proteção disponível no Windows. Essas políticas são projetadas para detectar a adulteração administrativa da política, como por meio de malware em execução como administrador, e resultarão em uma falha de inicialização ou tela azul. Com esse objetivo em mente, é muito mais difícil remover políticas de WDAC assinadas. SecureBoot deve estar habilitado para fornecer essa proteção para políticas WDAC assinadas.

Se no momento você não tiver um certificado de assinatura de código que possa usar para assinar suas políticas, consulte Obter certificados de assinatura de código para seu próprio uso.

Aviso

A falha de inicialização ou a tela azul podem ocorrer se o certificado de assinatura não seguir estas regras:

  • Todas as políticas, incluindo base e suplementar, devem ser assinadas de acordo com o PKCS 7 Standard.
  • Use apenas chaves RSA com tamanho de chave 2K, 3K ou 4K. Não há suporte para ECDSA.
  • Você pode usar SHA-256, SHA-384 ou SHA-512 como o algoritmo de digestão em Windows 11, bem como Windows 10 e Windows Server 2019 e superior após aplicar a atualização de segurança cumulativa de novembro de 2022. Todos os outros dispositivos só dão suporte ao SHA-256.
  • Não use a codificação UTF-8 para campos de certificado, como 'nome comum do assunto' e 'nome comum do emissor'. Essas cadeias de caracteres devem ser codificadas como PRINTABLE_STRING, IA5STRING ou BMPSTRING.

Antes de tentar implantar uma política assinada, primeiro você deve implantar uma versão não assinada da política para descobrir quaisquer problemas com as regras de política. Também recomendamos habilitar as opções de regra 9 – Menu Opções de Inicialização Avançadas e10 – Habilitado:Auditoria de Inicialização em 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 Set-RuleOption -FilePath <PathAndFilename> -Option 9, mesmo que não tenha certeza se a opção já está habilitada. Nesse caso, o comando não terá 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 regras de política de Controle de Aplicativo.

Observação

Ao assinar uma política base que tenha políticas suplementares existentes, você também deve mudar para a política assinada para todos os Suplementos. Autorize as políticas complementares assinadas adicionando uma <SupplementalPolicySigner> regra à política base.

Preparar sua política do WDAC para assinatura

  1. Abra uma sessão de Windows PowerShell elevada e inicialize as variáveis a serem usadas:

    $PolicyPath=$env:userprofile+"\Desktop\"
    $PolicyName="FixedWorkloadPolicy_Enforced"
    $LamnaServerPolicy=$PolicyPath+$PolicyName+".xml"
    

    Observação

    Este exemplo usa uma versão imposta da política WDAC que você criou em Criar uma política de Controle de Aplicativo Windows Defender de um artigo de computador de referência. Se você assinar outra política, atualize as variáveis $PolicyPath e $PolicyName com as informações corretas.

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

    cd $PolicyPath
    
  3. Se sua política WDAC ainda não incluir uma <UpdatePolicySigner> regra para o certificado de assinatura de política, você deverá adicioná-la. Pelo menos uma <UpdatePolicySigner> regra deve existir para converter seu XML de política com ConvertFrom-CiPolicy.

    Use Add-SignerRule e crie uma <UpdatePolicySigner> regra do arquivo de certificado (.cer). Se você comprou um certificado de assinatura de código ou emitiu um de sua própria PKI (infraestrutura de chave pública), poderá exportar o arquivo de certificado.

    Observação

    Se sua política não permitir políticas suplementares, você deve omitir a opção -Suplemento do seguinte comando:

    Add-SignerRule -FilePath $LamnaServerPolicy -CertificatePath <Path to exported .cer certificate> -Update -Supplemental
    

    Importante

    A falha na execução desta etapa deixará você incapaz de modificar ou desabilitar essa política e levará à falha de inicialização. Para obter mais informações sobre como desabilitar políticas assinadas que causam falha na inicialização, consulte Remover Windows Defender políticas de Controle de Aplicativo causando falhas de parada de inicialização.

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

    Set-RuleOption -FilePath $LamnaServerPolicy -Option 6 -Delete
    
  5. (Opcional) Use Set-CIPolicyIdInfo para redefinir a ID da política e alterar o nome da política.

  6. (Opcional) Use Set-CIPolicyVersion para alterar a política VersionEx.

    Importante

    Ao atualizar uma política assinada, o VersionEx da política atualizada deve ser maior ou igual à política atual. Substituir uma política assinada por uma versão inferior levará à falha de inicialização.

  7. Use ConvertFrom-CIPolicy para converter a política em formato binário:

    $PolicyID= Set-CIPolicyIdInfo -FilePath $LamnaServerPolicy  -ResetPolicyID
    $PolicyID = $PolicyID.Substring(11)
    $CIPolicyBin = $env:userprofile + "\Desktop\" + $PolicyID + ".cip"
    ConvertFrom-CIPolicy $LamnaServerPolicy $CIPolicyBin
    

Assinar sua política

Assinatura de política com signtool.exe

Se você comprou um certificado de assinatura de código ou emitiu um do seu próprio PKI, poderá usar SignTool.exe para assinar seus arquivos de política do WDAC:

  1. Importe o certificado de assinatura de código .pfx para o repositório pessoal do usuário no computador em que a assinatura acontecerá. 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.

  2. Assine a política do WDAC usando SignTool.exe:

    <Path to signtool.exe> sign -v -n "ContosoSigningCert" -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. ContosoSigningCert é o nome da entidade do certificado que será usado para assinar a política. Você deve importar esse certificado para o repositório de certificados pessoais no computador usado para assinar a política.

Quando concluídos, os comandos devem gerar um arquivo de política assinado com uma .p7 extensão. Você deve renomear o arquivo para onde {GUID}.cip "{GUID}" é o <PolicyId> da sua política original do WDAC XML.

Verificar e implantar a política assinada

Você pode usar certutil.exe para verificar o arquivo assinado. Examine a saída para confirmar o algoritmo de assinatura e a codificação para campos de certificado, como "nome comum do assunto" e "nome comum do emissor", conforme descrito no Aviso na parte superior deste artigo.

certutil.exe -asn <path to signed policy file>

Teste minuciosamente a política assinada em um conjunto representativo de computadores antes de prosseguir com a implantação. Reinicialize os computadores de teste pelo menos duas vezes depois de aplicar a política WDAC assinada para garantir que você não encontre uma falha de inicialização.

Depois de verificar a política assinada, implante-a usando seu método de implantação preferencial. Para obter mais informações sobre como implantar políticas, consulte Implantando Windows Defender políticas de Controle de Aplicativos.

Observação

A proteção anti-adulteração para políticas assinadas entra em vigor após a primeira reinicialização depois que a política assinada é aplicada a um computador. Essa proteção só se aplica a computadores com a Inicialização Segura UEFI habilitada.