LDAP Injection
Injection LDAP
L’injection LDAP est une vulnérabilité de sécurité qui survient lorsque des applications intègrent des entrées utilisateur non filtrées dans des requêtes LDAP (Lightweight Directory Access Protocol). Cette faille permet à un attaquant de manipuler les requêtes LDAP pour contourner des mécanismes d’authentification ou obtenir un accès non autorisé aux informations d’un annuaire.
1. Qu’est-ce que l’injection LDAP ?
- Définition :
L’injection LDAP consiste à injecter des caractères ou des structures malicieuses dans une requête LDAP, modifiant ainsi son comportement initial. - Contexte :
LDAP est utilisé pour interroger et modifier des services d’annuaires (ex. : Active Directory, OpenLDAP). L’injection se produit lorsqu’une application construit dynamiquement une requête LDAP avec des données fournies par l’utilisateur sans une validation ou un échappement approprié.
2. Comment ça marche ?
- Requête LDAP classique :
Une application pourrait construire un filtre de recherche pour authentifier un utilisateur, par exemple :(&(uid={input_user})(userPassword={input_pass}))
- Injection malveillante :
Si les entrées{input_user}
ou{input_pass}
ne sont pas correctement filtrées, un attaquant pourrait injecter des caractères spéciaux ou des opérateurs logiques. Par exemple, en fournissant comme identifiant :
Le filtre devient :admin)(|(userPassword=*
Ce qui pourrait permettre de contourner l’authentification.(&(uid=admin)(|(userPassword=*)(userPassword={input_pass})))
3. Exemples d’attaques
- Bypass d’authentification :
En injectant des opérateurs logiques (tel que|
pour l’opérateur OU) dans le filtre, un attaquant peut faire en sorte que la condition de mot de passe soit toujours vraie. - Exfiltration d’informations :
Modifier la requête pour récupérer des informations sensibles en contournant les filtres de sécurité appliqués sur les résultats de la recherche.
4. Risques et conséquences
- Accès non autorisé :
Permet à un attaquant d’accéder à des données sensibles ou de se faire passer pour un utilisateur légitime. - Modification ou suppression de données :
Dans certains cas, une injection LDAP mal contrôlée pourrait également être utilisée pour modifier ou supprimer des enregistrements dans l’annuaire. - Impact sur la confidentialité et l’intégrité :
La vulnérabilité peut compromettre la sécurité globale du système d’annuaires, affectant ainsi la confidentialité des données et l’intégrité des accès.
5. Techniques d’exploitation
- Injection d’opérateurs logiques :
Utilisation d’opérateurs comme|
(OU) et&
(ET) pour manipuler le filtre LDAP. - Injection de caractères spéciaux :
Des caractères comme*
,(
et)
peuvent être utilisés pour modifier la structure de la requête. - Exploitation via des formulaires web :
Les entrées utilisateurs dans les formulaires de connexion ou de recherche sont souvent la cible principale si elles ne sont pas correctement validées.
6. Contre-mesures et prévention
- Validation et échappement des entrées :
Toujours nettoyer et échapper les données provenant de l’utilisateur avant de les inclure dans une requête LDAP.- Utiliser des fonctions d’échappement spécifiques au protocole LDAP.
- Utiliser des requêtes paramétrées :
Si l’API LDAP le permet, utilisez des requêtes préparées pour séparer le code de la donnée. - Limiter les privilèges :
Restreindre les permissions du compte utilisé pour effectuer les requêtes LDAP afin de minimiser l’impact d’une injection réussie. - Audits et tests de sécurité :
Effectuer des tests d’intrusion réguliers et des revues de code pour identifier et corriger toute vulnérabilité d’injection LDAP.
7. Conclusion
L’injection LDAP représente une menace sérieuse pour les applications qui utilisent des annuaires pour la gestion des utilisateurs. En intégrant des mécanismes de validation rigoureux, en utilisant des requêtes paramétrées et en appliquant le principe du moindre privilège, il est possible de réduire considérablement le risque associé à cette vulnérabilité.
Références et lectures complémentaires :
- OWASP – LDAP Injection
- Guides et conseils sur la sécurisation des requêtes LDAP dans divers environnements.