Microsoft a développé WindowsPowerShell pour l’automatisation des tâches et la gestion de la configuration. Il est basé sur le framework .NET ; alors qu’il comprend un shell de ligne de commande et un langage de script. Il n’aide pas les utilisateurs à automatiser, mais il résout également rapidement les tâches d’administration complexes. Malgré cela, de nombreux utilisateurs pensent souvent que PowerShell est un outil utilisé par les pirates pour des failles de sécurité. Malheureusement, il est vrai que PowerShell est largement utilisé pour les failles de sécurité. Pour cette raison, les utilisateurs ayant peu ou pas de connaissances techniques désactivent souvent PowerShell. Cependant, la réalité est que l’approche PowerShell Security peut fournir la meilleure protection contre les failles de sécurité au niveau de l’entreprise.
David das Neves, premier ingénieur de terrain pour Microsoft Allemagne, mentionne dans l’un de ses messages que l’approche PowerShell Security est un moyen puissant de mettre en place la sécurité au niveau de l’entreprise. En fait, PowerShell est l’un des langages les plus utilisés sur GitHub, selon le tableau de classement des langages de programmation créé par RedMonk.
Comprendre la sécurité PowerShell
WindowsPowerShell est utilisé par de nombreux administrateurs informatiques à travers le monde. Il s’agit d’un framework d’automatisation des tâches et de gestion de la configuration de Microsoft. Avec son aide, les administrateurs peuvent effectuer des tâches administratives sur les systèmes Windows locaux et distants. Cependant, récemment, quelques organisations ont évité de l’utiliser ; en particulier pour l’accès à distance ; suspecter des failles de sécurité. Pour dissiper cette confusion autour de l’outil, Microsoft Premier Field Engineer, Ashley McGlone a publié un blog qui mentionne pourquoi il s’agit d’un outil sûr et non d’une vulnérabilité.
Les organisations considèrent PowerShell comme une vulnérabilité
McGlone mentionne certaines des tendances récentes dans les organisations concernant cet outil. Certaines organisations interdisent l’utilisation de la communication à distance PowerShell ; tandis qu’ailleurs, InfoSec a bloqué l’administration du serveur distant avec lui. Il mentionne également qu’il reçoit constamment des questions sur la sécurité de PowerShell Remoting. Plusieurs entreprises limitent les capacités de l’outil dans leur environnement. La plupart de ces entreprises s’inquiètent de l’outil Remoting, qui est toujours crypté, port unique 5985 ou 5986.
Meilleures pratiques de sécurité PowerShell
McGlone décrit pourquoi cet outil n’est pas une vulnérabilité – mais d’un autre côté, il est très sûr. Il mentionne des points importants tels que cet outil est un outil d’administration neutre, pas une vulnérabilité. Le remoting de l’outil respecte tous les protocoles d’authentification et d’autorisation de Windows. Il nécessite l’appartenance au groupe d’administrateurs locaux par défaut.
Il mentionne en outre pourquoi l’outil est plus sûr que les entreprises ne le pensent :
« Les améliorations de WMF 5.0 (ou WMF 4.0 avec KB3000850) font de PowerShell le pire outil de choix pour un pirate informatique lorsque vous activez la journalisation des blocs de script et la transcription à l’échelle du système. Les pirates laisseront des empreintes digitales partout, contrairement aux utilitaires CMD populaires ».
En raison de ses puissantes fonctionnalités de suivi, McGlone recommande PowerShell comme le meilleur outil d’administration à distance. L’outil est livré avec des fonctionnalités qui permettent aux organisations de trouver la réponse aux questions telles que qui, quoi, quand, où et comment pour les activités sur vos serveurs.
Il a en outre donné des liens vers des ressources pour en savoir plus sur la sécurisation de cet outil et son utilisation au niveau de l’entreprise. Si le service de sécurité de l’information de votre entreprise souhaite en savoir plus sur cet outil, McGlone fournit un lien vers PowerShell Remoting Security Considerations. Il s’agit d’une nouvelle documentation de sécurité de l’équipe PowerShell. Le document comprend diverses sections informatives telles que Powershell Remoting, ses paramètres par défaut, l’isolation et le chiffrement des processus et les protocoles de transport.
Le billet de blog mentionne plusieurs sources et liens pour en savoir plus sur PowerShell. Vous pouvez obtenir ces sources, y compris des liens vers le site Web WinRMSecurity et un livre blanc de Lee Holmes ici sur les blogs TechNet.
Sécurité Windows PowerShell au niveau de l’entreprise
Avant de configurer Windows PowerShell Security, il est nécessaire d’en connaître les bases. Les utilisateurs doivent utiliser la dernière version de Windows PowerShell. L’utilisateur doit noter ici que PowerShell Security doit être défini avec la dernière version de Windows PowerShell. S’il s’agit d’une version inférieure (comme PowerShell Version 2), cela peut faire plus de mal que de bien. Par conséquent, il est conseillé aux utilisateurs de se débarrasser de la version 2 de PowerShell.
Outre la dernière version de Windows PowerShell, les utilisateurs doivent également opter pour la dernière version du système d’exploitation. Pour configurer la sécurité PowerShell, Windows 11 ou Windows 10 sont les systèmes d’exploitation les plus compatibles. Windows 11/10 est livré avec de nombreuses fonctionnalités de sécurité. Par conséquent, il est recommandé aux utilisateurs de migrer leurs anciennes machines Windows vers Windows 11/10 et d’évaluer toutes les fonctionnalités de sécurité pouvant être utilisées.
Politique d’exécution : De nombreux utilisateurs n’optent pas pour l’approche PowerShell Security et utilisent ExecutionPolicy comme limite de sécurité. Cependant, comme David le mentionne dans son article, il existe plus de 20 façons de surpasser ExecutionPolicy même en tant qu’utilisateur standard. Par conséquent, les utilisateurs doivent le définir via GPO tel que RemoteSigned. ExecutionPolicy peut empêcher certains pirates d’utiliser des scripts PowerShell à partir d’Internet, mais il ne s’agit pas d’une configuration de sécurité totalement fiable.
Facteurs à prendre en compte dans l’approche PowerShell Security
David mentionne tous les facteurs importants à prendre en compte lors de la configuration de PowerShell Security au niveau de l’entreprise. Certains des facteurs couverts par David sont les suivants :
- Accès à distance PowerShell
- Sécurisation des accès privilégiés
- Modernisation de l’environnement
- Liste blanche / Signature / ConstrainedLanguage / Applocker / Device Guard
- Enregistrement
- ScriptBlockLogging
- Journalisation étendue / WEF et JEA
Pour plus d’informations sur la configuration de PowerShell Security, lisez son article sur Blogues MSDN.