Java siempre tiene una mala reputación en lo que respecta a la seguridad, pero teniendo en cuenta que la mitad de las aplicaciones empresariales de los últimos 15 años se escribieron con este lenguaje, su omnipresencia (y los vectores de ataque comúnmente conocidos) pueden ser más culpables que las debilidades de seguridad inherentes a Java. Dicho esto, se están desarrollando nuevos enfoques (por ejemplo, Rask, Waratek) para mejorar la seguridad de las aplicaciones web de Java a nivel de la máquina virtual de Java (JVM), pero para la mayoría de las organizaciones, instituir defensas de seguridad tradicionales para las aplicaciones de Java puede ayudar a proteger contra la mayoría de los exploits relacionados con Java.

Debido a la omnipresencia de Java, la gestión integral de la vulnerabilidad de las herramientas y tecnologías relacionadas con Java es crucial para mantener una seguridad sólida, ya sea que esté ejecutando una tubería completa de CI/CD o un par de aplicaciones web empresariales internas. A continuación se presentan las 10 principales vulnerabilidades de la tecnología Java, para incluir herramientas y aplicaciones populares para apoyar el desarrollo de aplicaciones basadas en Java.

JUnit

Este marco de pruebas unitarias es un elemento estándar en la mayoría de los conjuntos de herramientas de los desarrolladores de Java, lo que permite una prueba rápida y automatizada de la base de código. Sin embargo, los archivos JUnit que vienen con otras aplicaciones pueden albergar vulnerabilidades. Por ejemplo, las versiones de Google Web Toolkit (GWT) anteriores a la 2.5.1 RC contienen múltiples vulnerabilidades de cross-site scripting (XSS).

Jenkins

Como servidor de integración continua (CI) más utilizado en el mercado, Jenkins cuenta con un gran número de seguidores entre los desarrolladores Java. Desgraciadamente, la popularidad como herramienta de integración continua suele significar más vulnerabilidades y exploits, y en el caso de Jenkins, existen múltiples vulnerabilidades XSS, de falsificación de petición en sitios cruzados (CSRF) y de denegación de servicio (Dos).

Hibernate

El popular marco ORM Hibernate se utiliza habitualmente entre los desarrolladores Java para mapear objetos de bases de datos relacionales como tablas a clases Java. Las versiones 4.1.0 antes de la 4.2.1, 4.3.x antes de la 4.3.2, y 5.x antes de la 5.1.2 de la herramienta de código abierto contienen una vulnerabilidad que puede permitir a los atacantes eludir el Administrador de Seguridad de Java (JSM).

Maven

Apache Maven es un gestor de construcción ampliamente utilizado para los proyectos Java, que permite la gestión central de la construcción de un proyecto, la presentación de informes y la documentación. Una vulnerabilidad en Apache Maven 3.0.4 permite a los hackers remotos suplantar servidores en un ataque de tipo man-in-the-middle.

Tomcat

Este popular servidor de aplicaciones web Java ha sido un eterno favorito entre los desarrolladores para construir servlets y aplicaciones con JavaServer Pages. Con más de una década de antigüedad, Tomcat ha acumulado una gama relativamente impresionante de brechas de seguridad, desde vulnerabilidades XSS hasta CSRF, muchas de las cuales han sido explotadas en la naturaleza.

Java 7

A pesar de la entrada de Java 8 el año pasado, Java 7 sigue siendo de uso predominante, aunque se espera que en 2016 la versión 8 lidere el paquete. No hace falta decir que cualquier versión de Java por debajo de la 7 debería actualizarse inmediatamente -incluso la versión 7 necesita una remediación significativa para su flota de vulnerabilidades.

Spring Framework

Spring es un marco de trabajo de aplicaciones con su propio marco de trabajo modelo-vista-controlador para Java, que permite la separación de la lógica de entrada, negocio y UI. Un proyecto de código abierto, Spring no está exento de vulnerabilidades documentadas.

JavaServer Faces

JavaServer Faces (JSF) es un marco de presentación para Java que facilita el desarrollo de elementos de interfaz de usuario reutilizables. Una vulnerabilidad en Apache MyFaces Core 2.0.x antes de 2.0.12 y 2.1.x antes de 2.1.6 puede dar a los atacantes remotos la capacidad de leer archivos arbitrarios.

Eclipse IDE

Eclipse es una popular herramienta de escritorio para construir aplicaciones web en Java, y ha servido como el entorno de desarrollo integrado (IDE) preferido de los desarrolladores de Java durante años. Desgraciadamente, algunas versiones de sus archivos de ayuda -de todo- son vulnerables a exploits relacionados con XSS.

Vaadin

Vaadin es un popular marco de trabajo de Java para construir aplicaciones web contemporáneas de Java -piensa en aplicaciones web modernas de una sola página impulsadas por Java. Una vulnerabilidad XSS en el marco puede permitir a los atacantes remotos inyectar scripts arbitrarios en las páginas.

Remediación

Para solucionar las vulnerabilidades anteriores, tendrá que identificar cuáles de estas tecnologías se están utilizando en su entorno y visitar el sitio web del proveedor/proyecto respectivo para obtener información sobre actualizaciones/parches. UpGuard puede encontrar todos estos elementos automáticamente con unos pocos clics del ratón. Además, nuestra política de vulnerabilidad de Java editable puede crecer para dar cabida a cualquier comprobación personalizada de herramientas de Java adicionales. Pruébelo hoy mismo, es gratis.

Articles

Deja una respuesta

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