Drapeaux userAccountControl à risque : les repérer et les corriger avant un attaquant
L'attribut userAccountControl regroupe dans un seul entier des dizaines de paramètres de compte. Certains bits, positionnés un jour pour dépanner une application ou hérités d'un script de création, affaiblissent durablement la sécurité sans que personne ne s'en souvienne.
Un attribut, de nombreux comportements
Chaque compte utilisateur ou ordinateur porte un attribut userAccountControl dont chaque bit active un comportement : compte désactivé, mot de passe qui n'expire jamais, compte approuvé pour la délégation, etc. Les consoles d'administration n'exposent qu'une partie de ces options, et certaines ne sont modifiables que par script ou par l'éditeur d'attributs. C'est précisément pourquoi elles échappent aux revues.
Les drapeaux à surveiller
| Drapeau | Valeur | Risque |
|---|---|---|
| PASSWD_NOTREQD | 0x20 | Le compte peut avoir un mot de passe vide, quelle que soit la stratégie de mot de passe |
| ENCRYPTED_TEXT_PWD_ALLOWED | 0x80 | Le mot de passe est stocké avec un chiffrement réversible, donc récupérable en clair par qui accède à la base de l'annuaire |
| DONT_EXPIRE_PASSWORD | 0x10000 | Le mot de passe n'expire jamais ; acceptable avec un mot de passe long et unique, dangereux sur un compte partagé ou ancien |
| TRUSTED_FOR_DELEGATION | 0x80000 | Délégation non contrainte : le compte reçoit et conserve les TGT des utilisateurs qui s'y connectent |
| USE_DES_KEY_ONLY | 0x200000 | Limite Kerberos à DES, algorithme cassé et désactivé par défaut |
| DONT_REQ_PREAUTH | 0x400000 | Pas de pré-authentification Kerberos : une réponse chiffrée avec la clé du compte peut être obtenue sans mot de passe, puis attaquée hors ligne |
Les rechercher
Une requête LDAP avec la règle de correspondance binaire 1.2.840.113556.1.4.803 permet de tester un bit précis. Par exemple, le filtre (userAccountControl:1.2.840.113556.1.4.803:=32) renvoie les comptes portant PASSWD_NOTREQD ; remplacez 32 par la valeur décimale des autres drapeaux. Le module PowerShell Active Directory expose aussi des propriétés directes, comme PasswordNotRequired, TrustedForDelegation ou DoesNotRequirePreAuth. Pensez à inclure les comptes désactivés : ils peuvent être réactivés, et leur configuration révèle souvent des pratiques encore en cours.
Les corriger sans casser
- PASSWD_NOTREQD : retirez le drapeau, puis vérifiez que le compte possède bien un mot de passe conforme. Ce bit est fréquemment posé par des outils de provisionnement ou d'anciens scripts ; corrigez aussi la source.
- Chiffrement réversible : retirer le drapeau ne suffit pas, le mot de passe déjà stocké reste récupérable jusqu'au prochain changement. Forcez donc un changement de mot de passe. Vérifiez aussi que le paramètre équivalent n'est pas activé dans la stratégie de mot de passe du domaine ou dans une stratégie de mot de passe affinée.
- DES : retirez le drapeau et assurez-vous que le compte dispose de clés AES, ce qui peut imposer un changement de mot de passe.
- Pré-authentification désactivée : réactivez-la. Les applications qui l'exigent désactivée sont rarissimes aujourd'hui.
- Délégation non contrainte : légitime sur les contrôleurs de domaine uniquement. Ailleurs, migrez vers la délégation contrainte ou basée sur les ressources, et marquez les comptes privilégiés comme « sensibles et ne pouvant pas être délégués ».
- Mot de passe sans expiration : acceptable pour un gMSA ou un compte à mot de passe long et géré, à justifier au cas par cas pour les autres.
Surveiller la réapparition. Ces drapeaux reviennent souvent après une correction, via un outil de provisionnement ou un administrateur pressé. Les modifications de userAccountControl sont journalisées sur les contrôleurs (événement 4738) : alertez sur l'ajout des bits les plus sensibles.
Ce qu'un audit vérifie
- la liste des comptes actifs et désactivés portant chacun des drapeaux à risque ;
- les comptes privilégiés concernés, traités en priorité ;
- la stratégie de mot de passe du domaine et les stratégies affinées autorisant le chiffrement réversible ;
- les comptes non contrôleurs approuvés pour la délégation non contrainte.