Sécuriser avec LAPS le mot de passe des comptes administrateurs locaux

Introduction

Au sein d’un domaine Active Directory, les comptes « Administrateur » locaux des machines qui le composent ne répondent pas, bien souvent, aux bonnes pratiques de sécurité des mots de passe. Ils sont pour la plupart identiques et peu complexe du fait qu’ils ne soient que très rarement utilisés et que le déploiement des machines se réalise couramment à partir d’une même image. Même laissés à l’abandon au profit des comptes du domaine, ils constituent une porte d’entrée avec un pouvoir non négligeable sur les machines. De plus, s’il s’avère qu’un mot de passe identique est utilisé pour toutes les machines, la portée d’une attaque peut être très importante. De ce constat, comment faire pour faire gérer les mots de passe de ces comptes, de manière automatique, sécurisée et surtout accessible pour les personnes légitimes ? Microsoft nous propose sa solution LAPS (Local Administrator Password Solution). Elle permet de générer un mot de passe aléatoire, de l’appliquer au compte administrateur local de la machine puis de le stocker de manière sécurisée dans un attribut Active Directory.

Principe de fonctionnement

LAPS est une solution qui repose uniquement sur l’écosystème Active Directory. Elle est composée des éléments suivants :

  • Deux nouveaux attributs pour les objets ordinateurs de l’AD.
    • Il est nécessaire de réaliser une extension de schéma pour intégrer ces nouveaux attributs. Une commande PowerShell est fournie dans l’installeur de Microsoft sur lequel nous reviendrons dans la partie « Déploiement ».
  • Une GPO : elle va permettre de paramétrer et surtout de faire fonctionner LAPS.
  • Un CSE (Client Side Extension) : installé directement sur les machines, il ajoute les fonctionnalités supplémentaires nécessaire à l’application des paramètres de la GPO.
  • Un client graphique « LAPS UI », qui permet de visualiser et réinitialiser les mots de passe.

Attention tout de même aux applicatifs liés à ces comptes administrateurs locaux (tâches planifiées, applications métiers, etc…) qui pourraient être impactés par les changements de mot de passe.

Déploiement 

Avant tout, voici les prérequis minimum de la solution :

Machines DC Windows 2003 SP1
Serveurs Windows 2003 SP2
Postes de travail Windows Vista
Applicatif (pour les outils de gestion) .NET Framework 4.0
PowerShell 2.0

Lien de téléchargement pour la solution : LAPS

Sur un contrôleur de domaine :

Il faut installer le PowerShell module ainsi que les GPO Editor templates. L’installation du Fat Client UI est possible, mais il est recommandé de l’installer sur une machine d’administration. Attention, il ne faut pas installer le « AdmPwd GPO Extention » sur un contrôleur de domaine ! 

Ensuite, nous pouvons procéder à l’extension du schéma :

  1. Avec un compte possédant les droits Administrateur du schéma et un invite de commande PowerShell lancé en administrateur, il faut importer le module précédemment installé via la commande suivante : Import-Module AdmPwd.PS
  2. L’extension de schéma à proprement parlé se réalise avec la commande suivante :  Update-AdmPwdADSchema

Sur les machines :

Deux méthodes d’installation : via l’interface graphique ou en ligne de commande.

  • En interface graphique, pas de configuration particulière, le CSE est le seul élément installé par défaut. On peut vérifier l’installation par la présence de LAPS dans les programmes installés.
  • En ligne de commande, il suffit d’utiliser la commande suivante en adaptant le chemin : msiexec /i C:TEMPLAPS.x64.msi /quiet 

Le fichier étant un .msi, il est également possible de le déployer via GPO. Encore une fois, ne pas installer le CSE sur un contrôleur de domaine !

Mise en route et administration

La gestion des droits

Pour visualiser les mots de passe, un compte AD doit avoir deux droits :

  • Accéder au nouvel attribut ms-MCS-AdmPwd
  • Posséder la permission « Tous les droits étendus »

Par défaut, le groupe des administrateurs du domaine possède cette permission « tous les droits étendus ». Il faut l’ajouter pour les autres groupes qui doivent avoir accès aux mots de passe LAPS. – La cmdlet  Set-AdmPwdReadPasswordPermission permet de donner l’accès au nouvel attribut au(x) groupe(s) souhaités – La cmdlet Set-AdmPwdResetPasswordPermission permet de donner la permission de modifier la date d’expiration du mot de passe à un groupe – Pour que les machines puissent mettre à jour leur attribut ms-MCS-AdmPwd dans leur objet AD correspondant, il faut utiliser la cmdlet Set-AdmPwdComputerSelfPermission

La mise en place des GPO

Pour paramétrer et surtout activer LAPS, il faut maintenant créer une GPO et la lier au(x) UO nécessaire(s). Grâce au Template installé précédemment, un répertoire LAPS devrait être visible dans les paramètres de la GPO.

Voici les paramètres configurables pour LAPS :

  • Password Settings : Ce paramètre concerne la complexité et la durée du mot passe.
  • Name of administrator account to manage : Utile pour appliquer LAPS sur un autre compte administrateur local que le BUILTIN.
  • Do not allow password expiration time longer than required by policy : Empêche de manuellement ajouter une date d’expiration d’une durée plus longue que celle définie dans « Password Settings »
  • Enable local admin password management : Paramètre à activer. Autorise le fonctionnement de LAPS.

ATTENTION : En cas de restauration d’une ancienne image d’un serveur dont le mot de passe aurait changé entre temps, LAPS ne stocke pas les anciens mots de passe. Il faut pouvoir se connecter avec un compte du domaine.

Vérification de l’installation et affichage des mots de passe

Une fois tous les composants installés et la GPO configurée et appliquée, LAPS est opérationnel. Pour afficher un mot de passe deux possibilités:

  • Afficher l’attribut ms-MCS-AdmPwd d’une machine directement dans l’éditeur d’attributs
  • Utiliser le LAPS UI (à lancer en tant qu’administrateur si installé sur un contrôleur de domaine) pour afficher le mot de passe :

Il faut pour cela renseigner le nom de la machine dans le champ ComputerName et lancer la recherche. Cette interface permet également de réinitialiser le mot de passe. En indiquant une date passée le mot de passe sera changé à la prochaine mise à jour des GPO.

Conclusion

Microsoft nous propose avec cet outil une solution simple à mettre en place et qui s’intègre parfaitement dans un environnement Active Directory pour gérer les mots de passe des administrateurs locaux des machines d’un domaine. Toute la gestion s’effectuant par le biais de GPO et de cmdlets PowerShell, LAPS peut être déployé et maintenu facilement même sur des domaines de taille conséquente. Dans un contexte informatique devant faire face à de plus en plus d’attaques, la mise à disposition pour les entreprises de ce type d’outils simples et gratuits par les éditeurs est un vrai plus en terme de sécurité des systèmes d’information et il semble tout à fait opportun pour les entreprises de considérer le déploiement de cette solution.