sábado, 23 de octubre de 2010

SpyEye se apunta al Man in the Browser (MitB)


Hace menos de un mes, el departamento de e-crime de S21sec, detectó una nueva amenaza que dejaba inservible el segundo factor de autenticación basado en SMS. Hoy volvemos para anunciar una técnica que, aunque ya conocida, está teniendo gran impacto últimamente. Hablamos de la temida Man in the Browser.

En líneas generales dicha técnica (MitB), infecta el navegador y permite modificar páginas, alterar el contenido de las transacciones, etc. Como la mayor parte de las actividades de los troyanos, estas modificaciones pasan completamente inadvertidas para los usuarios infectados.

En este caso no se trata del infame ZeuS, si no de su "competidor" conocido como SpyEye. A finales de 2009 apareció en los foros especializados un nuevo troyano bancario llamado SpyEye. Escrito en C++, funciona desde Windows 2000 hasta Windows 7. Se ejecuta en ring3 (modo de usuario), igual que lo hace ZeuS, aunque esta no es la única similitud entre ambos troyanos.

En los foros se vende como indetectable para la mayoría de antivirus, además oculta sus ficheros en el explorador y las entradas de registro que usa. SpyEye implementa muchas de las características que ofrece ZeuS, aunque todavía está en desarrollo. El paquete en el que se distribuye el troyano, también es similar al de Zbot/ZeuS así como otros kits preparados para el fraude que se distribuyen principalmente en foros de Europa del Este y Rusia.

Las técnicas empleadas en versiones anteriores de SpyEye son las siguientes:

Robo de formularios: todos los formularios HTTP que contienen un campo de contraseña son capturados por defecto.

Inyección de código: esta técnica consiste en la inyección de código HTML en el navegador de la víctima para pedir datos que, normalmente, la entidad no pediría. En las diferentes configuraciones estudiadas, la información solicitada suele ser el código de seguridad completo.

Robo de credenciales FTP y POP3: incluye monitorización del tráfico de red estableciendo hooks en las funciones API de filtrado y almacenamiento de autenticación, mayoritariamente vigilando el tráfico y buscando valores “USER” y “PASS”.

Robo de credenciales en autenticación HTTP Basic: Un enfoque similar al del robo de credenciales FTP y POP3.

En la versión analizada en este caso se incluyen además las siguientes características:

Capturas de pantalla: en la configuración del binario se especifican las URLs sobre las que se realizarán las capturas de pantalla y las zonas concretas que se quieren capturar, es decir, no se captura la pantalla completa si no las zonas especificadas. Un ejemplo de esta configuración podría ser:

https://accesonline.mibanco.com/autenticate* 500 200 10 60

Posibilidad de realizar Man in The Browser (MitB).

Hemos podido apreciar un aumento en el número de muestras desde el pasado Septiembre, lo que nos hace pensar que la campaña empezó en ese mes:


A mediados de octubre se han detectado ya los primeros casos de fraude afectando a entidades españolas, con al menos dos muestras distintas del troyano. De las entidades que aparecen en el archivo de configuración, únicamente se observan intentos de implementación de esta técnica en una de ellas. Aun siendo totalmente operativa, la impresión es que todavía se encuentra en periodo de pruebas.

Aunque todavía estamos analizando el binario en profundidad, las funcionalidades básicas son las mismas que tenía cuando se descubrió en febrero de este mismo año. No obstante se han observado algunas mejoras en cuanto a su sistema de cifrado del archivo de configuración. La detección de las muestras es del 62% y 20% respectivamente.

La funcionalidad más preocupante y con la que está logrando perpetrar el fraude descrito, es la de inyección HTML. En este caso, la inyección es de código Javascript, lo que dota al binario de la funcionalidad MitB:

* El troyano obtiene los datos de las cuentas y los envía al servidor C&C

* Si el saldo de la cuenta supera una cierta cantidad, éste devuelve los datos de la cuenta a la que debe realizar la transferencia fraudulenta (mula) usando el siguiente formato:

[
"trans" = 1,
"info" = [
"check" = [
0 = XXXX,
1 = XXXX,
2 = XX,
3 = XXXXXXXXXX
],
"sum" = 493,
"name" = "Pepe",
"address" = "C/ Del Ocho, nº1 1ºA",
"city" = "Cantalapiedra",
"comment" = "Transferencia"
]
]

* El troyano rellena el formulario de transferencias con esta información y queda en espera.

* Se le piden al usuario una serie de datos, entre ellos la clave de firma.

* Una vez los tiene, envía el formulario para realizar la transferencia.

* Modifica el importe de las cuentas para que la víctima no se percate del robo.

Como se puede ver, al interceptar la sesión del usuario legítimo, el fraude se perpetúa de una manera mucho más difícil de detectar para la entidad, con lo que eso conlleva.

En las pruebas realizadas, parece que usa distintas cuentas de destino para las transferencias fraudulentas. Son seleccionadas según el saldo disponible en la cuenta de la víctima y todas de entidades españolas.

En siguientes posts se detallará el funcionamiento de esta técnica.


Santiago Vicente
S21sec e-crime

No hay comentarios: