Paramétrages de cookies

×

Cookies fonctionnels

Ce site utilise des cookies pour assurer son bon fonctionnement et ne peuvent pas être désactivés de nos systèmes. Nous ne les utilisons pas à des fins publicitaires. Si ces cookies sont bloqués, certaines parties du site ne pourront pas fonctionner.

Mesure d'audience

Ce site utilise des cookies de mesure et d’analyse d’audience, tels que Google Analytics et Google Ads, afin d’évaluer et d’améliorer notre site internet.

Contenus interactifs

Ce site utilise des composants tiers, tels que ReCAPTCHA, Google NotAllowedScript6648ec6910a7aMaps, MailChimp ou Calameo, qui peuvent déposer des cookies sur votre machine. Si vous décider de bloquer un composant, le contenu ne s’affichera pas

Réseaux sociaux/Vidéos

Des plug-ins de réseaux sociaux et de vidéos, qui exploitent des cookies, sont présents sur ce site web. Ils permettent d’améliorer la convivialité et la promotion du site grâce à différentes interactions sociales.

Session

Veuillez vous connecter pour voir vos activités!

Autres cookies

Ce CMS Joomla utilise un certain nombre de cookies pour gérer par exemple les sessions utilisateurs.

10 meilleures pratiques de sécurité PowerShell

Écrit par
Évaluer cet élément
(0 Votes)

powershell onsecure good practices

PowerShell est un outil puissant, mais il peut également constituer un risque pour la sécurité s'il n'est pas utilisé correctement. Voici 10 bonnes pratiques de sécurité PowerShell à suivre.

PowerShell est un langage de script puissant qui peut être utilisé par des attaquants pour prendre le contrôle des systèmes. En tant que tel, il est important de suivre les meilleures pratiques en matière de sécurité PowerShell afin d'empêcher les attaquants d'utiliser PowerShell pour accéder aux systèmes.

Dans cet article, nous discuterons de 10 bonnes pratiques de sécurité PowerShell qui doivent être suivies afin de sécuriser les systèmes. Ces bonnes pratiques incluent la désactivation de PowerShell, l’utilisation du moindre privilège, etc.

1. Utilisez la politique d'exécution la plus sécurisée

Les politiques d'exécution de PowerShell déterminent comment (ou si) PowerShell exécute les scripts. Il existe quatre niveaux différents de politique d'exécution, allant de « Restreint » (qui n'autorise l'exécution d'aucun script) à « Sans restriction » (qui autorise l'exécution de tous les scripts).

La politique d'exécution la plus sécurisée est « RemoteSigned », qui permet l'exécution de scripts locaux et exige que tous les scripts téléchargés sur Internet soient signés par un éditeur de confiance.

L'utilisation de la politique d'exécution la plus sécurisée contribuera à protéger votre système contre les scripts PowerShell malveillants. Il est donc important de définir votre politique d'exécution sur « RemoteSigned » si possible.

2. Exécutez PowerShell en tant qu'utilisateur standard

Lorsque vous exécutez PowerShell en tant qu'administrateur, toutes les commandes que vous exécutez disposent de droits d'administration complets. Cela signifie que si une commande malveillante est exécutée, elle pourrait causer de graves dommages à votre système.

D'un autre côté, lorsque vous exécutez PowerShell en tant qu'utilisateur standard, les commandes que vous exécutez sont limitées aux autorisations de cet utilisateur. Cela signifie que même si une commande malveillante est exécutée, elle ne peut causer que des dommages pour lesquels l'utilisateur standard est autorisé à le faire.

Bien entendu, cela ne signifie pas que vous ne devez jamais exécuter PowerShell en tant qu’administrateur. Il peut arriver que vous deviez utiliser des privilèges administratifs, mais en général, il est préférable d'exécuter PowerShell en tant qu'utilisateur standard.

3. Signez vos scripts et fichiers de configuration

Lorsque vous signez un script ou un fichier de configuration PowerShell, vous créez essentiellement une signature numérique qui peut être utilisée pour vérifier l'authenticité et l'intégrité du fichier. Ceci est important car cela permet d’empêcher que des modifications malveillantes soient apportées à vos fichiers à votre insu.

Signer vos scripts et fichiers de configuration vous permet également de contrôler qui peut les exécuter. Par exemple, vous pouvez spécifier que seuls les utilisateurs disposant d'un certificat numérique spécifique installé sur leur ordinateur peuvent exécuter le fichier.

PowerShell inclut une prise en charge intégrée pour la signature de scripts et de fichiers de configuration. Pour signer un fichier, vous devez d’abord créer un certificat numérique à l’aide de la cmdlet New-SelfSignedCertificate. Une fois que vous disposez d'un certificat numérique, vous pouvez signer un fichier à l'aide de la cmdlet Set-AuthenticodeSignature.

4. Évitez d'exécuter des scripts non signés

PowerShell est un langage de script puissant qui peut être utilisé pour automatiser de nombreuses tâches. Cependant, en raison de sa puissance, il peut également être utilisé par des acteurs malveillants pour accéder aux systèmes et aux données.

Pour aider à atténuer ce risque, PowerShell inclut une fonctionnalité de sécurité appelée « signature de script ». La signature de scripts vous permet de signer numériquement des scripts, ce qui vérifie l'authenticité du script et garantit qu'il n'a pas été falsifié.

Si vous essayez d'exécuter un script non signé, PowerShell affichera un message d'avertissement. Il est important de tenir compte de cet avertissement et de ne pas le contourner, car cela pourrait permettre à un script malveillant de s'exécuter sur votre système.

Si vous ne savez pas si un script est signé ou non, vous pouvez vérifier les propriétés du fichier de script. Si l'onglet « Signature numérique » est présent, alors le script est signé. Dans le cas contraire, le script n'est pas signé et ne doit pas être exécuté.

5. Désactivez les scripts lorsque cela est possible

PowerShell est un langage de script incroyablement puissant, capable d'automatiser à peu près toutes les tâches auxquelles vous pouvez penser. Cependant, cette puissance a un prix : les scripts PowerShell peuvent être utilisés par des attaquants pour accéder aux systèmes et aux données, ou pour lancer des attaques contre d'autres systèmes.

Pour atténuer ce risque, il est important de désactiver les scripts PowerShell lorsque cela est possible. Par exemple, si vous n'avez pas besoin de PowerShell pour une tâche particulière, ne l'activez pas. Si vous n'avez besoin de PowerShell que pour des tâches spécifiques, envisagez d'utiliser une liste blanche pour autoriser uniquement l'exécution de certains scripts.

En désactivant les scripts PowerShell lorsque cela est possible, vous pouvez contribuer à réduire la surface d'attaque de vos systèmes et rendre plus difficile aux attaquants d'utiliser PowerShell pour accéder à vos données ou lancer des attaques.

6. Limiter l'accès à la console PowerShell

La console PowerShell est un outil puissant qui peut être utilisé pour gérer et automatiser de nombreuses tâches sous Windows. Cependant, il peut également être utilisé pour modifier de manière malveillante les paramètres du système, installer des logiciels malveillants ou même supprimer des données.

Par conséquent, il est important de n’autoriser que les utilisateurs de confiance à accéder à la console PowerShell. Une façon d'y parvenir consiste à utiliser le contrôle d'accès basé sur les rôles (RBAC) pour limiter les personnes pouvant exécuter des commandes PowerShell.

RBAC est une fonctionnalité intégrée à PowerShell qui vous permet de contrôler qui peut exécuter des commandes PowerShell en fonction de leurs rôles au sein d'une organisation. Par exemple, vous pouvez autoriser les membres de l’équipe informatique à exécuter des commandes PowerShell, mais pas les membres de l’équipe marketing.

Pour en savoir plus sur la configuration de RBAC, consultez la documentation de Microsoft.

7. Restreindre l'accès au réseau

Par défaut, la communication à distance PowerShell n'est pas chiffrée. Cela signifie que si un attaquant parvenait à accéder à votre réseau, il pourrait potentiellement utiliser PowerShell pour exécuter à distance des commandes sur vos systèmes à votre insu.

Pour atténuer ce risque, vous ne devez autoriser l’accès à distance PowerShell qu’à partir d’ordinateurs et de réseaux approuvés. Vous pouvez le faire en utilisant le pare-feu Windows intégré ou une solution de pare-feu tierce.

De plus, vous devriez envisager de désactiver complètement la communication à distance PowerShell si cela n’est pas nécessaire. Si vous avez besoin de l'accès à distance PowerShell, assurez-vous de l'utiliser via une connexion cryptée telle que SSL/TLS.

8. Surveiller les activités suspectes

Si un attaquant accède à votre système, il tentera probablement d'utiliser PowerShell pour atteindre ses objectifs. En surveillant les activités suspectes, vous pouvez détecter et arrêter une attaque avant qu’elle ne cause de graves dommages.

Il existe différentes manières de surveiller les activités suspectes. La première consiste à rechercher des modèles d’utilisation inhabituels de PowerShell. Par exemple, si vous n’utilisez normalement PowerShell que pour exécuter quelques commandes spécifiques, mais que soudainement vous voyez quelqu’un exécuter des centaines de commandes différentes, cela pourrait indiquer que quelque chose ne va pas.

Une autre façon de surveiller les activités suspectes consiste à rechercher des changements dans la manière dont PowerShell est utilisé. Par exemple, si vous utilisez normalement PowerShell pour vous connecter à des systèmes distants, mais que soudainement vous voyez quelqu'un essayer d'exécuter des scripts PowerShell localement, cela pourrait indiquer qu'il essaie de faire quelque chose de malveillant.

Enfin, vous pouvez également surveiller les journaux d'événements PowerShell à la recherche de signes d'activité suspecte. Les journaux d'événements PowerShell contiennent des informations sur toutes les commandes PowerShell exécutées sur un système. Ils peuvent donc constituer une source d'informations précieuse pour détecter les attaques.

9. Renforcez les services de bureau à distance

Si un attaquant parvient à accéder à un système avec RDP non sécurisé, il peut facilement lancer des attaques sur d'autres systèmes du réseau. De plus, le RDP non sécurisé peut être utilisé pour basculer vers d’autres systèmes et accéder à des données sensibles.

Pour renforcer RDP, vous devez activer l'authentification au niveau du réseau et restreindre l'accès RDP aux seules adresses IP de confiance. Vous pouvez également utiliser PowerShell pour auditer les paramètres RDP et vous assurer que seuls les utilisateurs autorisés y ont accès.

10. Activer la journalisation PowerShell

Par défaut, PowerShell n'enregistre rien. Cela signifie que si un attaquant utilisait PowerShell pour effectuer quelque chose de malveillant sur votre système, il n’y en aurait aucune trace.

L'activation de la journalisation PowerShell vous donnera un enregistrement de tout ce pour quoi PowerShell est utilisé sur votre système. Cela peut s’avérer extrêmement utile lorsque l’on enquête sur un incident ou lorsque l’on tente de déterminer ce qui s’est passé après une attaque.

Pour activer la journalisation PowerShell, vous devez modifier le registre. Les clés et valeurs spécifiques qui doivent être modifiées dépendent de la version de PowerShell que vous utilisez. Pour PowerShell 5.1, les clés et valeurs sont les suivantes :

Key: HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\ModuleLogging

Value name: EnableModuleLogging

Value type: REG_DWORD

Value data: 1

For PowerShell 6.0 and later, the keys and values are as follows:

Key: HKLM:\SOFTWARE\Policies\Microsoft\Windows\PowerShell\Transcription

Value name: EnableInvocationHeader

Value type: REG_DWORD

Value data: 1

Après avoir modifié ces valeurs, vous devez redémarrer PowerShell pour que les modifications prennent effet.

Lu 144 fois
Connectez-vous pour commenter