Si vous administrez des gros réseaux d’entreprise, vous avez certainement été confrontés à la problématique des mots de passe locaux sur les postes de travail. Il s’agit en effet d’un facteur de sécurité déterminant, la fuite d’un mot de passe local « Administrateur » pouvant permettre à qui le détient de faire à peu près ce qu’il veut sur une machine rattachée au réseau d’entreprise.
Différentes méthodes permettent d’appréhender cette gestion délicate, mais la plupart n’amènent pas un niveau de sécurité adéquat dans les environnements sensibles :
- Le script de démarrage, qui va modifier les comptes locaux sous la tutelle du compte système, les mots de passe seront stockés dans le script ou transiteront en clair sur le réseau
- Les GPP (Group Policy Preferences) qui permettaient de gérer les mots de passe locaux jusqu’à ce que la vulnérabilité de ce mécanisme soit largement dévoilée (https://adsecurity.org/?p=63) puis corrigée (https://support.microsoft.com/en-us/kb/2962486) en supprimant simplement cette possibilité.
Depuis Mai 2015, Microsoft propose publiquement « LAPS » (Local Administrator Password Solution) qui est à priori la solution la plus élégante (hors produits tiers probablement payants / complexes) pour traiter simplement et efficacement ce problème. C’est l’objet de ce billet de blog ou je vous présente la mise en œuvre de cette solution sur un environnement type « Proof Of Concept ».
Concept LAPS
LAPS a pour objectif d’automatiser de façon sécurisée la gestion des mots de passe des administrateurs locaux. Le principe consiste à :
- Générer régulièrement pour chaque ordinateur membre du domaine un mot de passe fort, unique et affecté au compte « administrateur » local.
- Transmettre ce mot de passe de façon chiffrée à l’annuaire Active Directory.
- Pour chaque ordinateur, stocker ce mot de passe ainsi que la date de prochain renouvellement dans 2 attributs spécifiques du compte de domaine.
Sa mise en œuvre implique donc :
- Une extension du schéma Active directory (stockage des mots de passe)
- La distribution d’un module client en charge du changement de mot de passe (GPO CSE – Group Polcy Client Side Extension)
Description de l’environnement
Nous disposons d’un environnement de domaine Windows 2012 R2, de postes clients Windows 10 et d’une station d’administration Windows 10 munie des outils d’administration à distance (RSAT)
Installation
Après avoir téléchargé LAPS (https://www.microsoft.com/en-us/download/details.aspx?id=46899 ), nous récupérons un package d’installation (.msi) à installer sur une station d’administration, dans notre cas, il s’agit d’un poste Windows sur lequel nous avons ajouté le pack d’outils d’administration à distance (les RSAT disponibles sur https://www.microsoft.com/en-us/download/details.aspx?id=45520 ) Nous n’installerons sur cette machine que les outils d’administration, l’extension de GPO sera quant à elle installée ultérieurement sur les postes clients :
Extension du schéma
Le schéma doit être étendu de sorte que les objets Ordinateurs détiennent les attributs requis pour le stockage du mot de passe :
- Stockage en clair du mot de passe : ms-Mcs-AdmPwd
- Stockage de la date d’expiration du mot de passe :ms-Mcs-AdmPwdExpirationTime
L’extension du schéma se fait depuis notre station d’administration, nous utilisons le module PowerShell fourni et la commandelette adéquate :
Après avoir lancé ces commandes, nous pouvons vérifier depuis la console de schéma que les deux attributs sont bien liés à la classe d’objets « Computer » :
Gestion des autorisations
Les deux attributs étant créés, il faut maintenant se préoccuper de leur utilisation, en particulier des droits d’utilisation. En effet, aucun intérêt de mettre en place ce mécanisme si tout le monde peut lire les mots de passe.
Nous allons faire en sorte que les autorisations de lecture / écriture sur les deux attributs soient affectées :
- Aux administrateurs du domaine =>
- Au service HelpDesk
Que les autorisations en lecture sur l’attribut ms-Mcs-AdmPwdExpirationTime soient affectées :
- Aux ordinateurs du domaine
Que les autorisations en écriture sur l’attribut ms-Mcs-AdmPwd soient affectées :
- A chaque Ordinateur mais uniquement sur leur propre attribut.
Tout ceci sera effectué depuis les commandelettes PowerShell adéquates fournies avec le module:
Déploiement de la stratégie de groupe pour les ordinateurs
Maintenant que les composants d’infrastructure sont en place, il nous faut traiter les ordinateurs visé, qui doivent être traités par une stratégie de groupe LAPS.
Dans la console de gestion des stratégies de groupe, les paramètres LAPS se trouvent sous les modèles administratifs des Ordinateurs :
La même GPO pourra judicieusement être utilisée pour déployer le module client aux machines ciblées (GPO Client Side Extension), il s’agit du même package MSI que celui utilisé sur notre station d’administration, mais qui par défaut n’installera que les extensions clientes :
Résultat
On touche au bout, il ne reste qu’à redémarrer notre poste client Windows 10 et à observer le résultat. Le module LAPS doit s’installer et le mot de passe doit être changé. Tout ceci est vérifiable en consultant l’objet Ordinateur :
Le mot de passe apparait en clair (parce que je suis Administrateur), de même que sa date d’expiration, tous deux renseignés sur les attributs du compte d’ordinateur.
En revanche, si je ne suis qu’utilisateur, je ne vois plus l’attribut correspondant au mot de passe :
Si vous trouvez que le PowerShell manque de convivialité, vous pouvez obtenir les mêmes informations à l’aide de l’interface LAPS UI (fournie et installée avec le package) :
Conclusion.
Un outil très bien pensé, simple à mettre en œuvre, ne nécessitant aucun composant tiers et… gratuit !
A mettre entre toutes les mains. Je vous recommande la lecture de la documentation présente dans le lien de téléchargement du package, très bien faite et sur laquelle sont mentionnées d’autres options que je n’ai pas développé (changement du mot de passe d’un compte autre que le « BuiltIn Administrator », journalisation …).
Bonne implémentation !