¿Qué ataques de cookies son posibles entre computadoras en dominios DNS relacionados (* .ejemplo.com)?

36

Aquí, varios servidores en el mismo dominio DNS emiten cookies bajo una variedad de configuraciones (alcance, HTTPS, seguro) y otro host emite una cookie con el mismo valor.

Ejemplo

Supongamos que un usuario tiene la siguiente cookie configurada en secure.example.com :

 authCookie = SomeSessionToken (Scope example.com, Secure, HTTPOnly)

Luego, el usuario va a un blog.example.com que está comprometido (quizás en otra pestaña). Establece una cookie no HTTPOnly como esta:

 authCookie = AlternateSessionToken (Scope example.com, Secure, not-HTTPOnly)

¿La próxima solicitud de secure.example.com utilizará las credenciales alternativas?

¿Es posible este escenario?
- ¿El navegador configurará dos cookies diferentes (con el mismo nombre) para dos servidores respectivos?

--O el authCookie se sobrescribe?

    
pregunta random65537 05.03.2012 - 02:03
fuente

1 respuesta

42

Resumen. Sí, esto es posible. No es un error de navegador. Es parte de la funcionalidad según lo diseñado de las cookies. No hay ningún navegador que esté a salvo de esto. Las cookies son una tecnología antigua y su modelo de seguridad solo está ligeramente integrado con el resto de la web. Los detalles son desordenados y feos.

Los detalles sangrientos

El sitio blog.example.com puede establecer cookies con alcance blog.example.com o con alcance example.com . Las cookies con el último alcance se enviarán de vuelta a secure.example.com , si el usuario visita secure.example.com .

Si el sitio secure.example.com establece una cookie con alcance example.com , entonces el sitio blog.example.com puede sobrescribir esa cookie de manera arbitraria. Cada vez que los navegadores ven una cookie con el mismo nombre y alcance que una que ya está en el contenedor de cookies, descartan el valor de cookie anterior y lo sobrescriben con la nueva cookie. Por lo tanto, blog.example.com puede sobrescribir cualquier cookie cuyo alcance sea example.com .

Peor aún, una cookie puede ocultar una cookie con otro ámbito. Supongamos que secure.example.com establece una cookie con alcance secure.example.com y nombre SESSIONID . A continuación, supongamos que blog.example.com establece una cookie con alcance example.com y el mismo nombre. Finalmente, supongamos que el usuario visita el sitio secure.example.com . ¿Lo que pasa? Es feo: el navegador envía ambas cookies, en un orden indefinido, y el servidor no tiene una forma confiable de saber qué valor de cookie proviene de qué sitio. Por lo tanto, el servidor puede detectar que se encuentra en una situación confusa, pero no tiene una buena manera de desconcertarse. Peor aún, algunos marcos de aplicaciones web pueden ocultar la confusión del código de la aplicación, utilizando uno de los valores de las cookies e ignorando silenciosamente el otro. Esto puede llevar a algo que se comporte de manera efectiva, como blog.example.com sobreescribió la cookie de secure.example.com , en una situación en la que nadie esperaría razonablemente que pudiera hacerlo.

(Como nota al margen, el indicador secure no evita que se sobrescriba una cookie. De hecho, un sitio HTTP puede sobrescribir una cookie con un secure flag , siempre que los nombres de dominio estén relacionados adecuadamente. El indicador secure proporciona protección de confidencialidad pero no protección de integridad.)

Finalmente, hay otra forma de eliminar las cookies: un sitio malicioso puede configurar muchas cookies, desbordando el límite fijo en la cantidad de cookies que el navegador almacenará. El resultado es que el navegador "olvida" las cookies antiguas de otros sitios. Esto permite a blog.example.com eliminar todas las cookies establecidas por secure.example.com (independientemente de su alcance), y luego establecer una nueva cookie con alcance example.com que se enviará de nuevo a secure.example.com , que es muy similar. Efectuar como sobrescribir una cookie existente. Esto podría ser lo que estaba pensando cuando mencionó "desbordamiento de cookie jar".

Discusión

Está desordenado. Es triste decirlo, así es como funcionan las cookies en Internet. Si desea evitarlo, la defensa más simple es usar un nuevo dominio de segundo nivel para los sitios que no son de confianza. Probablemente haya una mejor defensa que no restrinja la denominación de sus sitios, pero no sé qué es.

Como nota general, para preguntas como estas sobre cómo funciona la web, recomiendo el manual de seguridad del navegador . Está lleno de pepitas. En este caso, es posible que desee leer su material en la política del mismo origen para las cookies .

    
respondido por el D.W. 05.03.2012 - 08:15
fuente

Lea otras preguntas en las etiquetas