jueves, 10 de enero de 2013

Nuevo 0-day en Java 7 ampliamente aprovechado por atacantes

Vuelve a ocurrir. Se descubre una grave vulnerabilidad en la última versión de Java que permite la ejecución de código con solo visitar un enlace. El fallo está siendo aprovechado por atacantes para instalar el "virus de la policía" entre otro malware, y esta vez no vale con actualizar. Los atacantes la califican como "regalo de año nuevo".

A media tarde de ayer (hora española) aparecía una alerta de nueva vulnerabilidad en Java 7u10 previamente desconocida. @Kafeine no daba detalles entonces, pero se decidió a llamar la atención debido al gran número de puntos en los que detectó que estaba siendo explotada. El fallo ya formaba parte de los kits de explotación Blackhole, Nuclear Pack, Cool Exploit Kit, Sakura... Los atacantes la conocían desde hace tiempo y estaban aprovechando para instalar todo tipo de malware, debido a la amplia difusión de estos kits. Aunque el usuario esté totalmente parcheado, se es vulnerable. Solo se puede esquivar el peligro habiendo tomado medidas adicionales.

Poco después aparecían todos los detalles. Ya existe un módulo para Metasploit, código en pastebin, y otros análisis. Oracle le asigna el CVE-2013-0422. De nuevo, no se trata de un fallo en el código (no hay desbordamientos de memoria, ni funciones mal programadas), sino de una manera inteligente (aprovechando un fallo de diseño) de eludir restricciones impuestas por Java. Se usa MBeanInstantiator para obtener una referencia a una clase en principio restringida, paro hacerlo a través de una función de confianza, y así ejecutar código. Oracle Java 7 Update 10 y todas las versiones anteriores se encuentran afectadas.

Código que aprovecha el fallo en un exploit funcional

Sorprendentemente, los antivirus (por firma y de forma estática) han conseguido un nivel de detección aceptable para una muestra relativamente nueva:


"Paunch", supuesto mantenedor de BlackHole, calificó a la vulnerabilidad de "regalo de año nuevo" para todos sus clientes del kit de explotación. Otros creadores de estos exploits aseguraron poco después que habían sido ellos los primeros en incluir esta vulnerabilidad en su software.

¿Protegerse?

Desinstalar Java del navegador es la opción más recomendable. Desde la versión anterior, además, Java permite una configuración más granular de su seguridad.


Ahora y siempre, es imprescindible configurar de forma personalizada ese diálogo, para que no ejecute ningún tipo de archivo Java "no confiable" (o sea, no firmado). Los exploits no suelen estarlo, o si lo están no son validados por autoridades certificadoras, con lo que al menos así se mitiga gran parte del problema. Mejor incluso, desactivar por completo el "Activar el contenido de Java en el navegador"

Mensaje que aparece si se pone a "alta" la nueva configuración de seguridad de Java

No se sabe cuándo lanzará Oracle una actualización. Pasarán algunos días y, aun así, teniendo en cuenta el "alto rendimiento" que ofrece a los atacantes vulnerabilidades de hace meses en sistemas que no parchean, esto seguirá siendo otra puerta abierta durante un tiempo para que el malware profesional siga su exitoso curso.

Más información:

Zero-Day Java Exploit Debuts in Crimeware

CERT Releases Oracle Java 7 Security Advisory

Java 7 fails to restrict access to privileged code

El malware de la policía aprovecha un exploit de Java "in-the-wild" y el secreto su "éxito"




Sergio de los Santos
Twitter: @ssantosv

7 comentarios:

  1. Vamos, no jodas. Con la 7.10 muchos tuvimos problemas para hacer funcionar java en Firefox: https://www.mozilla-hispano.org/foro/viewtopic.php?f=10&t=14844&p=58048

    Yo lo arreglé ayer y hoy tengo que desinstalarlo. ¿Merece la pena tener java? Sinceramente, lo dudo.

    ResponderEliminar
  2. Desde hace tiempo, los problemas en Java derivan del plugin, no de la JVM completa. NUnca ha habido muchos applets en producción, pero cada vez hay menos, de modo que no veo problema, en la mayoría de los casos en desactivar el plugin, y más ahora que a partir de la versión 7u10 se puede hacer fácilmente.

    Llevo años usando aplicaciones en Java en el lado del servidor y, sinceramente, nunca he sufrido una intrusión por ese lado. Así que pongamos las cosas en su justa medida y aclárese que la culpa no es de Java en su conjunto, sino de una minúscula parte de él.

    ResponderEliminar
  3. El problema que veo, es aquellas personas y profesionales que deben interactuar con las administraciones públicas ya que muchas de sus ventanillas virtuales operan en Java. Por lo que una desinstalación en muchos casos es inaceptable....

    ResponderEliminar
  4. Vamos a decirlo claro. Este producto es una ful. Un puñetero coladero y habría que abandonarlo de una vez por todas.
    Ya es hora de que las adminustraciones publicas busquen otro método de validación y no nos obliguen a ir a pelo por la red.

    ResponderEliminar
  5. Java 7 Update 10 0-Day Vulnerability Exploit Demo (CVE-2013-0422)
    http://youtu.be/jyLAUESuLwU?hd=1

    ResponderEliminar
  6. Oracle ya ha sacado nueva versión Java 7 Update 11 en la cual corrigen dicho bug.

    www.oracle.com/technetwork/topics/security/alert-cve-2013-0422-1896849

    ResponderEliminar
  7. Opino como ya han comentado. El problema de las Administraciones Públicas, donde trabajo es total. Estamos usando versiones de Java vulnerables desde hace años porque no tenemos soporte de las aplicaciones que en su día compramos con dinero de todos. Esas aplicaciones obligan a tener todo el parque de ordenadores (varios miles) con clientes desactualizados y completamente expuestos.

    Cualquier día... saldremos en las noticias.

    ResponderEliminar