Partager via


Utiliser des stratégies signées pour protéger App Control for Business contre la falsification

Remarque

Certaines fonctionnalités d’App Control for Business sont disponibles uniquement sur des versions spécifiques de Windows. En savoir plus sur la disponibilité des fonctionnalités De contrôle d’application.

Les stratégies de contrôle d’application signées pour les entreprises offrent aux organisations le niveau de protection le plus élevé disponible dans Windows. Ces stratégies sont conçues pour détecter la falsification administrative de la stratégie, par exemple par un programme malveillant exécuté en tant qu’administrateur, et entraînent un échec de démarrage ou un écran bleu. Avec cet objectif à l’esprit, il est beaucoup plus difficile de supprimer les stratégies App Control signées. SecureBoot doit être activé afin de fournir cette protection pour les stratégies de contrôle d’application signées.

Si vous ne disposez pas actuellement d’un certificat de signature de code que vous pouvez utiliser pour signer vos stratégies, consultez Obtenir des certificats de signature de code pour votre propre utilisation.

Warning

Un échec de démarrage, ou écran bleu, peut se produire si votre certificat de signature ne suit pas ces règles :

  • Toutes les stratégies, y compris les stratégies de base et supplémentaires, doivent être signées conformément à la Standard PKCS 7.
  • Utilisez des clés RSA avec une taille de clé de 2 Ko, 3K ou 4K uniquement. ECDSA n’est pas pris en charge.
  • Vous pouvez utiliser SHA-256, SHA-384 ou SHA-512 comme algorithme digest sur Windows 11, ainsi que Windows 10 et Windows Server 2019 et versions ultérieures après avoir appliqué la mise à jour de sécurité cumulative de novembre 2022. Tous les autres appareils prennent uniquement en charge SHA-256.

Avant de tenter de déployer une stratégie signée, vous devez d’abord déployer une version non signée de la stratégie pour découvrir tout problème avec les règles de stratégie. Nous vous recommandons également d’activer les options de règle 9 - Enabled :Advanced Boot Options Menu et 10 - Enabled :Boot Audit on Failure pour laisser les options de résolution des problèmes disponibles pour les administrateurs. Pour vous assurer qu’une option de règle est activée, vous pouvez exécuter une commande telle que Set-RuleOption -FilePath <PathAndFilename> -Option 9, même si vous ne savez pas si l’option est déjà activée. Si c’est le cas, la commande n’a aucun effet. Une fois ces éléments validés et prêts à être déployés en entreprise, vous pouvez supprimer ces options. Pour plus d’informations sur les options de règle, consultez Règles de stratégie App Control for Business.

Remarque

Lors de la signature d’une stratégie de base qui a des stratégies supplémentaires existantes, vous devez également basculer vers la stratégie signée pour tous les suppléments. Autorisez les stratégies supplémentaires signées en ajoutant une <SupplementalPolicySigner> règle à la stratégie de base.

Préparer votre stratégie de contrôle d’application pour la signature

  1. Ouvrez une session de Windows PowerShell avec élévation de privilèges et initialisez les variables à utiliser :

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

    Remarque

    Cet exemple utilise une version appliquée de la stratégie App Control que vous avez créée dans l’article Créer une stratégie App Control for Business à partir d’un ordinateur de référence . Si vous signez une autre stratégie, veillez à mettre à jour le $PolicyPath et $PolicyName variables avec les informations correctes.

  2. Accédez à votre Bureau, utilisé en tant que répertoire de travail :

    cd $PolicyPath
    
  3. Si votre stratégie App Control n’inclut pas encore de <UpdatePolicySigner> règle pour votre certificat de signature de stratégie, vous devez l’ajouter. Au moins une <UpdatePolicySigner> règle doit exister pour convertir votre code XML de stratégie avec ConvertFrom-CiPolicy.

    Utilisez Add-SignerRule et créez une <UpdatePolicySigner> règle à partir de votre fichier de certificat (.cer). Si vous avez acheté un certificat de signature de code ou si vous en avez émis un à partir de votre propre infrastructure à clé publique (PKI), vous pouvez exporter le fichier de certificat.

    Remarque

    Si votre stratégie n’autorise pas les stratégies supplémentaires, vous devez omettre le commutateur -Supplemental de la commande suivante :

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

    Important

    Si vous ne parvenez pas à effectuer cette étape, vous ne pouvez pas modifier ou désactiver cette stratégie et entraîner un échec de démarrage. Pour plus d’informations sur la désactivation des stratégies signées à l’origine d’un échec de démarrage, consultez Supprimer les stratégies App Control for Business provoquant des échecs d’arrêt de démarrage.

  4. Utilisez Set-RuleOption pour supprimer l’option de règle de stratégie non signée :

    Set-RuleOption -FilePath $LamnaServerPolicy -Option 6 -Delete
    
  5. (Facultatif) Utilisez Set-CIPolicyIdInfo pour réinitialiser l’ID de stratégie et modifier le nom de la stratégie.

  6. (Facultatif) Utilisez Set-CIPolicyVersion pour modifier la stratégie VersionEx.

    Important

    Lors de la mise à jour d’une stratégie signée, la VersionEx de la stratégie mise à jour doit être supérieure ou égale à la stratégie actuelle. Le remplacement d’une stratégie signée par une version inférieure entraîne un échec de démarrage.

  7. Utilisez ConvertFrom-CIPolicy pour convertir la stratégie au format binaire :

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

Signer votre stratégie

Signature de stratégie avec signtool.exe

Si vous avez acheté un certificat de signature de code ou en avez émis un à partir de votre propre infrastructure à clé publique, vous pouvez utiliser SignTool.exe pour signer vos fichiers de stratégie App Control :

  1. Importez le certificat de signature de code .pfx dans le magasin personnel de l’utilisateur sur l’ordinateur où la signature se produira. Dans cet exemple, vous utilisez le certificat qui a été créé dans Facultatif : Créer un certificat de signature de code pour App Control for Business.

  2. Signez la stratégie De contrôle d’application à l’aide de SignTool.exe :

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

    Remarque

    La variable <Path to signtool.exe> doit correspondre au chemin d’accès complet de l’utilitaire SignTool.exe. ContosoSigningCert est le nom d’objet du certificat qui sera utilisé pour signer la stratégie. Vous devez importer ce certificat dans votre magasin de certificats personnels, sur l’ordinateur que vous utilisez pour signer la stratégie.

Une fois l’opération terminée, les commandes doivent générer un fichier de stratégie signé avec une .p7 extension. Vous devez renommer le fichier où {GUID}.cip « {GUID} » est le <PolicyId> de votre xml de stratégie App Control d’origine.

Vérifier et déployer la stratégie signée

Vous pouvez utiliser certutil.exe ou PowerShell pour vérifier le fichier signé. Passez en revue la sortie pour confirmer l’algorithme de signature, comme décrit dans l’avertissement en haut de cet article.

certutil.exe -asn <path to signed policy file>
$CIPolicyBin = 'path to signed policy file'
Add-Type -AssemblyName 'System.Security'
$SignedCryptoMsgSyntax = New-Object -TypeName System.Security.Cryptography.Pkcs.SignedCms
$SignedCryptoMsgSyntax.Decode([System.IO.File]::ReadAllBytes($CIPolicyBin))
$SignedCryptoMsgSyntax.Certificates | Format-List -Property *

Testez minutieusement la stratégie signée sur un ensemble représentatif d’ordinateurs avant de poursuivre le déploiement. Veillez à redémarrer les ordinateurs de test au moins deux fois après avoir appliqué la stratégie App Control signée pour vous assurer que vous ne rencontrez pas d’échec de démarrage.

Une fois que vous avez vérifié la stratégie signée, déployez-la à l’aide de votre méthode de déploiement préférée. Pour plus d’informations sur le déploiement de stratégies, consultez Déploiement de stratégies App Control for Business.

Remarque

La protection anti-falsification pour les stratégies signées prend effet après le premier redémarrage une fois que la stratégie signée est appliquée à un ordinateur. Cette protection s’applique uniquement aux ordinateurs sur lesquels le démarrage sécurisé UEFI est activé.