Una vulnerabilidad al acecho: Falsificación de Solicitudes del Lado del Servidor (SSRF)

No hace mucho que la comunidad de OWASP decidió actualizar el conocido OWASP Top 10, un documento que lista los riesgos más críticos en las aplicaciones web. Este es un proyecto que nació en 2003 como apoyo para el desarrollo seguro de aplicaciones.

Dentro de esta actualización algo que llama la atención es la integración de una categoría que no se encontraba presente en ediciones anteriores y que se agregó debido a una encuesta de la comunidad. Se trata de la categoría “Falsificación de Solicitudes del Lado del Servidor (SSRF)” que, si bien tiene una incidencia baja, llama la atención por su alto impacto en la explotación.

La Falsificación de Solicitudes del Lado del Servidor o SSRF (Server Side Request Forgery, por sus siglas en inglés), es un tipo de vulnerabilidad que ocurre cuando en una aplicación web se solicita un recurso remoto desde una URL proporcionada del lado del usuario, lo que permite que un atacante coaccione a la aplicación para que envíe una solicitud falsificada a un destino arbitrario, incluso con la posibilidad de evadir controles de seguridad. La gravedad en la explotación es cada vez mayor debido a los servicios en la nube y la complejidad de arquitecturas.

Un escenario común de explotación se encuentra en el acceso a metadatos de servicios en la nube. Es recurrente que los proveedores de estos servicios almacenen metadatos en una dirección URL específica, solo accesible desde el interior, y que con la ayuda de esta vulnerabilidad puedan realizar la solicitud mediante la aplicación vulnerable y obtener información confidencial como credenciales de usuario, nombres de grupos, dirección IP, entre otros.

El aprovechamiento de esta vulnerabilidad fue lo que permitió que en 2019 un actor malicioso consiguiera acceso no autorizado a datos personales de aproximadamente 100 millones de clientes estadounidenses de la entidad financiera Capital One.

Adicionalmente, el pasado 29 de septiembre se conocieron dos vulnerabilidades de tipo Zero-Day presentes en sistemas de correo Exchange llamadas ProxyNotShell y que aprovechadas en conjunto permitirían la obtención de acceso a los sistemas vulnerados. Llama la atención que una de ellas, con identificador CVE-2022-41040 es de tipo SSRF y al ser aprovechada puede permitir a un atacante autenticado la ejecución remota de código.

Finalmente, es importante que administradores de sistemas y desarrolladores tomen en cuenta las siguientes recomendaciones para prevenir esta vulnerabilidad:

  • Desde la capa de red:
    • Segmentar la funcionalidad de acceso a recursos remotos en redes separadas para reducir el impacto de un SSRF.
    • Hacer cumplir las políticas de “denegar por defecto” o las reglas de control de acceso a la red para bloquear todo el tráfico de la intranet excepto el esencial.
  • Desde la capa de aplicación:
    • Sanitizar y validar todos los datos de entrada proporcionados por el cliente.
    • Hacer cumplir el esquema de URL, el puerto y destino a través de una lista positiva de elementos permitidos.
    • No enviar respuestas en formato crudo a los clientes.
    • Deshabilitar las redirecciones HTTP.
    • Tener en cuenta la coherencia de la URL para evitar ataques como el enlace de DNS y las condiciones de carrera de “Tiempo de verificación, tiempo de uso” (TOCTOU, por sus siglas en inglés).

Referencias:

https://www.owasptopten.org/
https://owasp.org/Top10/A10_2021-Server-Side_Request_Forgery_%28SSRF%29/
https://web.archive.org/web/20190730010200/http://press.capitalone.com/phoenix.zhtml?c=251626&p=irol-newsArticle&ID=2405043
https://web.archive.org/web/20221009173503/https://www.capitalone.com/digital/facts2019/
https://thehackernews.com/2022/10/proxynotshell-new-proxy-hell.html