Blog

Los codificadores conquistan la seguridad: serie Share & Learn: inclusión de archivos locales y recorrido de rutas

July 4, 2019
Jaap Karan Singh

A diferencia de muchas vulnerabilidades, la explotación de los procesos locales de inclusión de archivos y recorrido de rutas con fines nefastos requiere un atacante lo suficientemente hábil, una cantidad considerable de tiempo y quizás un poco de suerte. Esto no quiere decir que esta vulnerabilidad pueda ignorarse. Los atacantes expertos pueden usarla para convertir los archivos internos en contra de una organización, trazar una estructura de directorios o incluso robar contraseñas e información de usuario que pueden usarse en peligrosos ataques secundarios.

En este episodio, aprenderemos:

  • Cómo los piratas informáticos explotan las vulnerabilidades de inclusión de archivos locales y recorrido de rutas
  • Por qué permitir la inclusión sin restricciones de archivos locales y el recorrido 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 recorrido de rutas?

El clásico detective de televisión Columbo solía decir siempre: «Solo una cosa más» justo antes de entregar una valiosa información que abriría el caso en cuestión. Parecía intrascendente en aquel momento, y el sospechoso casi siempre lo ignoraba, pero siempre resultaba ser su perdición. Las vulnerabilidades de inclusión de archivos locales y de recorrido de rutas se parecen mucho a eso.

Las vulnerabilidades de inclusión de archivos locales y recorrido de rutas utilizan el mecanismo dinámico de inclusión de archivos que existe en la mayoría de los marcos de programación, como los scripts ASP, JSP y PHP. Para incluir archivos locales, un atacante coloca el nombre de un archivo que existe en el servidor local en un área de una aplicación web, como un encabezado 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 un comando similar. Al cruzar rutas, el atacante define la ruta a un archivo sospechoso, normalmente utilizando los caracteres de 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 que añadan «solo una cosa más» al final.

En cualquier caso, el atacante normalmente debe realizar una cantidad significativa de prueba y error. A menos que estén muy familiarizados con la estructura del sitio, adivinar las configuraciones de las rutas y los nombres de los archivos puede llevar mucho tiempo. Dicho esto, la mayoría de los sitios siguen patrones específicos y tienen directorios y nombres de archivo más o menos similares. Por lo tanto, puede que no lleve mucho tiempo como cree. Y dado que el pago puede ser muy lucrativo, hay muchos incentivos para que los piratas informáticos traten de aprovechar las vulnerabilidades de inclusión de archivos locales y de transferencia de rutas una vez que las encuentran.

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

Las vulnerabilidades de inclusión de archivos locales y de recorrido de rutas son peligrosas porque pueden permitir a los atacantes acceder a archivos confidenciales o críticos. En el caso de los archivos de datos, existe el peligro de que el pirata informático pueda obtener algo valioso, como contraseñas de usuario u otra información personal. El objetivo principal suelen ser las contraseñas o los archivos de configuración de usuario, ya que eso proporcionaría acceso al resto del sitio. Las bases de datos también son objetivos principales. En el peor de los casos, 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 caso de los archivos ejecutables, existe el peligro de que el acceso a ellos permita a un atacante realizar actividades malintencionadas, como destruir parte de un sitio o incluso organizar algún tipo de ataque interno de denegación de servicio mediante el despilfarro de los recursos del sistema. Sin embargo, el alcance total del peligro solo 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 de destino.

Eliminar la amenaza que representan la inclusión de archivos locales y el recorrido de rutas

El peligro que representan la inclusión de archivos locales y las vulnerabilidades de cruce de rutas se puede eliminar con buenas prácticas de ciberseguridad. Lo más importante que hay que recordar es no permitir nunca que el usuario introduzca datos en la opción «incluir archivos» ni en otros comandos con funciones similares. Si una aplicación debe permitirlo, no lo transmitas directamente. En su lugar, usa un mapa de referencia indirecto. Un mapa de referencia indirecta toma la información del usuario y la asigna a un conjunto de valores confiables codificados que luego se pueden usar de forma segura.

Como ocurre con muchas otras vulnerabilidades, preste especial atención a todas las áreas de entrada controladas por el usuario, como las cookies, los encabezados HTTP y los parámetros de los formularios. Las entradas permitidas deben incluirse en la lista blanca y todas las demás deben denegarse explícitamente. Cuando esto no sea posible, utilice la validación de entradas para regular estrictamente qué valores están permitidos, como números, valores alfanuméricos, etc.

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

Para leer más, puede echar un vistazo al OWASP guía de pruebas para la inclusión de archivos locales y los exploits de recorrido de rutas. También puede poner a prueba sus 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.

Share on social
Lema

Govern AI-driven development before it ships

Measure AI-assisted risk, enforce secure coding policy at commit, and accelerate secure delivery across your SDLC.

book a demo
book a demo
Lema

Explore more blogs

Lorem ipsum diam quis enim lobortis scelerisque fermentum dui faucibus in ornare quam viverra orci sagittis eu volutpat odio facilisis.

browse all
Case Study
Filter Label
This is some text inside of a div block.

Supercharged Security Awareness: How Tournaments are Inspiring Developers at Erste Group

Lorem ipsum dolor sit amet, consectetur adipiscing elit. Suspendisse varius enim in eros elementum tristique. Duis cursus, mi quis viverra ornare, eros dolor interdum nulla, ut commodo diam libero vitae erat. Aenean faucibus nibh et justo cursus id rutrum lorem imperdiet. Nunc ut sem vitae risus tristique posuere.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Security as culture: How Blue Prism cultivates world-class secure developers

Learn how Blue Prism, the global leader in intelligent automation for the enterprise, used Secure Code Warrior's agile learning platform to create a security-first culture with their developers, achieve their business goals, and ship secure code at speed

Learn More
Case Study
Filter Label
This is some text inside of a div block.

One Culture of Security: How Sage built their security champions program with agile secure code learning

Discover how Sage enhanced security with a flexible, relationship-focused approach, creating 200+ security champions and achieving measurable risk reduction.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Post-Quantum Cryptography: Quantum Computers Will Break Today’s Encryption – Are You Ready?

Post-quantum cryptography (PQC) is critical for protecting data from quantum computing threats. Learn how “harvest now, decrypt later” exposes risk and how developers can prepare for quantum-safe security.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Enabler 2: Senior Leadership Sponsorship

Explore Enabler 2: Senior Leadership Sponsorship. Learn why active buy-in from the CIO, CTO, and CISO is vital to drive developer adoption and program credibility.

Learn More
Case Study
Filter Label
This is some text inside of a div block.

Observe and Secure the ADLC: A Four-Point Framework for CISOs and Development Teams Using AI

While development teams look to make the most of GenAI’s undeniable benefits, we’d like to propose a four-point foundational framework that will allow security leaders to deploy AI coding tools and agents with a higher, more relevant standard of security best practices. It details exactly what enterprises can do to ensure safe, secure code development right now, and as agentic AI becomes an even bigger factor in the future.

Learn More

Secure AI-driven development before it ships

See developer risk, enforce policy, and prevent vulnerabilities across your software development lifecycle.

Book a demo