Icônes SCW
héros bg sans séparateur
Blog

Los codificadores conquistan la seguridad: serie Share & Learn - Inyecciones de LDAP

Jaap Karan Singh
Publié le 17 janvier 2019
Dernière mise à jour le 6 mars 2026

La gran mayoría de los sistemas informáticos utilizan el Protocolo ligero de acceso a directorios (LDAP). Se usa para mantener los servicios de información de directorio distribuidos en cualquier red de protocolo de Internet (IP). Básicamente, funciona como una forma de realizar un seguimiento de los usuarios.

Las aplicaciones suelen utilizar LDAP como fuente de autenticación para comprobar si un usuario tiene permiso para realizar diversas acciones, especialmente en lo que respecta a su función definida dentro de una organización. Por ejemplo, es posible que solo los profesionales de la contabilidad puedan usar el software de contabilidad de la empresa. Las aplicaciones suelen programarse para comprobar una tabla LDAP a fin de garantizar que los usuarios actúan dentro de los permisos establecidos.

Pueden producirse problemas cuando usuarios malintencionados pueden manipular una consulta LDAP. Esto puede engañar al servidor receptor para que ejecute consultas no válidas que normalmente no estarían permitidas, o incluso para que conceda acceso de administrador o de alto nivel a usuarios no válidos o de baja seguridad sin contraseña.

Las inyecciones de LDAP pueden ser complicadas, pero en este episodio aprenderemos:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo utilizan los atacantes la inyección de LDAP?

Una de las razones por las que los ataques basados en LDAP han seguido siendo populares durante años es el hecho de que casi todos los sistemas informáticos lo utilizan. El LDAP es de código abierto y funciona muy bien, por lo que no se han creado muchas alternativas.

En esencia, LDAP es una base de datos que rastrea a los usuarios válidos dentro de una red o sistema informático basado en IP. Puede permitir a los usuarios compartir información sobre sistemas, redes, servidores, aplicaciones e incluso sobre otros usuarios de la misma red.

LDAP almacena la información en el equivalente a una línea o registro de base de datos denominado nombre distintivo, que a menudo se abrevia como DN. Cada DN es único. Por ejemplo, este es el aspecto que podría tener un DN para un usuario que trabaja en la oficina de contabilidad de una gran corporación en Chicago.

CN=James Smith, OU=Cuentas corporativas, DC=Chicago, DO=Parkview

Para garantizar que cada DN sea único, se pueden agregar varios códigos al registro, como «+», «/», «=» y algunos otros. También se pueden insertar espacios antes o después de un registro para garantizar que, aunque haya dos James Smith trabajando en cuentas corporativas en la oficina de Parkview de Chicago, cada uno tenga un nombre de dominio individual.

Las aplicaciones suelen utilizar LDAP para permitir a los usuarios enviar consultas sobre nombres de dominio específicos, por ejemplo, cuando intentan localizar al contacto correcto en el departamento de nóminas para hablar de un error en su cheque. Las inyecciones de LDAP pueden producirse cuando no se validan los parámetros proporcionados por el usuario en las consultas de búsqueda. En ese caso, los piratas informáticos pueden manipular las búsquedas benignas para eludir los mecanismos de autenticación o ejecutar consultas arbitrarias adicionales. Esto puede engañar al servidor para que muestre resultados que no deberían estar permitidos, como las contraseñas de los usuarios, o incluso provocar que una aplicación conceda acceso a áreas de alta seguridad de la red, con o sin una contraseña válida.

¿Por qué son tan peligrosas las inyecciones de LDAP?

El mayor peligro de las inyecciones de LDAP es probablemente la proliferación del protocolo en la mayoría de las redes informáticas IP de todo el mundo. Se convierte en un trampolín fácil para los piratas informáticos que buscan robar información o aumentar sus privilegios en una red. Ningún hacker capacitado dejará de comprobar si es posible inyectar LDAP, por lo que los equipos de seguridad deben asegurarse de que esos agujeros estén siempre cerrados.

En concreto, un buen número de aplicaciones están programadas para ayudar a los usuarios válidos a encontrar información limitada sobre los usuarios y grupos dentro de una organización, o cualquier otra información contenida en los DN. Por ejemplo, una aplicación podría permitir a alguien usar LDAP para buscar la información de contacto de los contadores corporativos que trabajan en Chicago, lo que daría como resultado nuestro amigo James Smith del ejemplo anterior. En función de los permisos, es probable que se trate de un uso perfectamente válido de una consulta LDAP.

El peligro se presenta cuando un usuario malintencionado puede añadir parámetros sin filtrar a la consulta, cambiando la naturaleza de la búsqueda y engañando al servidor para que proporcione información que normalmente no debería proporcionarse. Por ejemplo, al añadir una cadena user=*, los atacantes podrían obtener información sobre todos los usuarios de toda una organización, algo que probablemente nunca debería permitirse.

En el caso de las aplicaciones que utilizan LDAP para la autenticación, el problema puede ser incluso peor. Los atacantes pueden usar, por ejemplo, la cadena (&) al final de una consulta LDAP para engañar al servidor haciéndole creer que el argumento es verdadero. Si una aplicación usa LDAP para validar una contraseña, forzar el argumento True mediante una inyección de LDAP podría permitir a un usuario no autorizado iniciar sesión en la red como administrador, incluso sin contraseña.

Cómo convertir la inyección de LDAP en algo que no debe hacerse en su red

Una de las mejores maneras de evitar las inyecciones de LDAP es implementar algo como LinqToad u otros marcos diseñados específicamente para resistirlo. Es posible que esto no sea posible si una red ya tiene aplicaciones que aprovechan las consultas LDAP. Sin embargo, incluso en ese caso, sigue siendo una buena idea que cada nueva aplicación utilice marcos resistentes a las inyecciones en el futuro.

Las aplicaciones existentes que utilizan LDAP también se pueden reforzar contra las inyecciones mediante el uso de la validación de listas blancas y la desinfección de las entradas. Siempre que sea posible, restrinja la entrada del usuario a un conjunto limitado de valores confiables. De lo contrario, las entradas del usuario que forman parte de una consulta LDAP deben limpiarse primero y no olvidar incluir los parámetros GET y POST, las cookies y los encabezados HTTP, ya que también pueden actuar como vectores de ataque. No escribas tus propias funciones para desinfectar las entradas; en su lugar, utiliza una biblioteca de terceros de confianza centrada en la seguridad o API de marco integradas.

Más allá de las soluciones específicas, las buenas prácticas informáticas, como asignar a las aplicaciones de consulta LDAP el menor privilegio necesario en una red, también pueden ayudar. De esa forma, si ocurriera lo peor y una inyección de LDAP tuviera éxito, el daño se mitigaría.

Más información sobre las inyecciones de LDAP

Para leer más, puede echar un vistazo al OWASP artículo sobre Inyecciones de LDAP, o prevención de inyecciones hoja de trucos. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

Veuillez consulter la ressource
Veuillez consulter la ressource

Pueden producirse problemas cuando usuarios malintencionados pueden manipular una consulta LDAP. Esto puede engañar al servidor receptor para que ejecute consultas no válidas que normalmente no estarían permitidas, o incluso para que conceda acceso de administrador o de alto nivel a usuarios no válidos o de baja seguridad sin contraseña.

Souhaitez-vous en savoir davantage ?

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

En savoir plus

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez réserver une démonstration.
Partager sur :
marques LinkedInSocialLogo x
auteur
Jaap Karan Singh
Publié le 17 janvier 2019

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

Partager sur :
marques LinkedInSocialLogo x

La gran mayoría de los sistemas informáticos utilizan el Protocolo ligero de acceso a directorios (LDAP). Se usa para mantener los servicios de información de directorio distribuidos en cualquier red de protocolo de Internet (IP). Básicamente, funciona como una forma de realizar un seguimiento de los usuarios.

Las aplicaciones suelen utilizar LDAP como fuente de autenticación para comprobar si un usuario tiene permiso para realizar diversas acciones, especialmente en lo que respecta a su función definida dentro de una organización. Por ejemplo, es posible que solo los profesionales de la contabilidad puedan usar el software de contabilidad de la empresa. Las aplicaciones suelen programarse para comprobar una tabla LDAP a fin de garantizar que los usuarios actúan dentro de los permisos establecidos.

Pueden producirse problemas cuando usuarios malintencionados pueden manipular una consulta LDAP. Esto puede engañar al servidor receptor para que ejecute consultas no válidas que normalmente no estarían permitidas, o incluso para que conceda acceso de administrador o de alto nivel a usuarios no válidos o de baja seguridad sin contraseña.

Las inyecciones de LDAP pueden ser complicadas, pero en este episodio aprenderemos:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo utilizan los atacantes la inyección de LDAP?

Una de las razones por las que los ataques basados en LDAP han seguido siendo populares durante años es el hecho de que casi todos los sistemas informáticos lo utilizan. El LDAP es de código abierto y funciona muy bien, por lo que no se han creado muchas alternativas.

En esencia, LDAP es una base de datos que rastrea a los usuarios válidos dentro de una red o sistema informático basado en IP. Puede permitir a los usuarios compartir información sobre sistemas, redes, servidores, aplicaciones e incluso sobre otros usuarios de la misma red.

LDAP almacena la información en el equivalente a una línea o registro de base de datos denominado nombre distintivo, que a menudo se abrevia como DN. Cada DN es único. Por ejemplo, este es el aspecto que podría tener un DN para un usuario que trabaja en la oficina de contabilidad de una gran corporación en Chicago.

CN=James Smith, OU=Cuentas corporativas, DC=Chicago, DO=Parkview

Para garantizar que cada DN sea único, se pueden agregar varios códigos al registro, como «+», «/», «=» y algunos otros. También se pueden insertar espacios antes o después de un registro para garantizar que, aunque haya dos James Smith trabajando en cuentas corporativas en la oficina de Parkview de Chicago, cada uno tenga un nombre de dominio individual.

Las aplicaciones suelen utilizar LDAP para permitir a los usuarios enviar consultas sobre nombres de dominio específicos, por ejemplo, cuando intentan localizar al contacto correcto en el departamento de nóminas para hablar de un error en su cheque. Las inyecciones de LDAP pueden producirse cuando no se validan los parámetros proporcionados por el usuario en las consultas de búsqueda. En ese caso, los piratas informáticos pueden manipular las búsquedas benignas para eludir los mecanismos de autenticación o ejecutar consultas arbitrarias adicionales. Esto puede engañar al servidor para que muestre resultados que no deberían estar permitidos, como las contraseñas de los usuarios, o incluso provocar que una aplicación conceda acceso a áreas de alta seguridad de la red, con o sin una contraseña válida.

¿Por qué son tan peligrosas las inyecciones de LDAP?

El mayor peligro de las inyecciones de LDAP es probablemente la proliferación del protocolo en la mayoría de las redes informáticas IP de todo el mundo. Se convierte en un trampolín fácil para los piratas informáticos que buscan robar información o aumentar sus privilegios en una red. Ningún hacker capacitado dejará de comprobar si es posible inyectar LDAP, por lo que los equipos de seguridad deben asegurarse de que esos agujeros estén siempre cerrados.

En concreto, un buen número de aplicaciones están programadas para ayudar a los usuarios válidos a encontrar información limitada sobre los usuarios y grupos dentro de una organización, o cualquier otra información contenida en los DN. Por ejemplo, una aplicación podría permitir a alguien usar LDAP para buscar la información de contacto de los contadores corporativos que trabajan en Chicago, lo que daría como resultado nuestro amigo James Smith del ejemplo anterior. En función de los permisos, es probable que se trate de un uso perfectamente válido de una consulta LDAP.

El peligro se presenta cuando un usuario malintencionado puede añadir parámetros sin filtrar a la consulta, cambiando la naturaleza de la búsqueda y engañando al servidor para que proporcione información que normalmente no debería proporcionarse. Por ejemplo, al añadir una cadena user=*, los atacantes podrían obtener información sobre todos los usuarios de toda una organización, algo que probablemente nunca debería permitirse.

En el caso de las aplicaciones que utilizan LDAP para la autenticación, el problema puede ser incluso peor. Los atacantes pueden usar, por ejemplo, la cadena (&) al final de una consulta LDAP para engañar al servidor haciéndole creer que el argumento es verdadero. Si una aplicación usa LDAP para validar una contraseña, forzar el argumento True mediante una inyección de LDAP podría permitir a un usuario no autorizado iniciar sesión en la red como administrador, incluso sin contraseña.

Cómo convertir la inyección de LDAP en algo que no debe hacerse en su red

Una de las mejores maneras de evitar las inyecciones de LDAP es implementar algo como LinqToad u otros marcos diseñados específicamente para resistirlo. Es posible que esto no sea posible si una red ya tiene aplicaciones que aprovechan las consultas LDAP. Sin embargo, incluso en ese caso, sigue siendo una buena idea que cada nueva aplicación utilice marcos resistentes a las inyecciones en el futuro.

Las aplicaciones existentes que utilizan LDAP también se pueden reforzar contra las inyecciones mediante el uso de la validación de listas blancas y la desinfección de las entradas. Siempre que sea posible, restrinja la entrada del usuario a un conjunto limitado de valores confiables. De lo contrario, las entradas del usuario que forman parte de una consulta LDAP deben limpiarse primero y no olvidar incluir los parámetros GET y POST, las cookies y los encabezados HTTP, ya que también pueden actuar como vectores de ataque. No escribas tus propias funciones para desinfectar las entradas; en su lugar, utiliza una biblioteca de terceros de confianza centrada en la seguridad o API de marco integradas.

Más allá de las soluciones específicas, las buenas prácticas informáticas, como asignar a las aplicaciones de consulta LDAP el menor privilegio necesario en una red, también pueden ayudar. De esa forma, si ocurriera lo peor y una inyección de LDAP tuviera éxito, el daño se mitigaría.

Más información sobre las inyecciones de LDAP

Para leer más, puede echar un vistazo al OWASP artículo sobre Inyecciones de LDAP, o prevención de inyecciones hoja de trucos. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

Veuillez consulter la ressource
Veuillez consulter la ressource

Veuillez remplir le formulaire suivant pour télécharger le rapport.

Nous souhaiterions obtenir votre autorisation pour vous envoyer des informations sur nos produits ou sur des sujets liés au codage sécurisé. Nous traiterons toujours vos données personnelles avec le plus grand soin et ne les vendrons jamais à d'autres entreprises à des fins de marketing.

Envoyer
icône de réussite scw
icône d'erreur scw
Pour envoyer le formulaire, veuillez activer les cookies « d'analyse ». N'hésitez pas à les désactiver à nouveau une fois que vous avez terminé.

La gran mayoría de los sistemas informáticos utilizan el Protocolo ligero de acceso a directorios (LDAP). Se usa para mantener los servicios de información de directorio distribuidos en cualquier red de protocolo de Internet (IP). Básicamente, funciona como una forma de realizar un seguimiento de los usuarios.

Las aplicaciones suelen utilizar LDAP como fuente de autenticación para comprobar si un usuario tiene permiso para realizar diversas acciones, especialmente en lo que respecta a su función definida dentro de una organización. Por ejemplo, es posible que solo los profesionales de la contabilidad puedan usar el software de contabilidad de la empresa. Las aplicaciones suelen programarse para comprobar una tabla LDAP a fin de garantizar que los usuarios actúan dentro de los permisos establecidos.

Pueden producirse problemas cuando usuarios malintencionados pueden manipular una consulta LDAP. Esto puede engañar al servidor receptor para que ejecute consultas no válidas que normalmente no estarían permitidas, o incluso para que conceda acceso de administrador o de alto nivel a usuarios no válidos o de baja seguridad sin contraseña.

Las inyecciones de LDAP pueden ser complicadas, pero en este episodio aprenderemos:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo utilizan los atacantes la inyección de LDAP?

Una de las razones por las que los ataques basados en LDAP han seguido siendo populares durante años es el hecho de que casi todos los sistemas informáticos lo utilizan. El LDAP es de código abierto y funciona muy bien, por lo que no se han creado muchas alternativas.

En esencia, LDAP es una base de datos que rastrea a los usuarios válidos dentro de una red o sistema informático basado en IP. Puede permitir a los usuarios compartir información sobre sistemas, redes, servidores, aplicaciones e incluso sobre otros usuarios de la misma red.

LDAP almacena la información en el equivalente a una línea o registro de base de datos denominado nombre distintivo, que a menudo se abrevia como DN. Cada DN es único. Por ejemplo, este es el aspecto que podría tener un DN para un usuario que trabaja en la oficina de contabilidad de una gran corporación en Chicago.

CN=James Smith, OU=Cuentas corporativas, DC=Chicago, DO=Parkview

Para garantizar que cada DN sea único, se pueden agregar varios códigos al registro, como «+», «/», «=» y algunos otros. También se pueden insertar espacios antes o después de un registro para garantizar que, aunque haya dos James Smith trabajando en cuentas corporativas en la oficina de Parkview de Chicago, cada uno tenga un nombre de dominio individual.

Las aplicaciones suelen utilizar LDAP para permitir a los usuarios enviar consultas sobre nombres de dominio específicos, por ejemplo, cuando intentan localizar al contacto correcto en el departamento de nóminas para hablar de un error en su cheque. Las inyecciones de LDAP pueden producirse cuando no se validan los parámetros proporcionados por el usuario en las consultas de búsqueda. En ese caso, los piratas informáticos pueden manipular las búsquedas benignas para eludir los mecanismos de autenticación o ejecutar consultas arbitrarias adicionales. Esto puede engañar al servidor para que muestre resultados que no deberían estar permitidos, como las contraseñas de los usuarios, o incluso provocar que una aplicación conceda acceso a áreas de alta seguridad de la red, con o sin una contraseña válida.

¿Por qué son tan peligrosas las inyecciones de LDAP?

El mayor peligro de las inyecciones de LDAP es probablemente la proliferación del protocolo en la mayoría de las redes informáticas IP de todo el mundo. Se convierte en un trampolín fácil para los piratas informáticos que buscan robar información o aumentar sus privilegios en una red. Ningún hacker capacitado dejará de comprobar si es posible inyectar LDAP, por lo que los equipos de seguridad deben asegurarse de que esos agujeros estén siempre cerrados.

En concreto, un buen número de aplicaciones están programadas para ayudar a los usuarios válidos a encontrar información limitada sobre los usuarios y grupos dentro de una organización, o cualquier otra información contenida en los DN. Por ejemplo, una aplicación podría permitir a alguien usar LDAP para buscar la información de contacto de los contadores corporativos que trabajan en Chicago, lo que daría como resultado nuestro amigo James Smith del ejemplo anterior. En función de los permisos, es probable que se trate de un uso perfectamente válido de una consulta LDAP.

El peligro se presenta cuando un usuario malintencionado puede añadir parámetros sin filtrar a la consulta, cambiando la naturaleza de la búsqueda y engañando al servidor para que proporcione información que normalmente no debería proporcionarse. Por ejemplo, al añadir una cadena user=*, los atacantes podrían obtener información sobre todos los usuarios de toda una organización, algo que probablemente nunca debería permitirse.

En el caso de las aplicaciones que utilizan LDAP para la autenticación, el problema puede ser incluso peor. Los atacantes pueden usar, por ejemplo, la cadena (&) al final de una consulta LDAP para engañar al servidor haciéndole creer que el argumento es verdadero. Si una aplicación usa LDAP para validar una contraseña, forzar el argumento True mediante una inyección de LDAP podría permitir a un usuario no autorizado iniciar sesión en la red como administrador, incluso sin contraseña.

Cómo convertir la inyección de LDAP en algo que no debe hacerse en su red

Una de las mejores maneras de evitar las inyecciones de LDAP es implementar algo como LinqToad u otros marcos diseñados específicamente para resistirlo. Es posible que esto no sea posible si una red ya tiene aplicaciones que aprovechan las consultas LDAP. Sin embargo, incluso en ese caso, sigue siendo una buena idea que cada nueva aplicación utilice marcos resistentes a las inyecciones en el futuro.

Las aplicaciones existentes que utilizan LDAP también se pueden reforzar contra las inyecciones mediante el uso de la validación de listas blancas y la desinfección de las entradas. Siempre que sea posible, restrinja la entrada del usuario a un conjunto limitado de valores confiables. De lo contrario, las entradas del usuario que forman parte de una consulta LDAP deben limpiarse primero y no olvidar incluir los parámetros GET y POST, las cookies y los encabezados HTTP, ya que también pueden actuar como vectores de ataque. No escribas tus propias funciones para desinfectar las entradas; en su lugar, utiliza una biblioteca de terceros de confianza centrada en la seguridad o API de marco integradas.

Más allá de las soluciones específicas, las buenas prácticas informáticas, como asignar a las aplicaciones de consulta LDAP el menor privilegio necesario en una red, también pueden ayudar. De esa forma, si ocurriera lo peor y una inyección de LDAP tuviera éxito, el daño se mitigaría.

Más información sobre las inyecciones de LDAP

Para leer más, puede echar un vistazo al OWASP artículo sobre Inyecciones de LDAP, o prevención de inyecciones hoja de trucos. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

Veuillez consulter le webinaire
Commencer
En savoir plus

Veuillez cliquer sur le lien ci-dessous et télécharger le PDF de cette ressource.

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez consulter le rapportVeuillez réserver une démonstration.
Télécharger le PDF
Veuillez consulter la ressource
Partager sur :
marques LinkedInSocialLogo x
Souhaitez-vous en savoir davantage ?

Partager sur :
marques LinkedInSocialLogo x
auteur
Jaap Karan Singh
Publié le 17 janvier 2019

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

Partager sur :
marques LinkedInSocialLogo x

La gran mayoría de los sistemas informáticos utilizan el Protocolo ligero de acceso a directorios (LDAP). Se usa para mantener los servicios de información de directorio distribuidos en cualquier red de protocolo de Internet (IP). Básicamente, funciona como una forma de realizar un seguimiento de los usuarios.

Las aplicaciones suelen utilizar LDAP como fuente de autenticación para comprobar si un usuario tiene permiso para realizar diversas acciones, especialmente en lo que respecta a su función definida dentro de una organización. Por ejemplo, es posible que solo los profesionales de la contabilidad puedan usar el software de contabilidad de la empresa. Las aplicaciones suelen programarse para comprobar una tabla LDAP a fin de garantizar que los usuarios actúan dentro de los permisos establecidos.

Pueden producirse problemas cuando usuarios malintencionados pueden manipular una consulta LDAP. Esto puede engañar al servidor receptor para que ejecute consultas no válidas que normalmente no estarían permitidas, o incluso para que conceda acceso de administrador o de alto nivel a usuarios no válidos o de baja seguridad sin contraseña.

Las inyecciones de LDAP pueden ser complicadas, pero en este episodio aprenderemos:

  • Cómo funcionan
  • Por qué son tan peligrosos
  • Cómo puedes establecer defensas para detenerlos.

¿Cómo utilizan los atacantes la inyección de LDAP?

Una de las razones por las que los ataques basados en LDAP han seguido siendo populares durante años es el hecho de que casi todos los sistemas informáticos lo utilizan. El LDAP es de código abierto y funciona muy bien, por lo que no se han creado muchas alternativas.

En esencia, LDAP es una base de datos que rastrea a los usuarios válidos dentro de una red o sistema informático basado en IP. Puede permitir a los usuarios compartir información sobre sistemas, redes, servidores, aplicaciones e incluso sobre otros usuarios de la misma red.

LDAP almacena la información en el equivalente a una línea o registro de base de datos denominado nombre distintivo, que a menudo se abrevia como DN. Cada DN es único. Por ejemplo, este es el aspecto que podría tener un DN para un usuario que trabaja en la oficina de contabilidad de una gran corporación en Chicago.

CN=James Smith, OU=Cuentas corporativas, DC=Chicago, DO=Parkview

Para garantizar que cada DN sea único, se pueden agregar varios códigos al registro, como «+», «/», «=» y algunos otros. También se pueden insertar espacios antes o después de un registro para garantizar que, aunque haya dos James Smith trabajando en cuentas corporativas en la oficina de Parkview de Chicago, cada uno tenga un nombre de dominio individual.

Las aplicaciones suelen utilizar LDAP para permitir a los usuarios enviar consultas sobre nombres de dominio específicos, por ejemplo, cuando intentan localizar al contacto correcto en el departamento de nóminas para hablar de un error en su cheque. Las inyecciones de LDAP pueden producirse cuando no se validan los parámetros proporcionados por el usuario en las consultas de búsqueda. En ese caso, los piratas informáticos pueden manipular las búsquedas benignas para eludir los mecanismos de autenticación o ejecutar consultas arbitrarias adicionales. Esto puede engañar al servidor para que muestre resultados que no deberían estar permitidos, como las contraseñas de los usuarios, o incluso provocar que una aplicación conceda acceso a áreas de alta seguridad de la red, con o sin una contraseña válida.

¿Por qué son tan peligrosas las inyecciones de LDAP?

El mayor peligro de las inyecciones de LDAP es probablemente la proliferación del protocolo en la mayoría de las redes informáticas IP de todo el mundo. Se convierte en un trampolín fácil para los piratas informáticos que buscan robar información o aumentar sus privilegios en una red. Ningún hacker capacitado dejará de comprobar si es posible inyectar LDAP, por lo que los equipos de seguridad deben asegurarse de que esos agujeros estén siempre cerrados.

En concreto, un buen número de aplicaciones están programadas para ayudar a los usuarios válidos a encontrar información limitada sobre los usuarios y grupos dentro de una organización, o cualquier otra información contenida en los DN. Por ejemplo, una aplicación podría permitir a alguien usar LDAP para buscar la información de contacto de los contadores corporativos que trabajan en Chicago, lo que daría como resultado nuestro amigo James Smith del ejemplo anterior. En función de los permisos, es probable que se trate de un uso perfectamente válido de una consulta LDAP.

El peligro se presenta cuando un usuario malintencionado puede añadir parámetros sin filtrar a la consulta, cambiando la naturaleza de la búsqueda y engañando al servidor para que proporcione información que normalmente no debería proporcionarse. Por ejemplo, al añadir una cadena user=*, los atacantes podrían obtener información sobre todos los usuarios de toda una organización, algo que probablemente nunca debería permitirse.

En el caso de las aplicaciones que utilizan LDAP para la autenticación, el problema puede ser incluso peor. Los atacantes pueden usar, por ejemplo, la cadena (&) al final de una consulta LDAP para engañar al servidor haciéndole creer que el argumento es verdadero. Si una aplicación usa LDAP para validar una contraseña, forzar el argumento True mediante una inyección de LDAP podría permitir a un usuario no autorizado iniciar sesión en la red como administrador, incluso sin contraseña.

Cómo convertir la inyección de LDAP en algo que no debe hacerse en su red

Una de las mejores maneras de evitar las inyecciones de LDAP es implementar algo como LinqToad u otros marcos diseñados específicamente para resistirlo. Es posible que esto no sea posible si una red ya tiene aplicaciones que aprovechan las consultas LDAP. Sin embargo, incluso en ese caso, sigue siendo una buena idea que cada nueva aplicación utilice marcos resistentes a las inyecciones en el futuro.

Las aplicaciones existentes que utilizan LDAP también se pueden reforzar contra las inyecciones mediante el uso de la validación de listas blancas y la desinfección de las entradas. Siempre que sea posible, restrinja la entrada del usuario a un conjunto limitado de valores confiables. De lo contrario, las entradas del usuario que forman parte de una consulta LDAP deben limpiarse primero y no olvidar incluir los parámetros GET y POST, las cookies y los encabezados HTTP, ya que también pueden actuar como vectores de ataque. No escribas tus propias funciones para desinfectar las entradas; en su lugar, utiliza una biblioteca de terceros de confianza centrada en la seguridad o API de marco integradas.

Más allá de las soluciones específicas, las buenas prácticas informáticas, como asignar a las aplicaciones de consulta LDAP el menor privilegio necesario en una red, también pueden ayudar. De esa forma, si ocurriera lo peor y una inyección de LDAP tuviera éxito, el daño se mitigaría.

Más información sobre las inyecciones de LDAP

Para leer más, puede echar un vistazo al OWASP artículo sobre Inyecciones de LDAP, o prevención de inyecciones hoja de trucos. También puedes poner a prueba tus nuevos conocimientos defensivos con el demo gratuita de la plataforma Secure Code Warrior, que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para obtener más información sobre cómo derrotar esta vulnerabilidad y la galería de otras amenazas de los delincuentes, visita la Blog de Secure Code Warrior.

Table des matières

Télécharger le PDF
Veuillez consulter la ressource
Souhaitez-vous en savoir davantage ?

Jaap Karan Singh est un évangéliste du codage sécurisé, Chief Singh et cofondateur de Secure Code Warrior.

En savoir plus

Secure Code Warrior là pour aider votre organisation à protéger le code tout au long du cycle de vie du développement logiciel et à créer une culture où la cybersécurité est une priorité. Que vous soyez administrateur AppSec, développeur, CISO ou toute autre personne impliquée dans la sécurité, nous pouvons aider votre organisation à réduire les risques associés à un code non sécurisé.

Veuillez réserver une démonstration.Télécharger
Partager sur :
marques LinkedInSocialLogo x
Centre de ressources

Ressources pour débuter

Plus de publications
Centre de ressources

Ressources pour débuter

Plus de publications