/
/

Comment former les nouveaux techniciens à l’utilisation des scripts sans exposer de variables sensibles

par Team Ninja
How to Train New Technicians on Script Use Without Exposing Sensitive Variables blog banner image

Points clés

  • Séparez les données sensibles des scripts : évitez de coder les identifiants en dur et utilisez un stockage sécurisé, comme des variables d’environnement ou des champs chiffrés.
  • Stockez les secrets dans le registre Windows : centralisez les valeurs sensibles et restreignez-en l’accès pour une exécution de scripts plus sûre.
  • Utilisez des variables d’environnement pour la formation : fournissez des données fictives inoffensives afin que les techniciens apprennent sans exposer de véritables identifiants.
  • Créez des scripts de formation distincts des scripts de production : utilisez des valeurs fictives dans les scripts de formation et des sources sécurisées dans les scripts en production.
  • Auditez l’activité des scripts : consignez les utilisations et les modifications pour garantir la sécurité, la responsabilisation et de bonnes pratiques de formation.

Une bonne formation des techniciens informatiques est essentielle à l’évolutivité des opérations informatiques, en particulier avec l’automatisation. Les scripts contiennent des variables sensibles codées en dur ou exposées lors de l’exécution. Une mauvaise gestion augmente le risque de fuites de données et peut ancrer de mauvaises habitudes chez les techniciens juniors.

Un processus structuré de formation et de gestion des scripts est indispensable à toute équipe informatique pour protéger les données et renforcer la confiance des techniciens.

Former les nouveaux techniciens à l’utilisation des scripts sans exposer de données sensibles

Une bonne formation des techniciens informatiques consiste à séparer les variables sécurisées de la logique du script, à stocker les variables dans le registre Windows, à utiliser des variables d’environnement contenant des données fictives sans risque pour la formation, à créer des versions de formation des scripts de production et à auditer les modifications et les exécutions de scripts pendant la formation.

📌 Prérequis :

  • Modèles de scripts standard pour l’onboarding
  • Droits d’administrateur pour déployer les scripts de formation
  • Mécanisme de stockage sécurisé pour les valeurs protégées
  • Documentation définie sur la structure des scripts et les pratiques d’édition sûres

📌 Stratégies de déploiement recommandées :

Cliquez pour choisir une méthode💻
Idéal pour les utilisateurs individuels
💻💻💻
Idéal pour les grandes entreprises
Méthode 1 : séparer les variables sécurisées de la logique du script✓
Méthode 2 : stocker les variables sécurisées dans le registre Windows✓
Méthode 3 : utiliser des variables d’environnement avec des données fictives sans risque pour la formation✓
Méthode 4 : créer des versions de formation des scripts de production✓
Méthode 5 : auditer les modifications et l’exécution des scripts pendant la formation✓

🎥 Regardez le guide vidéo : Comment former les nouveaux techniciens à l’utilisation des scripts sans exposer de variables sensibles.

Méthode 1 : séparer les variables sécurisées de la logique du script

Lors de l’onboarding de nouveaux techniciens informatiques, la première chose à faire est de séparer les variables sécurisées de la logique du script. Cette séparation réduit les risques de sécurité et permet une automatisation plus sûre.

📌 Cas d’utilisation : empêche les nouveaux techniciens de voir et de partager des informations sensibles, puisque celles-ci sont récupérées depuis un stockage sécurisé

Évitez de coder en dur des données sensibles telles que :

  • Mots de passe administrateur
  • Jetons d’API
  • Identifiants SMTP
  • Clés de sauvegarde
  • Noms de serveurs internes

Référencez plutôt :

  • Des coffres d’identifiants chiffrés
  • Des variables d’environnement
  • Des chemins de registre
  • Des champs injectés par NinjaOne ou votre RMM

Méthode 2 : stocker les variables sécurisées dans le registre Windows

Cette méthode stocke les données sensibles dans le registre Windows, afin que seuls les processus autorisés ou les administrateurs puissent y accéder.

📌 Cas d’utilisation : donne à plusieurs scripts un accès sécurisé aux valeurs sensibles tout en limitant les accès

  1. Appuyez sur Win, tapez PowerShell, puis cliquez sur Exécuter en tant qu’administrateur.
  2. Copiez-collez le code suivant dans l’invite, puis appuyez sur Entrée :
    • Protégez les valeurs masquées aux techniciens dans HKLM (HKEY_LOCAL_MACHINE) :

New-Item -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Force

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SMTPHost" -Value "mail.domain.com"

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SecureToken" -Value "XYZ123"

💡 Remarque : SMTPHost, mail.domain.com et XYZ123 ne sont que des valeurs fictives. Remplacez-les par votre serveur de messagerie et votre SecureToken.

Ce script centralise l’ensemble des scripts, puisqu’ils peuvent référencer les mêmes valeurs stockées sans les intégrer dans le code.

    • Accédez-y de façon sécurisée dans les scripts de formation :

$smtp = Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SMTPHost"

$token = Get-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "SecureToken"

💡 Conseil : utilisez les autorisations NTFS (New Technology File System) ou une GPO pour restreindre l’accès aux clés de registre aux processus de niveau administrateur

⚠️ Avertissement : avant de déployer cette modification de paramètres sur différents terminaux, mieux vaut la tester d’abord sur une machine locale. (Pour en savoir plus, consultez : Points de vigilance)

Méthode 3 : utiliser des variables d’environnement avec des données fictives sans risque pour la formation

Cette méthode définit une variable qui permet à tous les scripts de référencer un chemin précis de manière cohérente, sans devoir les modifier un par un.

📌 Cas d’utilisation : standardise les chemins non sensibles sur toutes les machines sans modifier chaque script

  1. Appuyez sur Win, tapez PowerShell ou cmd, puis cliquez sur Exécuter en tant qu’administrateur.
  2. Copiez-collez le code suivant dans l’invite (selon l’outil que vous utilisez), puis appuyez sur Entrée :
    • CMD (invite de commande) :

setx NOC_SCRIPTS "C:\NOC\Scripts"

💡 Remarque : C:\NOC\Scripts représente le chemin vers un répertoire de votre système. Il s’agit du dossier qui sera enregistré comme valeur de la variable NOC_SCRIPTS.

    • PowerShell :

$path = $env:NOC_SCRIPTS

Les scripts ci-dessus sont un moyen pratique de donner à tous les scripts un point de référence cohérent pour des chemins ou des valeurs visibles par tous.

⚠️ Avertissement : veillez à copier-coller le bon script, car une syntaxe incorrecte peut provoquer des erreurs. (Pour en savoir plus, consultez : Points de vigilance)

Méthode 4 : créer des versions de formation des scripts de production

Avec cette méthode, le script de production récupère les valeurs sensibles depuis des sources sécurisées, tandis que le script de formation utilise des valeurs fictives inoffensives, ce qui le rend partageable sans risque.

📌 Cas d’utilisation : fournit des scripts de formation reposant sur des valeurs fictives inoffensives

Avant de créer vos scripts de production, il est essentiel de disposer de deux versions :

  • Formation : ce script doit contenir des valeurs fictives comme « smtp.placeholder.local »
  • Production (sécurisée) : ce script, lui, lit les valeurs depuis des sources protégées, des fichiers chiffrés ou des coffres d’identifiants.

Vous devriez également appliquer des standards de scripting tels que :

  1. Ajoutez ensuite des standards de scripting en appuyant sur Win + R, en tapant PowerShell, puis en cliquant sur Exécuter en tant qu’administrateur.
  2. Copiez-collez le script ci-dessous dans l’invite, puis appuyez sur Entrée.

# BEGIN: Do not edit

$APIKey = Get-ItemPropertyValue -Path "HKLM:\SOFTWARE\Org\ScriptSecrets" -Name "ProdAPIKey"

# END: Do not edit

💡 Remarque : le script ci-dessus signale les sections restreintes par des commentaires et applique des autorisations en lecture seule sur les scripts.

⚠️ Avertissement : veillez à n’utiliser le script de formation qu’à des fins de formation. (Pour en savoir plus, consultez : Points de vigilance)

Méthode 5 : auditer les modifications et l’exécution des scripts pendant la formation

Cette méthode consigne dans une clé de registre qui exécute les scripts critiques et à quel moment, ce qui constitue un historique consultable.

📌 Cas d’utilisation : conserve un historique indiquant qui a exécuté les scripts clés et quand, pour faciliter les vérifications

  1. Appuyez sur Win, tapez PowerShell, puis cliquez sur Exécuter en tant qu’administrateur.
  2. Copiez-collez le code suivant dans l’invite, puis appuyez sur Entrée :

Set-ItemProperty -Path "HKLM:\SOFTWARE\Org\ScriptAudit"

-Name "LastRunBy" -Value "$env:USERNAME - $(Get-Date -Format u)"

Vous pouvez également valider les modifications en suivant les étapes ci-dessous :

  1. Appuyez sur Win, tapez cmd, puis cliquez sur Exécuter en tant qu’administrateur.
  2. Copiez-collez le code suivant dans l’invite, puis appuyez sur Entrée :

reg query HKLM\SOFTWARE\Org\ScriptAudit

💡 Conseil : planifiez des revues régulières des journaux pour garantir une utilisation sûre des scripts.

⚠️ Points de vigilance

RisquesConséquences possiblesSolutions de retour en arrière
Absence de test sur une machine localeDéployer un script non testé peut faire planter des appareils, par exemple à cause d’une incompatibilité de clé de registre.Appliquez les modifications prévues sur une machine locale, puis vérifiez que la configuration donne bien le résultat attendu.
Syntaxe de commande incorrecteUne syntaxe de commande incorrecte peut corrompre le registre, provoquer un comportement anormal du système ou empêcher le code d’avoir le moindre effet.Veillez à copier-coller le bon script dans l’invite. Vous pouvez aussi utiliser des outils comme PSScriptAnalyzer pour contrôler la qualité du code.
Script de formation utilisé par erreur en productionLa production peut échouer à cause des valeurs fictives.Étiquetez clairement les scripts pour assurer la gestion des versions.

Autres considérations

Les bonnes pratiques suivantes visent à réduire les risques tout en préservant l’efficacité opérationnelle.

Exécution basée sur les rôles

Utilisez des comptes à privilèges minimaux ou des rôles RMM pour contrôler l’exécution des scripts. Pour cela :

  • Attribuez les autorisations de sorte que chaque compte n’exécute que les scripts dont il a besoin.
  • Restreignez l’accès aux types de scripts sensibles, comme ceux qui modifient les configurations système.

Ces pratiques limitent les dégâts en cas de compromission d’un compte.

Nettoyage des sorties

Assurez-vous que les scripts n’affichent jamais de secrets tels que des mots de passe, des jetons ou des clés d’API dans la console ou les journaux. Cela implique de :

  • Masquer les données sensibles dans les sorties.
  • Éviter de stocker des identifiants en clair dans les journaux.
  • Vérifier la gestion des sorties de script avant le déploiement.

Paramétrage

Utilisez des blocs param() dans PowerShell pour traiter les entrées en toute sécurité.

  • Exigez des paramètres au lieu de coder en dur les valeurs sensibles.
  • Évitez d’afficher la valeur des paramètres dans la console.
  • Mettez en place des attributs de validation pour imposer des formats d’entrée et prévenir les attaques par injection.

Signature des scripts

Signez numériquement les scripts finaux utilisés en production afin d’empêcher toute modification, en n’exécutant que des scripts issus d’auteurs de confiance. Vous pouvez combiner cette approche avec des politiques d’exécution pour imposer ce niveau de confiance.

Résolution des problèmes courants

Voici les problèmes de scripting les plus fréquents pendant la formation des techniciens informatiques, et comment les résoudre.

Un technicien voit des variables protégées

L’idéal est de restreindre les scripts contenant des variables sensibles. Vous pouvez recourir à des contrôles d’accès adaptés, comme des ACL de système de fichiers qui limitent qui peut lire ou modifier les scripts. Il est parfois plus sûr d’isoler les valeurs confidentielles dans des coffres sécurisés ou des magasins de paramètres chiffrés afin de les tenir à l’écart du code source du script.

Le script échoue pendant la formation

Il arrive que des scripts échouent lors des phases de formation ou de test. Pour y remédier, mettez en place une gestion des erreurs capable de détecter les ressources manquantes et d’y réagir. Encadrer les recherches critiques dans des blocs try/catch évite les plantages.

Il est également recommandé d’utiliser des vérifications comme Test-Path ou Get-ItemProperty avant d’accéder aux fichiers, afin que le script confirme leur existence.

L’injection de variables ne fonctionne pas

L’injection de variables peut échouer en raison de restrictions liées à la politique d’exécution ou d’une incohérence dans le script. Il est essentiel de vérifier les paramètres de la politique d’exécution avec Get-ExecutionPolicy -List pour confirmer que le script est autorisé à s’exécuter.

Les services NinjaOne qui facilitent l’onboarding des techniciens informatiques

Avec NinjaOne, les MSP peuvent intégrer de nouveaux techniciens à des missions d’automatisation sans sacrifier la sécurité ni exposer de données sensibles.

  • Limitation de l’édition et de l’exécution des scripts aux rôles de techniciens attribués
  • Injection de valeurs sécurisées à l’exécution via des champs personnalisés ou des modèles de politiques
  • Journalisation de l’activité et des sorties de script par appareil et par technicien
  • Dépôts de scripts avec gestion des versions, distinguant scripts de formation et scripts de production
  • Workflows de relecture des scripts avant leur mise en production

Évitez les fuites de données accidentelles grâce à une bonne formation des techniciens informatiques

Former les nouveaux techniciens informatiques à utiliser et modifier les informations évite l’exposition de données sensibles. Pour cela, abstrayez les valeurs à l’aide du registre et des GPO, créez des versions de formation sûres de vos scripts d’automatisation et appuyez-vous sur NinjaOne pour contrôler l’accès aux scripts, leur exécution et le reporting associé.

Sujets connexes :

Guide de démarrage rapide

NinjaOne propose plusieurs ressources pour former les techniciens à l’utilisation des scripts :

  1. Options de formation :
    • Mini-formations : vidéos courtes de 5 minutes consacrées à un sujet précis
    • Parcours de formation Workramp : supports d’apprentissage structurés pour les techniciens
    • Formation individuelle pour les techniciens support : formation sur mesure pour développer des compétences spécifiques
  2. Gestion des scripts et formation :
    • La bibliothèque d’automatisation propose un large éventail de scripts prêts à l’emploi
    • Les techniciens peuvent accéder à des modèles de scripts et apprendre à les utiliser
    • NinjaOne propose le partage de scripts et des ressources communautaires
  3. Protection des variables :
    • NinjaOne intègre des mécanismes de protection des variables sensibles :
      • Champs sécurisés pour les informations sensibles
      • Champs personnalisés à accès contrôlé
      • Scripts à jeton sécurisé pour gérer les identifiants
  4. Types de variables de script :
    • Les scripts prennent en charge plusieurs types de variables
    • Les variables peuvent être configurées pour créer des formulaires interactifs
    • Les techniciens peuvent apprendre à utiliser les variables en toute sécurité, sans exposer d’informations sensibles
  5. Ressources de formation :
    • Page Community Script Share
    • Bibliothèque de mini-formations
    • Supports de formation Workramp
    • Documentation avec des exemples de scripts

Pour former de nouveaux techniciens, vous pouvez vous appuyer sur ces ressources existantes afin de bâtir un programme de formation complet aux scripts, axé sur la sécurité et la bonne gestion des variables.

FAQs

Appliquez des pratiques sécurisées : séparez les variables de la logique du script, stockez les secrets dans des emplacements protégés (registre, coffres, etc.) et fournissez des scripts de formation avec des données fictives plutôt que de véritables identifiants.

Évitez le codage en dur et stockez les données sensibles dans des emplacements sécurisés comme le registre Windows, des coffres d’identifiants chiffrés ou des champs gérés par le RMM avec un accès restreint.

Cette séparation réduit le risque de fuites de données, renforce la sécurité et permet aux techniciens de modifier les scripts en toute sécurité, sans accéder à des informations confidentielles.

Les scripts de formation utilisent des valeurs fictives inoffensives pour l’apprentissage, tandis que les scripts de production récupèrent les données réelles depuis des sources sécurisées, comme des coffres d’identifiants ou des clés de registre.

Utilisez des contrôles d’accès basés sur les rôles, restreignez les autorisations et stockez les secrets en dehors des scripts, afin que seuls les systèmes ou administrateurs autorisés puissent les récupérer.

Les variables d’environnement fournissent des valeurs cohérentes et non sensibles (comme des chemins de fichiers), pour que les scripts s’exécutent sans risque sur différents systèmes sans exposer de données réelles.

Mettez en place un audit : journalisez l’exécution des scripts, suivez l’activité des utilisateurs et examinez les modifications pour garantir la conformité et une bonne gestion des scripts.

You might also like

Prêt à simplifier les aspects les plus complexes de l'informatique et de la sécurité ?