Android : la faille Janus permet de modifier le code d'une application sans modifier sa signature

Par:
fredericmazue

lun, 11/12/2017 - 12:25

Cette faille, découverte par la société de sécurité belge GuardSquare, et décrite dans un billet permet à des pirates d'injecter discrètement du code malveillant dans des applications.

La racine du problème est qu'un fichier peut être un fichier APK valide et un fichier DEX valide en même temps, expliquent des découvreurs de la faille, qui pour cette raison l'ont baptisé Janus, du nom du dieu romain à deux faces.

D'une part, un fichier APK est une archive zip, qui peut contenir des octets arbitraires au début, avant ses entrées zip, le schéma de signature JAR ne prenant en compte que les entrées zip. Il ignore les octets supplémentaires lors du calcul ou de la vérification de la signature de l'application. D'autre part, un fichier DEX (pour Dalvik EXecutable) peut contenir des octets arbitraires à la fin, après les sections régulières. Un fichier peut donc être un fichier APK valide et un fichier DEX valide en même temps.

En théorie, la machine virtuelle Dalvik charge le fichier APK, extrait son fichier DEX, puis exécute son code. En pratique, la machine virtuelle peut charger et exécuter à la fois des fichiers APK et des fichiers DEX. Quand elle obtient un fichier APK, elle regarde toujours les octets magiques dans l'en-tête pour décider quel type de fichier il s'agit. S'il trouve un en-tête DEX, il charge le fichier en tant que fichier DEX. Sinon, il charge le fichier en tant que fichier APK contenant une entrée zip avec un fichier DEX. Elle peut donc mal interpréter des fichiers DEX / APK doubles.

Un attaquant peut tirer parti de cette dualité. Il peut ajouter un fichier DEX malveillant à un fichier APK sans affecter sa signature. La machine virtuelle Dalvik accepte alors le fichier APK en tant que mise à jour valide d'une version antérieure légitime de l'application et charge le code à partir du fichier DEX injecté.

GuardSquare a signalé cette faille à Google le 31 juillet 2017. Google a diffusé un correctif à ses partenaires dès novembre. Encore faut-il que le correctif arrive sur les terminaux des utilisateurs. Les Pixel, les Nexus, l’Essential Phone et le Nokia 3 en bénéficient déjà. Pour les autres appareils cela dépend, comme toujours, de la réactivité, pour ne pas dire du bon vouloir des constructeurs.

Commentaires

Mon samsung sorti en septembre 2013 n'a plus de mises à jour de sécurité depuis juillet 2015, merci samsung pour ces centaines de failles béantes sur un smarthpone à 600 euros ! Le prochain sera un iphone, au moins il y a 5 ans de mises à jour de sécurité au minimum.