sábado, 1 de septiembre de 2012

El malware ya se aprovecha del HTML5


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



1 comentario:

  1. Hola,

    Gracias por la información. Tengo una consulta, como hacer test para poder detectar este malware.

    saludos,

    CRComputadoras

    ResponderEliminar