viernes, 22 de octubre de 1999

Actualización de la máquina virtual Java de Microsoft

Microsoft publica una nueva versión de su máquina virtual de Java
que elimina una vulnerabilidad en la verificación del byte-code.
La vulnerabilidad hacía posible que applets modificados al efecto
realizaran acciones no autorizadas en los sistemas de los
usuarios. Se recomienda a todos los usuarios comprueben si se
encuentran afectados y actualicen a la nueva versión en caso
necesario.
Los applets de Java tienen entre sus ventajas que son
multiplataformas y seguros, en ambos casos, el peso de estas
características recae en gran parte sobre la llamada máquina
virtual de Java.

El código que llama a los applets suele encontrarse incrustado en
un documento HTML donde, además de indicar el nombre y ubicación
del applet, se le pueden pasar distintos parámetros. Una vez el
navegador hace la petición, el applet viaja desde el servidor
Internet que lo hospeda a nuestro cliente web y se ejecuta en
nuestra máquina. La increíble potencia que ofrecen los applets de
cara a la portabilidad viene de la mano del byte-code, un código
precompilado que puede interpretar la máquina virtual de Java,
independiente del hardware y el sistema operativo.

La facilidad de los applets para viajar por Internet y ejecutarse
en nuestras máquinas lo convierten, a priori, en un arma de doble
filo. Para evitar acciones dañinas la máquina virtual establece
lo que se denomina como "sandbox", un entorno cerrado de
ejecución que impide al applet acceder directamente a recursos de
la máquina, ya sea a los archivos locales, la memoria, o al
sistema operativo. Parte de la seguridad de la máquina virtual
Java pasa por un proceso de verificación del byte-code antes de
su ejecución, donde se comprueba que cumpla con todas las normas
de seguridad preestablecidas.

Karsten Sohr, de la Universidad de Marburg, ha encontrado la
forma de burlar el proceso de verificación del byte-code,
basándose en la conversión de clases. El explotar esta
vulnerabilidad no está al alcance de cualquiera, no consiste en
escribir un applet de Java de una determinada forma, sino que
requiere que una vez precompilado se efectúen algunas
modificaciones directamente en el byte-code.

Cómo saber si estamos afectados y actualizarnos.

Microsoft recomienda la actualización a todos los usuarios
afectados, cuya versión de la máquina virtual de Java estará
comprendida entre los valores 2000-2439 y 3000-3187. Para
comprobar la versión que tenemos instalada bastará con ejecutar
el programa JVIEW desde una sesión MS-DOS. Aparecerán varias
lineas de texto, la primera similar a esta:

Microsoft (R) Command-line Loader for Java Version 5.0.xxxx

Donde xxxx representa el número de versión de la máquina virtual
de Java que tengamos instalada.

Los 7MB de la nueva versión que deberemos descargar e instalar en
los sistemas Windows 95/98 y NT afectados se encuentra disponible
en:

msjavx86.exe

Más información:

Anuncio de la vulnerabilidad
Aviso en Bugtraq
Boletín de seguridad Microsoft (MS99-045)
FAQ (MS99-045)
Nueva versión de la máquina virtual de Java de Microsoft



Bernardo Quintero