Coders Conquer Security: Share & Learn Series - Inclusión de archivos locales y Path Traversal

Publicado el 04 de julio de 2019
por Jaap Karan Singh
ESTUDIO DE CASO

Coders Conquer Security: Share & Learn Series - Inclusión de archivos locales y Path Traversal

Publicado el 04 de julio de 2019
por Jaap Karan Singh
Ver recurso
Ver recurso

A diferencia de muchas vulnerabilidades, explotar la inclusión de archivos locales y los procesos de path traversal con fines nefastos requiere un atacante suficientemente hábil, una buena cantidad de tiempo y quizás un poco de suerte. Esto no quiere decir que esta vulnerabilidad pueda ser ignorada. Los atacantes hábiles pueden utilizarla para volver los archivos internos en contra de una organización, trazar una estructura de directorios o incluso robar información de contraseñas y usuarios que puede ser utilizada para peligrosos ataques secundarios.

En este episodio, aprenderemos:

  • Cómo explotan los hackers las vulnerabilidades de inclusión de archivos locales y de cruce de rutas
  • Por qué permitir la inclusión de archivos locales sin restricciones y el cruce de rutas puede ser peligroso
  • Políticas y técnicas que pueden emplearse para encontrar y solucionar este problema.

¿Cómo aprovechan los atacantes la inclusión de archivos locales y el cruce de rutas?

El clásico detective de la televisión Columbo solía decir siempre: "Sólo una cosa más" justo antes de entregar una valiosa información que desvelaría el caso en cuestión. Parecía intrascendente en ese momento, y casi siempre era ignorado por el sospechoso, pero siempre resultaba ser su perdición. Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas son muy parecidas.

Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas utilizan el mecanismo de inclusión de archivos dinámicos que existe en la mayoría de los marcos de programación, como los scripts ASP, JSP y PHP. En el caso de la inclusión de archivos locales, un atacante desliza el nombre de un archivo que existe en el servidor local en un área de una aplicación web, como una cabecera o un área de entrada de formularios. La aplicación procesa la entrada principal de forma normal, pero también el comando include(page) o similar. En el path traversal, el atacante define la ruta de acceso a un archivo sospechoso, normalmente utilizando los caracteres punto, punto y barra (../) como variables. Es muy parecido a Columbo en el sentido de que al hacker realmente no le importa la primera parte del argumento. Es simplemente un medio para añadir "una cosa más" al final.

En cualquiera de los casos, el atacante debe normalmente realizar una cantidad significativa de prueba y error. A menos que esté muy familiarizado con la estructura del sitio, adivinar las configuraciones de las rutas y los nombres de los archivos podría llevarle mucho tiempo. Dicho esto, la mayoría de los sitios siguen patrones específicos y tienen directorios y nombres de archivos más o menos similares. Así que puede que no le lleve tanto tiempo como cree. Y dado que el pago es potencialmente muy lucrativo, hay muchos incentivos para que los hackers traten de explotar la inclusión de archivos locales y las vulnerabilidades de cruce de rutas una vez encontradas.

¿Por qué son peligrosas las vulnerabilidades de inclusión de archivos locales y de cruce de rutas?

Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas son peligrosas porque pueden permitir a los atacantes acceder a archivos sensibles o críticos. En el caso de los archivos de datos, el peligro es que el hacker pueda obtener algo valioso, como las contraseñas de los usuarios u otra información personal. Uno de los principales objetivos suelen ser los archivos de contraseñas o de configuración de usuarios, ya que eso daría acceso al resto del sitio. Las bases de datos también son objetivos principales. Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas podrían permitir a un atacante robar todo el contenido de una base de datos en el peor de los casos.

En el caso de los archivos ejecutables, el peligro radica en que obtener acceso a ellos podría permitir a un atacante realizar actividades maliciosas, como destruir parte de un sitio o incluso montar algún tipo de ataque interno de denegación de servicio mediante el derroche de recursos del sistema. Pero el alcance total del peligro sólo está limitado por el ingenio y la habilidad del atacante, y por los archivos a los que pueda acceder que ya existan en el servidor objetivo.

Eliminación de la amenaza que suponen la inclusión de archivos locales y el path traversal

El peligro que suponen las vulnerabilidades de inclusión de archivos locales y path traversal puede eliminarse con buenas prácticas de ciberseguridad. Lo más importante es no permitir nunca la entrada del usuario en "file include" u otros comandos con funciones similares. Si una aplicación debe permitirla, no la pase directamente. En su lugar, utilice un mapa de referencia indirecto. Un mapa de referencia indirecta toma la entrada del usuario y la asigna a un conjunto de valores de confianza codificados, que luego pueden ser utilizados con seguridad.

Al igual que con muchas otras vulnerabilidades, preste especial atención a todas las áreas de entrada controladas por el usuario, como las cookies, las cabeceras HTTP y los parámetros de los formularios. Las entradas permitidas deben estar en una lista blanca, y todo lo demás debe ser denegado explícitamente. Cuando esto no sea posible, utilice la validación de entradas para regular estrictamente los valores permitidos, como números, valores alfanuméricos, etc.

Más información sobre la inclusión de archivos locales y el cruce de rutas

Para más información, puedes echar un vistazo a la guía de pruebas de OWASP para la inclusión de archivos locales y los exploits de cruce de rutas. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .

Ver recurso
Ver recurso

Autor

Jaap Karan Singh

¿Quieres más?

Sumérjase en nuestras últimas ideas sobre codificación segura en el blog.

Nuestra amplia biblioteca de recursos tiene como objetivo potenciar el enfoque humano de la mejora de la codificación segura.

Ver blog
¿Quieres más?

Obtenga las últimas investigaciones sobre la seguridad impulsada por los desarrolladores

Nuestra amplia biblioteca de recursos está repleta de recursos útiles, desde libros blancos hasta seminarios web, que le ayudarán a iniciarse en la codificación segura orientada a los desarrolladores. Explórela ahora.

Centro de recursos

Coders Conquer Security: Share & Learn Series - Inclusión de archivos locales y Path Traversal

Publicado el 04 de julio de 2019
Por Jaap Karan Singh

A diferencia de muchas vulnerabilidades, explotar la inclusión de archivos locales y los procesos de path traversal con fines nefastos requiere un atacante suficientemente hábil, una buena cantidad de tiempo y quizás un poco de suerte. Esto no quiere decir que esta vulnerabilidad pueda ser ignorada. Los atacantes hábiles pueden utilizarla para volver los archivos internos en contra de una organización, trazar una estructura de directorios o incluso robar información de contraseñas y usuarios que puede ser utilizada para peligrosos ataques secundarios.

En este episodio, aprenderemos:

  • Cómo explotan los hackers las vulnerabilidades de inclusión de archivos locales y de cruce de rutas
  • Por qué permitir la inclusión de archivos locales sin restricciones y el cruce de rutas puede ser peligroso
  • Políticas y técnicas que pueden emplearse para encontrar y solucionar este problema.

¿Cómo aprovechan los atacantes la inclusión de archivos locales y el cruce de rutas?

El clásico detective de la televisión Columbo solía decir siempre: "Sólo una cosa más" justo antes de entregar una valiosa información que desvelaría el caso en cuestión. Parecía intrascendente en ese momento, y casi siempre era ignorado por el sospechoso, pero siempre resultaba ser su perdición. Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas son muy parecidas.

Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas utilizan el mecanismo de inclusión de archivos dinámicos que existe en la mayoría de los marcos de programación, como los scripts ASP, JSP y PHP. En el caso de la inclusión de archivos locales, un atacante desliza el nombre de un archivo que existe en el servidor local en un área de una aplicación web, como una cabecera o un área de entrada de formularios. La aplicación procesa la entrada principal de forma normal, pero también el comando include(page) o similar. En el path traversal, el atacante define la ruta de acceso a un archivo sospechoso, normalmente utilizando los caracteres punto, punto y barra (../) como variables. Es muy parecido a Columbo en el sentido de que al hacker realmente no le importa la primera parte del argumento. Es simplemente un medio para añadir "una cosa más" al final.

En cualquiera de los casos, el atacante debe normalmente realizar una cantidad significativa de prueba y error. A menos que esté muy familiarizado con la estructura del sitio, adivinar las configuraciones de las rutas y los nombres de los archivos podría llevarle mucho tiempo. Dicho esto, la mayoría de los sitios siguen patrones específicos y tienen directorios y nombres de archivos más o menos similares. Así que puede que no le lleve tanto tiempo como cree. Y dado que el pago es potencialmente muy lucrativo, hay muchos incentivos para que los hackers traten de explotar la inclusión de archivos locales y las vulnerabilidades de cruce de rutas una vez encontradas.

¿Por qué son peligrosas las vulnerabilidades de inclusión de archivos locales y de cruce de rutas?

Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas son peligrosas porque pueden permitir a los atacantes acceder a archivos sensibles o críticos. En el caso de los archivos de datos, el peligro es que el hacker pueda obtener algo valioso, como las contraseñas de los usuarios u otra información personal. Uno de los principales objetivos suelen ser los archivos de contraseñas o de configuración de usuarios, ya que eso daría acceso al resto del sitio. Las bases de datos también son objetivos principales. Las vulnerabilidades de inclusión de archivos locales y de cruce de rutas podrían permitir a un atacante robar todo el contenido de una base de datos en el peor de los casos.

En el caso de los archivos ejecutables, el peligro radica en que obtener acceso a ellos podría permitir a un atacante realizar actividades maliciosas, como destruir parte de un sitio o incluso montar algún tipo de ataque interno de denegación de servicio mediante el derroche de recursos del sistema. Pero el alcance total del peligro sólo está limitado por el ingenio y la habilidad del atacante, y por los archivos a los que pueda acceder que ya existan en el servidor objetivo.

Eliminación de la amenaza que suponen la inclusión de archivos locales y el path traversal

El peligro que suponen las vulnerabilidades de inclusión de archivos locales y path traversal puede eliminarse con buenas prácticas de ciberseguridad. Lo más importante es no permitir nunca la entrada del usuario en "file include" u otros comandos con funciones similares. Si una aplicación debe permitirla, no la pase directamente. En su lugar, utilice un mapa de referencia indirecto. Un mapa de referencia indirecta toma la entrada del usuario y la asigna a un conjunto de valores de confianza codificados, que luego pueden ser utilizados con seguridad.

Al igual que con muchas otras vulnerabilidades, preste especial atención a todas las áreas de entrada controladas por el usuario, como las cookies, las cabeceras HTTP y los parámetros de los formularios. Las entradas permitidas deben estar en una lista blanca, y todo lo demás debe ser denegado explícitamente. Cuando esto no sea posible, utilice la validación de entradas para regular estrictamente los valores permitidos, como números, valores alfanuméricos, etc.

Más información sobre la inclusión de archivos locales y el cruce de rutas

Para más información, puedes echar un vistazo a la guía de pruebas de OWASP para la inclusión de archivos locales y los exploits de cruce de rutas. También puedes poner a prueba tus nuevos conocimientos defensivos con la demostración gratuita de la plataforma Secure Code Warrior , que forma a los equipos de ciberseguridad para que se conviertan en los mejores ciberguerreros. Para saber más sobre cómo derrotar esta vulnerabilidad, y una galería de pícaros de otras amenazas, visite el blogSecure Code Warrior .

Nos gustaría contar con su permiso para enviarle información sobre nuestros productos y/o temas relacionados con la codificación segura. Siempre trataremos sus datos personales con el máximo cuidado y nunca los venderemos a otras empresas con fines de marketing.

Enviar
Para enviar el formulario, habilite las cookies "Analytics". Siéntase libre de desactivarlas de nuevo una vez que haya terminado.