Exécuter des applications sur des appareils protégés par Device Guard

Windows 10 introduit plusieurs nouveaux paramètres et fonctionnalités qui, lorsqu’ils sont combinés, constituent ce que nous appelons Device Guard. Device Guard peut contribuer à la protection de vos appareils professionnels contre l’exécution accidentelle d’applications malveillantes en nécessitant la signature de l’ensemble de vos applications par une entité approuvée.

Pour utiliser Device Guard dans une entreprise, vos applications métier et vos applications développées par des éditeurs de logiciels indépendants doivent pouvoir s’exécuter sur un appareil protégé. Malheureusement, de nombreuses applications métier ne sont pas signées et, dans de nombreux cas, ne sont pas même pas développées de manière active. De même, il peut y avoir des logiciels non signés ou certaines applications d’un éditeur de logiciels indépendant que vous souhaitez exécuter, sans avoir à approuver toutes les applications de cet éditeur. Dans le cadre des fonctionnalités de Device Guard, Windows 10 inclut un nouvel outil appelé inspecteur de package. L’inspecteur de package analyse vos applications non signées, et crée des fichiers catalogue des binaires installés et en cours d’exécution, qui peuvent ensuite être signés par l’utilitaire SDK Windows de l’outil de signature et distribués à l’aide de la stratégie de groupe pour que vos applications s’exécutent sur les appareils protégés par Device Guard.

Ce dont vous avez besoin pour exécuter vos applications sur des appareils protégés par Device Guard

Pour que vos applications puissent s’exécuter sur des appareils protégés par Device Guard, vous devez :

  • Disposer d’un appareil exécutant Windows 10 Entreprise, Windows 10 Éducation ou Windows Server 2016 Technical Preview.

  • Avoir identifié les applications non signées que vous devez inclure dans votre fichier catalogue.

  • Avoir créé une stratégie d’intégrité du code à utiliser par Device Guard.

  • Posséder un certificat de signature de code, créé à l’aide d’une infrastructure à clé publique (PKI) interne.

  • Disposer de SignTool. Il s’agit d’un outil en ligne de commande qui signe numériquement les fichiers, vérifie leurs signatures ou y ajoute un horodatage. Cet outil est installé dans le dossier \Bin du chemin d’installation du Kit de développement logiciel (SDK) Microsoft Windows.

Créer un fichier catalogue pour les applications non signées

Vous devez exécuter l’inspecteur de package sur un appareil qui exécute une stratégie d’intégrité du code temporaire en mode audit, créé explicitement à cet effet. Ce mode permet à cette stratégie d’intercepter les binaires non détectés par l’outil d’inspection, tout en laissant les autres éléments s’exécuter.

Important  Cette stratégie temporaire ne doit pas être utilisée pour des besoins commerciaux normaux.

 

Mt158214.wedge(fr-fr,VS.85).gifPour créer un fichier catalogue pour une application existante

  1. Démarrez Windows PowerShell en tant qu’administrateur, puis créez votre fichier de stratégie temporaire en tapant :

    mkdir temp
    New-CIPolicy -l FileName -f .\tempdeny.xml -s .\temp -u
    ConvertFrom-CIPolicy .\tempdeny.xml .\tempdeny.bin
    cp .\tempdeny.bin C:\Windows\System32\CodeIntegrity\SIPolicy.p7b
    
  2. Redémarrez votre appareil.

  3. Démarrez PowerShell en tant qu’administrateur, puis l’analyse de votre système de fichiers en tapant :

    PackageInspector.exe start c:
    

    Où :

    Option Description

    start <drive_letter>:

    Indique de démarrer une analyse, par exemple celle du lecteur C:.

    -path

    Chemin d’accès au package en cours d’inspection.

     

  4. Copiez le média d’installation de l’application sur votre lecteur C:\, puis installez et exécutez le programme.

    La copie du média sur votre lecteur local permet de vous assurer que le programme d’installation et ses fichiers associés sont inclus dans votre fichier catalogue. Si les fichiers d’installation ne sont pas inclus, votre stratégie d’intégrité du code peut approuver l’exécution de l’application, mais pas son installation. Une fois que vous avez installé l’application, vous devez vérifier les mises à jour. Si des mises à jour surviennent pendant que l’application est ouverte, vous devez la fermer, puis la redémarrer pour vous assurer que tous les éléments sont interceptés pendant le processus d’inspection.

    Remarque  

    Étant donné que l’inspecteur de package crée une entrée de journal dans le catalogue pour chaque binaire du système de fichiers, nous vous recommandons de ne pas exécuter d’autres installations ou mises à jour pendant l’analyse.

     

  5. Facultatif : si vous souhaitez créer un catalogue à applications multiples (nombreuses applications incluses dans un fichier catalogue unique), vous pouvez continuer à exécuter les étapes 2 et 3 pour chaque application supplémentaire. Après avoir ajouté toutes les applications souhaitées, vous pouvez passer à l’étape 5.

    Remarque  Pour simplifier votre processus, nous vous suggérons les options suivantes :

    • Actively supported and updated apps. Créez un fichier catalogue unique par application.

    • Legacy apps, non-active or not updated. Créez un fichier catalogue unique pour l’ensemble des applications héritées.

     

  6. Arrêtez l’analyse, puis créez les fichiers .\InspectedPackage.cat et InspectedPackage.cdf pour votre application unique dans votre emplacement spécifié, en tapant :

    PackageInspector.exe stop c:
    

Vous pouvez également utiliser la commande scan à la place de start et stop si vous voulez créer un catalogue de fichiers déjà présents sur votre disque dur. La commande scan analyse de manière récursive un répertoire spécifique et inclut tous les fichiers signables dans le catalogue. Vous pouvez analyser un répertoire spécifique en tapant :

PackageInspector.exe scan c:\<insert directory path>

Le tableau suivant présente les options disponibles pour les commandes scan et stop.

Option Description

stop <drive_letter>:

Indique que l’analyse de l’emplacement spécifié est terminée, en créant un fichier catalogue ou un fichier de définition. Par exemple, C:

scan <path to scan>

Spécifie le chemin d’accès du répertoire à analyser. Cette commande analyse de manière récursive un répertoire spécifique et inclut tous les fichiers signables dans le catalogue.

-out

Spécifie le type d’informations que l’outil doit créer. Vous pouvez utiliser CAT pour un fichier catalogue ou CDF pour un fichier de définition de catalogue ou list pour une liste de fichiers délimitée.

-listpath

Spécifie l’emplacement où le programme d’installation redirigera la liste des fichiers pour -out list.

-cdfPath <file_name>

Précise l’emplacement où l’outil doit placer le fichier .cdf créé. Si vous utilisez cette option, vous devez également spécifier le nom de fichier.

Nous vous recommandons d’utiliser le chemin d’accès complet au fichier. Néanmoins, les chemins d’accès relatifs sont pris en charge.

-resdir

Cette option n’est pas prise en charge pour le moment.

-name

Cette option n’est pas prise en charge pour le moment.

-ph [true|false]

Indique si vous souhaitez ou non inclure des hachages de pages dans le catalogue. Vous pouvez utiliser True pour en ajouter ou False pour ne pas en ajouter.

-fr

Spécifie le type de codage du catalogue. Par défaut : PKCS_7_ASN_ENCODING | X509_ASN_ENCODING, 0x00010001.

-ca1

Spécifie l’option CATATTR1 dans les fichiers catalogue et de définition de catalogue.

-ca2

Spécifie l’option CATATTR2 dans les fichiers catalogue et de définition de catalogue.

 

Outre les paramètres indiqués ici, vous pouvez ajouter des paramètres supplémentaires à votre catalogue. Pour plus d’informations, consultez la rubrique MakeCat.

Signer votre fichier catalogue à l’aide de l’outil de signature

Vous pouvez signer votre fichier catalogue à l’aide de l’outil de signature, situé dans le Kit de développement logiciel (SDK) Windows 7 ou ultérieur, ou en utilisant le portail de signature Device Guard. Pour plus d’informations sur l’utilisation du portail de signature Device Guard, voir Signature Device Guard.

Cette procédure montre comment utiliser un fichier d’échange d’informations personnelles (.pfx) protégé par mot de passe pour signer le fichier catalogue.

Important  Pour utiliser cet outil, vous devez disposer d’un certificat de signature interne de code d’autorité de certification ou d’un certificat de signature de code émis par une autorité de certification tierce externe.

 

Mt158214.wedge(fr-fr,VS.85).gifPour utiliser l’outil de signature

  1. Vérifiez que vos certificats de signature de code ont été importés dans votre magasin de certificats ou qu’ils sont contenus dans le système de fichiers.

  2. Ouvrez SignTool.exe et signez le fichier catalogue, basé sur l’emplacement de stockage de votre certificat.

    Si vous utilisez le fichier PFX à partir d’un emplacement du système de fichiers :

    signtool sign /f <\\SignCertLocation> /p <\\password> /fd sha256 /v
    

    Si vous avez importé le certificat dans le magasin de certificats :

    signtool sign /n <\\CertSubjectName> /fd sha256 /v <CatalogNameAndLocation>
    

    Où :

    Option Description

    signtool

    Spécifie l’emplacement du chemin d’accès complet à SignTool.exe.

    sign

    Signe les fichiers numériquement. Pour obtenir la liste des options prises en charge par la commande sign, consultez les options SignTool.

    /n SubjectName

    Spécifie le nom du sujet du certificat de signature. Cette valeur peut être une sous-chaîne du nom du sujet entier.

    /f SignCertFileLocation

    Spécifie le certificat de signature dans un fichier.

    Si le fichier est au format .pfx et s’il est protégé par un mot de passe, utilisez l’option /p pour spécifier le mot de passe. S’il ne contient pas de clés privées, utilisez les options /csp et /k pour spécifier le fichier .csp et le nom du conteneur de clé privée.

    /p Password

    Spécifie le mot de passe à utiliser lors de l’ouverture d’un fichier PFX. (Utilisez l’option /f pour spécifier un fichier PFX.)

    /fd Algorithm

    Spécifie l’algorithme digest de fichier à utiliser pour créer des signatures de fichiers. Par défaut, il s’agit de l’algorithme SHA2.

    /v

    Affiche une sortie détaillée que l’exécution de la commande ait échoué ou abouti, puis des messages d’avertissement.

     

    Pour obtenir plus d’informations et des exemples illustrant les options disponibles, consultez la rubrique SignTool.exe (outil de signature).

  3. Dans l’Explorateur de fichiers, cliquez avec le bouton droit sur votre fichier catalogue, et cliquez sur Propriétés, puis sur l’onglet Signatures numériques pour vous assurer que la signature numérique du fichier catalogue est exacte.

  4. Copiez votre fichier catalogue dans C:\Windows\System32\catroot\{F750E6C3-38EE-11D1-85E5-00C04FC295EE} et testez le fichier.

    Remarque  À des fins de test, vous pouvez copier manuellement votre fichier à cet emplacement. Toutefois, nous vous recommandons d’utiliser la stratégie de groupe pour copier le fichier catalogue sur tous vos appareils pour des implémentations à grande échelle.

     

Résolution des problèmes liés à l’inspecteur de package

Si le message « Erreur 1181 » s’affiche lors de l’arrêt de l’inspecteur de package, vous devez augmenter la taille du journal USN, puis effacer l’ensemble des données mises en cache avant d’analyser de nouveau les applications concernées.

Vous devez veiller à effacer le cache en créant et en définissant une nouvelle stratégie temporaire. Si vous réutilisez la même stratégie, l’inspecteur de package échoue.

Mt158214.wedge(fr-fr,VS.85).gifPour augmenter la taille du journal

  1. Ouvrez une fenêtre d’invite de commandes, puis tapez :

    fsutil usn createjournal m=0x8000000 a=0x800000 C:
    

    Où la valeur « m » doit être augmentée. Nous vous conseillons de changer cette valeur et de la définir au moins sur 4 fois la valeur par défaut m=0x2000000.

  2. Réexécutez les installations d’application en échec.

Mt158214.wedge(fr-fr,VS.85).gifPour effacer les données mises en cache et analyser de nouveau vos applications

  1. Supprimez le fichier SIPolicy.p7b du dossier C:\Windows\System32\CodeIntegrity\.

  2. Créez une stratégie d’intégrité du code temporaire pour effacer toutes les données mises en cache en démarrant Windows PowerShell en tant qu’administrateur et en tapant :

    mkdir temp
    cp C:\Windows\System32\PackageInspector.exe .\temp\
    New-CIPolicy -l Hash -f .\DenyPackageInspector.xml -s .\temp -u -deny
    ConvertFrom-CIPolicy .\DenyPackageInspector.xml .\DenyPackageInspector.bin
    cp .\DenyPackageInspector.bin C:\Windows\System32\SIPolicy.p7b
    
  3. Redémarrez votre appareil et suivez les étapes de la section Créer un fichier catalogue pour les applications non signés.

Rubriques associées

Télécharger SignTool