lunes, julio 22, 2013

Secuestro de sesiones en Office365 con cookies "muertas"

Desde hace un tiempo llevo indagando en la seguridad que ofrece la plataforma de Microsoft Office365 y cuáles son los puntos débiles que pueden haber a la hora de trabajar con nuestra información en la nube. Analizando las comunicaciones que se realizan mediante sniffers, usando diferentes navegadores y sistemas operativos (incluyendo Windows 8.1) como equipos cliente. Así que hoy revisando artículos sobre esta temática hubo uno que me llamo especialmente la atención: Secuestro de sesiones en Office365 mediante la reutilización de cookies escrito por Ms. Smith. Suficiente atractivo como para ponerlo a prueba.

Session Hijacking: La teoria

Normalmente cada vez que nosotros accedemos a un servicio con usuario y contraseña, una cookie o varias se almacenan en nuestro equipo permitiendo cada vez que se hace una petición desde el cliente a ese servicio, se envían la/s cookie/s que mantienen la información de la sesión haciendo que no sea necesario autenticarse de nuevo porque ya lo ha hecho.

Si alguien es capaz de acceder a esas cookies cuando estas están vivas y las utiliza podría hacer uso de la sesión del usuario. Ejemplos de esto son populares con Firesheep en Tuenti o las binary cookies de las apps de Facebook son algunos de los ejemplos que nos encontramos habitualmente. Sin embargo, el problema es cuando las cookies su matan y no "mueren" dejando la sesión abierta después de que el usuario la haya cerrado, como vimos en el caso de las cookies de Linkedin.  Microsoft Office365 no es una excepción y se puede acceder a la sesión con una cookie robada incluso tras cerrar una sesión.

Session Hijacking en Microsoft Office365: PoC

Siguiendo el articulo descrito por Ms. Smith, decidí utilizar una maquina con Microsoft Windows 7 e instalar Google Chrome con el plugin “Edit my cookie”. Una vez instalado, accedí al portal de Microsoft Office365 con mi usuario y contraseña desde Google Chrome:

Figura 1: Portal de entrada de Microsoft Office 365

Una vez dentro, hacemos clic en la galleta de la extensión “Edit my cookie” y pinchamos en la opción “Exportar Cookies”:

Figura 2: Opción de exportar cookies en el plug-in Edit my cookie

Nos vamos a un Bloc de notas y pegamos la información que hemos exportado con las cookies que mantienen la sesión en Microsoft Office 365.

Figura 3: Ejemplo de cookies exportadas

Lo guardamos en el equipo y cerramos nuestra sesión abierta de Microsoft Office365, lo que debería matar esta cookie y dejarla inutilizada para cualquier intento de acceso a un recurso de nuestra sesión. Utilizamos ahora otro equipo, en este ejemplo uno con Microsoft Windows 8.1 y copiamos la cookie exportada anteriormente:

Figura 4: Cookie guardada en archivo

Instalé en él también Google Chrome con la misma extensión de “Edit my cookie” y accedí al portal de Microsoft Office365. Una vez allí copié el contenido de la cookie exportada, y lo pegué en la extensión de “Edit my cookie” mediante la opción “Importar cookies” y por último le di a “Guardar cambios”:

Figura 5: Importación de cookie de sesión en Edit my cookie

Una vez hecho esto, volví a escribir la dirección del portal de Microsoft Office365 sin cerrar el navegador y la sesión seguía abierta a pesar de haber sido cerrada explícitamente en la última sesión.

Figura 6: Acceso a sesión anterior

Mitigar el robo de la cookie de Microsoft Office365

Conseguir acceder a la cookie de sesión de Microsoft Office365 requiere de hacer otro ataque combinado, como accediendo localmente a los archivos locales, engañar a un usuario para que caiga en un esquema de Man in the middle o encontrar una vulnerabilidad client-side que permita acceder a la cookie. No es fácil, pero aún así, la cookie debería morir cuando se cierra la sesión para mitigar este problema. En el artículo de Raúl Siles de Session Management Cheat-Sheet se explican las medidas de seguridad que deberían aplicarse a las cookies de sesión.

Microsoft ha confirmado que están trabajando en fortificar la seguridad de las sesiones, pero mientras tanto asegúrate de que tus cookies no caen en manos de nadie, así que borra la caché del navegador - si usas la navegación en modo in-Private o modo Incóngito mejor que mejor - cuando acabes para evitar que quede ninguna cookie de sesión. Por supuesto, evita usar tu sesión Microsoft Office365 en un equipo que no sea tuyo.

Autor: Alberto Pascual
Microsoft MVP Office365

Entradas populares