Le 31 mars dernier, on découvrait et corrigeait une nouvelle faille de type Zero-Day dans le framework Java Spring. Une vulnérabilité largement exploitée, puisque le code s’est retrouvé sur le web. Et un goût de « déjà vu », si l’on se remémore la faille débusquée dans la bibliothèque Java Log4J, en décembre 2021.
Ce framework, très fortement utilisé par les développeurs d’application web, est inclus dans un grand nombre de logiciels. C’est la raison qui pousse certains observateurs à faire le parallèle avec Log4Shell, l’une des pires menaces de l’histoire, survenue il y a quelques mois.
Les détails techniques de Spring4shell
Nous trouvons la faille dans la fonction getCachedIntrospectionResults. Elle expose l’ensemble de la classe de l’objet au moment de l’association des paramètres.
Ce qui est impacté, c’est le mécanisme qui associe les requêtes HTTP à des objets d’une application. Pour faire simple, l’utilisateur forge une requête HTTP (via l’URL) et attend, en réponse, le détail de la classe d’objet.
Une exposition pareille laisse la possibilité de charger un code malveillant au retour, capable de modifier la classe dynamiquement, voire d’exécuter du code.
Dans le cas qui nous intéresse, il s’agit de charger un webshell, ce qui donne à l’attaquant le contrôle total de la machine à distance. Ceci avec les droits d’exécution de la machine Java.
L’origine de la faille remonte au commentaire autour d’une fonction hypothétiquement dangereuse exposée par Spring. Il mettait en garde le développeur d’un risque de sécurité.
Suite à ceci, plusieurs recherches de vulnérabilités furent engagées sur le mécanisme dont nous vous parlions précédemment. Ces efforts ont abouti à la découverte de la CVE (Common Vulnerabilities and Exposures) en question : Spring4Shell.
Finalement, on constate que la faille est un contournement d’une plus ancienne CVE (CVE-2010-1622). Une vulnérabilité qui impacte le constructeur de la classe CachedIntrospectionResults d’ores et déjà patchée.
Stormshield, un rempart puissant contre les cyberattaques
Stormshield Network Security a publié une signature IPS qui permet la détection et le blocage, depuis une requête HTTP POST, des tentatives de manipulation de la classe « classLoader ».
Ces requêtes fonctionnent via l’analyse du trafic HTTP. Celui-ci se doit d’être limpide au moment de son inspection. Dans le cas où le flux serait chiffré, le proxy SSL doit être activé (flux sortant). Sinon, le déchiffrage peut s’effectuer sur un autre équipement en amont.
La signature en question est la suivante :
http:client:data. 163 → Spring4Shell RCE attempt on HTTP POST request (CVE-2022-22925)
La solution Stormshield Endpoint Security
SES est une solution de protection de postes et serveurs. Elle ne bloque pas l’exploitation de cette faille. Cependant, elle empêche le payload de se dérouler normalement, et c’est ainsi qu’on évite les dégâts.
Vous pouvez ajouter un audit de création de fichier *.jsp directement dans les dossiers du serveur susceptibles d’être touchés par Spring4Shell. Ceci est possible avec ses deux versions : SES version 7.2 ou Evolution. Cette règle vous permet d’être alerté en un temps record si un hacker tente de déposer un fichier avec du code Java (durant l’attaque).
Stormshield, partenaire de confiance de Synexie
Synexie est ravi d’être partenaire Gold de la référence qu’est Stormshield. C’est bien grâce à l’excellence et aux savoir-faire de nos partenaires que nous sommes à la pointe de la lutte en matière de cybersécurité. Pour cette raison, nous sommes capables de fournir un plan de sécurité sur-mesure à nos clients.
Comme nous vous l’expliquions la semaine dernière, le risque cyber ne fait que grandir et 2022 s’annonce comme une année particulièrement difficile. Contactez-nous si vous souhaitez discuter des solutions que nous pouvons vous apporter pour sécuriser votre entreprise.