Savez-vous ce qu'est l'injection LDAP ? Il s'agit d'une technique d'injection de code ciblant les applications qui créent des requêtes d'injection à partir de données utilisateur non vérifiées. Le protocole LDAP (Lightweight Directory Access Protocol) est couramment utilisé pour les recherches dans les annuaires, comme l'authentification des utilisateurs ou la récupération de données organisationnelles. Lorsque des attaquants fournissent des données d'entrée spécialement conçues contenant des métacaractères LDAP, ils peuvent modifier la logique des requêtes d'annuaire pour accéder aux données ou les modifier de manière inappropriée. En effet, une vulnérabilité d'injection LDAP survient lorsque des filtres sont créés dynamiquement à partir de valeurs contrôlées par l'utilisateur, sans vérification ni validation des données.
Fonctionnement : Mécanismes d'une attaque par injection LDAP #
Une attaque par injection LDAP se produit lorsque des données fournies par l'utilisateur sont incorporées de manière non sécurisée dans une requête LDAP. Prenons l'exemple d'une login filtre:
(&(cn=” + nom d’utilisateur + “)(userPassword=” + mot de passe + “))Si un attaquant soumet des séquences * ou de terminaison au lieu d'un nom d'utilisateur valide, la logique de filtrage se réduit à une évaluation plus large ou à une condition toujours vraie, contournant ainsi l'authentification. C'est exactement le fonctionnement de cette injection : elle injecte la logique LDAP pour corrompre le comportement prévu.
Ainsi, la vulnérabilité d’injection LDAP provient de la construction de requêtes via des entrées non fiables qui incluent des caractères spéciaux, comme des parenthèses, des guillemets et des caractères génériques, qui remodèlent la sémantique de la requête.
De plus, ils se produisent lorsque le code d'application copie les données utilisateur de manière non sécurisée dans une requête LDAP et ne parvient pas à neutraliser les métacaractères, permettant aux attaquants d'interrompre ou de manipuler la logique de la requête, d'accéder à des données non autorisées ou de modifier le flux d'exécution.
Pourquoi une attaque par injection LDAP est-elle importante ? #
Une attaque par injection LDAP peut perturber l'authentification, divulguer des informations sensibles, voire modifier la structure de l'annuaire. Imperva souligne que les acteurs malveillants peuvent compromettre les processus d'authentification, consulter ou modifier les noms d'utilisateur/mots de passe, installer des logiciels malveillants et élever les privilèges, entraînant ainsi des violations de données, une atteinte à la réputation et des pertes financières.
Les vulnérabilités d'injection LDAP peuvent se propager à travers les services interconnectés, en particulier dans enterprise environnements utilisant LDAP pour l'authentification unique (SSO), l'autorisation ou la coordination de l'identité et des autorisations des utilisateurs.
Signes d'une vulnérabilité d'injection LDAP existante #
En cybersécurité, la gouvernance fait référence à la manière dont le leadership, les politiques et lesPrincipaux signaux d’alarme :
- Le code concatène les entrées utilisateur directement dans les filtres LDAP.
- Manque de validation d'entrée ou d'échappement.
- Utilisation de caractères spéciaux comme () * & | = en entrée sans restriction.
- Résultats de requête inattendus, par exemple, l'authentification réussit quelles que soient les informations d'identification, ou de larges listes d'utilisateurs renvoient une entrée minimale.
Les requêtes mal construites à partir des entrées utilisateur peuvent permettre une récupération de données non autorisée ou un contournement logique.
Comment les atténuer ? #
L'atténuation de la vulnérabilité d'injection LDAP implique :
a. Validation des entrées / Liste d'autorisation
Acceptez uniquement les caractères ou modèles sûrs. Rejetez ou désinfectez les caractères de contrôle tels que *, (, ), &, |, =. PortsWigger recommande de bloquer les entrées contenant des métacaractères LDAP ou d'appliquer des modèles alphanumériques stricts.
b. Échappement / Encodage
Utilisez les fonctions d'échappement spécifiques à LDAP : échappement du nom distinctif pour les contextes DN et échappement du filtre de recherche pour les prédicats. L'OWASP fournit une description détaillée. Aide-mémoire de prévention avec des conseils personnalisés
c. Requêtes paramétrées / API sécurisées
Évitez de créer des filtres par concaténation de chaînes. Utilisez les bibliothèques LDAP prenant en charge la liaison de paramètres ou les API de construction de filtres (par exemple, Filter.createANDFilter(…) du SDK UnboundID) pour garantir que les entrées utilisateur sont traitées comme des données, et non comme de la syntaxe.
d. Principe du moindre privilège (PoLP)
Liez LDAP avec des droits d'accès minimaux. Même en cas d'injection, les actions d'un attaquant sont limitées. Soulignez l'utilisation de PoLP en combinaison avec confiance zéro et le MFA pour limiter l’impact.
e. Cadres/bibliothèques sécurisés
Utilisez des frameworks qui échappent ou assainissent automatiquement les entrées et découragent la création de requêtes brutes.
f. Outils d'analyse de code
Dans .NET, utilisez l’analyse CA3005 pour détecter les entrées HTTP non fiables atteignant les instructions LDAP ; corrigez-les en nettoyant, en échappant ou en autorisant les entrées.
g. Tests (statiques, dynamiques, tests d'intrusion)
Intégrer à la fois Static AppSec (SAST) et dynamique (DAST) analyse pour détecter la vulnérabilité d'injection LDAP au repos et à l'exécution.
h. Journalisation, surveillance, alerte
Détectez les modèles de filtrage anormaux, les tentatives infructueuses ou les structures de requêtes inattendues. Semperis recommande de surveiller Active Directory pour détecter les requêtes LDAP irrégulières ou la manipulation des métadonnées.
Tableau récapitulatif du glossaire #
| Long | Sens |
|---|---|
| Injection LDAP | Une technique d'injection de code exploitant les entrées utilisateur non désinfectées dans les filtres LDAP. |
| Qu'est-ce que l'injection LDAP | Une vulnérabilité résultant de la création de requêtes LDAP avec des entrées non fiables. |
| Attaque par injection LDAP | L'exploitation réelle où l'entrée modifie la logique de requête LDAP ou obtient l'accès. |
| Vulnérabilité d'injection LDAP | La faille au niveau du code permet des attaques par injection LDAP. |
Pourquoi cela est-il important dans DevSecOps ? #
Pour Équipes DevSecOps, la prévention des vulnérabilités liées aux injections LDAP est essentielle pour sécuriser les flux d'authentification et le contrôle d'accès basé sur l'annuaire. Intégration continue pipelineLes tests de sécurité doivent inclure des vérifications statiques du code pour détecter les constructions de requêtes non sécurisées et des tests dynamiques pour la manipulation des filtres. Les responsables de la sécurité doivent imposer l'utilisation de bibliothèques d'échappement, l'utilisation d'API paramétrées et le respect des politiques de moindre privilège et de validation des entrées.
Renforcer DevSecOps Pipelines avec Xygeni #
Maintenant que vous savez ce qu'est l'injection LDAP, vous savez que la sécurisation des applications modernes contre ces dernières nécessite plus que des correctifs au niveau du code. Les équipes DevSecOps doivent renforcer la sécurité à l'échelle de l'entreprise. cycle de vie du développement logiciel, du code à la construction jusqu'au déploiement.
Des outils comme Xygéni permettre aux équipes de détecter précocement leurs risques d'injection en intégrant l'analyse statique, IaC numérisation et application sécurisée des politiques directement dans CI/CD Flux de travail. En surveillant en permanence les constructions de requêtes dangereuses, les risques de dépendance ou les erreurs de configuration, Xygeni contribue à prévenir les attaques par injection LDAP avant qu'elles n'atteignent la production.
L'intégration de plateformes telles que Xygeni aligne la sécurité sur la vitesse de développement, offrant une visibilité en temps réel, des contrôles automatisés et des conseils de correction adaptés à l'ingénierie sécurisée par conception.
