Menu
Menu

Ataques de inclusión: Qué son y cómo prevenirlos en tus aplicaciones6 min read

Ataques de Inclusión

Ataques de InclusiónSabemos que existen muchas maneras en la que nuestros activos pueden ser atacados. Pueden variar desde ataques internos o externos; violaciones a la seguridad o directamente a nuestros servidores. Uno de los ataques más comunes que las empresas suelen recibir y que, sin embargo, son poco conocidos, son los ataques de inclusión.

 

Existen diferentes tipos: Inclusiones Remotas de Archivos (RFI por sus siglas en inglés), Inclusiones Locales de Archivos (LFI) y los Cross-site scripting. Aunque de nombre son similares, en la práctica son muy diferentes. Atacan distintos puntos de nuestra defensa, y se usan para diferentes motivos. Hoy conoceremos qué son, cuáles son sus diferencias y cómo combatirlas.

Inclusión Remota de Archivos

Al usar la inclusión remota de archivos, un atacante incluye un archivo remoto en una aplicación web. Este tipo de ataques es posible para aplicaciones web que incluyen archivos o scripts externos dinámicamente. Los ataques de inclusión de este tipo generalmente ocurren cuando una aplicación recibe, a través de una de sus rutas, un archivo. Si esta ruta no es “desinfectada” correctamente, se abre la posibilidad de intrusión. Esto otorga acceso al atacante para que se proporcione una URL externa a la función de inclusión.

Existen varias consecuencias de un ataque de RFI exitoso. Estas van desde la divulgación de información confidencial y el robo de secuencias de comandos entre sitios (XSS); hasta la ejecución remota de código que puede alterar por completo la funcionalidad de nuestras aplicaciones. Un atacante podría, por ejemplo, usar un script PHP incrustado. A través de este script, podría realizar solicitudes HTTP para engañar a las aplicaciones afectadas. De esta manera, puede lograr que las aplicaciones ejecuten código malicioso del lado del servidor sin saber que se trata de malware.

La peligrosidad de este tipo de archivos puede alcanzar, incluso, el robo de privilegios. Si un archivo malicioso se incluye, puede ejecutarse con los privilegios del usuario que ejecuta la aplicación web. Eso permite a un atacante ejecutar cualquier código que desee; ya sea en el servidor web o dentro de la aplicación. Incluso pueden mantener su presencia en el servidor web sin ser detectado.

¿Cómo detectar y prevenir la Inclusión Remota de Archivos?

Ataques de Inclusión RemotaEs fácil probar si su sitio web o aplicación web es vulnerable a ataques de inclusión. Dentro de las maneras más efectivas para esta detección tenemos la ejecución un escaneo web automatizado. Se recomienda el escáner de vulnerabilidades Acunetix, uno de los más importantes del mercado.

 

 

Una vez detectadas, la mejor manera de eliminar estas inclusiones es evitar incluir dinámicamente archivos basados en entradas del usuario. Si esto no es posible, se puede realizar una “lista blanca” de archivos que se pueden incluir en la aplicación. Sin embargo, la validación de entrada será menos efectiva en este caso; porque los atacantes pueden evitarlo de alguna u otra manera.

En el caso de PHP, la mayoría de las instalaciones actuales están configuradas con allow_url_include desactivado. Esto hace que sea imposible para los usuarios malintencionados incluir archivos remotos. Sin embargo, la inclusión de archivos locales (LFI) todavía es posible en tal caso, así que hablaremos de ella ahora.

Inclusión Local de Archivos

La inclusión local de archivos es muy similar a la inclusión remota de archivos. Sin embargo, un atacante de este tipo solo puede incluir archivos locales (no archivos remotos como en el caso de RFI). Un atacante puede usar este tipo de ataques de inclusión para engañar a la aplicación web. De esta manera pude lograr que se expongan o ejecuten archivos en el servidor. También puede conseguir la divulgación de información confidencial; la ejecución remota de código o incluso scripting entre sitios (XSS).

Normalmente, esta clase de ataques ocurre cuando una aplicación usa la ruta a un archivo como entrada. Si la aplicación adopta esta entrada como confiable, se puede usar un archivo local en la declaración de inclusión de la misma. De esta manera, se podría engañar a la aplicación para que ejecute un script PHP, como un shell web. Pero se trataría de uno incrustado por el atacante, que entonces se cargaría en el servidor web.

Detección de Ataques

Digamos que el archivo cargado por el atacante es incluido y ejecutado por el usuario que ejecuta la aplicación web. Esto permitiría a un atacante ejecutar cualquier código malicioso del lado del servidor que desee. Pero este es el peor de los casos, una situación extrema. Un atacante no siempre tiene la capacidad de cargar un archivo malicioso en la aplicación. Incluso si lo hiciera, no hay garantía de que funcione.

El archivo podría ser descubierto, o la aplicación podría guardar el archivo en otro servidor donde existe la vulnerabilidad LFI. Incluso entonces, el atacante aún necesitaría conocer la ruta del disco al archivo cargado para poder ejecutarlo.

¿Cómo detectar y prevenir la Inclusión Local de Archivos?

Es fácil comprobar si su sitio o aplicación web es vulnerable a LFI. Ejecutando un escaneo automatizado utilizando Acunetix, obtendrás una respuesta certera. Esto se debe a que este escáner incluye un módulo especializado para Inclusiones Locales de Archivos, lo cual asegura su detección. 

Ataques de Cross-site scripting

Cross-site Scripting (XSS) es un ataque de inclusión similar al LFI o RFI. Sin embargo, el XSS ocurre del lado del cliente. El objetivo de estos ataques es ejecutar scripts maliciosos en el navegador web de la víctima. Esto se logra mediante la inclusión de código malicioso en una página web. Sin embargo, el ataque real ocurre cuando la víctima visita la página o aplicación web que ejecuta el código malicioso.

Cross-site scripting

Esta clase de ataques de inclusión convierte a la página o aplicación en un vehículo para entregar el script malicioso. Esta inclusión ocurre en el navegador de quien accede a estos servicios. Los vehículos más comunes para los ataques de cross-site scripting son foros, tableros de mensajes y páginas web de comentarios.

 

Para mantenerse a salvo de XSS, debes desinfectar tus servicios de entrada. Esto se consigue evitando que el código de tu aplicación no genere datos recibidos como entrada directamente al navegador sin verificar si hay código malicioso.

Si estás interesado en recibir más información sobre Acunetix y su escáner de vulnerabilidades, no dudes en contactarnos. En GB Advisors ofrecemos las mejores del mercado y ponemos a tu disposición un equipo de profesionales dispuestos a asesorarte y acompañarte en tu camino hacia un entorno de TI más eficiente.

¿Te gustó esta información? Compártela con tus colegas:
Volver arriba