Guide sur les problématiques de sécurité de Microsoft Active Directory rootDSE/C-LDAP

Qu'est-ce que C-LDAP dans les services Microsoft Active Directory ?

Active Directory (AD) est un service d'annuaire développé par Microsoft. Les services Active Directory comprennent les services suivants: Active Directory Certificate Services (AD CS), Active Directory Domain Services (AD DS), Active Directory Federation Services (AD FS), Active Directory Lightweight Directory Services (AD LDS), et Active Directory Rights Management Services (AD RMS). Un serveur exécutant Active Directory Domain Services (AD DS) s'appelle un contrôleur de domaine.
Parmi d'autres protocoles, Active Directory utilise LDAP (Lightweight Directory Access Protocol) sur le port TCP 389.
Il utilise également C-LDAP (Connection-less Lightweight Directory Access Protocol) sur le port UDP 389 pour les requêtes sur l'entrée rootDSE.

Qu'est-ce que l'entrée rootDSE ?

L'entrée rootDSE est créée par défaut lors de la configuration de Active Directory et peut être interrogée par des clients non authentifiés (également appelé AD-Ping). Cette entrée fournit l'état de configuration du serveur et contient des attributs qui représentent les fonctionnalités, les capacités et les extensions fournies par le serveur.


Vulnérabilités:

Si votre Active Directory est exposé sur Internet, l'envoi d'une requête pour obtenir l'entrée rootDSE permet aux pirates de recueillir des informations sur votre configuration de serveur AD pour préparer une attaque.

Aussi, puisque C-LDAP est basé sur UDP, la requête rootDSE peut être exploitée pour effectuer des attaques par amplification (l'attaquant peut falsifier l'adresse IP de sa cible pour la saturer avec les réponses rootDSE de votre serveur):
(en) https://www.us-cert.gov/ncas/alerts/TA14-017A

Comment vérifier si votre serveur est vulnérable ?

Utilisez la commande suivante à partir d'une machine distante, en tant que root, pour collecter les informations rootDSE de votre service Active Directory:
# nmap -Pn -p 389 --script ldap-rootdse <IP-du-serveur>

Example de résutat:

PORT STATE SERVICE
389/tcp open ldap
| ldap-rootdse:
| LDAP Results
| <ROOT>
| currentTime: 20170000115711.0Z
| subschemaSubentry: CN=Aggregate,CN=Schema,CN=Configuration,DC=ws2012,DC=ms
| dsServiceName: CN=NTDS Settings,CN=SERVERNAME,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ws2012,DC=ms
| namingContexts: DC=ws2012,DC=ms
| namingContexts: CN=Configuration,DC=ws2012,DC=ms
| namingContexts: CN=Schema,CN=Configuration,DC=ws2012,DC=ms
| namingContexts: DC=DomainDnsZones,DC=ws2012,DC=ms
| namingContexts: DC=ForestDnsZones,DC=ws2012,DC=ms
| defaultNamingContext: DC=ws2012,DC=ms
| schemaNamingContext: CN=Schema,CN=Configuration,DC=ws2012,DC=ms
| configurationNamingContext: CN=Configuration,DC=ws2012,DC=ms
| rootDomainNamingContext: DC=ws2012,DC=ms
| supportedControl: supported.extension.OID.
| supportedLDAPVersion: 3
| supportedLDAPVersion: 2
| supportedLDAPPolicies: MaxPoolThreads
| supportedLDAPPolicies: MaxPercentDirSyncRequests
| supportedLDAPPolicies: MaxDatagramRecv
| supportedLDAPPolicies: MaxReceiveBuffer
| supportedLDAPPolicies: InitRecvTimeout
| supportedLDAPPolicies: MaxConnections
| supportedLDAPPolicies: MaxConnIdleTime
| supportedLDAPPolicies: MaxPageSize
| supportedLDAPPolicies: MaxBatchReturnMessages
| supportedLDAPPolicies: MaxQueryDuration
| supportedLDAPPolicies: MaxTempTableSize
| supportedLDAPPolicies: MaxResultSetSize
| supportedLDAPPolicies: MinResultSets
| supportedLDAPPolicies: MaxResultSetsPerConn
| supportedLDAPPolicies: MaxNotificationPerConn
| supportedLDAPPolicies: MaxValRange
| supportedLDAPPolicies: MaxValRangeTransitive
| supportedLDAPPolicies: ThreadMemoryLimit
| supportedLDAPPolicies: SystemMemoryLimitPercent
| highestCommittedUSN: 15800080
| supportedSASLMechanisms: GSSAPI
| supportedSASLMechanisms: GSS-SPNEGO
| supportedSASLMechanisms: EXTERNAL
| supportedSASLMechanisms: DIGEST-MD5
| dnsHostName: SERVER.FQDN
| ldapServiceName: SERVER.SPN
| serverName: CN=SERVERNAME,CN=Servers,CN=Default-First-Site-Name,CN=Sites,CN=Configuration,DC=ws2012,DC=ms
| supportedCapabilities: supported.capabilities.OID.
| isSynchronized: TRUE
| isGlobalCatalogReady: TRUE
| domainFunctionality: 6
| forestFunctionality: 6
|_ domainControllerFunctionality: 6


Si les commandes renvoient un message de "time-out", le service est peut être déjà filtré.


Résolution:

Les services Active Directory Domain Services sont conçus pour être accédés par des clients de confiance dans des environnements de confiance. Cela signifie que ce n'est généralement pas une bonne idée d'exposer ces services directement sur Internet ou, de façon générale, sur un environnement où des clients non-approuvés peuvent accéder directement à ces services.

Différentes options sont disponibles pour résoudre ce problème et protéger votre serveur:
- Utilisez votre pare-feu pour filtrer les connexions entrantes vers votre serveur, et autorisez uniquement les IP des réseaux/hôtes de confiance qui doivent contacter votre AD DS à y accéder.
- Concevez votre infrastructure AD DS avec une architecture sécurisée. Selon vos besoins, vous devriez vérifier si votre architecture nécessite un accès via DirectAccess (fonctionnalité similaire à un VPN) ou nécessite AD Federation Services (fonctionnalité de single-sign-on Web):
(en) https://technet.microsoft.com/en-us/library/dd728034%28v=ws.10%29.aspx

Autres bonnes pratiques pour sécuriser Active Directory:
(en) https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory

Informations supplémentaires pour la conception de votre infrastructure AD DS:
(en) https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/ad-ds-design-and-planning

External references:

(en) https://technet.microsoft.com/en-us/library/dd578336%28v=ws.10%29.aspx
(en) https://technet.microsoft.com/en-us/library/dn283324%28v=ws.11%29.aspx
(en) https://technet.microsoft.com/en-us/library/dd772723%28v=ws.10%29.aspx
(en) https://msdn.microsoft.com/en-us/library/cc717362.aspx
(en) https://msdn.microsoft.com/en-us/library/cc223126.aspx#gt_29942b69-e0ed-4fe7-bbbf-1a6a3f9eeeb6
(en) https://msdn.microsoft.com/en-us/library/ms684291%28v=vs.85%29.aspx
(en) https://www.akamai.com/us/en/multimedia/documents/state-of-the-internet/cldap-threat-advisory.pdf
(en) https://www.us-cert.gov/ncas/alerts/TA14-017A
(en) https://technet.microsoft.com/en-us/library/dd728034%28v=ws.10%29.aspx
(en) https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/security-best-practices/best-practices-for-securing-active-directory
(en) https://docs.microsoft.com/en-us/windows-server/identity/ad-ds/plan/ad-ds-design-and-planning

Vous avez d’autres questions ? Envoyer une demande

0 Commentaires

Cet article n'accepte pas de commentaires.
Réalisé par Zendesk