En el día de ayer os informábamos acerca de un agujero de seguridad que había sido detectado en Java, más concrétamente en la versión 7. En ese momento se sabía poco acerca de esta vulnerabilidad, sólo que afectaba a todos los navegadores y que permitía la ejecución de cualquier programa en un equipo de forma remota.
Tras un día de investigaciones, los expertos en seguridad han indicado que un fallo en la programación de los paquetes de Java es el desencadenante de todo este problema. Los expertos en seguridad también han afirmado que es recomendable que se deshabiliten las extensiones que utilicen Java de los navegadores para poder evitar que esta vulnerabilidad sea utilizada por terceras persona para tomar el control del equipo.
A continuación puedes conocer más detalles sobre el agujero de seguridad.
Lo peor de todo esto, es que cualquiera que tenga ciertas nociones de programación puede utilizar el agujero de seguridad. Tal y como indicábamos con anterioridad, expertos en seguridad han llegado hasta lo que parece ser es la base del problema. De momento, Oracle no ha vertido ningún tipo de comunicado ni ha anunciado ninguna actualización para resolver el problema.
Fallos en la programación de una librería
Para que todos seáis capaces de entender el problema, Java esta formado por miles de librerías, y estas librerías a su vez contienen métodos que pueden ser utilizados por los programadores para desarrollar aplicaciones o bien pueden ser usados por las propias aplicaciones, en este caso, las extensiones de los navegadores.
Parece ser que en la clase sun.awt.SunToolkit que posee Java 7, se han añadido y modificado métodos que permiten desactivar el SecurityManager de Java, es decir, el SandBox, que no es ni más ni menos que una forma de separar procesos sospechosos y que éstos se ejecuten de forma segura sin causar daños al sistema.
Para los que tenéis ciertas nociones de programación o habéis incluso seguido nuestro Curso de Java, sabéis que los métodos pueden ser públicos o privados. El que sean públicos implica que cualquiera puede tener acceso a su ejecución. Si encima este método posee llamadas a otros métodos también se tendría acceso a las llamadas de éstos.
En esta versión de Java, uno de los métodos que son añadidos es el método execute(). Un fallo en la programación de este método ha derivado en que se tenga acceso al método getField(), que a priori debería ser «oculto».
Acceso total para permitir la ejecución de cualquier instrucción o sentencia Java
El fallo de seguridad mencionado con anterioridad hace que una tercera persona pueda crear objetos que definen el nivel de seguridad de Java, es decir, los permisos de ejecución. Para esto se ayuda del método getField() para crear un objeto AccessControlContext y que una vez creado le permitirá desactivar la SandBox utilizando la siguiente instrucción: System.setSecurityManager(null).
Una vez ha conseguido hacer esto, el atacante es capaz de instalar y ejecutar cualquier comando en o programa en el equipo.
Desde el formateo del disco duro, hasta la instalación de aplicaciones
Gracias a este fallo de seguridad, el atacante tendría control total sobre el equipo afectado. Podría hacer cualquier tipo de acción, desinstalar programas, instalar los programas que él quiera, transferir archivos que se encuentren en el equipo afectado al suyo, formatear el disco, …. Estamos hablando de un control total sobre el equipo.
Deshabilitar las extensiones de los navegadores de forma inmediata
Los expertos en seguridad recomiendan encarecidamente deshabilitar cualquier actividad que Java pueda llevar a cabo en los navegadores Safari, Opera, Firefox, Chrome e Internet Explorer.
A continuación os indicamos una serie de pautas que debéis seguir hasta que Oracle publique alguna actualización:
- Desactivar las extensiones de Java.
- En las páginas web que sea necesaria la utilización de Java, utilizar Firefox con el complemento No-Script.
- Si utilizas Google Chrome, deshabilitar los complementos afectados (Lista de complementos disponibles).
- Si utilizas Safari, desactiva Java.
- En el caso de Internet Explorer, deberás acceder al menú de gestión de complementos y desactivar los complementos que utilicen Oracle Java.
- Si utilizas Opera, introduce en la barra de direcciones:»opera:plugins«. Luego desactiva los complementos afectados.
Volver a la versión Java 6 no es la solución
Aunque pueda parecer la solución más fácil, es probable que los delincuentes ya hayan ideado exploits que sean capaces de aprovechar el mismo problema de seguridad o de una forma similar.
De momento la mejor solución es desactivar los complementos del navegador y esperar a que Oracle publique una actualización que sea capaz de resolver el problema.
Más información: The H Security