Usare i criteri firmati per proteggere Controllo di applicazioni di Windows Defender da manomissioni

Nota

Alcune funzionalità di controllo delle applicazioni Windows Defender sono disponibili solo in versioni specifiche di Windows. Per altre informazioni, vedere Windows Defender disponibilità delle funzionalità di Controllo applicazioni.

I criteri WDAC (Signed Windows Defender Application Control) offrono alle organizzazioni il massimo livello di protezione disponibile in Windows. Questi criteri sono progettati per rilevare la manomissione amministrativa dei criteri, ad esempio da parte di malware in esecuzione come amministratore, e genereranno un errore di avvio o una schermata blu. Tenendo presente questo obiettivo, è molto più difficile rimuovere i criteri WDAC firmati. SecureBoot deve essere abilitato per fornire questa protezione per i criteri WDAC firmati.

Se attualmente non si dispone di un certificato di firma del codice che è possibile usare per firmare i criteri, vedere Ottenere certificati di firma del codice per uso personale.

Warning

L'errore di avvio, o schermata blu, può verificarsi se il certificato di firma non segue queste regole:

  • Tutti i criteri, inclusi quelli di base e supplementari, devono essere firmati in base allo standard PKCS 7.
  • Usare le chiavi RSA solo con dimensioni di 2K, 3K o 4K. ECDSA non è supportato.
  • È possibile usare SHA-256, SHA-384 o SHA-512 come algoritmo di digest in Windows 11, nonché Windows 10 e Windows Server 2019 e versioni successive dopo l'applicazione dell'aggiornamento cumulativo della sicurezza di novembre 2022. Tutti gli altri dispositivi supportano solo SHA-256.
  • Non usare la codifica UTF-8 per i campi del certificato, ad esempio "nome comune soggetto" e "nome comune emittente". Queste stringhe devono essere codificate come PRINTABLE_STRING, IA5STRING o BMPSTRING.

Prima di tentare di distribuire un criterio firmato, è necessario distribuire prima una versione non firmata dei criteri per individuare eventuali problemi con le regole dei criteri. È anche consigliabile abilitare le opzioni delle regole 9 - Enabled:Advanced Boot Options Menu e 10 - Enabled:Boot Audit on Failure per lasciare le opzioni di risoluzione dei problemi disponibili per gli amministratori. Per assicurarsi che sia abilitata un'opzione della regola, è possibile eseguire un comando come Set-RuleOption -FilePath <PathAndFilename> -Option 9, anche se non si è certi che l'opzione sia già abilitata. In tal caso, il comando non ha alcun effetto. Dopo la convalida e quando sarai pronto per la distribuzione aziendale, potrai rimuovere queste opzioni. Per altre informazioni sulle opzioni delle regole, vedere Windows Defender regole dei criteri di controllo delle applicazioni.

Nota

Quando si firma un criterio di base con criteri supplementari esistenti, è necessario passare anche ai criteri firmati per tutti i supplementi. Autorizzare i criteri supplementari firmati aggiungendo una <SupplementalPolicySigner> regola ai criteri di base.

Preparare i criteri WDAC per la firma

  1. Aprire una sessione di Windows PowerShell con privilegi elevati e inizializzare le variabili da usare:

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

    Nota

    In questo esempio viene usata una versione applicata dei criteri WDAC creati nell'articolo Creare un Windows Defender il controllo delle applicazioni da un computer di riferimento. Se si firma un altro criterio, assicurarsi di aggiornare il $PolicyPath e $PolicyName variabili con le informazioni corrette.

  2. Passa al desktop come directory di lavoro:

    cd $PolicyPath
    
  3. Se i criteri WDAC non includono già una <UpdatePolicySigner> regola per il certificato di firma dei criteri, è necessario aggiungerla. Per convertire il codice XML dei criteri con ConvertFrom-CiPolicy, deve esistere almeno una <UpdatePolicySigner> regola.

    Usare Add-SignerRule e creare una <UpdatePolicySigner> regola dal file di certificato (.cer). Se è stato acquistato un certificato di firma del codice o ne è stato emesso uno dalla propria infrastruttura a chiave pubblica (PKI), è possibile esportare il file del certificato.

    Nota

    Se i criteri non consentono criteri supplementari, è necessario omettere l'opzione -Supplemental dal comando seguente:

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

    Importante

    Se non si esegue questo passaggio, non è possibile modificare o disabilitare questo criterio e si verifica un errore di avvio. Per altre informazioni su come disabilitare i criteri firmati che causano errori di avvio, vedere Rimuovere Windows Defender criteri di controllo delle applicazioni che causano errori di arresto dell'avvio.

  4. Usa Set-RuleOption per rimuovere l'opzione della regola che consente i criteri non firmati:

    Set-RuleOption -FilePath $LamnaServerPolicy -Option 6 -Delete
    
  5. (Facoltativo) Usare Set-CIPolicyIdInfo per reimpostare l'ID dei criteri e modificare il nome del criterio.

  6. (Facoltativo) Usare Set-CIPolicyVersion per modificare il criterio VersionEx.

    Importante

    Quando si aggiorna un criterio firmato, il valore VersionEx del criterio aggiornato deve essere maggiore o uguale al criterio corrente. La sostituzione di un criterio firmato con una versione inferiore causerà un errore di avvio.

  7. Usa ConvertFrom-CIPolicy per convertire il criterio in formato binario:

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

Firmare i criteri

Firma dei criteri con signtool.exe

Se è stato acquistato un certificato di firma del codice o ne è stato emesso uno dalla propria infrastruttura a chiave pubblica, è possibile usare SignTool.exe per firmare i file dei criteri WDAC:

  1. Importare il certificato di firma del codice PFX nell'archivio personale dell'utente nel computer in cui verrà eseguita la firma. In questo esempio userai il certificato creato nella sezione Facoltativo: creare un certificato di firma del codice per Windows Defender Application Control.

  2. Firmare il criterio 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
    

    Nota

    La variabile <Path to signtool.exe> deve corrispondere al percorso completo dell'utilità SignTool.exe. ContosoSigningCert è il nome soggetto del certificato che verrà usato per firmare i criteri. Devi importare questo certificato nel tuo archivio certificati personale nel computer che usi per firmare il criterio.

Al termine, i comandi devono restituire un file di criteri firmato con un'estensione .p7 . È necessario rinominare il file in {GUID}.cip cui "{GUID}" è il <PolicyId> dal codice XML del criterio WDAC originale.

Verificare e distribuire i criteri firmati

È possibile usare certutil.exe per verificare il file firmato. Esaminare l'output per confermare l'algoritmo di firma e la codifica per i campi del certificato, ad esempio "nome comune soggetto" e "nome comune autorità di certificazione", come descritto nell'avviso nella parte superiore di questo articolo.

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

Testare accuratamente i criteri firmati in un set rappresentativo di computer prima di procedere con la distribuzione. Assicurarsi di riavviare i computer di test almeno due volte dopo aver applicato i criteri WDAC firmati per assicurarsi che non si verifichi un errore di avvio.

Dopo aver verificato i criteri firmati, distribuirli usando il metodo di distribuzione preferito. Per altre informazioni sulla distribuzione dei criteri, vedere Distribuzione di Windows Defender criteri di controllo delle applicazioni.

Nota

La protezione anti-manomissione per i criteri firmati diventa effettiva dopo il primo riavvio dopo l'applicazione dei criteri firmati a un computer. Questa protezione si applica solo ai computer con l'avvio protetto UEFI abilitato.