Acerca de los agujeros de seguridad en Java

FlamingGodzilla
A estas alturas ya sabrán que hay una cantidad absurda de noticias respecto a subsecuentes agujeros de seguridad en la maquina virtual de Java.
Hace un tiempo escribí un poco al respecto de los planes que tiene Oracle, sin embargo hay información nueva vale la pena resaltar para seguirle los pasos a Oracle para ver como termina todo esto y ver si es tiempo de migrar todo a Ruby en Patines :).

¿De que se trata este problema, puedo ser afectado por estos errores?

Como explica Tim Boudreau en una descripción detallada del error, los Java applets son pequeños programas que se ejecutan en el explorador web similar a programas en Javascript o Flash. En su diseño original estos programas son ejecutados dentro de un «sandbox» en la JVM para que en teoría solo puedan realizar operaciones limitadas y solicitar autorización al usuario cuando requieren privilegios elevados como por ejemplo acceder a archivos dentro del computador o utilizar dispositivos de entrada.
El problema inicia cuando varias personas han encontrado como saltarse el sandbox de Java y ejecutar estas operaciones sin solicitar permisos al usuario.

¿Porque el problema con Java ha tenido tanta cobertura?

Oracle afirma existen más de mil millones de instalaciones de Java que al existir estos errores se convierten en mil millones de potenciales puntos de ataque (similar a lo que ocurria con Flash), ademas de esto porque el record de Java en seguridad ha sido considerablemente bueno con lo cual tantos problemas en un corto periodo de tiempo se ha vuelto una sorpresa.

¿El problema puede afectarme a mi?

La respuesta es: depende, este error no afecta a las instalaciones de escritorio, enterprise o embedidas de Java porque estas sencillamente se ejecutan con todos los privilegios, sin embargo si un usuario acostumbra visitar paginas de dudosa procedencia podría ser atacado no solo mediante Java, sino también con códigos más simples en Javascript o Flash, el saltarse los sandbox no es algo nuevo para los atacantes.

¿Quien es el responsable de actualizar Java, porque la respuesta es tan lenta?

La respuesta de nuevo es depende, existe más de una maquina virtual de Java donde cada uno de sus creadores es responsable de mantenerla al día. En el caso de las maquinas virtuales soportadas por Oracle (Hotspot, JRockit y OpenJDK) el responsable es Oracle (duh!) que tiene una política bastante clara pero poco conocida al respecto del manejo de estos errores, en palabras de seres humanos normales es «si el error no es tan grave, la actualizacion llegara en un periodo maximo de 3 meses, si el error es muy grave, se generará una actualización de seguridad en el menor tiempo posible», motivado de nuevo por la relativa omnipresencia de Java lo que significaría un dolor de cabeza a varios administradores de sistemas, especialmente aquellos que tengan un numero considerable de sistemas a su cargo.

¿Y porque no se hacen actualizaciones incrementales como en Windows o Linux?

Básicamente por la forma monolítica en la que esta construida la maquina virtual. Aunque Oracle mantiene la maquina virtual de referencia (OpenJDK) decisiones tan radicales son planificadas por el JCP (el consorcio que dirige el desarrollo de Java). Sin embargo esta característica ya esta planificada y depende del avance del proyecto Jigsaw para la modularización de Java, entonces es cuestión de tiempo.

¿Todo es culpa de que el código sea propietario?

Diremos que en parte si, que el software sea Open Source o no nunca garantiza que un software no tenga fallos de seguridad (de hecho son bastante comunes) pero generalmente garantiza que habrá alguien cuidando que el software reciba más colaboraciones.
Aunque la mayoría de código fuente fue liberado por Sun, el plugin para navegadores web fue parte de lo que no se pudo liberar porque Sun no tenia la propiedad intelectual sobre algunos componentes y las implementaciones libres de Java como IcedTea tuvieron que implementarlo a su modo.

Oracle no ha comentado al respecto ¿Le importan poco los usuarios y desarrolladores de Java?

Dejare que ustedes decidan esto para no parecer fan de Oracle (de hecho en estos momentos programo más en C++ que en Java). Motivado por estos hechos Oracle ha intentado obtener comentarios de la comunidad de desarrolladores Java acerca de la mejor forma de manejar este problema y asignó un encargado de tiempo completo para estas políticas de seguridad, si tienen curiosidad pueden escuchar en The Aquarium la discusión de este encargado con los JUG Leaders mundiales que básicamente representan a la comunidad Java a nivel mundial.

A mi me gusta Java ¿Donde puedo colaborar o con quien tengo que hablar?

La ruta más corta seria entrar en contacto con su JUG más cercano y si están dispuestos a aportar código pues existen los proyectos AdoptOpenJDK y AdoptAJSR donde su ayuda sera bienvenida, vale la pena resaltar que los JUGs también tienen presencia en el JCP y pueden influenciar bastante.

A mi no me gusta Java ¿Vale la pena tener instalada la maquina virtual?

Depende de ustedes, en mi caso las dos veces que he sido «hackeado» fue porque deje sin bloquear mi computadora al alcance de mi novia. A opinion personal aun dependo mucho de Java y realmente me gusta la plataforma por sus virtudes, además necesito Java para utilizar Vuze, JDownloader, jugar Minecraft, y acceder a las paginas del Banco do Brasil.
Sin embargo si son adictos a la deep web y temen por su seguridad pero necesitan de Java en el escritorio, siempre esta la opción de deshabilitar solo el plugin web, de hecho Apple y Mozilla ya lo han hecho por ustedes mientras esta situación vuelve a estar bajo control.

One Reply to “Acerca de los agujeros de seguridad en Java”

Deja una respuesta

Tu dirección de correo electrónico no será publicada.