domingo, 25 de octubre de 2009

Sé normal, Java.


¿Qué podríamos pensar de una aplicación que al actualizarse no desinstala versiones anteriores? Desde el punto de vista operativo, nos preocuparía que esté ocupando espacio necesario en nuestro equipo de cómputo. Desde el punto de vista de seguridad, podría ser posible que se invocaran a las versiones anteriores para explotar esas antiguas vulnerabilidades?

La versión más reciente de Java JRE es la 6-16 y al instalarla no remueve ninguna versión anterior de este programa que esté presente en el equipo. La idea de actualizar o parchar es remover las debilidades encontradas en las versiones anteriores de un programa, pero si la versión anterior vulnerable permanece “viva” en el sistema, entonces sirve de algo instalar el programa más reciente?

Java de alguna manera inhabilita –en la navegación web- las versiones anteriores al momento de instalar la más reciente; sin embargo, ya ha sido posible en el pasado invocar a versiones vulnerables anteriores y explotar sus debilidades, haciendo inútil el intento del usuario por permanecer al día.

Por ejemplo, hace un par de años, el Bug ID 6281384 del fabricante describía cómo era posible para un applet decidir qué versión de Java usar dentro del sistema. Claramente, lo anterior permitiría a un atacante fabricar un sitio con un script malicioso que precisamente decidiera usar las viejas versiones de JAVA para explotar sus debilidades y a partir de ahí llevar a cabo acciones no autorizadas. El bug fue resuelto, pero siempre está latente que alguien encuentre un nuevo bug que permita lo ya descrito.

Algunos programadores que desarrollan programas en la empresa (in-house), se podrían quejar de que sus aplicaciones dejan de funcionar si se desinstalan las versiones anteriores de Java, ya que la ejecución de lo que han desarrollado se “amarra” a una de las viejas versiones.

Una buena práctica es no anclar de esta manera a las aplicaciones e invocar y usar en todo momento la versión más reciente de Java; esto da libertad operativa y propicia un ambiente más protegido.

La recomendación para ambientes caseros y empresariales, es desinstalar manualmente -siempre que sea posible- las versiones anteriores de Java, ya que esto no sucede automáticamente como se podría esperar. A mí me dejó tres versiones anteriores de Java en un equipo, las quité y no experimenté ningún problema. ¿Y ustedes, a cuántas versiones de este programa le dan hospitalidad en sus equipos?