Les objets dynamiques dans Active Directory
Ce compte utilisateur s'auto-détruira dans trois, deux, un...
Malgré tous vos efforts sur l’architecture et le “build” Active Directory sur le tiering model, la sécurité de votre environnement se fera principalement sur son exploitation. Un administrateur non catégorisé, un partage de mot de passe entre un compte T0 et T1 ou un groupe au mauvais emplacement et la sécurité de votre tiering model sera menacée.
Pour résoudre ces problématiques, le plus simple est de conduire régulièrement des actions de recertification pour s’assurer que l’environnement respecte bien les règles définies durant la phase de conception.
Tout l’intérêt du tiering model est de ralentir voir empêcher la progression d’un attaquant vers un niveau critique comme le Tier 0. Si un administrateur partage le même mot de passe entre tous ses comptes (compte sans privilège et comptes administrateurs), cela rend inutile l’utilisation de plusieurs comptes. Il est possible de vérifier rapidement l’utilisation d’un même mot de passe sur plusieurs comptes avec le module PowerShell DSInternals
:
Import-Module DSInternals
$server = (Get-ADDomainController).HostName
Get-ADReplAccount -All -Server $server | Test-PasswordQuality
La commande vous donnera plusieurs informations sur les mots de passe de votre domaine, et notamment cette partie :
These groups of accounts have the same passwords:
Group 1:
CONTOSO\graham
CONTOSO\graham_admin
Group 2:
CONTOSO\admin
CONTOSO\sql_svc01
Dans l’exemple ci-dessus, le compte graham
utilise le même mot de passe que le compte graham_admin
. Ce cas n’est pas acceptable et une action doit être effectuée au plus vite pour changer le mot de passe d’au moins l’un des deux comptes.
Attention : l’utilisation de la commande
Get-ADReplAccount
s’apparente à une attaque DCSync. Elle est a exécuter en pleine connaissance de son effet et avec un compte administrateur du domaine, sur un serveur strictement Tier 0.
Plus d’information sur la commande : DSInternals/Documentation/PowerShell/Test-PasswordQuality.md at master · MichaelGrafnetter/DSInternals
Déplacer un compte dans une unité d’organisation du Tier 0 ne suffit pas à le catégoriser dans le Tier 0 : celui-ci doit impérativement être membre du groupe d’appartenance. L’appartenance à un groupe étant assez peu visible dans Active Directory, le plus simple est de faire un script pour mettre en lumière ce genre d’écart :
$tier0Users = Get-ADUser -Filter * -SearchBase 'OU=Tier 0,DC=contoso,DC=com'
$tier0GroupMembers = Get-ADGroupMember 'Utilisateurs du Tier 0' -Recursive
$tier0Users | Where-Object {$_.SamAccountName -notin $tier0GroupMembers}
Vous pouvez réaliser le même genre de vérification pour le Tier 1 & Tier 2.
Les groupes d’accès à une ressource du Tier 1 peut se trouver à deux endroits : Tier 0 ou Tier 1. Il faut donc vérifier, suivant votre préférence, que tous les groupes d’accès sont à l’endroit défini. BloodHound peut vous aider dans certains cas, sinon l’utilisation de scripts PowerShell personnalisés permettent de mettre en lumière ce genre de chose.
Il peut arriver qu’un serveur ou un compte de service doivent changer de niveau d’administration. Dans ce cas, il est important de traiter chaque mouvement comme une migration, avec un changement de mot de passe immédiat pour les comptes déplacés, et une destruction des empreintes utilisateurs sur le serveur.
Tous les outils que vous avez pu utiliser dans la phase de remédiation (TIERING #2 - Remédiation) peuvent/doivent être réutilisés plusieurs fois par an, afin de s’assurer que votre environnement avance bien dans la bonne direction.
Voici un résumé des outils proposés :
Produit | Description |
---|---|
Ping Castle by NETWRIX | Audit de la configuration Active Directory |
Purple Knight by SEMPERIS | Audit de la configuration Active Directory |
Forest Druid by SEMPERIS | Chemins d’attaque vers les ressources critiques |
Adalanche | Chemins d’attaque vers les ressources critiques |
Bloodhound | Chemins d’attaque vers les ressources critiques |
Ce compte utilisateur s'auto-détruira dans trois, deux, un...
Commentaires