Signature Authenticode
Aller à la navigation
Aller à la recherche
Installation du rôle ADCS | Gestion des certificats | Authentification par cartes à puce
Installation du rôle ADDS | Sécuriser son environnement Active Directory | Windows LAPS | gMSA
Archives : Contrôleur de domaine Windows Server 2003 | Intégration Client Ubuntu sur AD Windows Server 2003 | Windows Server 2008
Présentation
Avantages du déploiement
La signature Authenticode permet d'accroître la sécurité de l'environnement d'exécution du code sous l'environnement Microsoft Windows :
- Elle permet d'apposer une signature sur un fichier ou un script.
- Il est possible de restreindre l'exécution du code uniquement si ce dernier a été signé.
- Il permet de garantir l'intégrité du code et d'éviter toutes manipulations tierces à des fins d'élévation de privilèges.
- Il est possible de gérer les signatures de confiance sur un environnement Active Directory.
Scénario de déploiement
Le scénario s'appuie sur deux approches :
- Signer l'ensemble des scripts qui ont été produit à l'aide d'un certificat personnel délivré par l'Autorité de Certification privée de l'Etablissement.
- Restreindre l'exécution des scripts et n'autoriser que les scripts signés avec des certificats déterminés.
Signer un script
Signer un script PowerShell
- L'exemple suivant permet de signer le script PowerShell nommé MonScriptPowerShell.ps1 :
$cert = Get-ChildItem -Path Cert:\CurrentUser\My -CodeSigningCert Set-AuthenticodeSignature -FilePath MonScriptPowerShell.ps1 -Certificate $cert
Signer plusieurs scripts PowerShell
- L'exemple suivant permet de signer l'ensemble des scripts PowerShell contenus dans le répertoire C:\MES_SCRIPTS :
$PathScriptToSign = "C:\MES_SCRIPTS\"
$CertCodeSigning = Get-ChildItem Cert:\CurrentUser\My\ -CodeSigningCert
$ListScripts = Get-ChildItem -Path $PathScriptToSign -Name -Include *.ps1
foreach ($line in $ListScripts)
{
Set-AuthenticodeSignature "$PathScriptToSign$line" -Certificate $CertCodeSigning
}
Stratégie d'approbation d'exécution du code signé
Présentation
Par défaut, la stratégie Microsoft autorise l'exécution des scripts qu'ils soient signés ou pas. La GPO présentée ici à deux fonctions :
- Forcer les systèmes appliquant la GPO à exécuter uniquement du code signé.
- Forcer les systèmes appliquant la GPO à exécuter du code signé uniquement pour les signatures autorisées.
Mise en place de la stratégie
|
|
Dans cet exemple, cette stratégie s'applique uniquement aux contrôleurs de domaine. |
Autoriser uniquement les scripts signés
- Ouvrir le Tableau de bord du Gestionnaire de serveur puis depuis le menu Outils, cliquer sur Gestions des stratégies de groupe.
- Faire un clic droit sur l'objet Domain Controllers puis Créer un objet GPO dans ce domaine, et le lier ici... .
- Nommer la GPO O_WINDOWS_ALLSIGNScripts puis cliquer sur le bouton OK.

- Modifier la GPO puis accéder à la stratégie Configuration ordinateur / Stratégies / Modèles d'administration / Composants Windows / Windows PowerShell puis accéder aux propriétés de la stratégie Activer l'exécution des scripts.

- Depuis la boîte de dialogue des Propriétés :
Gérer la liste des certificats approuvés
- Ouvrir le Tableau de bord du Gestionnaire de serveur puis depuis le menu Outils, cliquer sur Gestions des stratégies de groupe.
- Modifier la GPO O_WINDOWS_ALLSIGNScripts puis Accéder à la stratégie Configuration ordinateur / Stratégies / Paramètres Windows / Paramètres de sécurité / Stratégies de clé publique / Editeurs approuvés.
- Depuis la liste des certificats des éditeurs approuvés, faire un clic droit puis Importer... . L'Assistant Importation du certificat s'affiche.
Application de la stratégie
- Ouvrir un terminal de commande PowerShell ou CMD puis exécuter la commande suivante :
|
|
|
