Las 10 principales vulnerabilidades de Java y cómo solucionarlas
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 en los últimos 15 años se escribieron con el lenguaje, su omnipresencia (y los vectores de ataque comúnmente conocidos) pueden ser más culpables que las debilidades de seguridad inherentes a Java por sí solas. Dicho esto, se están desarrollando nuevos enfoques (por ejemplo, Rask, Waratek) para mejorar la seguridad de las aplicaciones web Java en el nivel de Java Virtual Machine (JVM), pero para la mayoría de las organizaciones, instituir defensas de seguridad tradicionales para las aplicaciones Java puede ayudar a protegerse contra la mayoría de los exploits relacionados con Java.
Debido a la ubicuidad de Java, la gestión integral de vulnerabilidades de las herramientas y tecnologías relacionadas con Java es crucial para mantener una seguridad sólida, ya sea que esté ejecutando una canalización 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, que incluyen herramientas y aplicaciones populares para respaldar el desarrollo de aplicaciones basadas en Java.
Las 10 principales vulnerabilidades de Java
1. JUnit
Este marco de pruebas unitarias es un elemento estándar en la mayoría de los kits de herramientas de los desarrolladores de Java, lo que permite realizar pruebas de base de código rápidas y automatizadas. 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 versión 2.5.1 RC contienen varias vulnerabilidades de secuencias de comandos entre sitios (XSS).
2. Jenkins
Como el servidor de integración continua (CI) más utilizado en el mercado, Jenkins tiene un gran número de seguidores entre los desarrolladores de Java. Desafortunadamente, la popularidad como herramienta de integración continua generalmente significa más vulnerabilidades y exploits, y en el caso de Jenkins, existen múltiples vulnerabilidades XSS, falsificación de solicitudes entre sitios (CSRF) y denegación de servicio (Dos).
3. Hibernar
El popular marco de ORM Hibernate se usa comúnmente entre los desarrolladores de Java para mapear objetos de bases de datos relacionales como tablas a clases de Java. Las versiones 4.1.0 anteriores a la 4.2.1, 4.3.x anteriores a la 4.3.2 y 5.x anteriores a la 5.1.2 de la herramienta de código abierto contienen una vulnerabilidad que puede permitir a los atacantes eludir Java Security Manager (JSM).
4. Experto
Apache Maven es un administrador de compilación ampliamente utilizado para proyectos Java, lo que permite la administración central de la compilación, los informes y la documentación de un proyecto. Una vulnerabilidad en Apache Maven 3.0.4 permite a los hackers remotos falsificar servidores en un ataque de intermediario.
5. Gato gato
Este popular servidor de aplicaciones web Java ha sido uno de los favoritos entre los desarrolladores para crear 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 XSS hasta vulnerabilidades CSRF, muchas de las cuales han sido explotadas en la naturaleza.
6. 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 para 2016 la versión 8 lidere el grupo. No hace falta decir que cualquier versión de Java por debajo de la 7 debe actualizarse de inmediato, incluso la versión 7 necesita una corrección significativa para su flota de vulnerabilidades.
7. Marco de resorte
Spring es un marco de aplicaciones con su propio marco de model-vista-controlador para Java, que permite la separación de la lógica de entrada, de negocio y de interfaz de usuario. Spring, un proyecto de código abierto, no está exento de vulnerabilidades documentadas.
8. Caras de JavaServer
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.
9. IDE de Eclipse
Eclipse es una popular herramienta de escritorio para crear aplicaciones web en Java, y ha servido como el entorno de desarrollo integrado (IDE) preferido de los desarrolladores de Java durante años. Desafortunadamente, ciertas versiones de sus archivos de ayuda, de todas las cosas, son vulnerables a exploits relacionados con XSS.
10. Vaadín
Vaadin es un popular marco de trabajo de Java para crear aplicaciones web de Java contemporáneas: piense en aplicaciones web modernas de una sola página con tecnología de Java. Una vulnerabilidad XSS en el marco puede permitir a los atacantes remotos inyectar scripts arbitrarios en las páginas.
Remediación
Para corregir las vulnerabilidades anteriores, deberá 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 vulnerabilidades de Java editable puede crecer para adaptarse a cualquier comprobación personalizada de herramientas Java adicionales. Pruébalo hoy, es gratis.
Infografía de vulnerabilidades de Java
