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.