martes, 19 de diciembre de 2006

Robo de claves a través de gestores de contraseña

Hace unos días salió a la luz una vulnerabilidad, que se ha venido
a denominar Reverse Cross-Site Request (RCSR), capaz de afectar a
dominios completos en los que los usuarios pueden introducir
libremente código HTML.

El Reverse Cross-Site Request (RCSR) es una técnica que hace uso de los
tags de formulario para enviar información sensible a una dirección
maliciosa. En concreto, la información que el ataque intenta capturar
son las contraseñas que automáticamente se rellenan por medio de la
funcionalidad que integran diversos navegadores.

Para comprender mejor el caso pensemos en dominios tales como
geocities.com, myspace.com o cualquier otro espacio público en los que
los usuarios pueden crear sus páginas libremente. Al activar el gestor
de contraseñas conseguimos que al tener una cuenta legítima en estos
dominios, en la próxima visita que hagamos al mismo no tengamos que
volver a escribir nuestros datos, puesto que serán automáticamente
rellenados por el navegador. Vayamos un poco mas allá: si un atacante es
capaz de poner dentro de una página de ese mismo dominio un formulario
idéntico pero con un cambio en la dirección de envío, nuestros datos se
rellenarán mediante el mecanismo anteriormente descrito. Gracias a esta
funcionalidad, si nuestro atacante no muestra estos campos, sino que los
genera "ocultos", comprobaremos que esa información se encuentra ahí y
va a ser enviada a una URL controlada por el usuario malicioso.

El mecanismo anteriormente descrito funciona en su totalidad o
parcialmente según el navegador en concreto: por ejemplo, para FireFox
la entrega de datos se podrá realizar sobre otro dominio mientras que
con Internet Explorer la entrega está limitada al dominio en el cual se
recogen los datos.

A continuación se muestra una prueba de concepto que realiza la
obtención de claves de un supuesto usuario legítimo de los servicios de
correo electrónico por web (webmail) de CajaMurcia. En concreto, utiliza
un ataque de Cross-Site Scripting tradicional para inyectar la parte de
código contribuido por el atacante para conseguir generar formularios
donde capturar los datos.

http://www.hispasec.com/laboratorio/RCSR_cajamurcia.html (1,6M)

Si prefiere descargarlo comprimido para su posterior visión:
http://www.hispasec.com/laboratorio/RCSR_cajamurcia.zip (1,2M)

En la prueba se muestra un usuario que introduce su contraseña de
webmail y permite su almacenamiento en el gestor de FireFox, estas
contraseñas como se observa no tienen por qué ser reales, el interés es
que sean almacenadas. Posteriormente, imitando un posible correo de
phishing, el usuario pincha una URL que contiene el Cross-Site Scripting
con los formularios de captura de datos que más tarde, tras su click,
son mostrados sobre la URL de Hispasec.

Desde Hispasec Sistemas recomendamos desactivar la funcionalidad del
administrador de contraseñas tanto de FireFox como de Internet
Explorer ya que la explotación mediante alguno de estos mecanismos
puede provocar el compromiso de nuestras claves almacenadas.


Francisco Santos
fsantos@hispasec.com


Más información:

Bug 360493 - Cross-Site Forms + Password Manager = Security Failure
https://bugzilla.mozilla.org/show_bug.cgi?id=360493

CIS Finds Flaws in Firefox v2 Password Manager
http://www.info-svc.com/news/11-21-2006/

Robo de claves a través de gestores de contraseña
http://blog.hispasec.com/laboratorio/184