Hemos
detectado una variante de Zbot que
aprovecha una funcionalidad de las que implementa HTML5 en el navegador de la
víctima a la que infecta. Lo hace para almacenar ciertos datos robados, que le
servirán para culminar la estafa. Hasta nuestro conocimiento, es la primera
muestra que se aprovecha de esta funcionalidad de la última versión de HTML. Veamos
cómo funciona.
Hemos detectado una nueva
variante del malware de la "transferencia
ficticia", que está teniendo un importante
impacto entre los bancos españoles con doble autenticación (a través de
SMS). Recordemos su funcionamiento básico:
- Cuando el usuario se presenta
en su página de banca el troyano se activa.
Ha incrustado código HTML y JavaScript en la página legítima. Interpreta la
página del banco, buscando las cuentas que almacenen una mayor cantidad de
euros. Esta información la envía a un servidor externo.
- Muestra una pantalla en la que
se insta al usuario a realizar un "test"
para probar el sistema de SMS de la banca.
Bajo la premisa de una transferencia ficticia, se invita al usuario a que
pruebe los beneficios del método de validación por móvil.
- Si el usuario decide continuar (no tiene otra opción, puesto que si cierra la pantalla no podrá acceder a su banca online), otro mensaje en el que se detalla una transferencia a un beneficiario (el mulero) del que incluso se muestran las últimas cifras de la cuenta. La transferencia, por valor de 3.000 euros invita al usuario a validarla con el mensaje que ha recibido en su móvil. Lo que está ocurriendo es que el troyano está realizando realmente la transferencia "entre bambalinas", pero a través de una "interfaz" creada por él, superpuesta y usando los recursos del banco. O sea, al teléfono llegará realmente un mensaje legítimo generado por la entidad y si lo introduce y valida, el efecto será exactamente el mismo que si el usuario hubiese realizado la transferencia de forma habitual desde su portal.
El troyano, una vez conseguido su
objetivo, sigue activo y modifica la página del banco cada vez que la víctima
se presenta, para superponer la cantidad antigua y ocultar así el desfalco del
dinero.
Cómo funcionaba
Este malware se apoya normalmente en cookies para recordar ciertos datos. Esto
es normal en esta familia. Por ejemplo, si el usuario ha sido ya infectado, en
qué fase de la infección se encuentra, o para almacenar los datos robados
temporalmente. Las cookies son la manera más popular de poder almacenar datos
en el protocolo HTTP, que no conoce estados. Sin embargo, cuentan con un
inconveniente: el dominio legítimo puede "ver" esas cookies, puesto que por defecto, el navegador envía automáticamente
las cookies almacenadas para un dominio cuando se visita. Los atacantes han solventado esta situación con HTML5.
Cómo funciona
La versión que hemos detectado, utiliza la función de almacenamiento nativa
de HTML5. Web Storage está ya en todos los navegadores modernos, y permite
almacenar datos en el contexto del navegador y que sean manipulados a través de
JavaScript. Por ejemplo, con los comandos:
localStorage.setItem("key",
"value");
localStorage.getItem("key");
Se puede almacenar un valor. Esto
es posible verlo por ejemplo con Chrome y su herramienta para diseñadores:
La diferencia con las cookies, es
que:
a) permiten almacenar mucha más información. Hasta 5 megas frente a los 4k de
las cookies.
b) no son automáticamente
enviados al servidor (y aquí reside la ventaja para los atacantes). El servidor no tiene acceso a esos datos
a no ser que el cliente los envíe expresamente a través de JavaScript.
Así, sin levantar sospechas y sin
salir de "navegador de la víctima",
el malware aprovecha una nueva
funcionalidad para sus propósitos.
En el caso concreto que hemos
estudiado, existen además otras curiosidades. El atacante tiene en cuenta el
soporte HTML5 del navegador, y opera de diferente manera, combinando otros
métodos de almacenamiento, como el userData, un sistema nativo de Internet
Explorer (a partir del 8). Todo para evitar el uso de cookies. Incluso, esta versión
utiliza una librería legítima que permite cómodamente, elegir el método más
interesante según el navegador en que se encuentre y que cuenta con sus propias
funciones. Aquí un pequeño extracto del código inyectado en la web legítima, en
concreto la parte que superpone el valor falso de la cuenta robada y cómo las
toma de la base de datos:
Sergio de los Santos
Twitter: @ssantosv



Hola,
ResponderEliminarGracias por la información. Tengo una consulta, como hacer test para poder detectar este malware.
saludos,
CRComputadoras