Introduction à l'injection LDAP

De nos jours, l'application Web est censée être bien plus que la plate-forme qui traite les requêtes de l'utilisateur. Au cours de la période précédente, l'application Web concernait uniquement l'endroit où les utilisateurs peuvent venir faire leur travail et se déconnecter, et au moment où ils se déconnectent, l'application cesse de fonctionner. Mais de nos jours, l'application Web doit fonctionner même si l'utilisateur ne l'utilise pas, ce qui pourrait être mis en œuvre à l'aide de cookies. Facebook a récemment confirmé qu'ils utilisent des cookies pour vérifier les activités des utilisateurs afin de s'assurer que leur système n'est pas abusé. Ainsi, au moment où les applications en ligne doivent être plus puissantes, la sécurité de l'application est en tête de liste des exigences. Ici, nous allons nous concentrer sur un type de mode de cyberattaque qui doit être pris en compte afin d'assurer la sécurité du système.

Qu'est-ce que l'injection LDAP?

  • LDAP signifie Lightweight Directory Access Protocol. Il peut être défini comme un protocole indépendant du fournisseur et fonctionnant sur la couche via la pile TCP / IP. Il est utilisé pour introduire le mécanisme de vérification d'authentification et d'authentification dans l'application web afin d'assurer sa sécurité et très fréquemment utilisé lors du développement d'applications web. LDAP est utilisé très souvent dans les applications Web utilisées sur Internet ou sur l'intranet. Il est très important pour l'application Web d'utiliser LDAP car c'est un facteur très courant et important qui facilite le développement sécurisé de l'application Web.
  • LDAP peut également être défini comme l'ensemble de normes utilisées pour effectuer les contrôles de sécurité afin de savoir si l'utilisateur a toutes les autorisations d'accès au système existant. Il existe plusieurs façons d'effectuer les vérifications, mais finalement, le motif de toutes les vérifications est d'assurer la sécurité de l'application Web. Il interdit l'accès non autorisé aux utilisateurs qui ne disposent pas des privilèges appropriés. Sur la base des droits que l'utilisateur détient pour l'application Web particulière, il garantit que l'utilisateur ne pourra accéder qu'aux éléments pour lesquels il a droit. Bien qu'il soit utilisé pour assurer la sécurité de l'application Web, il peut également être trompé par des pirates pour extraire le jus de l'application.

Exécution d'une injection LDAP avec un exemple

  • L'application Web doit prendre l'entrée de l'utilisateur afin de la traiter davantage. L'attaquant peut en tirer parti si la valeur entrée par les utilisateurs n'est pas correctement filtrée et va directement à la base de données pour exécution. Ici, nous verrons comment l'injection LDAP pourrait être lancée sur n'importe quelle application Web sujette à cette attaque.

IEnter your name

  • La requête mentionnée ci-dessus sera transformée en commande conviviale LDAP afin que l'application facilite la bonne exécution de la requête.

String ldapQueryToSearch= "(sq=" + $userName + ")";
System.out.println(ldapQueryToSearch);

  • Dans le cas ci-dessus, si la valeur soumise par l'utilisateur n'est pas filtrée, cela peut conduire à obtenir le nom de tous les utilisateurs existants en mettant «*» dans la zone de saisie. Un astérisque indique toutes les options disponibles. Lorsque la base de données traitera l'astérisque plutôt un nom d'utilisateur particulier, tous les objets stockés dans la base de données LDAP lui seront attribués. La requête réelle qui sera exécutée dans la base de données sera

findingLogin="(&(usrid="+username+")(userPwd=(MD5)"+base64(pack("H*", md5(pass)))+"))";

  • Lorsque les données ne sont pas nettoyées et que la base de données accepte la valeur astérisque du processus, le code sera comme ci-dessous.

findingLogin="(&(usrid=*)(usrid=*))(|(usrid=*)(userPwd=(MD5)Xkjr1Hj5LydgyfeuILpxM==))";

Dès que le code vulnérable ci-dessus sera exécuté dans la base de données LDAP, il traversera tous les objets stockés dans la base de données LDAP et entraînera des dommages à l'application Web. Le résultat de l'injection LDAP sera ensuite utilisé par le pirate informatique pour abuser du système et provoquer une faille de sécurité.

Comment protéger les attaques par injection LDAP?

  • S'il existe une vulnérabilité dans l'application, il doit également exister sa correction. Il n'y aura pratiquement aucune vulnérabilité qui ne peut être résolue ou corrigée pour protéger le système. De la même manière, plusieurs méthodes peuvent être utilisées pour protéger l'application Web contre l'injection LDAP.
  • La toute première et la plus essentielle consiste à assainir l'entrée avant de la poursuivre pour le traitement. L'entrée soumise par l'utilisateur doit être validée si elle correspond à l'exigence que les suites correspondent à ce que l'application attend via ce champ de texte. Par exemple, si l'utilisateur essaie de soumettre des caractères spéciaux dans le champ de texte qui demande le nom, l'utilisateur doit être averti qu'il ne peut pas remplir de caractères spéciaux dans ce champ. C'est la validation côté client. Désormais, la validation côté serveur sera également requise pour s'assurer que les données fournies sont authentiques.
  • La prochaine consiste à configurer LDAP en gardant à l'esprit la sécurité. La configuration LDAP doit être effectuée de manière à empêcher les utilisateurs non autorisés d'apporter des modifications malveillantes au système. En outre, le suivant est que le résultat de la requête LDAP doit être limité et ne peut divulguer aucune donnée pouvant entraîner des failles de sécurité. Si les données ne sont pas suffisantes pour endommager le système, l'attaquant ne pourra en aucun cas affecter l'application Web même s'il a pu lancer l'attaque par injection LDAP.

Conclusion

Le protocole Lightweight Directory Access Protocol permet à l'application de s'assurer que l'utilisateur qui essaie d'accéder au système est correctement authentifié et autorisé à utiliser le système. Il est très important de considérer LDAP tout en prenant soin de tous les problèmes de sécurité. Le système doit être ample à fort pour ne laisser aucun pirate lancer une attaque LDAP. Comme la base de données LDAP contient des informations très lucratives, l'administrateur doit s'assurer que les entrées de l'utilisateur ont été soigneusement nettoyées et la configuration doit être effectuée en gardant à l'esprit tous les facteurs de sécurité.

Articles recommandés

Ceci est un guide pour l'injection LDAP. Nous discutons ici de ce qu'est l'injection LDAP, de ses exemples et de la façon de protéger l'attaque par injection LDAP. Vous pouvez également consulter nos autres articles connexes pour en savoir plus-

  1. Qu'est-ce que l'injection SQL?
  2. Qu'est-ce que Laravel?
  3. Test de sécurité
  4. Qu'est-ce que l'interface Java?