En nuestro laboratorio realizamos
habitualmente análisis forenses a máquinas
infectadas con troyanos bancarios. Así podemos detectar el binario,
aislarlo y estudiar su comportamiento. De esta manera comprobamos cómo y con
qué se infecta la gente ahí fuera, en
el mundo real donde el malware limpia
las cuentas bancarias de los usuarios (una media de 3.000 euros por robo).
Entre otros descubrimientos, en los últimos meses, hemos comprobado que en el 100% de los
análisis realizados (y no han sido pocos) la razón de la infección con troyanos
bancarios era una máquina virtual Java desactualizada. En concreto dos vulnerabilidades
(aunque también otras más antiguas):
- El fallo CVE-2012-0507, corregido el 14 de febrero por Oracle, permite la ejecución de código. Desde entonces, se ha usado para el malware de la policía, los últimos Zbot,SpyEye... y para la botnet de Mac OS X recientemente destapada. Desde el 25 de marzo además, la vulnerabilidad se incorporó a varios kits de explotación usados por atacantes, como Blackhole, de los más completos y sofisticados actualmente. Contra esta vulnerabilidad además, no son efectivos ASLR, DEP o incluso otras técnicas para evitar que los atacantes eludan esas medidas en sus exploits.
- CVE-2012-1723. La sucesora de la anterior. Solucionada el 12 de junio por Oracle. Más compleja de ofuscar por los atacantes y diferente, puesto que se trata de un problema en la implementación de la propia JRE.
Cómo suele funcionar el exploit
La víctima visita cualquier web. Cualquiera: desde
páginas pornográficas hasta webs de ganchillo (ejemplos reales). No importa el navegador. De forma más o menos transparente (según
el navegador) se carga el applet que explota la vulnerabilidad. El usuario
quedará infectado. Una curiosidad es que el código Java se encargará de
descargar "a trozos" un
ejecutable que ensambla en local. También, que el ejecutable será "único" para la víctima. Aunque su funcionalidad
sea la de intentar robar las credenciales
del banco, su "hash" o
firma será diferente en cada caso, y no funcionará en otra máquina que no sea
la que ha infectado. Una especie de poliformismo del lado del servidor pero
"en tiempo de ensamblado en local".
Por si fuera poco, el malware no
necesita de privilegios de administrador para funcionar. Se instala en
%appdata%, dentro de un directorio con nombres aleatorios donde suele tener
permisos de escritura, y se asegura la supervivencia posicionándose en la rama
del registro del usuario CurrenVersion\Run donde también puede escribir.
¿Qué hace mal Oracle?
Oracle no es un buen ejemplo en el campo de la gestión de seguridad.
Sun tampoco lo era (la compró en abril de 2009). Por ejemplo, tuvimos que esperar
a finales de 2008 para que Sun hiciera algo muy simple: desinstalar las
versiones vulnerables cuando un usuario se actualizaba. Sí, dejaban en el
sistema la versión vulnerable dentro de la misma rama.
Pero el problema es que en cierta
medida, Oracle sigue haciéndolo. Si bien dentro de la misma rama se borran las
anteriores... no se eliminan, ni se actualizan, ramas anteriores. Muchos usuarios se encuentran en este
momento con dos ramas de JRE en su sistema. La 6 (que va por su update 33),
y la 7 (que va por su update 5). Conservar alguna anterior es más que
arriesgado. Por ejemplo si con la rama 6 update 18 (arcaica) el usuario decide
instalar la última versión 7 update 5 desde la web oficial, se encontrará con
esto:
No solo no se elimina la rama 6,
sino que tampoco se actualiza de la 18 a la última 33. Ni siquiera advierte del peligro de mantener esa rama. Y lo que es
peor... los dos serán accesibles para el atacante desde el navegador.
Oracle tampoco se ha pasado a la
"autoactualización", a la
que se ha visto obligada Adobe con su Flash recientemente. Primero permitía a
los usuarios que se actualizasen libremente. Luego mejoró, con un mensaje claro cuando aparecía una nueva
versión (y en este estadio se encuentra Oracle). Pero más tarde se ha visto
obligado a actualizar, sí o sí por defecto, y despreocupar al usuario. Oracle
no quiere hacer eso. Tiene pánico a que los diferentes programas no funcionen
en sus muchas ramas (todavía actualiza la rama 1.4).
Tal es el problema, que Firefox, Chrome e incluso Safari, bloquean
las versiones antiguas de Java, para evitar más infecciones.
Protección
Las medidas de protección son las
de siempre... más alguna otra. Por ejemplo, son varios los profesionales como
Brian Krebs o Larry Seltzer que directamente aconsejan desinstalar Java por completo. Ambos alegan que no se echará de
menos. Esto es discutible y depende del perfil de cada usuario. Pero sí es
cierto que, al menos, se debe evitar que
sea accesible desde el navegador. Existen varias páginas que ofrecen instrucciones para deshabilitarlo (independientemente
del navegador) para Windows y Mac.
Otros métodos de protección
incluyen, según el navegador, evitar los
applets en páginas desconocidas, o directamente evitar el JavaScript selectivamente.
Más información:
Don’t Need Java? Junk It.
Java (por fin) eliminará las
versiones antiguas al actualizar
How to protect yourself from Java-based malware
Ditching Java might be a good move
A Month Without Java: The Results
Sergio de los Santos
Twitter: @ssantosv


¿Y no será más sencillo desinstalar windows antes que java? No se los troyanos bancarios, pero para el resto es más peligroso urar windows que ubutu, por ejemplo...
ResponderEliminarWindows no puede desinstalarse, no tiene desinstalador. Aparte que no tendría lógica desinstalar primero un sistema operativo y luego posteriormente el software instalado en él. Respecto si es más peligroso usar windows que una determinada distribución de Linux sería lo mismo si nos preguntaramos: ¿Qué es más peligroso un mono borracho con un cuchillo o con una navaja?
EliminarDesintalar Windows es fácil: format c:
EliminarY la pregunta "¿Y no será más sencillo desinstalar windows antes que java?" no quiere decir que desinstales primer Windows y después Java, sino que es mas senzillo desinstalar Windows, en lugar de (o antes que) quitar Java.
En cuanto el cuchillo y la navaja, supongo que en tu cabeza tenia algún sentido, fuera de ella... lo dudo, o en todo caso es mas complicado el ejemplo que la realidad.
El comando "format c:" no sirve para DESINSTALAR Windows. Por favor evitá intentar ser sacástico, porque no te sale para nada bien, al menos, fuera de tu cabeza.
EliminarEn verdad, estimado Jorge, tus datos nos hacen ver lo vulnerables que somos, dentro del marco notable de los avances electrónicos prodigiosos de nuestros tiempos.
ResponderEliminarSaludos.
¿Me lo parece a mi, o acabais de afirmar que _todos_ los que usan Java sin actualizar y _solo_ ellos son los que tienen ordenadores infectados?
ResponderEliminarMe parece una afirmación muy, muy grave y manifiestamente errónea.
Desde ya, adiós.
No. Me parece a mi que esa afirmación te la has sacado de la chistera, cual mago.
EliminarCada bicho usa un método de infección, así que nadie está a salvo. En este caso se habla de aquellos que aprovechan vulnerabilidades de Java porque éste es un artículo sobre Java, evidentemente.
"no tener actualizado JRE, es garantía de infección", esto es decir que todo Java no actualizado está infectado.
Eliminar"hemos comprobado que en el 100% de los análisis realizados (y no han sido pocos) la razón de la infección con troyanos bancarios era una máquina virtual Java desactualizada", si el 100% está infectado gracias a Java no actualizado, solo se infectan estos, no hay otras infecciones más allá de este 100%
Juntando, queda que _todos_ los que usan Java sin actualizar y _solo_ ellos son los infectados.
Parece no comprender que el "100% de los análisis realizados" no implica al "100% de usuarios con Java instalado".
EliminarNo es mucho suponer que no analizarán los ordenadores de todo el planeta... al menos el mio me consta que no lo han analizado, ¿y el suyo de usted?
Parece ser que la estadística no es el fuerte suyo de usted.
EliminarNi la lógica y el sentido común el fuerte de otros... qué decir ya de responder preguntas directas cuando no interesa ;)
EliminarEso sí, lo que viene siendo tergiversar lo bordan. O será que no hay mayor ciego que aquel que no quiere ver (o para que bajarse del burro con lo cómodo que se va en él, ¿cierto?).
La afirmación:
Eliminar"no tener actualizado JRE, es garantía de infección", esto es decir que todo Java no actualizado está infectado.
es totalmente falsa, empezando por que Java ni se infecta ni desinfecta, es el sistema en que está instalado el que lo sufre.
La frase simplemente quiere decir que todo sistema con una versión de JRE no actualizada (es decir, vulnerable) es vulnerable (obvio, ¿verdad?), y además fácilmente "infectable" ya que, entre otras formas, basta con solo visitar una página web que puede ser de cualquier tipo (y también puede estar vulnerada para alojar el malware infeccioso, no hace falta que sean páginas ilícitas).
Más mascadito aun: existen "bichos" que se aprovechan de las vulnerabilidades de JRE para infectar un sistema. Por tanto tener una versión de JRE vulnerable implica tener una puerta abierta a este tipo de infección.
¿Y que dices del título? "Si no actualizas Java, estás infectado"
EliminarQue me decis de la combinacion linux - java - chrome ??
ResponderEliminar(knoppix 6.3) - java version "1.6.0_17"
Java(TM) SE Runtime Environment (build 1.6.0_17-b04)
Java HotSpot(TM) Client VM (build 14.3-b01, mixed mode, sharing)
Lo digo porque esta es mi combinacion y se me ha metido algo...
(Cuando entro en Hotmail,se abre enviar mensaje y lo hace cada cierto tiempo.)
Como parece que no hay malware en linux ,.. Nadie me ofrece una solucion,ademas, TODOS los anti-bichos on line son para windows.
Que hacer ante un malware en linux?? ..(Buen titulo de un articulo)
Gracias anticipadas por la ayuda.
Fácil. Instálate windows!!
EliminarEsta va para todos los "listillos" que atacan y desprecian a los usuarios de windows. Ya sabemos que en linux van mejor (y mucho) la mayoría de las aplicaciones. También sabemos que hay muchos menos virus. Pero ya veis, se os acabó la inmunidad frente a los virus. Bienvenidos a nuestro mundo.
Perdoneu, pero algú ho havia de dir!!!
Lástima que un _troyano_, que es de lo que habla el artículo, no sea un _virus_
EliminarUn troyano es un programa que aparentemente hace algo, y por detrás hace sus maldades. Si el usuario ejecuta un programa, ese programa podrá hacer lo que quiera en nombre de dicho usuario, da igual el SO, por eso se debe ejecutar programas solo desde fuentes confiables.
Con las distribuciones de Linux, fácilmente puedes instalar todas las aplicaciones disponibles para la distribución, millares, que son validadas por los responsables y no es necesario descargar programas de sitios, cuanto menos, dudosos. Y por supuesto, tampoco hace falta pasarles el cracker, con su correspondiente malware.
Como siempre, los Windowzeros y su infinito desconocimiento.
Perdoneu, però algú ho havia de recordar!
En windows tampoco es necesario "descargarse programas de sitios,cuando menos, dudosos" ni recomendable, cuanto mas cuando la mayoría del software libre más popular (gimp, libreoffice, thunderbird, firefox, etc) también está para windows en sus respectivas webs oficiales.
EliminarEn windows tampoco es necesario crackear, de hecho es ilegal.
Aún así en windows se hace pero eso es problema del "desconocimiento" del usuario, no del sistema operativo.
y openjdk?
ResponderEliminarAclaraciones..
ResponderEliminar1.Malware=virus,troyanos,spyware,...
2.un troyano es un programa que abre puertas traseras en tu sistema y por lo tanto te pueden robar lo que quieran,opcionalmente puede hacer mas cosas..
3.si tienes un bicho(virus,troyano,....) y usas windows pasate por www.forospyware.com y pasa un antivirus online por tu sistema, esto no es posible para los usuarios linux.
4.Muchos bichos,entran en tu ordenador por el navegador,TENGAS EL SISTEMA OPERATIVO QUE TENGAS
5.Mi problema estaba en el navegador chrome (google)
6.El problema ha sido solucionado,borrando el contenido de los directorios de configuracion,relacionados con los navegadores que utilizo.
7.Uso indistintamente windows/Unix
8.Un troyano para windows,NO SUELE FUNCIONAR, en Windows..a no ser que tengas wine instalado y tengo mis dudas.
9.Un troyano Java es multiplataforma
10.No navegar con permisos de administrador,uses linux o windows.
11.
12.
............
No me queda claro q es un troyano o una troya es lo mismo???? jajajaaaaa
Eliminarq pelmazos sois!!!! creen saber algo... Win bla bla bla unix bla bla bla linux bla bla bla sois tremendos batracios en una laguna de ignorancia!!! valeee
Que gracioso el linuxero, instalar fácilmente en Linux dice... Lo único que estoy de acuerdo es que Linux es mas seguro eso si quien iba a querer robar a menos de un 1% de los usuarios de internet si el iPhone tiene mas del triple de usuarios que Linux no se puede comparar Linux con Windows no se porque molesta eso a la gente
ResponderEliminarAl final todo se reduce a "quien la tiene más grande"
ResponderEliminarMi pc tiene mas gráfica que el tuyo!! (flipao con demasiada pasta)
Mi linux tiene menos virus que tu windows!!(lusers)
Mi iphone tiene mas apps que tu nokia!! (pijo payaso)
Yo uso un mac!! (este es el peor....)
Al final, todos somos unos tecnoesclavos...
Si dejas activado el java update puedes ser hackeado facilmente...
ResponderEliminarsalu2
para los enteraos windows
ResponderEliminarda igual el sitema operativo..
demostracion de backdoor multiplataforma::
http://www.f-secure.com/weblog/archives/jar_code.PNG
salu3
El problema que tiene Java es el problema de la dependencia de algunos programas con versiones concretas de Java, que actualizaciones posteriores del JRE imposibilitan seguir usando el programa o que este se ralentice de manera importante.
ResponderEliminarYo conozco dos casos vividos en primera persona, uno el software que acompañaba a una sonda de medición radio-electríca el cual era dependiente de una versión en concreta, no tener esa versión en concreto significaba no poder correr el programa. El otro caso, es el programa que utiliza la ANECA/Ministerio de Educación para el desarrollo de la memoria de verificación de los titulos universitarios, curiosamente sí corrías una versión en concreto, el programa iba fluido y rápido, si actualizabas de versión, resulta que el programa iba tan lento que era imposible trabajar con normalidad, de ahí que tuvieramos que desinstalar y volver a la versión que sabíamos que funcionaba.
Saludos
Buenos días
ResponderEliminarLlego un poco tarde pero por si le llega alguna alerta a Sergio ¿Qué sentido tiene la última frase? "Evitar el JavaScript selectivamente": Sergio, no estarás queriendo decir que JavaScript tenga que ver con Java...
Un saludo
En los ataques, sí tiene que ver. Se usa JavaScript para cargar el Jar, pasarle parámetros, crear URLs, ofuscar código.... En general, deshabilitar JavaScript evita en primera instancia (como dice la frase son "otros métodos") muchos ataques, no solo a través de applets (ActiveX, Flash...).
ResponderEliminarO sea, no es que tenga ver con Java sino con la forma de cargar las applets.
EliminarMuchas gracias, Sergio.
solucion??
Eliminar-desactivar java en los navegadores
-desactivar actualizacion automatica de java
y si actualizas tambien!!
ResponderEliminarque desastre ..