Zeus es un troyano identificado por los antivirus como Zbot y tiene como objetivo troyanizar sistemas Windows para luego robar credenciales bancarias de los usuarios a quienes infecta.
Actualmente es uno de los malware de mayor propagación. Con él se crean gran cantidad de botnets en todo el mundo, complica el trabajo de las empresas antivirus y está llenando los bolsillos de sus creadores y “clientes”. Es comercializado a distintos precios, que van desde U$S 100 a U$S 5000 a lo que se suma el monto de los distintos módulos a los cuales se puede acceder.
En Zeus, esta configuración se realiza desde un archivo TXT de la siguiente manera:
set_url SITIO-1 data_before XXX - DATOS QUE SE BUSCAN EN EL HTML DEL SITIO-1 AFECTADO data_end data_inject YYY - FORMULARIO-1 CON LOS CAMPOS A INYECTAR data_end set_url SITIO-2 data_before XXX - DATOS QUE SE BUSCAN EN EL HTML DEL SITIO-2 AFECTADO data_end data_inject YYY - FORMULARIO-2 CON LOS CAMPOS A INYECTAR data_end
Como puede suponerse, el funcionamiento es sencillo: en la página del SITIO-N, se busca la cadena de texto “XXX” y se reemplaza/agrega/inyecta “YYY”. Este último seguramente será el formulario que obtiene los datos extras a robar (por ejemplo, el usuario, la contraseña, el PIN, la tarjeta de crédito, la clave de transferencia, etc.) y que se enviarán al delincuente para completar el ataque.
A modo ilustrativo, en las siguientes imágenes se muestra un formulario tipo de cualquier sitio, antes y después de la inyección:
En este caso, en el formulario original se reemplazó la línea en donde se solicita la “Contraseña” para agregar el campo de la “Clave de transferencia”, con lo cual el delincuente consigue este último dato necesario para cometer sus delitos: movimientos de dinero a través de mulas ubicadas en distintos países.
La posible solución descripta a continuación para evitar esta inyección, es de relativa sencillez en su funcionamiento e implementación, además de su bajo costo de desarrollo.
Debido a que Zeus busca y reemplaza texto, se puede generar un formulario distinto para cada instancia que el cliente visualiza de la página, cambiando el código fuente generado. Al cambiarlo, Zeus no encontrará texto para reemplazar y por lo tanto la inyección no se llevará a cabo.
En el caso anterior, se podría crear funciones cuyo resultado siempre devuelva un dato distinto de forma que la entropía del formulario sea mayor y por lo tanto más difícil de ser inyectado.
Este caso se puede llevar al extremo y a través de una función, el formulario se podría reescribir en su totalidad cifrándolo u ofuscándolo cada vez que es mostrado al cliente (demo en vivo), con lo cual nunca habría una cadena de caracteres igual a otra y Zeus, en su modo de trabajo actual, no encontraría código para inyectar.
Como conclusión, es importante destacar que este método es una alternativa menos costosa pero no reemplaza la implementación de doble autenticación, que debería ser considerada por las entidades financieras, bancarias o cualquier otro blanco potencial de Zeus.
El procedimiento descripto puede ser implementado como una medida de control adicional (defensa en profundidad), y considerado en el caso en donde los troyanos utilizan el formulario del sitio para robar información del usuario.
Nota 1: hasta el momento del desarrollo del presente documento, no se ha visto ninguna organización que implemente este método.
Nota 2: lo mencionado no contempla las posibilidades de keylogging de cualquier troyano y tampoco el robo de datos a través del control remoto del sistema afectado.
Nota 3: la descripción del procedimiento completo será publicado en en Boletín de Segu-Info.
Cualquier comentario o feedback sobre el procedimiento puede ser dejado en la demo.
Cristian de la Redacción de Segu-Info
Read more here:
Método (barato) para evitar Zeus (y otros malware) |
