SCW图标
英雄背景无分隔线
博客

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

Jaap Karan Singh
发布于 2019 年 1 月 17 日
最后更新于 2026年3月6日

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.

感兴趣了解更多吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示
分享到:
领英品牌社交x 标志
作者
Jaap Karan Singh
发表于2019年1月17日

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

分享到:
领英品牌社交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.

查看资源
查看资源

请填写以下表格以下载报告

我们希望获得您的许可,以便向您发送有关我们产品或安全编码相关主题的信息。我们将始终以最高标准谨慎处理您的个人数据,绝不会出于营销目的将其出售给其他公司。

发送
scw 成功图标
SCW 错误图标
要提交表单,请启用「分析」cookie。完成后请随时将其重新禁用。

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 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

查看报告预约演示
查看资源
分享到:
领英品牌社交x 标志
感兴趣了解更多吗?

分享到:
领英品牌社交x 标志
作者
Jaap Karan Singh
发表于2019年1月17日

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

分享到:
领英品牌社交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.

目录

下载PDF
查看资源
感兴趣了解更多吗?

Jaap Karan Singh是一位安全编码布道者,首席辛格和Secure Code Warrior 的共同创始人。

了解更多

Secure Code Warrior 您的组织在软件开发全生命周期中保护代码安全,并营造将网络安全置于首位的企业文化。无论您是应用安全管理员、开发人员、首席信息安全官,还是任何与安全相关的工作人员,我们都能助力您的组织降低不安全代码带来的风险。

预约演示下载
分享到:
领英品牌社交x 标志
资源中心

入门资源

更多出版物
资源中心

入门资源

更多出版物