bonne stratégie d’exécution pour maîtriser l’exécution de scripts et ainsi réduire au maximum l’angle d’attaque.
Avec PowerShell il existe 4 stratégies d’exécution : Restricted, RemoteSigned, AllSigned et Unrestricted. A chacune d’elles correspond un mode d’exécution bien précis. La stratégie Restricted n’autorise aucune exécution de script, seules les commandes tapées dans la console sont exécutées.
C’est la stratégie d’exécution la plus draconienne, et aussi celle appliquée par défaut. AllSigned autorise l’exécution de scripts uniquement s’ils sont signés, c’est-à-dire s’ils comportent une signature numérique (la signature numérique correspond à une forme abrégée du script qui est ensuite chiffrée). Remote Signed se rapporte à AllSigned à la nuance près que seuls les scripts téléchargés d’internet doivent être signés pour être exécutés.
Enfin, Unrestricted autorise toute exécution sans effectuer le moindre contrôle. Il va sans dire que dans le cadre d’un déploiement massif de PowerShell et de tous ses usages (scripts d’ouverture de session, de gestion des comptes), la stratégie AllSigned est la mieux adaptée d’un point de vue sécurité. Grâce au principe des signatures, elle permet de garantir l’authenticité du script ainsi que la source (l’auteur du script).
Pour connaître le mode d’exécution actuel de la machine, utilisez la commande suivante :
PS > Get-ExecutionPolicy
Pour en changer :
PS > Set-ExecutionPolicy <stratégie d’exécution>