Introduction


L'annuaire Active Directory, centre névralgique de la sécurité des systèmes d'information Microsoft, est un élément critique permettant la gestion centralisée de comptes, de ressources et de permissions. L'obtention de privilèges élevés sur cet annuaire entraîne une prise de contrôle instantanée et complète de toutes les ressources ainsi administrées.

L'analyse des modes opératoires des attaques récentes met en évidence une recrudescence du ciblage des annuaires Active Directory, compte tenu de leur rôle de pierre angulaire de la plupart des systèmes d'information. En effet, l'attaquant ayant obtenu des droits élevés sur l'annuaire peut alors déployer une charge malveillante sur l'ensemble du système d'information, notamment par GPO ou en utilisant des connexions directes (psexec, wmiexec). Par conséquent, le faible niveau de sécurité des annuaires met en danger les systèmes d'information dans leur globalité et fait porter un risque systémique aux organisations.

Les observations de l'ANSSI font apparaître un manque de maturité critique et récurrent sur la sécurité des annuaires Active Directory. Le niveau de sécurité décroît ainsi de manière importante en fonction du temps et au rythme de la manipulation de ses objets ou des actions d'administration.

En réponse à ce risque croissant, l'ANSSI a développé et met à disposition un recueil de points de contrôle, afin d'accompagner les chaines DSI et SSI dans le suivi du niveau de sécurité des annuaires Active Directory. Ce recueil a vocation à être enrichi régulièrement en fonction des travaux de recherche, des pratiques constatées en audit, et de l'analyse des modes opératoires adverses.

Chaque point de contrôle vise à vérifier l'absence d'une pratique susceptible d'affaiblir le niveau de sécurité et qui pourrait le cas échéant être utilisée dans le cadre d'une attaque. En fonction des faiblesses trouvées, l'annuaire Active Directory se voit affecté un niveau :

  • 1 L'annuaire Active Directory présente des problèmes critiques de configuration qui mettent en danger immédiat l'ensemble des ressources hébergées. Des actions correctrices sont à prendre dans les plus brefs délais ;
  • 2 L'annuaire Active Directory présente des lacunes de configuration et de gestion suffisantes pour mettre en danger l'ensemble des ressources hébergées. Des actions correctrices sont à prendre à court terme ;
  • 3 L'annuaire Active Directory possède un niveau de sécurité basique non affaibli depuis son installation ;
  • 4 L'annuaire Active Directory dispose d'un bon niveau de sécurité ;
  • 5 L'annuaire Active Directory dispose d'un niveau de sécurité à l'état de l'art.

Pour obtenir un niveau, un annuaire Active Directory doit passer avec succès tous les points de contrôles des niveaux inférieurs. Un annuaire de niveau 5 a passé avec succès tous les points de contrôle.

Chaque point de contrôle détaillé présente les caractéristiques suivantes:

  • Titre du point de contrôle et niveau associé ;
  • Identifiant du point de contrôle ;
  • Description de la vulnérabilité ou de l'affaiblissement de sécurité induit que l'on cherche à caractériser par le point de contrôle ;
  • Recommandation à appliquer pour valider le point de contrôle et durcir la configuration de l'annuaire.

Lorsqu'elles sont applicables, les documentations officielles sont proposées pour approfondissement.

Développé par l'ANSSI, le service  ADS (Active Directory Security) met à disposition des opérateurs règlementés et de la sphère publique une capacité d'audit des annuaires Active Directory visant à leur donner de la visibilité sur le niveau de sécurité de leur annuaire et à les accompagner dans son durcissement par l'application progressive de mesures adéquates, avec un suivi dans le temps. Le service ADS implémente l'ensemble des points de contrôle présentés dans ce recueil.

Liste des points de contrôle


Un point de contrôle peut apparaître pour plusieurs niveaux de sécurité d'un Active directory. Plus le niveau visé est élevé, plus ses critères deviennent stricts. À ce jour, seuls les points permettant la validation des niveaux de sécurité 1 à 3 sont publiés. Les points de contrôle de niveaux supérieurs seront publiés lors de mises à jour futures de ce document.

La liste suivante permet de naviguer dans les points de contrôle et de consulter les recommandations associées.

L'historique des modifications est disponible ici.

 

Not implemented:


Not implemented:
Not implemented:
Niveau titre ID
1 Chemins de contrôle dangereux vers les conteneurs de certificats vuln_adcs_control
12 Chemins de contrôle dangereux vers les modèles de certificats vuln_adcs_template_control
1 Permissions d'enrôlement dangereuses sur des modèles de certificats permettant l'authentification vuln_adcs_template_auth_enroll_with_name
123 Certificats faibles ou vulnérables vuln_certificates_vuln
1 Objets critiques non disponibles vuln_critical_objects
1 Contrôleurs de domaine incohérents vuln_dc_inconsistent_uac
1 Délégation d'authentification contrainte vers un service d'un contrôleur de domaine vuln_delegation_a2d2
1 Délégation contrainte basée sur les ressources, sur des contrôleurs de domaine vuln_delegation_sourcedeleg
1 Délégation d'authentification contrainte avec transition de protocole vers un service privilégié vuln_delegation_t2a4d
1 Présence de Display Specifiers dangereux vuln_display_specifier
1 Permissions dangereuses sur le groupe DnsAdmins vuln_dnsadmins
13 Zones DNS mal configurées vuln_dnszone_bad_prop
1 Comptes privilégiés dont le mot de passe n'expire jamais vuln_dont_expire_priv
123 Paramètres dSHeuristics dangereux vuln_dsheuristics_bad
134 Niveaux fonctionnels de la forêt et des domaines insuffisants vuln_functional_level
1 Comptes privilégiés sans préauthentification Kerberos vuln_kerberos_properties_preauth_priv
1 Contrôleurs de domaine dont le mot de passe de compte d'ordinateur est inchangé depuis plus de 45 jours vuln_password_change_dc_no_change
1 Contrôleurs de domaines inactifs vuln_password_change_inactive_dc
1 Comptes privilégiés dont le mot de passe est inchangé depuis plus de 3 ans vuln_password_change_priv
12 Permissions dangereuses sur l'objet adminSDHolder vuln_permissions_adminsdholder
12 Chemins de contrôle dangereux vers les contrôleurs de domaine vuln_permissions_dc
12 Chemins de contrôle dangereux vers les paramètres DFSR du SYSVOL vuln_permissions_dfsr_sysvol
12 Chemins de contrôle dangereux vers les clés DPAPI vuln_permissions_dpapi
12 Chemins de contrôle dangereux vers les clés gMSA vuln_permissions_gmsa_keys
12 Chemins de contrôle dangereux vers la racine des naming contexts vuln_permissions_naming_context
12 Chemins de contrôle dangereux vers les objets du schéma vuln_permissions_schema
1 Chemins de contrôle dangereux vers les serveurs MicrosoftDNS vuln_permissions_msdns
1 Chemins de contrôle dangereux vers les GPO s'appliquant aux membres des groupes privilégiés vuln_permissions_gpo_priv
1 Comptes avec un PrimaryGroupID inférieur à 1000 vuln_primary_group_id_1000
12 Nombre important de membres des groupes privilégiés vuln_privileged_members
12 Chemins de contrôle dangereux vers des membres de groupes privilégiés vuln_privileged_members_perm
1 Comptes privilégiés avec SPN vuln_spn_priv
1 Relations d'approbation sortante de type domaine non filtré vuln_trusts_domain_notfiltered
1 Relations d'approbation sortantes de type forêt avec sID History activé vuln_trusts_forest_sidhistory
1 Nombre important de comptes actifs inutilisés vuln_user_accounts_dormant
2 Mauvaises versions de l'Active Directory vuln_adupdate_bad
2 Le groupe "Pre-Windows 2000 Compatible Access" contient "Anonymous" vuln_compatible_2000_anonymous
234 Algorithmes de chiffrement supportés par les DC/RODC vuln_dc_crypto
2 Délégation d'authentification non contrainte vuln_delegation_t4d
2 Comptes dont le mot de passe n'expire jamais vuln_dont_expire
2 Compte Invité actif vuln_guest
2 Comptes utilisateurs avec un chiffrement Kerberos faible vuln_kerberos_properties_deskey
2 Comptes sans préauthentification Kerberos vuln_kerberos_properties_preauth
2 Mot de passe du compte krbtgt inchangé depuis plus d'un an vuln_krbtgt
2 Serveurs dont le mot de passe de compte d'ordinateur est inchangé depuis plus de 90 jours vuln_password_change_server_no_change_90
2 Comptes de service managés dont le mot de passe de compte est inchangé depuis plus de 90 jours vuln_password_change_msa_no_change_90
2 Chemins de contrôle dangereux vers des conteneurs d'objets privilégiés vuln_permissions_gpo_container_priv
2 Comptes membres de groupes privilégiés avec une mauvaise politique de mot de passe vuln_privileged_members_password
2 Comptes ou groupes privilégiés révélés par des RODC vuln_rodc_priv_revealed
2 Comptes ou groupes ayant un historique de SID d'apparence non conforme vuln_sidhistory_dangerous
2 Utilisation de NTFRS pour la réplication du SYSVOL vuln_sysvol_ntfrs
2 Comptes de trust dont le mot de passe est inchangé depuis plus d'un an vuln_trusts_accounts
3 Comptes ou groupes membres de "Pre-Windows 2000 Compatible Access" vuln_compatible_2000_not_default
3 Algorithmes de chiffrement supportés par les comptes de service vuln_kerberos_properties_encryption
3 Objets ayant un propriétaire inadapté vuln_owner
3 Serveurs inactifs vuln_password_change_inactive_servers
3 Serveurs dont le mot de passe de compte d'ordinateur est inchangé depuis plus de 45 jours vuln_password_change_server_no_change_45
3 Comptes avec un PrimaryGroupID modifié vuln_primary_group_id_nochange
3 Comptes privilégiés non membres du groupe Protected Users vuln_protected_users
3 Comptes ayant leur mot de passe stocké de manière réversible vuln_reversible_password
3 Configuration dangereuse des contrôleurs de domaine en lecture seule (RODC) (neverReveal) vuln_rodc_never_reveal
3 Comptes ou groupes privilégiés présents dans les attributs de révélation des RODC vuln_rodc_reveal
3 Configuration dangereuse des groupes de réplication pour les contrôleurs de domaine en lecture seule (RODC) (allow) vuln_rodc_allowed_group
3 Configuration dangereuse des groupes de réplication pour les contrôleurs de domaine en lecture seule (RODC) (denied) vuln_rodc_denied_group
3 Comptes krbtgt de RODC orphelins vuln_rodc_orphan_krbtgt
3 Comptes ou groupes ayant un historique de SID vuln_sidhistory_present
3 Relations d'approbation entrante avec délégation vuln_trusts_tgt_deleg
4 Membres des groupes privilégiés hors silo d'authentification vuln_silo_priv
4 Comptes utilisateurs de carte à puce sans expiration de mot de passe vuln_smartcard_expire_passwords
4 Ajout de machines au domaine non limité vuln_user_accounts_machineaccountquota

Historique des modifications


Le tableau ci-dessous présente l'historique des changements majeurs de l'analyse.

Date
Item ID
Changelog

2023-03-30

global

Ajout d'une fonctionnalité de filtrage du contenu du rapport basée sur les DN d'objets

2023-03-27

global

Ajout du groupe "Domain Controllers" dans l'encart de description des objets privilégiés. Le groupe était déjà pris en compte lors de l'analyse.

2023-03-26

vuln_certificates_vuln

Ajout de l'outil d'édition des conteneurs de certificats dans la recommandation

2023-03-26

vuln_permissions_schema

Ajout des security descriptors par défaut pour divers objets et de cas légitimes de modification

2022-11-10

vuln_dont_expire

Clarification des recommandations.

2022-10-28

vuln_kerberos_properties_encryption

Clarification des recommandations.

2022-10-26

vuln_dnsadmins

Ajout de précisions sur les vulnérabilités liées à l'appartenance au groupe "DNSAdmins".

2022-10-26

vuln_dnsadmins

Ajout des correctifs officiels des permissions excessives Exchange Server.

2022-10-26

vuln_permissions_adminsdholder

Ajout des correctifs officiels des permissions excessives Exchange Server.

2022-10-26

vuln_permissions_dc

Ajout des correctifs officiels des permissions excessives Exchange Server.