Lectores como tú ayudan a apoyar a MUO. Cuando realiza una compra utilizando enlaces en nuestro sitio, podemos ganar una comisión de afiliado. Leer más.

Los servidores web alojan los archivos (páginas web, imágenes, videos, formularios, etc.) que componen su aplicación web y entregan estos archivos cuando alguien visita su sitio web. Algunos servidores son más avanzados y también controlan cuánto acceso tienen los visitantes de la web. Pueden restringir el acceso de los visitantes habituales a las cuentas de otros usuarios o a los paneles administrativos. Si bien los servidores web son eficientes en lo que hacen, y lo hacen de manera bastante segura, los atacantes pueden aprovechar los errores que surgen de un error humano o una lógica defectuosa en la forma en que un servidor sirve los archivos que aloja.

¿Qué es un ataque LFI?

Un ataque de intrusión de archivos locales (LFI) ocurre cuando los atacantes explotan vulnerabilidades en la forma en que un servidor web almacena, sirve, valida o controla el acceso a sus archivos. Esta vulnerabilidad es común a los sitios web basados ​​en PHP.

instagram viewer

A diferencia de muchas formas de ataques cibernéticos en los que los atacantes confían en el malware para corromper una aplicación, los atacantes en las LFI confían principalmente en trucos inteligentes y líneas cortas de código. Esto rara vez requiere herramientas sofisticadas o scripts complejos; los ataques suelen ocurrir en el navegador web. El truco más común que usan los atacantes es modificar la cadena de URL con código, rutas de archivo o nombres de archivo.

¿Cómo ocurren los ataques LFI?

Los ataques LFI suelen ocurrir en cuatro etapas.

Primero, el atacante identifica un sitio web PHP que ejecuta una aplicación web vulnerable, generalmente ejecutando un código básico en la URL del navegador para ver si la aplicación web (es decir, el sitio) maneja el comando. Piense en ello como si presionara combinaciones de teclas en su controlador de juegos para desbloquear un huevo de Pascua; digamos, por ejemplo, presionar la tecla hacia abajo para ingresar a los túneles en Super Mario. Pero los comandos que ejecutan los atacantes en los ataques LFI son más consistentes que revisar cada túnel en Super Mario.

Una aplicación web o un servidor que se haya configurado incorrectamente o que no valide las entradas ejecutará el código malicioso. Desde aquí, el pirata informático puede obtener el acceso y el privilegio que necesita para leer archivos vulnerables o cargar archivos maliciosos en el servidor.

La mayoría de los ataques LFI dan como resultado que el atacante acceda a información confidencial. La posibilidad de cargar malware rara vez tiene éxito porque no hay garantía de que la aplicación web guarde el archivo en el mismo servidor donde existe la vulnerabilidad LFI. Este suele ser el caso si la aplicación web se encuentra en un entorno de varios servidores.

Entonces, si la vulnerabilidad LFI existe en el servidor que aloja imágenes pero no en el servidor que almacena empleados credenciales o contraseñas de usuario, el atacante solo tendría acceso a los archivos de imagen en ese servidor vulnerable. Independientemente, eventos cibernéticos como el ataque a LastPass muestran que los piratas informáticos pueden causar estragos con el nivel de acceso aparentemente más insignificante.

Cómo prevenir ataques LFI

Los ataques LFI son bastante comunes, según el Proyecto de seguridad de aplicaciones web abiertas (OWASP). Comprensiblemente, los hackers preferirían este ataque ya que, como W3Techs informes, casi ocho de cada 10 sitios web ejecutan PHP como un lenguaje de programación del lado del servidor, una gran cantidad de víctimas, por así decirlo. Es posible prevenir un ataque LFI adoptando las mejores prácticas de seguridad web.

Lista blanca de archivos de servidores públicos

Las aplicaciones web a menudo usan rutas de archivos como entradas de URL. Los piratas informáticos pueden explotar este sistema de archivo cambiando la parte de la URL que también funciona como ruta de archivo. Por ejemplo, un atacante puede cambiar https://dummywebsite.com/?module=contact.php a https://dummywebsite.com/?module=/etc/passwd. Un servidor vulnerable con un filtrado deficiente y una lógica defectuosa mostrará el contenido del archivo almacenado en la ruta /etc/passwd.

Por supuesto, los piratas informáticos utilizan variaciones de nombres de archivos comunes y combinaciones de caracteres de consulta para aumentar las probabilidades de un ataque exitoso. El objetivo es engañar a la aplicación web para que ejecute un script o muestre los archivos en un servidor web.

Puede bloquear esta vulnerabilidad creando una lista blanca de documentos públicos en su servidor e instruyendo a la aplicación web para que ignore las consultas de cualquier otro documento o ruta de archivo. Por lo tanto, si un atacante intenta manipular la URL para solicitar o ejecutar códigos que soliciten un privado, obtendrá una página de error en su lugar.

Prueba de vulnerabilidades con frecuencia

Puedes usar herramientas de escaneo web para encontrar y corregir vulnerabilidades que podrían exponerlo a ataques LFI. Los escáneres de aplicaciones web son herramientas automatizadas que rastrean su aplicación como un atacante y lo alertan sobre posibles vulnerabilidades. Hay varios escáneres web de código abierto como OpenVAS y Wireshark, pero la mayoría de los escáneres de vulnerabilidades son software propietario y requieren planes pagos para su uso.

Pero, por supuesto, no obtiene un escáner web solo para ataques LFI. Estas herramientas también buscan vulnerabilidades de seguridad más amplias como inclusión remota de archivos, secuencias de comandos entre sitios, inyección de SQL y configuraciones de servidor deficientes. Entonces, valen la pena.

Restringir los privilegios de los visitantes del sitio

Los piratas informáticos a menudo ejecutan ataques LFI con éxito porque las aplicaciones web no compartimentan los privilegios de los usuarios y, al hacerlo, permiten que los visitantes accedan a archivos que solo deberían ser visibles para los administradores. Esta medida funciona como una lista blanca: configure su aplicación web y su servidor para que brinden archivos públicos e ignoren las solicitudes no autorizadas cuando un visitante interactúa con la aplicación web. Esto es especialmente importante para consultas a rutas de archivos que contienen archivos confidenciales.

Con este fin, es posible que deba evitar que las rutas de los archivos se modifiquen directamente. La aplicación web solo debe servir documentos de una lista de rutas codificadas. Además, configure la aplicación web para procesar solicitudes con concatenación dinámica de rutas (las URL deben contener caracteres alfanuméricos) en lugar de funciones base64 o bin2hex.

Si está pensando en poner en una lista negra los nombres de los archivos, no lo haga. Los piratas informáticos suelen tener una lista cada vez mayor de nombres de archivos que pueden usar para ejecutar un ataque LFI. Además, es prácticamente imposible (y una colosal pérdida de tiempo) incluir en la lista negra una lista de fuentes en constante aumento de ataque

Utilice un entorno multiservidor

Un entorno de varios servidores le permite aislar documentos importantes y confidenciales de los archivos públicos, lo que reduce el riesgo en caso de una infracción. Los servidores dedicados son menos vulnerables a los ataques LFI porque, aunque funcionan juntos, sus configuraciones difieren.

Además de esta seguridad, los servidores múltiples también son confiables (con menores riesgos de tiempo de inactividad), rápidos y eficientes. Es cierto que el uso de un entorno de varios servidores no es rentable si su sitio web es pequeño. En ese caso, considere dividir el acceso de su aplicación web a los datos entre una base de datos para datos privados y un servidor para archivos públicos.

¿Debería preocuparse por los ataques LFI?

Existe la posibilidad de un ataque LFI, especialmente si su sitio se ejecuta en PHP, pero puede reducir su exposición configurando las aplicaciones web y los servidores de acuerdo con las mejores prácticas de seguridad web.

Además, debe considerar realizar controles de seguridad de rutina para encontrar vulnerabilidades. Las cosas se rompen todo el tiempo, especialmente cuando la arquitectura del sitio se vuelve compleja. Las herramientas que necesitará para protegerse están automatizadas y muchas no requieren una configuración elaborada o conocimientos técnicos avanzados.