Les développeurs à la conquête de la sécurité : Série Partage & Apprentissage - Injections LDAP

La grande majorité des systèmes informatiques utilisent le protocole LDAP (Lightweight Directory Access Protocol). Il est utilisé pour gérer des services d'annuaire distribués sur n'importe quel réseau IP (Internet Protocol). En somme, il permet de suivre les utilisateurs.
Le LDAP est souvent utilisé comme source d'authentification par les applications pour vérifier si un utilisateur est autorisé à effectuer diverses actions, notamment en fonction du rôle qui lui est attribué au sein d'une organisation. Par exemple, seuls les membres du service comptable peuvent être autorisés à utiliser le logiciel de comptabilité de l'entreprise. Les applications sont souvent programmées pour interroger une table LDAP afin de s'assurer que les utilisateurs agissent dans le respect de leurs permissions établies.
Des problèmes peuvent survenir lorsque des utilisateurs malveillants manipulent une requête LDAP. Cela peut amener le serveur destinataire à exécuter des requêtes invalides qui ne seraient normalement pas autorisées, voire à accorder des accès administrateur ou de haut niveau à des utilisateurs non autorisés ou peu sécurisés sans mot de passe.
Les injections LDAP peuvent être complexes, mais dans cet épisode, nous apprendrons :
- Leur fonctionnement
- Pourquoi ils sont si dangereux
- Comment mettre en place des défenses pour les contrer.
Comment les attaquants utilisent-ils l'injection LDAP ?
L'une des raisons pour lesquelles les attaques basées sur LDAP restent populaires depuis des années est le fait que presque tous les systèmes informatiques l'utilisent. Le LDAP est open-source et fonctionne extrêmement bien, si bien que peu d'alternatives ont été créées.
À la base, le LDAP est une base de données qui suit les utilisateurs valides au sein d'un système informatique ou d'un réseau basé sur IP. Il permet aux utilisateurs de partager des informations sur les systèmes, les réseaux, les serveurs, les applications et même d'autres utilisateurs sur le même réseau.
Les informations sont stockées par le LDAP dans l'équivalent d'une ligne ou d'un enregistrement de base de données appelé nom distinctif, souvent abrégé en DN. Chaque DN est unique. Par exemple, voici à quoi pourrait ressembler un DN pour un utilisateur travaillant au service comptable de Chicago d'une grande entreprise.
cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview
Pour garantir l'unicité de chaque DN, divers codes peuvent être ajoutés à l'enregistrement, tels que "+", "/", "=" et quelques autres. Des espaces avant ou après un enregistrement peuvent également être insérés pour garantir que même s'il existe deux James Smith travaillant au service comptable du bureau de Chicago Parkview, ils auront chacun des DN individuels.
Les applications utilisent généralement le LDAP pour permettre aux utilisateurs d'envoyer des requêtes sur des DN spécifiques, par exemple pour localiser le bon contact au service de la paie afin de signaler une erreur sur leur fiche de paie. Les injections LDAP peuvent se produire lorsqu'il n'y a aucune validation des paramètres fournis par l'utilisateur dans les requêtes de recherche. Dans ce cas, les pirates peuvent manipuler des recherches bénignes pour contourner les mécanismes d'authentification ou exécuter des requêtes arbitraires supplémentaires. Cela peut inciter le serveur à afficher des résultats qui ne devraient pas être autorisés, tels que des mots de passe d'utilisateurs, ou même amener une application à accorder l'accès à des zones hautement sécurisées du réseau, avec ou sans mot de passe valide.
Pourquoi les injections LDAP sont-elles si dangereuses ?
Le plus grand danger des injections LDAP réside probablement dans la prolifération du protocole dans la majorité des réseaux informatiques IP à travers le monde. Cela constitue un tremplin facile pour les pirates cherchant à voler des informations ou à élever leurs privilèges sur un réseau. Aucun pirate informatique formé ne manquera de vérifier si des injections LDAP sont possibles ; les équipes de sécurité doivent donc s'assurer que ces failles sont toujours colmatées.
Plus précisément, un certain nombre d'applications sont programmées pour aider les utilisateurs valides à trouver des informations limitées sur les utilisateurs et les groupes au sein d'une organisation, ou toute autre information contenue dans les DN. Par exemple, une application pourrait permettre à quelqu'un d'utiliser le LDAP pour rechercher les coordonnées des comptables d'entreprise travaillant à Chicago, ce qui renverrait notre ami James Smith de l'exemple ci-dessus. Selon les permissions, il s'agit probablement d'une utilisation parfaitement valide d'une requête LDAP.
Le danger survient lorsqu'un utilisateur malveillant peut ajouter des paramètres non filtrés à la requête, modifiant la nature de la recherche et incitant le serveur à fournir des informations qui ne devraient normalement pas être divulguées. Par exemple, en ajoutant une chaîne user=*, les attaquants pourraient obtenir des informations sur chaque utilisateur de toute une organisation, ce qui ne devrait probablement jamais être autorisé.
Pour les applications qui utilisent le LDAP pour l'authentification, le problème peut être encore pire. Les attaquants peuvent utiliser, par exemple, la chaîne (&) à la fin d'une requête LDAP pour faire croire au serveur que l'argument est vrai. Si une application utilise le LDAP pour valider un mot de passe, forcer un argument « Vrai » via une injection LDAP pourrait permettre à un utilisateur non autorisé de se connecter au réseau en tant qu'administrateur, même sans mot de passe.
Faire de l'injection LDAP un « L-DON'T » dans votre réseau
L'un des meilleurs moyens de prévenir les injections LDAP consiste à implémenter des solutions comme LINQtoAD ou d'autres frameworks conçus spécifiquement pour y résister. Cela peut ne pas être possible si un réseau utilise déjà des applications qui exploitent des requêtes LDAP. Cependant, même dans ce cas, il est toujours judicieux que chaque nouvelle application utilise des frameworks résistants aux injections à l'avenir.
Les applications existantes utilisant LDAP peuvent également être protégées contre les injections grâce à la validation par liste blanche et à la désinfection des entrées. Dans la mesure du possible, limitez les saisies utilisateur à un ensemble restreint de valeurs approuvées. Sinon, toute saisie utilisateur intégrée à une requête LDAP doit être désinfectée au préalable. N'oubliez pas d'inclure les paramètres GET et POST, les cookies et les en-têtes HTTP, car ils peuvent également servir de vecteurs d'attaque. Ne créez pas vos propres fonctions de désinfection ; utilisez plutôt une bibliothèque tierce de confiance spécialisée dans la sécurité ou les API natives de votre framework.
Au-delà des correctifs ciblés, de bonnes pratiques informatiques, comme l'application du principe du moindre privilège aux applications effectuant des requêtes LDAP sur un réseau, peuvent également s'avérer utiles. Ainsi, dans le pire des scénarios, si une injection LDAP réussissait, les dommages seraient limités.
En savoir plus sur les injections LDAP
Pour aller plus loin, vous pouvez consulter l'article de l'OWASP sur les injections LDAP, ou la fiche mémo sur la prévention des injections. Vous pouvez également mettre vos nouvelles compétences défensives à l'épreuve avec la démo gratuite de la plateforme Secure Code Warrior, qui forme les équipes de cybersécurité à devenir des experts en la matière. Pour en savoir plus sur la neutralisation de cette vulnérabilité et d'une multitude d'autres menaces, visitez le blog de Secure Code Warrior.
Gouvernez le développement assisté par IA avant la mise en production
Évaluez les risques liés à l'IA, appliquez des politiques de codage sécurisé dès le commit et accélérez la livraison sécurisée tout au long de votre cycle de développement.
Explorer plus d'articles
Accédez à du contenu expert sur le codage sécurisé, la gouvernance de l'IA et la gestion des risques logiciels.
%252520%252520(3).avif)
Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group
Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Security as culture: How Blue Prism cultivates world-class secure developers
Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Une culture de la sécurité : comment Sage a bâti son programme de champions
Découvrez comment Sage a renforcé sa sécurité grâce à une approche flexible axée sur les relations humaines, formant plus de 200 champions de la sécurité et obtenant une réduction mesurable des risques.

Mois de la sensibilisation à la cybersécurité 2026 : comprendre la sécurité de l'IA est essentiel à la défense de l'entreprise
Nous avons atteint un point où la plupart des grandes entreprises d'IA ont publiquement appelé à un ralentissement mondial du développement de l'IA afin de permettre aux garde-fous de sécurité de rattraper leur retard. Pourtant, la réalité est que de graves problèmes de sécurité se sont déjà concrétisés. Cela place d'innombrables responsables de la sécurité et équipes de direction dans une situation d'urgence, alors que les coûts financiers et les risques liés à la mise en œuvre de l'IA ne cessent de s'accumuler.

Levier 8 : Valoriser votre programme
Un programme de codage sécurisé a besoin de plus qu'un contenu de qualité pour réussir. Le levier 8 montre comment l'image de marque transforme la participation en une expérience convoitée, axée sur le statut.
.avif)
Chaque employé est désormais en première ligne de la cybersécurité IA
Le paysage technologique des entreprises évolue à une vitesse que peu avaient anticipée avant qu'il ne soit trop tard. Nous avons officiellement franchi le cap du code écrit par l'humain et de l'assistance basique par copilote pour entrer dans l'ère du cycle de vie de développement agentique (ADLC). Si les agents IA autonomes promettent une efficacité sans précédent dans de multiples fonctions, ils apportent également une toute nouvelle catégorie de risques en matière de sécurité et de réglementation.
Sécurisez le développement piloté par l'IA avant le déploiement
Identifiez les risques de développement, appliquez vos politiques et prévenez les vulnérabilités tout au long du cycle de vie de vos logiciels.
