Español | English
rss facebook linkedin Twitter

Seguridad en el manejo de Sesiones Web – VII

Reutilización de sesión

En este último capítulo de la serie vamos a ver una vulnerabilidad que no siempre tiene implicaciones de seguridad, pero que conviene no olvidar.

Hablamos de reutilización de sesión cuando existe la posibilidad de utilizar el mismo identificador de sesión en dos aplicativos distintos o cuando es posible utilizarlo para hacer login dos veces en la misma aplicación.

Vamos a verlo mejor con un par de ejemplos:

Ejemplo 1: Dos aplicativos comparten el mismo pool de sesiones

Tenemos por un lado una aplicación de administración protegida para la que se pide login y password. Por otro lado tenemos un foro público en el que cualquier usuario puede registrarse. Ambas comparten el mismo servidor de aplicaciones y sin saberlo utilizan el mismo pool de sesiones.

Un atacante hace login en el foro, copia el ID de sesión y lo utiliza para acceder a la aplicación de administración. Como la sesión tiene la bandera de “autenticado correctamente” se le permite el acceso.

Ejemplo 2: Login 2 veces con el mismo ID

Tenemos una aplicación de banca online. La aplicación pide una clave de operaciones para realizar transferencias entre usuarios, pero no pide nada cuando se trata de un traspaso entre cuentas de un mismo usuario.

El atacante ha conseguido robar las credenciales de acceso de varios clientes del banco, pero no ha obtenido las claves de operaciones de forma que no puede transferirse el dinero. Sin embargo descubre que la aplicación permite reutilización de sesiones. De forma que se crea una cuenta en ese banco.

Primero accede con sus credenciales. Entra en la aplicación de banca y accede al listado de cuentas corrientes, donde solamente le aparece la suya con un saldo de 0 euros.

Toma el ID de sesión y realiza de nuevo el proceso de login. Esta vez utiliza las credenciales de una posible víctima. En el nuevo listado de cuentas corrientes aparece la suya con 0 euros y sorpresa: la cuenta de la víctima con 1000 euros. Las 2 cuentas corrientes se han asociado al mismo identificador de sesión.

Ahora el atacante puede realizar el traspaso entre cuentas sin la clave de operaciones ya que la aplicación reconoce las 2 cuentas como asociadas al mismo usuario.

Solución:

Como ya hemos comentado para otras vulnerabilidades. Cuando trabajamos con sesiones es recomendable:

  • No compartir el pool de sesiones entre varias aplicaciones.

  • Invalidar las sesiones cuando el usuario sale de la aplicación o cuando ha pasado un tiempo de inactividad.

  • No permitir realizar el proceso de login con un ID ya utilizado.


Con este artículo podemos dar por concluída la serie de Seguridad en Manejo de Sesiones Web, esperamos que os haya gustado.

Ramon Pinuaga

S21sec Auditoría

1 comentario:

Anónimo dijo...

Tio, cambia de registro que siempre hablas de lo mismo!. sino es esto es overflows...


(+34 902 222 521)


24 horas / 7 días a la semana



© Copyright S21sec 2013 - Todos los derechos reservados


login