Active Directory : Désactiver les accès anonymes (DSHeuristics)
I. Présentation
Le titre de ce tutoriel est un peu trompeur, car par défaut, au sein d'un Active Directory, les accès anonymes sont déjà désactivés. Mais êtes-vous sûr que c'est toujours le cas aujourd'hui après des années d'utilisation et tout un historique ? Ça, c'est une bonne question. Après la lecture de cet article, vous serez capable de vérifier si l'accès est bien désactivé en quelques minutes ! Voire même quelques secondes puisque je vais vous fournir un code PowerShell pour vérifier la valeur de DsHeuristics dans l'Active Directory.
DsHeuristics est une valeur Unicode stockée dans l'annuaire Active Directory au niveau des propriétés du Directory Service. Elle contient une suite de chiffres qui correspondent chacun à une option, elle ne sert pas uniquement à gérer les accès anonymes.
Vous auriez pu, à un moment donné, activer l'accès anonyme au sein de votre Active Directory pour autoriser une application ou un service externe à venir authentifier les utilisateurs, par exemple. Ce que l'on appelle le binding Active Directory est désormais implémenté (dans l'outil tiers) de manière à gérer l'authentification, ce qui permet au service ou à l'application de s'authentifier auprès de l'AD avant de le requêter. C'est très important, car ça permet de ne pas avoir à activer l'accès anonyme qui est dangereux !
II. Éditer la valeur DsHeuristics
Ouvrez la console de modification ADSI sur votre contrôleur de domaine. Ensuite, via un clic droit sur "Modification ADSI", cliquez sur "Connexion".
Cliquez sur "Sélectionnez un contexte d'attribution de noms connu" et choisissez "Configuration" puis validez.
Parcourez ensuite l'arborescence : "CN=Configuration,DC=domain,DC=fr" puis "CN=Services" et enfin "CN=Windows NT". Effectuez un clic droit sur "CN=Directory Service" et cliquez sur "Propriétés".
Au sein de l'onglet "Éditeur d'attributs" en parcourant la liste, vous allez trouver un attribut nommé "dsHeuristics". Si la valeur est "non défini" ou alors qu'avec des zéros, alors c'est parfait, l'accès anonyme est désactivé sur votre AD !
Par contre, s'il y a une valeur alors c'est peut-être autorisé mais ce n'est pas sûr ! La valeur de dsHeuristics est forcément une chaîne de chiffres, dont le 7ème correspond à l'accès anonyme sur votre Active Directory. Il se peut que la septième valeur ne soit pas renseignée, dans ce cas c'est tout bon. Il faut vraiment se concentrer sur le septième chiffre de la chaîne, s'il est égal à "2" alors l'accès anonyme est autorisé sur votre annuaire.
Exemple n°1 : valeur = 0010002002 -> accès anonyme autorisé
Exemple n°2 : valeur = 002 -> accès anonyme non autorisé par septième valeur absente
Pour désactiver l'accès anonyme alors qu'il est actif, il faut :
- Remplacer le septième chiffre (qui doit être un 2) par un 0
- Effacer complètement la valeur dsHeuristics (via le bouton "Effacer") si seul le septième chiffre de la suite est renseigné, sinon vous risquez d'affecter d'autres options.
Il ne reste plus qu'à valider et le tour est joué !
Pour simplifier la procédure et l'analyse de la valeur dsHeuristics, je vous propose un petit script PowerShell, codé par moi-même.
Sur PowerShell Gallery : Get-ADAnonymousAccessStatus
Bel article mais la page pour le code en powershell est not founded 🙂
Merci Loïc, j’ai actualisé le lien.