Cómo funciona Server Side Request Forgery (en FaasT)

martes, 24 de noviembre de 2015

La detección de ataques de "Server Side Request Forgery", o comúnmente llamados "SSRF" es una de las muchas novedades que han sido implementadas en Faast durante los últimos seis meses. Este tipo de vulnerabilidades se da cuando un atacante tiene la habilidad de hacer que el servidor objetivo inicie una nueva conexión contra otro equipo, independientemente de si al equipo remoto al que se conecta se encuentra dentro o fuera de su red interna.

En la mayoría de los casos en donde un ataque de "SSRF" adquiere un mayor nivel de criticidad es en los entornos en los que a través de ésta técnica es posible conectarse a equipos en la red local y que de otro modo sería imposible acceder a ellos desde una red externa.

Esquema de ataque SSRF

Este ataque no solo aplica a conexiones HTTP, sino que puede ser combinado con otro tipo de ataques como "XML External Entities", o incluso extrapolado a otro tipo de protocolos como conexiones de SQL Server en las que mediante la modificación de la cadena de conexión es posible acceder a servidores SQL localizados en la red local. En 2010 ya se habló por primera vez de este último ataque ("CSPP – Connection String Parameter Pollution") junto con la combinación con un "SSRF".

En cuanto a la detección de este tipo de vulnerabilidades, no resulta trivial debido a que podemos encontrar este error en diversos entornos y/o protocolos, e incluso algunos de ellos no muestran una alteración en la respuesta a la solicitud, por lo que la única forma de "cazarlos" es en base a un sistema que detecte la conexión saliente.

Para ello, en Faast hemos implementado un sistema de detección que se basa en un servicio externo (desarrollado por ElevenPaths) accesible desde cualquier localización. De este modo, el plugin de detección de "SSRF" de Faast realizará diversas inyecciones y modificaciones de los parámetros de entrada del servidor objetivo que se va a auditar, para tratar de forzar que éste realice una conexión contra nuestro sistema. Si nuestros servidores reciben respuesta, podremos las vulnerabilidades "SSRF".

Diagrama de detección de vulnerabilidades SSRF

Como se ve en el gráfico, la primera operación que realiza Faast es el envío del paquete especialmente formado para tratar de forzar una conexión desde el objetivo hasta el servicio de "SSRF". Si esta conexión se realiza, el servicio de "SSRF" notificará a Faast de la actividad y ésta será mostrada en el panel de vulnerabilidades.


Reporte de vulnerabilidad

En próximos artículos abordaremos otros tipos de vulnerabilidades explotadas por Faast, así como otras técnicas combinadas de explotación que realiza para poder sacarle todo el beneficio posible a las vulnerabilidades encontradas.

No hay comentarios:

Publicar un comentario en la entrada