[ad_1]
Les versions 15 et supérieures de Java comportent une faille dans la mise en œuvre de son algorithme de signature numérique à courbe elliptique (ECDSA) qui pourrait être exploité par les cybercriminels pour signer numériquement des fichiers en forgeant certains types de certificats SSL (Secure Sockets Layer), de jetons Web JSON signés (JWT) et même de messages d’authentification à deux facteurs. Le problème a été découvert pour la première fois l’année dernière et a été signalé à Oracle, qui l’a finalement corrigé la semaine dernière. Cependant, étant donné que les organisations prennent le temps de mettre à jour leurs systèmes avec les dernières versions, tout appareil qui utilise les versions Java affectées pour consommer des données signées numériquement pourrait être en danger.
Oracle a corrigé le problème, ce qui est également appelé une erreur au sein de la communauté, en tant que partie de plus de 500 correctifs. La vulnérabilité est suivi en tant que CVE-2022-21449.
Neil Madden, chercheur au cabinet de conseil en sécurité ForgeRock, a découvert la faille de sécurité et l’a signalée à Oracle en privé en novembre. Bien que la société de logiciels ait donné une cote de gravité de 7,5 sur 10 au problème, les experts, y compris ForgeRock, considèrent qu’il s’agit d’un défaut avec le indice de gravité de 10 — « en raison du large éventail d’impacts sur différentes fonctionnalités » qui pourraient avoir un impact important.
« Si vous exécutez l’une des versions vulnérables, un attaquant peut facilement falsifier certains types de certificats SSL et de handshakes (permettant l’interception et la modification des communications), des JWT signés, des assertions SAML ou des jetons d’id OIDC, et même des messages d’authentification WebAuthn. Le tout en utilisant l’équivalent numérique d’une feuille de papier vierge », Madden écrivirent dans un article de blog.
Les cybercriminels et les pirates pourraient utiliser la faille pour signer numériquement une application ou un fichier malveillant qui pourrait avoir un ensemble différent d’implications pour les consommateurs finaux. Cela pourrait permettre aux attaquants d’obtenir un accès par porte dérobée aux systèmes ou même de pirater un réseau en utilisant des fichiers et des données qui semblent authentiques et dignes de confiance.
Java utilise ECDSA qui est basé sur les principes de la cryptographie à courbe elliptique – l’une des approches connues et largement adoptées pour permettre l’accord clé et les signatures numériques. Le chercheur a constaté que le bogue a été introduit par une réécriture de la cryptographie à courbe elliptique de C ++ natif à Java, qui a eu lieu avec la sortie de Java 15.
Les signatures numériques basées sur la cryptographie à courbe elliptique exigent généralement que les utilisateurs prouvent aux destinataires qu’ils ont accès à la clé privée correspondant à la clé publique. Cela permet de vérifier l’authentification et permet aux utilisateurs d’accéder aux données. Il empêche également les utilisateurs de présenter une signature numérique pour les poignées de main qui n’ont pas accès à une clé privée pertinente.
Cependant, en utilisant la faille, un attaquant pourrait utiliser une signature vide qui pourrait être considérée comme valide et vérifiée par le système par rapport à toute clé publique.
Madden appelle ces signatures comme un « papier psychique » – le dispositif d’intrigue qui est apparu sur la science-fiction de longue date Doctor Who. Il s’agissait essentiellement d’un papier complètement vierge, mais il a été conçu pour fonctionner comme une carte de sécurité, un mandat ou une preuve sur la base de ce que le protagoniste veut que les autres voient.
« Une signature ECDSA se compose de deux valeurs, appelées r et s », a déclaré le chercheur tout en expliquant la faille. « Pour vérifier une signature ECDSA, le vérificateur vérifie une équation impliquant r, s, la clé publique du signataire et un hachage du message. Si les deux côtés de l’équation sont égaux, alors la signature est valide, sinon elle est rejetée.
Le processus implique une condition selon laquelle le R et le S dans le calcul ne doivent pas être un zéro. Ce n’est cependant pas le cas avec l’implémentation de la vérification par Java.
« L’implémentation javaienne de la vérification de signature ECDSA n’a pas vérifié si R ou S étaient nuls, vous pouvez donc produire une valeur de signature dans laquelle ils sont tous les deux 0 (correctement codés) et Java l’accepterait comme une signature valide pour tout message et pour toute clé publique », a déclaré Madden.
Faisant écho à la gravité soulignée par Madden, l’expert en sécurité Thomas Ptacek dit que le problème est le « bug crypto de l’année ».
La société de sécurité des données Sophos dans un article de blog également Souligné que le bogue n’affecte pas seulement les serveurs Java qui interagissent avec le logiciel client.
« Tout appareil qui consomme des données signées numériquement à l’intérieur de votre réseau pourrait être à risque », a-t-il déclaré.
Les versions de Java concernées – Java 15 à 18 – ne sont heureusement pas aussi largement utilisées que ses versions précédentes. Selon les données d’une enquête menée entre février et mars 2021, la société de cybersécurité Snyk dit que Java 11 représentait plus de 61 % du total des déploiements, tandis que Java 15 représentait une part de 12 %.
Néanmoins, il est conseillé aux administrateurs informatiques et aux organisations de mettre à jour rapidement leur version de Java pour éviter toute attaque future.
[ad_2]
Source link