
コーダーがセキュリティを征服する:共有して学ぶシリーズ-LDAP インジェクション
La grande majorité des systèmes informatiques utilisent le protocole LDAP (Lightweight Directory Access Protocol). Il est utilisé pour maintenir des services d'information d'annuaire distribués sur n'importe quel réseau IP (Internet Protocol). Il s'agit donc essentiellement d'un moyen de suivre les utilisateurs.
LDAP est souvent utilisé comme source d'authentification par les applications pour vérifier si un utilisateur a le droit d'effectuer diverses actions, notamment en fonction de son rôle défini au sein d'une organisation. Par exemple, seules les personnes travaillant dans le domaine de la comptabilité peuvent être autorisées à utiliser le logiciel de comptabilité de l'entreprise. Les applications sont souvent programmées pour vérifier une table LDAP afin de s'assurer que les utilisateurs agissent dans le cadre des autorisations qui leur ont été accordées.
Des problèmes peuvent survenir lorsque des utilisateurs malveillants peuvent manipuler une requête LDAP. Cela peut inciter le serveur récepteur à exécuter des requêtes non valides qui ne seraient normalement pas autorisées, voire à accorder un accès de haut niveau ou d'administrateur à des utilisateurs non valides ou peu sûrs sans mot de passe.
Les injections LDAP peuvent être délicates, mais dans cet épisode, nous allons apprendre :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaquants utilisent-ils l'injection LDAP ?
L'une des raisons pour lesquelles les attaques basées sur LDAP sont restées populaires pendant des années est le fait que presque tous les systèmes informatiques l'utilisent. LDAP est un logiciel libre qui fonctionne très bien, de sorte que peu d'alternatives ont été créées.
À la base, LDAP est une base de données qui permet de suivre les utilisateurs valides au sein d'un système informatique ou d'un réseau basé sur IP. Il peut permettre 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 LDAP dans l'équivalent d'une ligne de base de données ou d'un enregistrement appelé nom distinctif, souvent abrégé en DN. Chaque DN est unique. Voici, à titre d'exemple, à quoi pourrait ressembler un DN pour un utilisateur travaillant au bureau de comptabilité de Chicago d'une grande entreprise.
cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview
Pour s'assurer que chaque DN est unique, 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 s'assurer que même si deux James Smiths travaillent dans les comptes d'entreprise au bureau de Chicago Parkview, ils auront chacun leur propre numéro d'identification.
Les applications utilisent généralement LDAP pour permettre aux utilisateurs d'envoyer des requêtes sur des DN spécifiques, comme, par exemple, lorsqu'ils essaient de localiser le bon contact dans le service des salaires pour parler d'une erreur sur leur chèque. Les injections LDAP peuvent se produire lorsqu'il n'y a pas de 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 de haute sécurité au sein 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 est probablement la prolifération du protocole dans la majorité des réseaux informatiques IP du monde entier. Il constitue un tremplin facile pour les pirates qui cherchent à voler des informations ou à élever leurs privilèges sur un réseau. Aucun pirate informatique expérimenté ne manquera de vérifier si les injections LDAP sont possibles, c'est pourquoi les équipes de sécurité doivent s'assurer que ces failles sont toujours fermé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 LDAP pour rechercher les coordonnées de comptables d'entreprise travaillant à Chicago, ce qui renverrait à notre ami James Smith de l'exemple ci-dessus. En fonction des autorisations, 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 ainsi la nature de la recherche et incitant le serveur à fournir des informations qui ne devraient normalement pas être données. Par exemple, en ajoutant une chaîne user=*, les attaquants pourraient obtenir des informations sur chaque utilisateur d'une organisation entière, ce qui ne devrait probablement jamais être autorisé.
Pour les applications qui utilisent LDAP pour l'authentification, le problème peut être encore plus grave. Les attaquants peuvent utiliser, par exemple, la chaîne (&) à la fin d'une requête LDAP pour tromper le serveur et lui faire croire que l'argument est vrai. Si une application utilise LDAP pour valider un mot de passe, forcer un argument True par une injection LDAP peut 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'une des meilleures façons d'empêcher les injections LDAP est de mettre en œuvre un outil tel que LINQtoAD ou d'autres cadres conçus spécifiquement pour y résister. Cela peut s'avérer impossible si un réseau dispose déjà d'applications qui exploitent les requêtes LDAP. Cependant, même dans ce cas, c'est une bonne idée pour chaque nouvelle application d'utiliser des frameworks résistants aux injections à l'avenir.
Les applications existantes qui utilisent LDAP peuvent également être renforcées contre les injections par l'utilisation de la validation de la liste blanche et de l'assainissement des entrées. Dans la mesure du possible, limitez les entrées des utilisateurs à un ensemble restreint de valeurs de confiance. 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. N'écrivez pas vos propres fonctions pour effectuer la vérification des entrées ; utilisez plutôt une bibliothèque tierce de confiance axée sur la sécurité ou les API intégrées du cadre de travail.
Au-delà des correctifs ciblés, de bonnes pratiques informatiques telles que l'attribution aux applications d'interrogation du LDAP du moindre privilège nécessaire sur un réseau peuvent également s'avérer utiles. Ainsi, si le pire devait se produire et qu'une injection LDAP parvenait à passer, les dommages seraient atténués.
Plus d'informations sur les injections LDAP
Pour en savoir plus, vous pouvez consulter l'article de l'OWASP sur les injections LDAP ou l'aide-mémoire sur la prévention des injections. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .


悪意のあるユーザーが LDAP クエリを操作できると、問題が発生する可能性があります。これを行うと、受信側のサーバーを騙して、通常は許可されないような無効なクエリを実行させたり、パスワードなしで無効なユーザーやセキュリティレベルの低いユーザーに高レベルまたは管理者アクセスを許可したりする可能性があります。
Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.
Veuillez réserver une démonstration.Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。


La grande majorité des systèmes informatiques utilisent le protocole LDAP (Lightweight Directory Access Protocol). Il est utilisé pour maintenir des services d'information d'annuaire distribués sur n'importe quel réseau IP (Internet Protocol). Il s'agit donc essentiellement d'un moyen de suivre les utilisateurs.
LDAP est souvent utilisé comme source d'authentification par les applications pour vérifier si un utilisateur a le droit d'effectuer diverses actions, notamment en fonction de son rôle défini au sein d'une organisation. Par exemple, seules les personnes travaillant dans le domaine de la comptabilité peuvent être autorisées à utiliser le logiciel de comptabilité de l'entreprise. Les applications sont souvent programmées pour vérifier une table LDAP afin de s'assurer que les utilisateurs agissent dans le cadre des autorisations qui leur ont été accordées.
Des problèmes peuvent survenir lorsque des utilisateurs malveillants peuvent manipuler une requête LDAP. Cela peut inciter le serveur récepteur à exécuter des requêtes non valides qui ne seraient normalement pas autorisées, voire à accorder un accès de haut niveau ou d'administrateur à des utilisateurs non valides ou peu sûrs sans mot de passe.
Les injections LDAP peuvent être délicates, mais dans cet épisode, nous allons apprendre :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaquants utilisent-ils l'injection LDAP ?
L'une des raisons pour lesquelles les attaques basées sur LDAP sont restées populaires pendant des années est le fait que presque tous les systèmes informatiques l'utilisent. LDAP est un logiciel libre qui fonctionne très bien, de sorte que peu d'alternatives ont été créées.
À la base, LDAP est une base de données qui permet de suivre les utilisateurs valides au sein d'un système informatique ou d'un réseau basé sur IP. Il peut permettre 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 LDAP dans l'équivalent d'une ligne de base de données ou d'un enregistrement appelé nom distinctif, souvent abrégé en DN. Chaque DN est unique. Voici, à titre d'exemple, à quoi pourrait ressembler un DN pour un utilisateur travaillant au bureau de comptabilité de Chicago d'une grande entreprise.
cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview
Pour s'assurer que chaque DN est unique, 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 s'assurer que même si deux James Smiths travaillent dans les comptes d'entreprise au bureau de Chicago Parkview, ils auront chacun leur propre numéro d'identification.
Les applications utilisent généralement LDAP pour permettre aux utilisateurs d'envoyer des requêtes sur des DN spécifiques, comme, par exemple, lorsqu'ils essaient de localiser le bon contact dans le service des salaires pour parler d'une erreur sur leur chèque. Les injections LDAP peuvent se produire lorsqu'il n'y a pas de 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 de haute sécurité au sein 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 est probablement la prolifération du protocole dans la majorité des réseaux informatiques IP du monde entier. Il constitue un tremplin facile pour les pirates qui cherchent à voler des informations ou à élever leurs privilèges sur un réseau. Aucun pirate informatique expérimenté ne manquera de vérifier si les injections LDAP sont possibles, c'est pourquoi les équipes de sécurité doivent s'assurer que ces failles sont toujours fermé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 LDAP pour rechercher les coordonnées de comptables d'entreprise travaillant à Chicago, ce qui renverrait à notre ami James Smith de l'exemple ci-dessus. En fonction des autorisations, 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 ainsi la nature de la recherche et incitant le serveur à fournir des informations qui ne devraient normalement pas être données. Par exemple, en ajoutant une chaîne user=*, les attaquants pourraient obtenir des informations sur chaque utilisateur d'une organisation entière, ce qui ne devrait probablement jamais être autorisé.
Pour les applications qui utilisent LDAP pour l'authentification, le problème peut être encore plus grave. Les attaquants peuvent utiliser, par exemple, la chaîne (&) à la fin d'une requête LDAP pour tromper le serveur et lui faire croire que l'argument est vrai. Si une application utilise LDAP pour valider un mot de passe, forcer un argument True par une injection LDAP peut 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'une des meilleures façons d'empêcher les injections LDAP est de mettre en œuvre un outil tel que LINQtoAD ou d'autres cadres conçus spécifiquement pour y résister. Cela peut s'avérer impossible si un réseau dispose déjà d'applications qui exploitent les requêtes LDAP. Cependant, même dans ce cas, c'est une bonne idée pour chaque nouvelle application d'utiliser des frameworks résistants aux injections à l'avenir.
Les applications existantes qui utilisent LDAP peuvent également être renforcées contre les injections par l'utilisation de la validation de la liste blanche et de l'assainissement des entrées. Dans la mesure du possible, limitez les entrées des utilisateurs à un ensemble restreint de valeurs de confiance. 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. N'écrivez pas vos propres fonctions pour effectuer la vérification des entrées ; utilisez plutôt une bibliothèque tierce de confiance axée sur la sécurité ou les API intégrées du cadre de travail.
Au-delà des correctifs ciblés, de bonnes pratiques informatiques telles que l'attribution aux applications d'interrogation du LDAP du moindre privilège nécessaire sur un réseau peuvent également s'avérer utiles. Ainsi, si le pire devait se produire et qu'une injection LDAP parvenait à passer, les dommages seraient atténués.
Plus d'informations sur les injections LDAP
Pour en savoir plus, vous pouvez consulter l'article de l'OWASP sur les injections LDAP ou l'aide-mémoire sur la prévention des injections. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .

La grande majorité des systèmes informatiques utilisent le protocole LDAP (Lightweight Directory Access Protocol). Il est utilisé pour maintenir des services d'information d'annuaire distribués sur n'importe quel réseau IP (Internet Protocol). Il s'agit donc essentiellement d'un moyen de suivre les utilisateurs.
LDAP est souvent utilisé comme source d'authentification par les applications pour vérifier si un utilisateur a le droit d'effectuer diverses actions, notamment en fonction de son rôle défini au sein d'une organisation. Par exemple, seules les personnes travaillant dans le domaine de la comptabilité peuvent être autorisées à utiliser le logiciel de comptabilité de l'entreprise. Les applications sont souvent programmées pour vérifier une table LDAP afin de s'assurer que les utilisateurs agissent dans le cadre des autorisations qui leur ont été accordées.
Des problèmes peuvent survenir lorsque des utilisateurs malveillants peuvent manipuler une requête LDAP. Cela peut inciter le serveur récepteur à exécuter des requêtes non valides qui ne seraient normalement pas autorisées, voire à accorder un accès de haut niveau ou d'administrateur à des utilisateurs non valides ou peu sûrs sans mot de passe.
Les injections LDAP peuvent être délicates, mais dans cet épisode, nous allons apprendre :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaquants utilisent-ils l'injection LDAP ?
L'une des raisons pour lesquelles les attaques basées sur LDAP sont restées populaires pendant des années est le fait que presque tous les systèmes informatiques l'utilisent. LDAP est un logiciel libre qui fonctionne très bien, de sorte que peu d'alternatives ont été créées.
À la base, LDAP est une base de données qui permet de suivre les utilisateurs valides au sein d'un système informatique ou d'un réseau basé sur IP. Il peut permettre 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 LDAP dans l'équivalent d'une ligne de base de données ou d'un enregistrement appelé nom distinctif, souvent abrégé en DN. Chaque DN est unique. Voici, à titre d'exemple, à quoi pourrait ressembler un DN pour un utilisateur travaillant au bureau de comptabilité de Chicago d'une grande entreprise.
cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview
Pour s'assurer que chaque DN est unique, 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 s'assurer que même si deux James Smiths travaillent dans les comptes d'entreprise au bureau de Chicago Parkview, ils auront chacun leur propre numéro d'identification.
Les applications utilisent généralement LDAP pour permettre aux utilisateurs d'envoyer des requêtes sur des DN spécifiques, comme, par exemple, lorsqu'ils essaient de localiser le bon contact dans le service des salaires pour parler d'une erreur sur leur chèque. Les injections LDAP peuvent se produire lorsqu'il n'y a pas de 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 de haute sécurité au sein 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 est probablement la prolifération du protocole dans la majorité des réseaux informatiques IP du monde entier. Il constitue un tremplin facile pour les pirates qui cherchent à voler des informations ou à élever leurs privilèges sur un réseau. Aucun pirate informatique expérimenté ne manquera de vérifier si les injections LDAP sont possibles, c'est pourquoi les équipes de sécurité doivent s'assurer que ces failles sont toujours fermé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 LDAP pour rechercher les coordonnées de comptables d'entreprise travaillant à Chicago, ce qui renverrait à notre ami James Smith de l'exemple ci-dessus. En fonction des autorisations, 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 ainsi la nature de la recherche et incitant le serveur à fournir des informations qui ne devraient normalement pas être données. Par exemple, en ajoutant une chaîne user=*, les attaquants pourraient obtenir des informations sur chaque utilisateur d'une organisation entière, ce qui ne devrait probablement jamais être autorisé.
Pour les applications qui utilisent LDAP pour l'authentification, le problème peut être encore plus grave. Les attaquants peuvent utiliser, par exemple, la chaîne (&) à la fin d'une requête LDAP pour tromper le serveur et lui faire croire que l'argument est vrai. Si une application utilise LDAP pour valider un mot de passe, forcer un argument True par une injection LDAP peut 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'une des meilleures façons d'empêcher les injections LDAP est de mettre en œuvre un outil tel que LINQtoAD ou d'autres cadres conçus spécifiquement pour y résister. Cela peut s'avérer impossible si un réseau dispose déjà d'applications qui exploitent les requêtes LDAP. Cependant, même dans ce cas, c'est une bonne idée pour chaque nouvelle application d'utiliser des frameworks résistants aux injections à l'avenir.
Les applications existantes qui utilisent LDAP peuvent également être renforcées contre les injections par l'utilisation de la validation de la liste blanche et de l'assainissement des entrées. Dans la mesure du possible, limitez les entrées des utilisateurs à un ensemble restreint de valeurs de confiance. 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. N'écrivez pas vos propres fonctions pour effectuer la vérification des entrées ; utilisez plutôt une bibliothèque tierce de confiance axée sur la sécurité ou les API intégrées du cadre de travail.
Au-delà des correctifs ciblés, de bonnes pratiques informatiques telles que l'attribution aux applications d'interrogation du LDAP du moindre privilège nécessaire sur un réseau peuvent également s'avérer utiles. Ainsi, si le pire devait se produire et qu'une injection LDAP parvenait à passer, les dommages seraient atténués.
Plus d'informations sur les injections LDAP
Pour en savoir plus, vous pouvez consulter l'article de l'OWASP sur les injections LDAP ou l'aide-mémoire sur la prévention des injections. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .

Veuillez cliquer sur le lien ci-dessous pour télécharger le PDF de cette ressource.
Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.
Afficher le rapportVeuillez réserver une démonstration.Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。
La grande majorité des systèmes informatiques utilisent le protocole LDAP (Lightweight Directory Access Protocol). Il est utilisé pour maintenir des services d'information d'annuaire distribués sur n'importe quel réseau IP (Internet Protocol). Il s'agit donc essentiellement d'un moyen de suivre les utilisateurs.
LDAP est souvent utilisé comme source d'authentification par les applications pour vérifier si un utilisateur a le droit d'effectuer diverses actions, notamment en fonction de son rôle défini au sein d'une organisation. Par exemple, seules les personnes travaillant dans le domaine de la comptabilité peuvent être autorisées à utiliser le logiciel de comptabilité de l'entreprise. Les applications sont souvent programmées pour vérifier une table LDAP afin de s'assurer que les utilisateurs agissent dans le cadre des autorisations qui leur ont été accordées.
Des problèmes peuvent survenir lorsque des utilisateurs malveillants peuvent manipuler une requête LDAP. Cela peut inciter le serveur récepteur à exécuter des requêtes non valides qui ne seraient normalement pas autorisées, voire à accorder un accès de haut niveau ou d'administrateur à des utilisateurs non valides ou peu sûrs sans mot de passe.
Les injections LDAP peuvent être délicates, mais dans cet épisode, nous allons apprendre :
- Comment ils fonctionnent
- Pourquoi ils sont si dangereux
- Comment vous pouvez mettre en place des défenses pour les arrêter.
Comment les attaquants utilisent-ils l'injection LDAP ?
L'une des raisons pour lesquelles les attaques basées sur LDAP sont restées populaires pendant des années est le fait que presque tous les systèmes informatiques l'utilisent. LDAP est un logiciel libre qui fonctionne très bien, de sorte que peu d'alternatives ont été créées.
À la base, LDAP est une base de données qui permet de suivre les utilisateurs valides au sein d'un système informatique ou d'un réseau basé sur IP. Il peut permettre 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 LDAP dans l'équivalent d'une ligne de base de données ou d'un enregistrement appelé nom distinctif, souvent abrégé en DN. Chaque DN est unique. Voici, à titre d'exemple, à quoi pourrait ressembler un DN pour un utilisateur travaillant au bureau de comptabilité de Chicago d'une grande entreprise.
cn=James Smith, ou=Corporate Accounts, dc=Chicago, do=Parkview
Pour s'assurer que chaque DN est unique, 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 s'assurer que même si deux James Smiths travaillent dans les comptes d'entreprise au bureau de Chicago Parkview, ils auront chacun leur propre numéro d'identification.
Les applications utilisent généralement LDAP pour permettre aux utilisateurs d'envoyer des requêtes sur des DN spécifiques, comme, par exemple, lorsqu'ils essaient de localiser le bon contact dans le service des salaires pour parler d'une erreur sur leur chèque. Les injections LDAP peuvent se produire lorsqu'il n'y a pas de 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 de haute sécurité au sein 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 est probablement la prolifération du protocole dans la majorité des réseaux informatiques IP du monde entier. Il constitue un tremplin facile pour les pirates qui cherchent à voler des informations ou à élever leurs privilèges sur un réseau. Aucun pirate informatique expérimenté ne manquera de vérifier si les injections LDAP sont possibles, c'est pourquoi les équipes de sécurité doivent s'assurer que ces failles sont toujours fermé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 LDAP pour rechercher les coordonnées de comptables d'entreprise travaillant à Chicago, ce qui renverrait à notre ami James Smith de l'exemple ci-dessus. En fonction des autorisations, 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 ainsi la nature de la recherche et incitant le serveur à fournir des informations qui ne devraient normalement pas être données. Par exemple, en ajoutant une chaîne user=*, les attaquants pourraient obtenir des informations sur chaque utilisateur d'une organisation entière, ce qui ne devrait probablement jamais être autorisé.
Pour les applications qui utilisent LDAP pour l'authentification, le problème peut être encore plus grave. Les attaquants peuvent utiliser, par exemple, la chaîne (&) à la fin d'une requête LDAP pour tromper le serveur et lui faire croire que l'argument est vrai. Si une application utilise LDAP pour valider un mot de passe, forcer un argument True par une injection LDAP peut 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'une des meilleures façons d'empêcher les injections LDAP est de mettre en œuvre un outil tel que LINQtoAD ou d'autres cadres conçus spécifiquement pour y résister. Cela peut s'avérer impossible si un réseau dispose déjà d'applications qui exploitent les requêtes LDAP. Cependant, même dans ce cas, c'est une bonne idée pour chaque nouvelle application d'utiliser des frameworks résistants aux injections à l'avenir.
Les applications existantes qui utilisent LDAP peuvent également être renforcées contre les injections par l'utilisation de la validation de la liste blanche et de l'assainissement des entrées. Dans la mesure du possible, limitez les entrées des utilisateurs à un ensemble restreint de valeurs de confiance. 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. N'écrivez pas vos propres fonctions pour effectuer la vérification des entrées ; utilisez plutôt une bibliothèque tierce de confiance axée sur la sécurité ou les API intégrées du cadre de travail.
Au-delà des correctifs ciblés, de bonnes pratiques informatiques telles que l'attribution aux applications d'interrogation du LDAP du moindre privilège nécessaire sur un réseau peuvent également s'avérer utiles. Ainsi, si le pire devait se produire et qu'une injection LDAP parvenait à passer, les dommages seraient atténués.
Plus d'informations sur les injections LDAP
Pour en savoir plus, vous pouvez consulter l'article de l'OWASP sur les injections LDAP ou l'aide-mémoire sur la prévention des injections. Vous pouvez également mettre à l'épreuve vos nouvelles connaissances en matière de défense grâce à la démo gratuite de la plateforme Secure Code Warrior , qui forme les équipes de cybersécurité pour qu'elles deviennent les meilleurs cyber-guerriers. Pour en savoir plus sur la façon de vaincre cette vulnérabilité et d'autres menaces, visitez le blogSecure Code Warrior .
Table des matières
Jaap Karan Singhは、セキュア・コーディング・エバンジェリストであり、チーフ・シンであり、セキュア・コード・ウォリアーの共同創設者です。

Secure Code Warrior vous assiste dans la protection de votre code tout au long du cycle de vie du développement logiciel et dans la création d'une culture qui accorde la priorité à la cybersécurité. Que vous soyez responsable de la sécurité des applications, développeur, responsable de la sécurité des systèmes d'information ou professionnel de la sécurité, nous vous aidons à réduire les risques liés au code non sécurisé.
Veuillez réserver une démonstration.[Télécharger]Ressources pour débuter
Sujets et contenu de la formation sur le code sécurisé
Notre contenu, leader dans le secteur, évolue constamment en fonction de l'environnement de développement logiciel en constante mutation, tout en tenant compte du rôle de nos clients. Il couvre tous les sujets, de l'IA à l'injection XQuery, et s'adresse à divers rôles, des architectes et ingénieurs aux chefs de produit et responsables de l'assurance qualité. Nous vous invitons à consulter le catalogue de contenu pour découvrir son contenu par sujet et par rôle.
La Chambre de commerce établit la norme en matière de sécurité à grande échelle axée sur les développeurs
La Chambre de commerce néerlandaise explique comment elle a intégré le codage sécurisé dans le développement quotidien grâce à des certifications basées sur les rôles, à l'évaluation comparative du Trust Score et à une culture de responsabilité partagée en matière de sécurité.
Modélisation des menaces avec l'IA : transformer chaque développeur en modélisateur de menaces
Vous repartirez mieux équipé pour aider les développeurs à combiner les idées et les techniques de modélisation des menaces avec les outils d'IA qu'ils utilisent déjà pour renforcer la sécurité, améliorer la collaboration et créer des logiciels plus résilients dès le départ.
Ressources pour débuter
Cybermon est de retour : la mission IA consistant à vaincre le boss est désormais disponible à la demande.
Cybermon 2025 Beat the Boss est désormais disponible toute l'année sur SCW. Renforcez considérablement le développement sécurisé de l'IA en introduisant des défis de sécurité avancés en matière d'IA/LLM.
Explication de la loi sur la cyber-résilience : implications pour le développement de logiciels sécurisés dès la conception
Découvrez les exigences de la loi européenne sur la résilience cybernétique (CRA), à qui elle s'applique et comment les équipes d'ingénierie peuvent se préparer en matière de pratiques de sécurité dès la conception, de prévention des vulnérabilités et de développement des compétences des développeurs.
Facilitateur 1 : Critères de réussite prédéfinis et mesurables
Enabler 1 est le premier volet d'une série de dix intitulée « Enablers of Success » (Les catalyseurs de la réussite). Il présente comment associer le codage sécurisé à des résultats commerciaux tels que la réduction des risques et l'accélération des processus afin de faire évoluer le programme à long terme.




%20(1).avif)
.avif)
