Gestión de sesiones: web Ataques y medidas de seguridad
Como funcionan las sesiones
Las sesiones son unos parámetros identificatorios que el servidor manda en primera instancia al cliente para que este los almacene y los envié en cada petición dentro de las cabeceras http.
Tipos de ataques
Predicción de sesiones
Como funciona?
Este tipo de ataque trata de intentar crear identificadores de sesión aleatorios con el fin de intentar obtener las de algún usuario y poder suplantar a este usuario.
Solución al problema
Aleatorización y longitud suficiente del identificador de sesión: esto se logra al hacer un hash bastante largo combinando la dirección remota HTTP del cliente, información del cliente y datos aletorios.
Captura del identificados a través de ataques XSS
Como funciona ?
Este tipo e ataque consiste en explotar vulnerabilidades que nos permitan inyectar código en el cliente para que recoja los identificadores de sesión y nos lo envié a un servidor a través de alguna petición remota y de esta forma podrías utilizar esta información para poder suplantar a los usuarios
Solución al problema
Utilizando la etiqueta httponly en el servidor
Deshabilitar el modo TRACE
Fijación de sesión
Como funciona?
En este tipo de ataque el atacante intenta crear una sesión que nadie tenga asociada para intentar engañar a algún cliente para que la use y haga login con esta sesión
Solución al problema
Cambiar el cookie de sesión cuando un usuario haga login
Permitir únicamente el identificador en cookies
Asociar el identificador a un dato único del usuario como su ip
Interceptación de la sesión
Como funciona?
Este tipo de ataque trata de utilizar aplicaciones como Wireshark para escanear las peticiones de una red e intentar obtener los identificadores de sesión de estas.
Solución al problema
Utilizar HTTPS en vez de HTTP para que la petición este cifrada incluyendo la cookie de sesión
Activar la opción de cookie segura para que esta vaya siempre por HTTPS
Asociar el identificador a un dato único del usuario como su ip
Errores en el cierre de sesión
Como funciona?
Este tipo de ataque se utiliza en ordenadores compartidos en los que las sesiones se quedan abiertas y el atacante a través del historial de navegación intenta entrar en sitios y hacerse con la sesión de los sitios web visitados si aún no ha caudcado
Solución al problema
Establecer un time-out en la sesión
Establecer un tiempo máximo de validez de la sesión
Utilizar cookies no persistentes
Invalidar los identificadores de sesión ante un cierre de sesión
No reutilizar los identificadores de sesión
Configuración segura en framework web
PHP
ASP.NET
JAVA
Conclusiones
La gestión de sesiones web se basa en la inclusión de cookies en las peticiones y
respuestas HTTP/HTTPS que contienen el identificador de sesión.
Existen varios ataques que permiten obtener un identificador de sesión válido y, por tanto,
suplantar a la víctima en el portal web.
Es posible evitar estos ataques mediante sencillas medidas de seguridad, cuya implantación
debe estar supeditada al perfil de riesgo del portal web.
Dada la complejidad de la gestión de sesiones web, es recomendable utilizar un framework
o librería antes que realizar un desarrollo propio para la gestión de sesiones web.