
Falsificación de Solicitudes del Lado del Servidor (SSRF): ¿Qué es y por qué es importante conocerlo?
La vulnerabilidad de seguridad web conocida como Falsificación de Solicitudes del Lado del Servidor (SSRF) consiste en hacer que la aplicación del lado del servidor realice peticiones a un dominio elegido por el atacante.
Estos ataques ponen en riesgo información valiosa al permitir a los atacantes conectarse a la estructura interna de la web. ¿Te gustaría saber más sobre cómo prevenir estas prácticas? Te invitamos a continuar leyendo.
¿Qué es el SSRF?
En un ataque de Falsificación de Solicitudes del Lado del Servidor (SSRF), el atacante puede proporcionar o manipular una URL para que el código ejecutado en el servidor lea y envíe datos a una ubicación elegida por el atacante.
Esta vulnerabilidad puede resultar en el robo o pérdida de datos e información sensible, ya que el atacante puede conectarse a servicios internos de la organización y a sistemas externos no deseados.
¿Cómo funciona un ataque de SSRF?
Cuando una aplicación de destino hace una llamada a una URL, como una API por ejemplo, el atacante puede modificar el pedido a esta funcionalidad proporcionando una URL falsa, logrando que se haga en otra dirección.
De esta forma, el atacante lee la configuración del servidor, como los metadatos de AWS, conectarse a bases de datos o a servicios internos como HTTP habilitado e incluso realizar solicitudes de correo a servicios internos que no están destinados a ser expuestos.
Riesgos e impacto de un SSRF
El impacto puede variar en función de la configuración de los sistemas y de las relaciones de confianza que existan en la red donde se aloja el servidor vulnerable. Sin embargo, estos son algunos de los riesgos comunes:
1. Vulnerabilidad de datos
Debido a la flexibilidad de los enlaces web, el atacante podría acceder a servicios que contengan información sensible, como son ficheros internos del servidor vulnerable o las bases de datos.
Quien ejecuta el ataque también podría obtener credenciales para acceder al servidor y causar daños. Cuanto mayor sea el nivel de privilegios de las credenciales expuestas, mayor es el riesgo, llegando al punto en que si el atacante obtiene los datos del administrador, podría controlar todo el servidor.
2. Reconocimiento de la red interna
A través de un SSRF, el atacante puede hacer escaneos y recopilar información sobre las redes internas. Además, una vez que ha obtenido acceso al servidor, puede usar la información obtenida para comprometer a otros servidores dentro de la red y expandir la ventana de ataque.
3. Escaneo de puertos o ataque de puertos entre sitios (XSPA)
Aunque un ataque SSRF no siempre devuelve datos al atacante, este puede usar los tiempos de respuesta u otros metadatos para determinar si la solicitud fue exitosa o no.
Si el atacante es capaz de identificar un puerto y un host, este podría realizar un escaneo de la red de aplicaciones del servidor y aprovechar así estos metadatos para un ataque de puerto entre sitios (XSPA).
4. Denegación de servicio (DoS)
Un servidor vulnerable a SSRF permite que el atacante tenga acceso a otros servicios, por lo que también pueda inundar al servidor de tráfico para ocupar todo su ancho de banda, haciendo que el servicio objetivo no pueda con toda esa carga y termine denegando el acceso a usuarios legítimos.
Los ataques DoS suelen estar dirigidos a los servidores internos, debido a que estos no soportan gran cantidad de datos. Por eso, cuando el atacante utiliza grandes volúmenes de solicitudes puede hacer que se bloquee.
5. Ejecución remota de comandos (RCE)
Algunos servicios modernos se conectan por completo a través de consultas HTTP, por lo que al tener control completo sobre una URL, el atacante puede explotar ciertos servicios y moverse lateralmente por la red, lo que puede terminar incluso en la ejecución remota de código en el servidor central, como en el caso de Redis.
Tipos de ataque SSRF
Los ataques de falsificación de solicitudes del lado del servidor, por lo general, explotan la confianza entre el servidor (u otro sistema back-end) y la aplicación comprometida. Esto permite a los atacantes realizar algunas acciones maliciosas como por ejemplo:
Ataques SSRF al servidor
Los ataques SSRF generalmente tienen como objetivo al servidor. En este caso,un atacante puede inducir a la aplicación vulnerable a enviar solicitudes HTTP al servidor de alojamiento.
Para hacer este tipo de ataques, el ciberdelincuente puede reemplazar la URL original con otra usando generalmente el nombre de host “localhost” que apunta directamente al sistema de archivos local en el servidor, o la IP 127.0.0.1.
Bajo este nombre de host, el atacante puede encontrar una ruta de archivo que lo conduzca a datos confidenciales.
Ataques SSRF contra otros sistemas back-end
Esta otra variante de SSRF se da cuando hay una relación de confianza entre el servidor y un componente back-end que el atacante logra explotar, debido a que estos componentes por lo general tienen una seguridad débil.
Si cuando el servidor se conecta a ese componente, este tiene todos los derechos de acceso, un atacante puede falsificar una solicitud y tener acceso a datos confidenciales y operaciones no autorizadas.
Cómo prevenir ataques SSRF
Prevenir los ataques SSRF es un desafío debido a la necesidad de utilizar URLs en la comunicación entre servicios. Pero, aquí te compartimos algunas recomendaciones que pueden ayudar.
- Establecer una URL fija a la que se quiere acceder para que no pueda ser modificada por un usuario con fines maliciosos;
- Incluir en una lista blanca el nombre, las direcciones IP o los nombres DNS a los que requiere acceso tu aplicación;
- Filtrar las URLs para detectar a las maliciosas para que aquellas que no cumplan con los requisitos establecidos, no puedan ser procesadas. Al deshabilitar los esquemas de URL no utilizados, reduce la capacidad de un atacante para realizar solicitudes a través de esquemas dañinos como: dict://, file:/// y gopher://;
- Implementar reglas de Firewall que eviten el tráfico no deseado entre servidores, como puede ser, por ejemplo, un servidor web tratando de comunicarse con el DC de una red interna. Haciendo una separación de entornos, se logra que en caso de una explotación, el atacante no pueda moverse lateralmente.
Para mantener seguros los datos de tu empresa y evitar ataques como los SSRF, ¡Explora nuestra oferta tecnológica de Ciberseguridad para redes y aplicaciones de Ikusi!