Analyse de la dernière faille de sécurité Java découverte
Des spécialistes de sécurité viennent d'analyser la faille de sécurité zero-day découverte il y a quelques jours dans la JVM Oracle. Cette faille permet à un pirate d’exécuter du code malveillant à distance sur votre ordinateur depuis une applet Java référencée par une simple page Web.
Le code source de la faille après reverse-engineering est présenté par Mark Canning sur GitHub :
https://gist.github.com/4506143
La faille consiste à faire exécuter à la JVM de l'Applet, la commande suivante sans qu'elle ne se rende compte qu'elle ne possède pas les droits suffisants pour l'exécuter :
System.setSecurityManager(null);
Cette commande permet à l'applet Java de sortir de sa Sandbox et d'avoir accès à toutes les autorisations d'un processus normal. Notamment, l'autorisation d’exécuter la commande "exec()" qui va permettre à l'applet d'exécuter des commandes "shell" à distance :
Runtime.getRuntime().exec("logiciel.exe");
La classe "System" ne pouvant être appelée depuis une applet, le pirate passe par un serveur JMX pour instancier un loader dynamique de classe "GeneratedClassLoader". Une fois instanciée, l'instance est utilisée pour interpréter un code pré-compilé contenu dans une chaîne de caractères et faisant référence à "System.setSecurityManager(null)" et permettant à l'applet de sortir de sa Sandbox.
CAFEBABE0000003200270A000500180A0019001A07001B0A001C001D07001E07001F0700200100063C696E69......
Une fois sortie de sa Sandbox, l'applet possède tous les droits sur la machine. Dans l'exemple détaillé sur GitHub, l'exploit exécute la calculatrice Windows. Cependant un pirate pourrait potentiellement installer un trojan sur votre ordinateur afin de pouvoir le contrôler à distance et d'avoir accès à l'ensemble de vos fichiers.
L'erreur d'Oracle a été d'oublier d'interdire l'exécution de la classe "GeneratedClassLoader" du package "org.mozilla.javascript" depuis une Applet Java.
En attendant un correctif de la part d'Oracle, je vous conseille vivement de désactiver dès maintenant le plugin Java de votre navigateur.
De nombreux portails Web ont été infectés et infectent tous les visiteurs, voici la carte d'analyse d'impacts réalisée par Kurt Baumgartner de Kaspersky.
Sortez couverts !
UPDATE : Une mise à jour de la JVM Oracle vient d'être mise en ligne