No desea que un visitante no deseado atraviese el sistema de archivos de su servidor, pero los atacantes han encontrado una manera de lograrlo. ¿Qué puedes hacer?
Cuando los usuarios visitan su sitio web, confían en que sus datos están seguros y que ellos y otros usuarios no pueden acceder a archivos o carpetas que no están autorizados a ver. Sin embargo, si su sitio web es vulnerable al cruce de directorios, los atacantes pueden aprovechar esta debilidad para pasar de un directorio a otro y ver archivos confidenciales que deberían estar restringidos.
Estos ataques aprovechan una vulnerabilidad en el sistema de archivos de su sitio web y pueden exponer información crítica, lo que genera graves riesgos de seguridad. En este artículo, exploraremos qué son los ataques transversales de directorio, por qué son tan peligrosos y cómo puede proteger su sitio web de ellos.
¿Qué es el cruce de directorios?
El recorrido de directorios también se conoce como recorrido de ruta o escalada de directorios. Es una vulnerabilidad en los sitios web donde el atacante puede acceder o leer archivos fuera del directorio raíz del servidor web que ejecuta la aplicación mediante la manipulación de la entrada de la aplicación web.
Cuando se lleva a cabo un ataque transversal de directorio, los atacantes pueden leer y, a veces, incluso realizar cambios en archivos y directorios restringidos en el servidor de aplicaciones web. Es posible que puedan acceder a archivos confidenciales en el servidor, como archivos de configuración de base de datos, archivos de código fuente, archivos de contraseña y archivos de registro.
Directory Traversal y la Tríada CIA
Un recorrido de directorio compromete los tres aspectos de lo que se conoce como la tríada de la CIA. La tríada CIA, que es un modelo ampliamente reconocido para la seguridad de la información, significa Confidencialidad, Integridad y Disponibilidad.
Confidencialidad
Los ataques transversales de directorio violan la confidencialidad porque los archivos restringidos y confidenciales que contienen información sobre el sistema y otros usuarios se vuelven accesibles para el atacante. Toda la información que no pertenezca a un usuario debe mantenerse en secreto y no debe ser accesible a personas no autorizadas. Por ejemplo, un atacante que obtiene acceso a la base de datos de los usuarios y su información de identificación personal (PII), viola la confidencialidad del sistema y los datos del usuario.
Integridad
Es importante tener en cuenta que es posible que un recorrido de directorio no solo se detenga con los ciberatacantes que pueden leer y acceder a los archivos en su servidor web. Si los permisos del sistema de archivos en su servidor no están configurados correctamente, el pirata informático puede modificar o eliminar archivos o directorios importantes en el servidor, comprometiendo la integridad de los datos en ese servidor. Por ejemplo, el atacante puede modificar un archivo de configuración para otorgarse acceso administrativo al servidor o eliminar archivos del sistema.
Disponibilidad
Hay muchas formas en que un atacante puede usar el ataque de cruce de directorios para comprometer la disponibilidad de su servidor. Un ejemplo es la eliminación de archivos críticos en el servidor que interrumpe el funcionamiento del servidor o hace que la aplicación web deje de responder. Otro ejemplo es el atacante escalando privilegios y sobrecargando el servidor con solicitudes que provocan que se bloquee.
¿Cómo funciona un ataque transversal de directorio?
Un ataque transversal de directorio puede ocurrir de varias maneras. Cuando los atacantes sospechan que un sitio web es vulnerable a ataques transversales de directorio, comienzan a crear solicitudes maliciosas para enviar a esa aplicación web.
Algunos sitios web muestran archivos a través del parámetro URL. Tomemos, por ejemplo, la URL de este sitio web: https://www.website.com/download_file.php? nombre de archivo=archivo.pdf. Esto significa que la aplicación web está llamando al archivo "file.pdf" desde el servidor mediante una ruta URL relativa. En este caso, la aplicación está leyendo desde la ruta: www/var/documentos/archivo.pdf.
Un ejemplo simple de un ataque de cruce de directorios es el ataque de cruce de directorios dotdotslash. En los sistemas UNIX y Windows, el ../ los símbolos se utilizan para retroceder un directorio. El atacante puede reemplazar el nombre del documento con ../../../../../etc/contraseña. La URL entonces se ve así: https://www.website.com/download_file.php? nombre de archivo=../../../../../etc/contraseña
Un atacante podría utilizar esta carga útil en la aplicación web para recorrer varios directorios hacia atrás e intentar recuperar el archivo "/etc/passwd" del sistema de archivos del servidor.
En los sistemas basados en Unix, el archivo "/etc/passwd" es un archivo de texto sin formato que contiene información sobre cuentas de usuario locales en el sistema, como nombres de usuario, ID de usuario, directorios de inicio y shell preferencias El acceso a este archivo puede ser útil para los atacantes porque puede proporcionar información sobre posibles cuentas de usuario y vulnerabilidades en el sistema.
Otras formas de ataques transversales de directorio incluyen la codificación de URL, la codificación doble y los ataques de byte nulo.
¿Por qué son tan peligrosos los ataques transversales de directorio?
Los ataques transversales de directorio se consideran muy peligrosos porque casi nunca son ataques independientes. Una vulnerabilidad transversal de directorio, cuando se explota, podría dar lugar a muchas otras vulnerabilidades. Algunas de estas vulnerabilidades incluyen:
Divulgación de información
La divulgación de información ocurre cuando un atacante obtiene acceso a información confidencial que no está autorizado a ver. Los ataques transversales de directorio pueden provocar vulnerabilidades de divulgación de información porque permiten a los atacantes acceder a archivos y directorios fuera del alcance previsto de una aplicación web. Mediante el uso de cargas útiles de cruce de directorios y solicitudes maliciosas, los atacantes pueden ascender en la jerarquía de directorios para acceder potencialmente a archivos y directorios confidenciales en un servidor. Esta vulnerabilidad se puede aprovechar para extraer información confidencial, como contraseñas o datos de usuario.
Inclusión de archivos locales
El cruce de directorios también puede dar lugar a ataques de inclusión de archivos locales (LFI). LFI es una vulnerabilidad en aplicaciones web que permite a un atacante incluir y ejecutar archivos que están almacenados en el mismo servidor que la aplicación web en un LFI ataque, un atacante puede usar los parámetros de entrada de una aplicación web para especificar una ruta de archivo local, que luego es incluida por la aplicación web sin la debida validación. Esto permite que un atacante ejecute código arbitrario, vea información confidencial o manipule el comportamiento de la aplicación.
¿Cómo se puede prevenir un ataque transversal de directorio?
Para empezar, valide la entrada del usuario antes de procesarla para asegurarse de que solo contenga los caracteres esperados y no contenga caracteres especiales ni separadores de ruta. Otra recomendación es utilizar filtros y valores permitidos incluidos en la lista blanca para comparar las entradas de los usuarios y bloquear los valores sospechosos. Pero todos estos métodos podrían ser sorteados por un hacker experimentado.
El mejor enfoque para prevenir los ataques de cruce de directorios es evitar que los usuarios proporcionen información al sistema de archivos por completo.
Adopte un enfoque proactivo para su seguridad
Hay muchas vulnerabilidades en el ecosistema cibernético. Para proteger sus activos de vulnerabilidades, debe realizar evaluaciones de seguridad regulares y Pruebas de penetración para identificar debilidades potenciales y abordarlas antes de que puedan ser explotadas por atacantes
Además, manténgase actualizado con los últimos parches de seguridad y actualizaciones para su software y sistemas, ya que muchas vulnerabilidades pueden corregirse con estas actualizaciones. Al adoptar un enfoque proactivo de la ciberseguridad, puede ayudar a garantizar que los activos de su organización estén protegidos contra las vulnerabilidades y permanezcan a salvo de las ciberamenazas.