24 novembre 2024

Krusell France

Ta dose d'actu digital !

Créer un domaine Active Directory sécurisé avec Hello-My-Dir

Créer un Active Directory conformes aux bonnes pratiques de sécurité
Rate this post

Présentation

Comment créer un domaine Active Directory qui respecte toutes les règles de base en matière de sécurité ? Autrement dit, comment créer un domaine Active Directory qui répond à tous les points de sécurité évalués par des outils d’audit comme PingCastle et Purple Knight ? La réponse se nomme “Hello-My-Dir”, un outil open source conçu dans ce but !

Dans ce tutoriel, nous allons découvrir plus en détail cet outil et apprendre à l’utiliser afin de pouvoir déployer un nouveau domaine Active Directory que l’on pourrait considérer “secure by design”. Nous allons déjà commencer par évoquer la problématique de sécurité liée à l’Active Directory (AD) avant d’évoquer les fonctions de cet outil et son utilisation.

Active Directory : qu’est-ce qui ne va pas avec la configuration par défaut ?

L’Active Directory, à l’instar d’autres applications et services, n’est pas sécurisé dans sa configuration par défaut. Ainsi, lorsqu’un domaine Active Directory est créé, sa configuration ne respecte pas les bonnes pratiques et les recommandations en matière de sécurité.

C’est un vrai problème puisque l’AD, par sa fonction de gestion des identités, joue un rôle central dans le système d’information des entreprises. Cela en fait une cible privilégiée lors des cyberattaques et, malheureusement, il est bien trop souvent, le maillon faible d’une infrastructure. Quelques minutes peuvent suffire à un attaquant pour obtenir des privilèges élevés sur le domaine, et ainsi obtenir les clés de votre royaume.

Il suffit d’exécuter les outils d’audit PingCastle et Purple Knight sur un Active Directory existant ou fraîchement installé pour mettre en lumière ces vulnérabilités potentielles.

L’outil Hello-My-Dir

L’outil Hello-My-Dir s’adresse à toutes les personnes qui ont pour objectif de déployer un nouveau domaine Active Directory et qui sont soucieuses de la sécurité de ce nouvel environnement. Il va permettre de partir sur une base saine et corriger un ensemble de lacunes présentes dans la configuration par défaut d’un annuaire AD.

Dans les faits, Hello-My-Dir va durcir la configuration de l’Active Directory pour que ce dernier soit conforme aux points de sécurité vérifiés par les outils PingCastle et Purple Knight.

Créer un domaine à partir de l’outil Hello-My-Dir n’est pas suffisant pour sécuriser une infrastructure Active Directory dans son ensemble, mais il représente un pas dans la bonne direction. C’est une bonne première étape, tandis que la seconde étape pourrait être l’utilisation de l’outil HardenAD pour mettre en œuvre un modèle d’administration en tiering.

La création d’un domaine Active Directory avec Hello-My-Dir se déroule en 3 étapes :

Première étape pour générer les fichiers de configuration (nom de votre domaine, niveaux fonctionnels, etc.).

Seconde étape pour créer la nouvelle forêt et le domaine Active Directory.

Troisième étape pour durcir l’environnement grâce à la création de règles de configuration et à la mise en place de GPO.

Par la suite, pour aller plus loin, vous pouvez aussi utiliser l’outil pour ajouter un nouveau contrôleur de domaine Active Directory à un environnement existant, sur le même principe. C’est-à-dire en respectant les bonnes pratiques de sécurité.

Ci-dessous, le lien vers le dépôt officiel du projet. Il donne accès au téléchargement du projet, à la documentation et vous pouvez l’utiliser pour effectuer des suggestions.

Créer un nouveau domaine Active Directory

Passons à la création d’un nouveau domaine AD avec Hello-My-Dir. L’outil est compatible avec les versions récentes de Windows Server, que ce soit avec une interface graphique ou en mode core. Pour notre utilisation, nous allons utiliser un serveur Windows Server 2022, en mode core.

Avant de passer à la création du domaine, veillez à effectuer les actions suivantes :

Nommer la machine (nom du système)

Définir une configuration réseau IPv4 statique

Installer les dernières mises à jour Windows Server

Remarque : l’installation est à effectuer à partir d’un compte Administrateur sur la machine locale qui va devenir le futur contrôleur de domaine AD.

Quand c’est fait, vous pouvez passer à la suite.

A. Télécharger Hello-My-Dir

La première étape consiste à télécharger l’outil : vous pouvez le faire via l’interface graphique ou avec PowerShell, selon votre environnement.

En amont, nous allons créer le répertoire “C:\Scripts” pour accueillir l’outil. Libre à vous d’utiliser un autre emplacement.

New-Item “C:\Scripts” -ItemType Directory

Puis, nous passons au téléchargement de l’archive ZIP du projet. Ici, la dernière version actuelle est téléchargée, donc veillez à adapter le lien après avoir vérifié les versions sur le GitHub du projet. Le fichier de sortie sera nommé “HelloMyDir-v1.1.2.zip”.

Invoke-WebRequest -Uri “https://github.com/LoicVeirman/Hello-My-Dir/archive/refs/tags/v1.1.2.zip” -OutFile “HelloMyDir-v1.1.2.zip”

Une fois l’archive téléchargée, nous allons la décompresser avec le cmdlet “Expand-Archive” puis nous placer à l’intérieur du répertoire obtenu. Dans le répertoire du projet, il y a un ensemble de dossiers et fichiers, dont le script principal nommé “Invoke-HelloMyDir.ps1”.

Expand-Archive .\HelloMyDir-v1.1.2.zip

Préparer la configuration

Nous devons exécuter le script “Invoke-HelloMyDir.ps1” pour générer des fichiers de configuration afin de personnaliser l’environnement cible. Exécutez simplement le script, sans paramètre :

cd .\HelloMyDir-v1.1.2\Hello-My-Dir-1.1.2\

.\Invoke-HelloMyDir.ps1

Remarque : par la suite, si vous avez besoin de modifier une valeur avant de créer le domaine AD, exécutez de nouveau cette commande en ajoutant simplement le paramètre “-Prepare”.

Vous devez répondre à plusieurs questions, dans cet ordre :

Voulez-vous créer un nouveau domaine dans une nouvelle forêt ? La réponse est “Oui” bien entendu (“Y”).

Quel est le nom de domaine complet (DNS) de ce futur domaine ? Pour ma part, ce sera “it-connect.local”

Quel est le nom de domaine NetBIOS de ce futur domaine ? Pour ma part, ce sera “IT-CONNECT”

Quel niveau fonctionnel souhaitez-vous pour la nouvelle forêt ? Indiquez “7” pour choisir le niveau fonctionnel le plus élevé disponible à ce jour, en attendant la sortie de Windows Server 2025. Sauf besoin spécifique, vous n’avez pas d’intérêt à choisir une version inférieure.

Voulez-vous activer la corbeille Active Directory ? Répondez “Oui”.

Voulez-vous activer la fonctionnalité de PAM ? Répondez “Non” car ceci implique d’avoir FIM en tant que prérequis.

Quel niveau fonctionnel souhaitez-vous pour le nouveau domaine ? Sélectionnez le plus élevé, donc “7” si vous avez déjà pris “7” pour la forêt, car le niveau fonctionnel du domaine ne peut pas être inférieur à celui de la forêt.

Définissez l’emplacement pour le répertoire SYSVOL : conservez la valeur par défaut.

Définissez l’emplacement pour le répertoire NTDS : conservez la valeur par défaut.

Quel doit être le nom du compte de service ? Par défaut, ce sera “DLGUSER01”

Quel doit être le nom du groupe de délégation ? Par défaut, ce sera “LS-DLG-DomainJoin-Extended”.

Cette opération va générer les fichiers de configuration (XML) disponible dans le dossier “Configuration” du projet. Vos choix sont notamment stockés dans le fichier “RunSetup.xml”.

Une fois cette première étape effectuée, le script doit être exécuté de nouveau. Encore une fois, il n’est pas utile de préciser de paramètres.

.\Invoke-HelloMyDir.ps1

Cette seconde exécution va permettre d’installer le rôle “Services de domaine Active Directory” (ADDS) sur le serveur, ainsi que les outils d’administration associés à la gestion de ce domaine. Il s’agit de différentes consoles pour administrer l’AD, le DNS, le DFS (associé au partage SYSVOL) et les GPO, ainsi que le module PowerShell pour l’Active Directory.

Une fois le rôle ADDS installé, la nouvelle forêt sera créée avec votre domaine Active Directory. Ce processus se termine par une ligne estampillée “IMPORTANT” : vous devez copier et stocker en lien sûr le mot de passe précisé en bout de ligne. Il s’agit du mot de passe DSRM (restauration des services d’annuaire) que l’outil a généré aléatoirement. Il ne pourra pas être récupéré ultérieurement.

Une fois ce précieux sésame récupéré, appuyez sur n’importe quelle touche du clavier pour redémarrer le serveur.

Suite au redémarrage du serveur, celui-ci est désormais le premier contrôleur de domaine Active Directory du domaine “it-connect.local”. Pour vous connecter au serveur, utilisez le compte Administrateur local et son mot de passe, tel qu’ils étaient avant la création du domaine.

Mais, l’utilisation de Hello-My-DIR ne s’arrête pas ! Nous devons initier la troisième phase du processus : le durcissement de la configuration. Pour cela, nous devons relancer le script pour qu’il effectue les actions de sécurisation.

.\Invoke-HelloMyDir.ps1

À la fin du processus, stockez en lien sûr le mot de passe (ou plutôt la passphrase) correspondant au compte “DLGUSER01”, généré aléatoirement par l’outil.

Si vous rencontrez une erreur, sachez que Hello-My-Dir dispose de son propre journal. Au même titre que les autres journaux Windows, ses événements sont disponibles via l’Observateur d’événements, ainsi qu’à partir de PowerShell. Le journal se nomme “HelloMyDir”.

Get-EventLog -LogName “HelloMyDir” | fl

Aperçu de la configuration déployée

Désormais, nous allons regarder de plus près la configuration effectuée par Hello-My-Dir, afin de comprendre sa valeur ajoutée vis-à-vis d’un domaine AD dans sa configuration par défaut.

A. Les utilisateurs et les groupes de sécurité

Au sein du conteneur “Users”, Hello-My-Dir crée un utilisateur et un ensemble de groupes de sécurité. En plus du compte “Administrateur” natif, seuls les membres du groupe “LS-DLG-DomainJoin-Extended” ont l’autorisation d’ajouter des ordinateurs au domaine. C’est notamment le cas du compte “DLGUSER01” qui est un compte de service, sous la forme d’un utilisateur standard, avec cette délégation de droits.

B. Les stratégies de groupe

Hello-My-Dir crée et active 2 stratégies de groupe (GPO) :

Default Domain Security : une GPO appliquée sur la racine du domaine.

Default Domain Controllers Policy : une GPO appliquée sur l’unité d’organisation “Domain Controllers” pour appliquer des paramètres spécifiques aux contrôleurs de domaine.

C. Les stratégies de mots de passe affinées

Hello-My-Dir crée aussi un ensemble de stratégies de mots de passe affinées (appelée aussi “PSO”), qu’il est possible d’appliquer à différents profils d’utilisateurs. Ces modèles prêts à l’emploi permettront d’appliquer une politique de mots de passe plus ou moins stricte à des comptes utilisateurs, en fonction de leur usage et leur niveau de privilèges.

Chaque PSO s’applique sur un groupe de sécurité qui porte le même nom. Ainsi, si vous souhaitez appliquer une PSO à un utilisateur ou un groupe d’utilisateurs, il suffira de l’ajouter au groupe de sécurité correspondant.

D. Audit avec PingCastle

Qu’en est-il du score de l’audit PingCastle à la suite de la mise en place d’un domaine Active Directory avec Hello-My-Dir ? Comme le montre l’image ci-dessous, le niveau de risque est de 5/100, ce qui est un excellent score. En vérité, il est tout à fait possible d’atteindre 0/100. Comment ? Simplement en déployant un second contrôleur de domaine, car c’est la seule règle en défaut dans PingCastle.

La bonne nouvelle, c’est que le déploiement d’un second contrôleur de domaine avec Hello-My-Dir, c’est tout à fait possible ! Il y a un mode spécifique pour cela !

Avant tout, le serveur doit être préparé sur le même principe que le premier contrôleur de domaine. Il doit pouvoir résoudre le nom de domaine “it-connect.local”, ce qui implique d’utiliser le 1er DC déployé comme serveur DNS. De plus, avant de lancer cette commande, vous devez copier le fichier de configuration “RunSetup.xml” de votre 1er DC vers le futur DC (pour qu’il récupère tout le paramétrage).

La commande ci-dessous doit être exécutée une première fois sur le nouveau serveur pour intégrer la machine au domaine (sauf si vous le faites en amont). Puisque le compte “DLGUSER01” doit être utilisé pour l’intégration de machines au domaine, nous l’utilisons pour la jonction au domaine de ce nouveau serveur.

.\Invoke-HelloMyDIR.ps1 -AddDC

Puis une seconde fois pour l’intégrer comme DC.

.\Invoke-HelloMyDIR.ps1 -AddDC

Suite à l’ajout de ce second DC, le score de PingCastle est désormais à 0/100 !

Conclusion

Si vous avez la volonté de créer un domaine Active Directory respectueux des bonnes pratiques en matière de sécurité, ne perdez pas de temps à l’installer, à l’analyser avec PingCastle, puis à durcir sa configuration. Utilisez directement le modèle proposé par l’outil Hello-My-Dir puisqu’il répond exactement à ce besoin.

Gardez à l’esprit que cette configuration, bien qu’idéale, peut poser un problème dans certains environnements. En effet, elle ne peut pas répondre à tous les scénarios d’utilisation : si vous utilisez des systèmes d’exploitation ou des périphériques obsolètes, vous pourriez avoir besoin de certains protocoles, eux aussi, vulnérables et déconseillés.

Pour aller plus loin, intéressez-vous à la mise en œuvre d’un modèle d’administration en tiering.

Source : www.it-connect.fr

  • julien castex redacteur tech

    Julien est un journaliste tech polyvalent avec une expérience couvrant divers aspects de la high tech, en passant par les smartphones et l'Intelligence Artificielle. Il écrit sur les dernières tendances technologiques, les startups et les projets innovants ainsi que les impacts de la technologie sur la société.

    Voir toutes les publications