Visión general
Esta categoría se agrega de la encuesta de la comunidad Top 10 (#1). Los datos muestran una tasa de incidencia relativamente baja con una cobertura de prueba por encima del promedio y calificaciones de potencial de Explotación e Impacto por encima del promedio. Como es probable que las nuevas entradas sean un grupo único o pequeño de Enumeraciones de debilidades comunes (CWE) para la atención y la conciencia, la esperanza es que estén sujetas a enfoque y puedan incorporarse a una categoría más grande en una edición futura.
Descripción
Las fallas de SSRF ocurren cada vez que una aplicación web obtiene un recurso remoto sin validar la URL proporcionada por el usuario. Permite a un atacante obligar a la aplicación a enviar una solicitud manipulada a un destino inesperado, incluso cuando está protegida por un firewall, VPN u otro tipo de lista de control de acceso a la red (ACL).
A medida que las aplicaciones web modernas brindan a los usuarios finales funciones convenientes, obtener una URL se convierte en un escenario común. Como resultado, la incidencia de SSRF está aumentando. Además, la gravedad de SSRF es cada vez mayor debido a los servicios en la nube y la complejidad de las arquitecturas.
Como prevenir
Los desarrolladores pueden evitar SSRF implementando algunos o todos los siguientes controles de defensa en profundidad:
Desde la capa de red
-
Segmente la funcionalidad de acceso a recursos remotos en redes separadas para reducir el impacto de SSRF
-
Aplique políticas de firewall de “negar por defecto” o reglas de control de acceso a la red para bloquear todo el tráfico de intranet excepto el esencial. Sugerencias: ~ Establezca una propiedad y un ciclo de vida para las reglas de firewall basadas en aplicaciones. ~ Registre todos los flujos de red aceptados y bloqueados en los firewalls (consulte ).
Desde la capa de aplicación:
-
Desinfecte y valide todos los datos de entrada proporcionados por el cliente
-
Hacer cumplir el esquema de URL, el puerto y el destino con una lista de permitidos positiva
-
No envíe respuestas crudas a los clientes
-
Deshabilitar las redirecciones HTTP
-
Tenga en cuenta la consistencia de la URL para evitar ataques como el reenlace de DNS y las condiciones de carrera de “tiempo de verificación, tiempo de uso” (TOCTOU)
No mitigue SSRF mediante el uso de una lista de denegación o una expresión regular. Los atacantes tienen listas de carga útil, herramientas y habilidades para eludir las listas de denegación.
Medidas adicionales a considerar:
-
No implemente otros servicios relevantes para la seguridad en sistemas frontales (por ejemplo, OpenID). Controle el tráfico local en estos sistemas (por ejemplo, localhost)
-
Para frontends con grupos de usuarios dedicados y manejables, use el cifrado de red (por ejemplo, VPN) en sistemas independientes para considerar necesidades de protección muy altas
Ejemplos de escenarios de ataque
Los atacantes pueden usar SSRF para atacar sistemas protegidos detrás de firewalls de aplicaciones web, firewalls o ACL de red, utilizando escenarios como:
Escenario n.º 1: servidores internos de exploración de puertos: si la arquitectura de la red no está segmentada, los atacantes pueden mapear las redes internas y determinar si los puertos están abiertos o cerrados en los servidores internos a partir de los resultados de la conexión o el tiempo transcurrido para conectarse o rechazar las conexiones de carga útil SSRF.
Escenario n.º 2: exposición de datos confidenciales: los atacantes pueden acceder a archivos locales o servicios internos para obtener información confidencial, como
file:///etc/passwd
y
http://localhost:28017/
.
Escenario n.º 3: acceder al almacenamiento de metadatos de los servicios en la nube: la mayoría de los proveedores de la nube tienen almacenamiento de metadatos como
http://169.254.169.254/
. Un atacante puede leer los metadatos para obtener información confidencial.
Escenario #4: comprometer los servicios internos: el atacante puede abusar de los servicios internos para realizar más ataques, como la ejecución remota de código (RCE) o la denegación de servicio (DoS).
Referencias
Lista de CWE mapeados
Más información: