Janus Exploit permet aux attaquants de modifier des applications sans affecter les signatures

La vulnérabilité Janus permet aux attaquants de modifier les applications sans affecter leurs signatures. Il a été découvert par GuardSquare et a été corrigé par Google.

Android est installé sur un très grand nombre d’appareils, ce qui en fait une cible pour les attaquants malveillants. Des vulnérabilités dans le système d'exploitation mobile de Google continuent d'être découvertes chaque mois, mais la bonne nouvelle est que Google est généralement diligent pour les corriger dans des correctifs de sécurité réguliers qui sont ensuite proposés aux OEM, qui les expédient ensuite à dispositifs.

Récemment, des chercheurs en sécurité ont découvert une vulnérabilité qui a incité les utilisateurs à permettre aux attaquants d'enregistrer l'écran de leur appareil. Cet exploit particulier a été corrigé dans Android Oreo, mais les analystes de GardeCarré a récemment signalé une autre vulnérabilité grave qui affecte les applications Android signées par un ancien système de signature.

GardeCarréle rapport de indique que le

Janusvulnérabilité (CVE-2017-13156) dans Android permet aux attaquants de modifier le code des applications sans affecter leurs signatures. Le rapport poursuit en disant que la racine de la vulnérabilité est qu’un fichier peut être à la fois un fichier APK valide et un fichier DEX valide.

Janus profite du fait que les octets supplémentaires passent inaperçus dans les fichiers APK et DEX. Le GardeCarré Le rapport explique qu'un fichier APK est une archive ZIP qui peut contenir des octets arbitraires au début, avant et entre ses entrées ZIP. Le schéma de signature JAR ne prend en compte que les entrées ZIP, ignorant les octets supplémentaires lors du calcul ou de la vérification de la signature de l'application.

Il continue en expliquant qu'un fichier DEX, en revanche, peut contenir des octets arbitraires à la fin - après les sections régulières de chaînes, de classes, de définitions de méthodes, etc. Par conséquent, un fichier peut être à la fois un fichier APK valide et un fichier DEX valide.

GardeCarré mentionne également qu'un élément clé de la vulnérabilité est une fonctionnalité « inoffensive » de la machine virtuelle Dalvik/ART. Le rapport indique qu'en théorie, le runtime Android charge le fichier APK, extrait son fichier DEX puis exécute son code. Cependant, en pratique, la machine virtuelle (VM) peut charger et exécuter à la fois des fichiers APK et des fichiers DEX. Le problème est que lorsque la VM reçoit un fichier APK, elle examine toujours les octets magiques dans l’en-tête pour décider de quel type de fichier il s’agit: DEX ou APK. En trouvant un en-tête DEX, il charge le fichier en tant que fichier DEX. S'il ne trouve pas d'en-tête, il charge le fichier en tant que fichier APK contenant une entrée zip avec un fichier DEX. Ainsi, il peut mal interpréter les doubles fichiers DEX/APK.

GardeCarré dit qu'un attaquant peut exploiter cette fonctionnalité de dualité de la VM pour ajouter un fichier DEX malveillant à un fichier APK normal sans affecter sa signature. Le moteur d'exécution Android acceptera le fichier APK comme une mise à jour valide vers une version antérieure légitime de l'application, mais la machine virtuelle Dalvik chargera le code du fichier DEX, dans lequel du code malveillant a été injecté.

Normalement, chaque fois qu'un utilisateur installe une version mise à jour d'une application, la signature de l'application est vérifiée par le moteur d'exécution Android pour garantir qu'elle correspond à l'ancienne version. Lorsque la vérification est positive, l'application mise à jour obtient les autorisations qui avaient été accordées à l'application d'origine. De cette manière, les attaquants peuvent utiliser la vulnérabilité Janus pour contourner le processus de vérification de signature et installer du code non vérifié sur les appareils d'utilisateurs sans méfiance.

Ce qui est encore pire, c'est que ce code non vérifié peut accéder à des autorisations puissantes. Cela donne lieu à de graves possibilités. GardeCarré États:

"Un attaquant peut remplacer une application de confiance dotée de privilèges élevés (une application système, par exemple) par une mise à jour modifiée pour abuser de ses autorisations. Selon l'application ciblée, cela pourrait permettre au pirate informatique d'accéder aux informations sensibles stockées sur l'appareil ou même de s'emparer complètement de l'appareil. Alternativement, un attaquant peut transmettre un clone modifié d'une application sensible comme une mise à jour légitime [qui] peut ressembler et se comporter comme l'application d'origine mais injecter un comportement malveillant. »

La société a ajouté que pour l’instant, elle n’avait vu aucune application exploitant Janus dans la nature. L'autre bonne nouvelle est que la vulnérabilité oblige un utilisateur à installer une mise à jour malveillante à partir d'une source extérieure au Google Play Store. Par conséquent, les utilisateurs qui limitent les installations d’applications au Play Store sont protégés.

La vulnérabilité Janus affecte les appareils exécutant Android 5.0+. Les applications signées avec le schéma de signature APK v1 sont concernées. Les APK signés avec le schéma de signature v2 sont protégés contre la vulnérabilité. Cela nécessite que les APK s'exécutent sur des appareils prenant en charge le dernier schéma de signature (Android 7.0 et versions ultérieures). Le schéma v2 est protégé car contrairement au schéma v1, il prend en compte tous les octets du fichier APK.

"Les anciennes versions d'applications et les applications plus récentes exécutées sur des appareils plus anciens restent sensibles. Les développeurs devraient au moins toujours appliquer le schéma de signature v2," GardeCarré États.

GardeCarré a signalé ce problème à Google le 31 juillet 2017 et a reçu un accusé de réception le même jour. Le rapport de la société indique que Google a publié un correctif à ses partenaires en novembre et publié le bug (CVE-2017-13156) dans le bulletin de sécurité Android du 4 décembre 2017. La vulnérabilité a a été corrigé dans le correctif de sécurité Android de décembre 2017. Par ailleurs, il a été confirmé que les applications F-Droid de leur référentiel officiel sont sûres. Enfin, il a été confirmé que la vulnérabilité a été corrigée. APKMiroir.


Source: GuardSquare