El marco de seguridad de Spring recomienda no usar cookies de doble envío para evitar el CSRF. ¿Es legítima su preocupación?

2

Tenía que ver con la protección CSRF de Spring Security framework de Spring Security framework para ver cómo funciona. Spring no utiliza el patrón de envío doble, sino que asocia el token CSRF con la sesión del usuario. La documentacion incluye la siguiente explicación de por qué es decir:

  

Uno podría preguntarse por qué el CsrfToken esperado no se almacena en una cookie. Esto se debe a que existen vulnerabilidades conocidas en las que otros dominios pueden configurar encabezados (es decir, especificar las cookies). [...] Consulte este hilo de webappsec.org para obtener detalles sobre cómo realizar el exploit.

La esencia de lo que dice el hilo de webappsec.org es:

  • El atacante coloca el documento de Flash en un sitio web controlado por un atacante, el usuario lo visita
  • La aplicación Flash realiza una solicitud del mismo origen al sitio web de los atacantes, que establece el encabezado de destino, y esto está permitido por crossdomain.xml en el sitio web del atacante
  • El sitio web de los atacantes responde a esta solicitud con un redireccionamiento 302 o 307 al sitio web de destino
  • Flash (en "ciertas circunstancias") ignora el crossdomain.xml del sitio web de destino y realiza la solicitud al sitio web de destino con el encabezado adicional incluido

Mi pregunta es: ¿es esta una preocupación válida?

No pude reproducir el problema siguiendo los pasos del hilo de webappsec.org, y además parece que esto fue un error directo en Flash en lugar de una vulnerabilidad con el patrón de cookies de doble envío. Aunque este problema dio como resultado al menos dos CVE en los marcos de aplicaciones web No pude encontrar ningún error correspondiente para Flash, pero parece que o bien se ha corregido desde entonces, o no estaba reproduciendo correctamente las "determinadas circunstancias" no especificadas en las que esto sucede.

    
pregunta ZoFreX 22.11.2014 - 17:08
fuente

2 respuestas

2

Este problema era específico por naturaleza, y desde entonces ha sido arreglado fuera de Ruby. Flash fue más un ejemplo de cómo se puede explotar este problema con un complemento del navegador, un buen ejemplo también, dado que es probablemente uno de los complementos más comunes, pero el defecto real estaba en Ruby.

También estamos hablando del caso de que un atacante podría lograrlo.

Realmente no hay nada que ver aquí a menos que estés jugando con versiones de Ruby sin parches.

    
respondido por el atyoung 23.11.2014 - 00:18
fuente
1

El envío doble es vulnerable a los ataques de intermediarios cuando se usa HTTPS, ya que las restricciones habituales de la misma política de origen no se aplican a las cookies: un atacante puede configurar un token a través de HTTP (al atraer a la víctima a visitar un HTTP enlace y falsificación de una respuesta) que se enviará al servidor a través de HTTPS.

    
respondido por el Joó Ádám 18.09.2015 - 23:30
fuente

Lea otras preguntas en las etiquetas