22 may 2014

Gestión de sesiones en auditorías

La gestión de sesiones puede pasar desapercibida para muchos usuarios, pero es un punto en el que el pentester debe analizar e intentar jugar con ello. Se pueden enumerar un listado de pruebas que se debe realizar a las famosas cookies para comprobar que las sesiones se están realizando de manera segura. Es algo procedimental, aunque siempre hay un toque de experiencia y olfato para llevar a cabo esto. 

En primer lugar hay que hablar de los flags secure y HTTP-only. El primero de ellos debe ser enviado desde el servidor al cliente cuando éste inicia sesión mediante el protocolo HTTPS. Este flag indica al navegador que solo puede realizar navegación en este servidor si la comunicación va cifrada. En caso de detectar que un servidor cuando asigna la cookie no está enviando el flag y la conexión debe ser segura, se debe apuntar como fallo de seguridad. En segundo lugar el flag HTTP-only, el cual ha sido trabajado con anterioridad. Este flag evita que código script pueda acceder a la cookie, solo siendo el navegador el que puede hacerlo. La falta de este tipo de mecanismo de seguridad haría que la cookie pudiera quedar expuesta, de manera más o menos sencilla.

¿Intuitivos? La verdad sí, pero no siempre están bien configurados, y es algo que se puede encontrar en las auditorías. Tenemos que tener en cuenta que este tipo de cosas pueden generar agujeros o fallos de seguridad en nuestras aplicaciones web. 

¿Qué mas tenemos que mirar? Comprobar es la validez de una sesión desde distintas direcciones IP. Este hecho es más común de lo que se puede pensar y se debe valorar en su justa medida. Quizá no hay que ser extremista con esto, pero siempre tener a mano esta opción y valorando la criticidad de la aplicación. 

Determinar los límites y cierres de la sesión. Es importante comprobar que el servidor haya realizado correctamente esta acción, para que las cookies no puedan ser reutilizadas en otro espacio o tiempo.

¿Qué información debe tener una cookie? Existen casos en el que en la cookie viaja información que no debería. Imaginaros que en la cookie se envía un user y un hash, ¿Puede ocurrir? La verdad es que sí. Hay que evaluar cada parámetro de la cookie para verificar que no se envían parámetros no deseables, ni hay fácil manipulación de la cookie. 

Por último, se debe tratar un aspecto matemático, y en ocasiones difícil para ciertos informáticos, como es la predictibilidad en la generación de valores en las cookies. Algunos de los parámetros deben ser totalmente aleatorios, y esto en algunas ocasiones no se cumple, por lo que obteniendo diversas cookies se puede encontrar un patrón por el que se puede predecir el valor de la cookie.

Estos son algunos consejos sobre cookies y sesiones en auditorías. Siempre un checklist a mano sobre lo que mirar no está de más, para no dejarnos nada!

No hay comentarios:

Publicar un comentario