No
es un secreto que el malware contra entidades latinoamericanas se fundamente en
el "pharming". O sea, la
modificación de la resolución de dominios a través del archivo hosts del
sistema. Con sus distintas variantes, los atacantes se han centrado
principalmente en esta técnica en los últimos años. Sin embargo hace poco,
hemos observado una pequeña progresión que nos ha parecido curiosa.
Los atacantes brasileños suelen
utilizar técnicas muy diferentes a
los rusos o los latinoamericanos. Ellos prefieren programar en Delphi, y crear ventanas de programa
que son como réplicas de una parte o de toda la página del banco objetivo. Se
superponen en la web original cuando se visitan, y la víctima introduce en esos
formularios sus datos. A este tipo de malware los llamamos "delephant", porque además de estar
programados en Delphi, también suelen "pesar"
mucho (varios megas) al contener imágenes en bruto de varios bancos.
O también pueden llegar a crear
una pantalla que simule ser por completo el navegador.
Los brasileños no se caracterizan
precisamente por su calidad al programar, ni por su innovación. Y este caso que
vamos a estudiar será un buen ejemplo.
Los rusos
Además de más sofisticados, una de las
características de la escuela de malware rusa 
es que consiguen posicionarse en el sistema de forma que recogen el
tráfico, aunque esté cifrado. Contra esto, los bancos se apresuraron a ofuscar
el tráfico con JavaScript. Antes de enviarlo al servidor, lo codifican
profusamente. Así, aunque lo interceptasen (con un man-in-the-browser en forma
de BHO, por ejemplo) seguirían encontrándose con la dificultad del ofuscado.
Si los programadores del malware
lo tuviesen en cuenta, podrían indicarle al BHO que obviasen las rutinas de ofuscado específicas... pero veremos
qué han preferido hacer los brasileños ante la "dificultad" de programar un BHO.
Las "nuevas"
técnicas
Lo que nos hemos encontrado es un
método que mezcla estas dos familias e implementa una curiosa técnica para
eludirlas. Lo que el troyano hace es:
- Infecta la máquina, y se queda a la espera de la monitorización de ciertas páginas.
- Cuando detecta que se está en las páginas que necesita, inyecta un JavaScript propio en la página, que se encarga de copiar al portapapeles los datos robados.
- JavaScript, por definición, no puede escribir en disco, por tanto (y aquí lo curioso), lo que hace el troyano es copiar el contenido que le interesa en el clipboard y, por otro lado, el troyano monitoriza el portapapeles. Si contiene los datos que le interesan, es él el que los graba en disco.
Curiosísima forma de eludir la
restricción de JavaScript de escribir en disco, a través del portapapeles.
Más datos sobre el troyano
Por lo demás, como suelen hacer
los especímenes brasileños, envía por correo los datos robados. También captura los teclados virtuales en pequeñas "fotografías" cuando el usuario
pulsa sobre los números. Si el banco ofusca estos números con un "*"
cuando son pulsados, el troyano carga una rutina JavaScript que evita que esto
ocurra, y así puede grabar en imágenes
las teclas virtuales pulsadas.
Muestras de los resultados
El troyano ataca a diferentes
entidades, principalmente sudamericanas. Estos son un par de ejemplos de
archivos HTML que el troyano envía a los atacantes. Por ejemplo para el Banco
Guayana.
Y para el Banco Caroní.
Curioso porque pega todas las
imágenes y las letras de la contraseña dos veces. Esto es simplemente uno (de
tantos) errores de programación.
Como curiosidad final, durante el
análisis del troyano (pero independientemente
de este) he advertido un error de concepto en la seguridad del Banco Guayana.
Normalmente, los bancos se protegen de los troyanos que realizan capturas de
pantalla sustituyendo los números o teclas por asteriscos cuando son pulsados
(momento en que un hipotético troyano haría la "foto"). Por el contrario, cuando se separa el puntero, los
números deben ser mostrados en claro, para que el usuario pueda identificarlos.
Este es el comportamiento "normal":
Pero en el caso de Guayana, sus
administradores lo han implementado al revés... en concreto tiene un error de
concepto en su teclado virtual que hace que sus medidas de seguridad no sean
útiles, puesto que, oculta los números cuando no se están pulsando... y los
muestra cuando se van a elegir. Lo que facilita la vida a los troyanos de este
tipo.
Sergio de los Santos
Twitter: @ssantosv







IM-PRE-SIONANTE
ResponderEliminarMe ha encantado el articulo, genial...
Creo que estas "practicas en la programacion" no son mas que un reflejo de la sociedad donde se hubican. Si le llegan las imagenes dos veces, "para que molestarse weeeeey..." no son culturas especialmente refinadas, son efectivas, son metodos pesados y sencillos pero eficaces! Reflejan un poco el entorno que envuelve estos desarrollos, para que luego digan que un entorno y una formacion adecuada no es importante... para muestra un boton...
El artículo es interesante, solo hago una salvedad "geográfica", Brasil (aunque no hablen en castellano) es parte de latinoamérica. No coincido con lo expresado por QaSaR, parece que hubiera algún prejuicio en su opinión.
ResponderEliminar@quasar, o sea que el nivel de un programador, en este caso, depende de si vive en un pais desarrollado o subdesarrollado??..ja ja. Pues estas muy equivocad@, y concuerdo con @HH, tu comentario refleja prejuicios.
ResponderEliminarme parece muy interesante la forma de atacar de estos hacker las tacticas que utilizan y las formas que se dan para obtener es muy interesante pero a la ves peligrosa...
ResponderEliminarSooiis todos unooss fiiera viva españa , viva el rey, viva el orden y la leey PIIMM PAAMM TOMA LACASITOS!
ResponderEliminar@QaSar
ResponderEliminarhubican va escrito sin hache !!!
no pareces el más indicado para hablar de 'refinados'.
Salud!
Estoy totalmente de acuerdo con HH. Esta información me parece obsoleta y pareciera que tuvieran algo en contra de estas entidades que casualmente se encuentran en proceso de fusión. Y para su información con la tendencia de los troyanos los teclados virtuales ya no son seguros para lo que fueron destinados. hay páginas bancarias que no utilizan teclado virtual. lo importante que tienen que darse cuenta es en los certificados de seguridad SSL utilizados por dichas entidades. Saludos.
ResponderEliminarCada capa de seguridad debe ser tenida en cuenta por separada, todas las medidas de seguridad adicionales pueden aumentar el nivel de seguridad.
EliminarLos antivirus, como otras herramientas de seguridad, no siempre son usadas en entornos de seguridad por su ineficacia, pero en cualquier caso no hay ninguna herramienta infalible. Cuanto mayor sea nuestro conocimiento mejor podemos prevenirnos con herramientas, configuraciones o conocimientos.
En cualquier caso el fallo de concepto de mostrar lso números solo cuando se pulsa puede ser interpretado de otra forma. Si entramos en el banco fuera de nuestro domicilio dificulta que otras personas vean nuestras claves. Personalmente pocas veces entro en el banco fuera de mi casa, pero claro, cada usuario hace uso de las herramientas según las necesita
no lo puedo creer... hay que tener un preservativo actualizado y fue
ResponderEliminarEsto pasa en sistemas operativos que no tengan antivirus y firewall actualizados. por que no explica eso también.? las web implementan métodos de seguridad para minimizar riesgos, pero no eludir todo. sin un software de seguridad en la pc lo que se puede implementar es el uso de token o certificados únicos que identifiquen al usuario.
ResponderEliminarCreo que una de las soluciones para poder mitigar esto es utilizar algún tipo de token, u otro tipo de factor de autenticación de doble o triple factor
ResponderEliminar