Realmente no voy a entrar en detalles sobre cómo funcionan los ataques de cookies y el desbordamiento de cookies, porque esta responde Lo explica perfectamente. Este publicación en github explica algunas estrategias de mitigación, pero no habla sobre el caso donde a.domain.com
puede hacer cosas maliciosas a b.domain.com
.
La solución propuesta es alojar contenido no confiable en un segundo dominio. Por ejemplo, si ejecutamos mycompany.com
, deberíamos almacenar el contenido del usuario en un segundo dominio como mycompany-users.com
.
Supongamos que tenemos este escenario: nuestra empresa proporciona un servicio SaaS para nuestros clientes. Cada cliente recibirá su propia URL para iniciar sesión y utilizar el servicio. Los clientes pueden personalizar el aspecto de su instancia modificando el HTML, css y javascript de sus páginas.
En este caso, tenemos company1.mycompany-users.com
y company2.mycompany-users.com
.
Digamos que un empleado malintencionado llamado Mallory en company1
implementa un poco de javascript que usa un ataque de cookies o un ataque de desbordamiento de cookie para establecer o reemplazar las cookies en .mycompany-users.com
.
A un empleado de company2
se le engaña para que visite esa página en company1.mycompany-users.com
y haga que se reemplacen o modifiquen sus cookies en .mycompany-users.com
.
Dado que el servidor no recibe el dominio de la cookie, no podemos filtrar las cookies por sus dominios. Siempre que la aplicación sea segura, el atacante no puede leer ni escribir en la información sobre company1.mycompany-users.com
. Además, los identificadores de sesión se regeneran al iniciar sesión. Sin embargo, todavía molesta a la gente porque los datos de la sesión están dañados y si el usuario inicia sesión en company2.mycompany-users.com
, se desconectará porque el ID de sesión no es válido.
Además de obligar a los clientes a comprar sus propios dominios, ¿existe alguna forma de evitar que las personas malintencionadas en company1.mycompany-users.com
causen que los usuarios en company2.mycompany-users.com
se desconecten debido a ataques de cookies?