Las páginas de Github ahora usan el dominio github.io en lugar de github.com. He leído explicación de github pero todavía es difícil para mí entender la causa raíz. ¿Por qué un dominio se convierte en un problema de seguridad?
Las páginas de Github ahora usan el dominio github.io en lugar de github.com. He leído explicación de github pero todavía es difícil para mí entender la causa raíz. ¿Por qué un dominio se convierte en un problema de seguridad?
El mecanismo de cookies HTTP le permite especificar el dominio con el que está asociada una cookie en particular. El dominio puede ser el dominio de la página que configura la cookie o, lo que es más interesante, uno de sus superdominios. P.ej. Se permite que foo.bar.example.com
establezca cookies en los dominios foo.bar.example.com
, bar.example.com
y example.com
.
¿Qué significa esto para las páginas de GitHub? Bueno, los subdominios del dominio github.com
pueden establecer cookies en él, lo que significa que pueden realizar ataques de fijación de sesión proporcionando el navegador con una cookie de sesión existente. Así es como se vería un escenario de ataque simplificado:
Digamos que github.com
usa una cookie llamada SESSION_ID
para identificar sesiones activas. Esta cookie contiene un hash único, el tiempo suficiente para que sea imposible de adivinar. Cada hash está asociado con datos de sesión del lado del servidor, es decir, un usuario que ha iniciado sesión.
Ahora considere un atacante que configura una página de GitHub en evil.github.com
. Incluyen algunos de sus guiones malvados en la página y luego engañan a una víctima para que lo visite. ¿Qué hace la página? Establece la cookie SESSION_ID
en el dominio github.com
en un valor válido conocido por el atacante. Esto provocaría que el navegador de la víctima inicie sesión de manera efectiva en GitHub utilizando las credenciales proporcionadas por el atacante . El atacante podría seguir la actividad en la cuenta y recuperar los datos creados por la víctima despistada.
Mover las páginas de GitHub de github.com
a github.io
soluciona el problema, ya que no hay cuentas de usuario ni sesiones en el nuevo dominio.
Lea otras preguntas en las etiquetas session-management csrf