Java a constamment mauvaise réputation en matière de sécurité – mais si l’on considère que la moitié des applications d’entreprise de ces 15 dernières années ont été écrites avec ce langage, son omniprésence (et les vecteurs d’attaque communément connus) peut être plus à blâmer que les seules faiblesses de sécurité inhérentes à Java. Cela dit, de nouvelles approches sont en cours de développement (par exemple, Rask, Waratek) pour améliorer la sécurité des applications Web Java au niveau de la machine virtuelle Java (JVM), mais pour la plupart des organisations – la mise en place de défenses de sécurité traditionnelles pour les applications Java peut aider à se protéger contre la majorité des exploits liés à Java.
En raison de l’omniprésence de Java, la gestion complète des vulnérabilités des outils et technologies liés à Java est cruciale pour maintenir une sécurité forte – que vous exécutiez un pipeline CI/CD complet ou quelques applications Web d’entreprise internes. Voici les 10 principales vulnérabilités de la technologie Java, afin d’inclure l’outillage et les applications populaires pour soutenir le développement d’applications basées sur Java.
JUnit
Ce cadre de test unitaire est un élément standard dans la plupart des boîtes à outils des développeurs Java, permettant des tests rapides et automatisés de la base de code. Cependant, les fichiers JUnit fournis avec d’autres applications peuvent abriter des vulnérabilités. Par exemple, les versions de Google Web Toolkit (GWT) antérieures à 2.5.1 RC contiennent de multiples vulnérabilités de type cross-site scripting (XSS).
Jenkins
En tant que serveur d’intégration continue (CI) le plus couramment utilisé sur le marché, Jenkins a un grand nombre de partisans parmi les développeurs Java en conséquence. Malheureusement, la popularité en tant qu’outil d’intégration continue signifie généralement plus de vulnérabilités et d’exploits – et dans le cas de Jenkins, de multiples vulnérabilités XSS, cross-site request forgery (CSRF) et de déni de service (Dos) existent.
Hibernate
Le framework ORM populaire Hibernate est couramment utilisé parmi les développeurs Java pour le mappage d’objets de bases de données relationnelles comme les tables vers les classes Java. Les versions 4.1.0 avant 4.2.1, 4.3.x avant 4.3.2, et 5.x avant 5.1.2 de l’outil open source contiennent une vulnérabilité qui peut permettre à des attaquants de contourner le gestionnaire de sécurité Java (JSM).
Maven
Apache Maven est un gestionnaire de build largement utilisé pour les projets Java, permettant la gestion centralisée de la construction, du reporting et de la documentation d’un projet. Une vulnérabilité dans Apache Maven 3.0.4 permet à des pirates distants d’usurper des serveurs dans une attaque de type man-in-the-middle.
Tomcat
Ce serveur d’application web Java populaire a été un éternel favori parmi les développeurs pour construire des servlets et des applications avec JavaServer Pages. Ayant bien plus d’une décennie, Tomcat a amassé une gamme relativement impressionnante de failles de sécurité allant de XSS à des vulnérabilités CSRF – dont beaucoup ont été exploitées dans la nature.
Java 7
Malgré l’entrée de Java 8 l’année dernière, Java 7 est toujours utilisé de manière prédominante – bien que l’on s’attende à ce que d’ici 2016 la version 8 soit en tête du peloton. Il va sans dire que toute version de Java inférieure à 7 devrait être mise à jour immédiatement – même la version 7 a besoin d’une remédiation importante pour sa flotte de vulnérabilités.
Spring Framework
Spring est un cadre d’application avec son propre cadre modèle-vue-contrôleur pour Java, permettant la séparation de la logique d’entrée, d’affaires et d’interface utilisateur. Projet open source, Spring n’est pas sans sa part de vulnérabilités documentées.
JavaServer Faces
JavaServer Faces (JSF) est un framework de présentation pour Java qui facilite le développement d’éléments d’interface utilisateur réutilisables. Une vulnérabilité dans Apache MyFaces Core 2.0.x avant 2.0.12 et 2.1.x avant 2.1.6 peut donner à des attaquants distants la possibilité de lire des fichiers arbitraires.
Eclipse IDE
Eclipse est un outil de bureau populaire pour la construction d’applications web en Java, et a servi d’environnement de développement intégré (IDE) préféré des développeurs Java pendant des années. Malheureusement, certaines versions de ses fichiers d’aide – de toutes les choses – sont vulnérables aux exploits liés à XSS.
Vaadin
Vaadin est un framework Java populaire pour la construction d’applications web Java contemporaines – pensez aux applications web modernes à page unique alimentées par Java. Une vulnérabilité XSS dans le framework peut permettre à des attaquants distants d’injecter des scripts arbitraires dans les pages.
Remédiation
Pour corriger les vulnérabilités ci-dessus, vous devrez identifier lesquelles de ces technologies sont utilisées dans votre environnement, et visiter le site Web du vendeur/projet respectif pour obtenir des informations sur les mises à jour/patchs. UpGuard peut trouver tous ces éléments automatiquement en quelques clics de souris. En outre, notre politique modifiable en matière de vulnérabilité Java peut s’adapter à toute vérification personnalisée d’outils Java supplémentaires. Faites-en l’essai dès aujourd’hui – c’est gratuit.