¿Qué es la fijación de sesiones?

click fraud protection

Hay muchos tipos diferentes de vulnerabilidades de seguridad que se encuentran en los sitios web, una interesante se llama "Reparación de sesión". La fijación de sesión es un problema en el que un atacante puede influir en el identificador de sesión, también conocido como el identificador de sesión de un usuario y luego usarlo para obtener acceso a su cuenta. Hay dos formas en que este tipo de vulnerabilidad puede funcionar, puede permitir que el atacante encuentre o establezca la identificación de sesión de otro usuario.

Cómo se realiza un ataque de fijación de sesión

La identificación de sesión de un usuario suele ser una parte clave de la autenticación en el sitio web y, en muchos casos, es el único dato que identifica al usuario específico que inició sesión. El problema con esto es que si un atacante puede establecer o aprender la identificación de sesión de otro usuario, puede usar el token de sesión y luego actuar como el usuario.

Normalmente, esto se hace engañando al usuario para que haga clic en un tipo de enlace de phishing. El enlace en sí es completamente legítimo, pero incluye una variable que establece una identificación de sesión específica. Si el usuario inicia sesión con el ID de sesión y el servidor no le asigna un nuevo ID de sesión en iniciar sesión, el atacante puede simplemente configurar su ID de sesión para que sea el mismo y tener acceso a la cuenta.

Otra forma en que el atacante puede descubrir la identificación de sesión de la víctima es si aparece en una URL. Por ejemplo, si el atacante puede engañar a la víctima para que le envíe un enlace que incluye la identificación de sesión de la víctima, el atacante puede usar la identificación de sesión para acceder a la cuenta de la víctima. En algunos casos, esto puede suceder completamente por accidente. Por ejemplo, si el usuario copia la URL con la identificación de la sesión y la pega a un amigo o en un foro, cualquier usuario que siga el enlace iniciará sesión con la cuenta del usuario.

Correcciones de la fijación de sesiones

Hay algunas soluciones para este problema y, como siempre, la mejor solución es implementar tantas correcciones como sea posible como parte de una estrategia de defensa en profundidad. La primera solución es cambiar la identificación de la sesión del usuario cuando inicia sesión. Esto evita que un atacante pueda influir en la identificación de sesión de un usuario que haya iniciado sesión. También puede configurar el servidor para que solo acepte los ID de sesión que ha generado y para rechazar explícitamente los ID de sesión proporcionados por el usuario.

El sitio web debe configurarse para que nunca coloque datos confidenciales del usuario, como el ID de sesión, en la URL y debe colocarlo en un parámetro de solicitud GET o POST. Esto evita que el usuario comprometa accidentalmente su propia identificación de sesión. Al usar un ID de sesión y un token de autenticación separado, duplica la cantidad de información que el atacante necesita obtener y evita que los atacantes accedan a sesiones con ID de sesión conocidos.

Es vital que todos los ID de sesión válidos para un usuario se invaliden cuando se hace clic en el botón de cierre de sesión. Es posible volver a generar el ID de sesión en cada solicitud, si se invalidan los ID de sesión anterior, esto también evita que los atacantes utilicen un ID de sesión conocido. Este enfoque también reduce significativamente la ventana de amenaza si un usuario revela su propia identificación de sesión.

Al habilitar varios de estos enfoques, una estrategia de defensa en profundidad puede eliminar este problema como un riesgo de seguridad.