
Los codificadores conquistan la seguridad: serie Share & Learn - Inyecciones de LDAP
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.


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.
야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .

Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
데모 예약하기야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .


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.

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.

아래 링크를 클릭하고 이 자료의 PDF를 다운로드하세요.
Secure Code Warrior 귀사의 조직이 소프트웨어 개발 라이프사이클 전반에 걸쳐 코드를 보호하고 사이버보안을 최우선으로 하는 문화를 조성하도록 Secure Code Warrior . AppSec 관리자, 개발자, CISO 또는 보안 관련 담당자라면 누구든, 저희는 귀사의 조직이 안전하지 않은 코드와 관련된 위험을 줄일 수 있도록 돕습니다.
보고서 보기데모 예약하기야프 카란 싱은 보안 코딩 전도자, 수석 싱 및 공동 설립자입니다 Secure Code Warrior .
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.




%20(1).avif)
.avif)
