« Agent Smith » : une nouvelle espèce de logiciel malveillant mobile découverte par Check Point,
a déjà infecté 25 millions de dispositifs Android

Des chercheurs de Check Point ont récemment découvert une nouvelle variante de logiciel malveillant pour mobile qui a discrètement infecté environ 25 millions d'appareils à l’insu total des utilisateurs. Déguisée en application associée à Google, la partie centrale du logiciel malveillant exploite différentes vulnérabilités Android connues, et remplace automatiquement les applications installées sur l'appareil par des versions malveillantes sans nécessiter d’intervention de la part des utilisateurs. Cette approche a incité les chercheurs à nommer le logiciel malveillant « Agent Smith ».

Ce logiciel malveillant accède actuellement aux ressources des appareils pour afficher des publicités frauduleuses et engranger des gains financiers. Cette activité ressemble aux campagnes précédentes telles que Gooligan, HummingBad et CopyCat. Jusqu'à présent, les principales victimes sont situées en Inde, bien que d'autres pays asiatiques tels que le Pakistan et le Bangladesh ont également été touchés.

Dans un environnement Android nettement plus sécurisé, les auteurs de « Agent Smith » semblent être passés au mode plus complexe de la recherche constante de nouvelles vulnérabilités, telles que Janus, Bundle et Man-in-the-Disk, pour créer un processus d’infection en trois étapes et constituer un botnet générant des profits.

« Agent Smith » est probablement la première campagne à avoir intégré toutes ces vulnérabilités pour les utiliser ensemble. Si « Agent Smith » est utilisé à des fins de gain financier via des publicités malveillantes, il pourrait toutefois facilement être utilisé à des fins beaucoup plus intrusives et nuisibles, telles que le vol d’identifiants bancaires. En effet, sa capacité à ne pas faire apparaître son icône dans le lanceur et imiter les applications populaires existantes sur un appareil, lui apporte d'innombrables possibilités de nuire à l'appareil de l’utilisateur.

La découverte

Début 2019, l'équipe de recherche de Check Point a constaté une recrudescence des tentatives d'attaque de logiciels malveillants sur des utilisateurs d’Android en Inde, qui présentaient de fortes caractéristiques d'exploitation de vulnérabilité Janus. Tous les échantillons recueillis par l’équipe au cours de l'enquête préliminaire étaient en mesure de masquer les icônes de leurs applications, et affirmaient être des modules de mise à jour ou de vente associés à Google (un composant clé du framework Google Play).

Au bout d’une analyse plus poussée, il est apparu clairement que l’application était malveillante, et qu’elle ressemblait initialement au logiciel malveillant CopyCat découvert par Check Point Research en avril 2016. Au fur et à mesure de l'avancement des recherches, des caractéristiques uniques ont été découvertes, ce qui a amené l’équipe à penser qu’il s’agissait d’une toute nouvelle campagne de logiciel malveillant.

Après une série d’analyses techniques et d’une recherche de menaces heuristique, Check Point a découvert qu’une infection « Agent Smith » complète comporte trois phases principales :
  1. Une application d’injection incite une victime à l’installer de son plein gré. Elle contient un Bundle sous forme de fichiers chiffrés. Les variantes de cette application d’injection sont généralement des utilitaires photo, des jeux ou des applications pour adultes.
  2. L’application d’injection déchiffre et installe automatiquement l’APK de son code malveillant principal, qui ajoute ensuite des correctifs malveillants à des applications. Le logiciel malveillant principal est généralement déguisé en programme de mise à jour Google, Google Update pour U ou « com.google.vending ». L'icône du programme malveillant principal n’apparaît pas dans le lanceur.
  3. Le logiciel malveillant principal extrait la liste des applications installées sur l'appareil. S'il trouve des applications faisant partie de sa liste de proies (codée en dur ou envoyée par le serveur de commande et de contrôle), il extrait l'APK de base de l'application cible innocente sur l'appareil, ajoute des modules publicitaires malveillants à l'APK, réinstalle l'APK et remplace l'original, comme s'il s'agissait d'une mise à jour.

Nom : deroulement.png
Affichages : 3255
Taille : 90,6 Ko
Déroulement de l'attaque de « Agent Smith »

« Agent Smith » repackage les applications ciblées au niveau smali/baksmali. Au cours du processus d'installation de la mise à jour finale, il s'appuie sur la vulnérabilité Janus pour contourner les mécanismes d’Android de vérification de l'intégrité d’une APK. À la fin de la chaîne d’infection, « Agent Smith » détourne les applications utilisateur compromises pour afficher des publicités. Dans certains cas, les variantes interceptent les événements d'affichage des publicités légitimes des applications compromises et s’identifient sur leur réseau publicitaire avec les identifiants de publicité du pirate de la campagne « Agent Smith ».

« Selon nos informations, les applications d’injection de “Agent Smith” prolifèrent via “9Apps”, une app store tierce qui cible principalement les utilisateurs indiens (hindi), arabes et indonésiens. Agent Smith” lui-même semble toutefois cibler principalement les utilisateurs indiens ».

Contrairement aux campagnes précédentes non associées à Google Play, dont les victimes sont presque exclusivement situées dans des régions et des pays moins développés, « Agent Smith » s’est immiscé avec succès dans un nombre considérable d’appareils dans des pays développés tels que l'Arabie saoudite, le Royaume-Uni et les États-Unis.

Analyse technique

« Agent Smith » possède une structure modulaire comprenant les modules suivants :
  • Chargement (loader)
  • Noyau (core)
  • Lancement (boot)
  • Correction (patch)
  • AdSDK
  • Mise à jour (updater)

Comme indiqué ci-dessus, la première étape de cette chaîne d'infection est confiée à l’injecteur. L’injecteur est une application légitime repackagée contenant du code supplémentaire : le module de chargement.

Le module de chargement a un objectif très simple : extraire et exécuter le module central (noyau) de « Agent Smith ». Le module central communique avec le serveur de commande et de contrôle, et reçoit la liste prédéfinie d’applications populaires à rechercher. Lorsqu’une application faisant partie de cette liste est présente sur l’appareil, la vulnérabilité Janus est utilisée pour injecter le module de lancement dans l'application puis la repackager. Lors de la prochaine exécution de l'application infectée, le module de lancement exécute le module de correction qui redirige les méthodes des SDK publicitaires connus vers sa propre implémentation.

Nom : module.png
Affichages : 3113
Taille : 39,8 Ko
Structure modulaire de « Agent Smith »

Module de chargement

Nom : chargement.png
Affichages : 3047
Taille : 49,6 Ko

Comme indiqué ci-dessus, le module de chargement extrait et exécute le module central. Bien que le module central réside dans le fichier APK, il est chiffré et déguisé en fichier JPG. Les deux premiers octets sont en fait l'en-tête magique des fichiers JPG, tandis que le reste des données est chiffré à l’aide d’une clé XOR.

Après l'extraction, le module de chargement ajoute le code à l'application tout en utilisant le mécanisme légitime d'Android pour traiter des fichiers DEX volumineux. Une fois le module central extrait et chargé, le module de chargement utilise la technique de réflexion pour initialiser et lancer le module central.

Module central

« Agent Smith » implémente le module central avec pour objectif de propager l'infection :
  1. Une série de vulnérabilités « Bundle » est utilisée pour installer des applications sans que la victime ne s'en aperçoive.
  2. La vulnérabilité Janus, qui permet au pirate de remplacer toute application par une version infectée.

Le module central contacte le serveur de commande et de contrôle pour tenter d'obtenir une nouvelle liste d'applications à rechercher ou, en cas d'échec, utilise une liste d'applications par défaut :
  • com.whatsapp
  • com.lenovo.anyshare.gps
  • com.mxtech.videoplayer.ad
  • com.jio.jioplay.tv
  • com.jio.media.jiobeats
  • com.jiochat.jiochatapp
  • com.jio.join
  • com.good.gamecollection
  • com.opera.mini.native
  • in.startv.hotstar
  • com.meitu.beautyplusme
  • com.domobile.applock
  • com.touchtype.swiftkey
  • com.flipkart.android
  • cn.xender
  • com.eterno
  • com.truecaller

Le module central recherche une version de chaque application figurant dans la liste et son hachage MD5 correspondant parmi les applications installées et celles en cours d'exécution dans l'espace utilisateur. Lorsque toutes les conditions sont remplies, « Agent Smith » tente d’infecter une application trouvée.

Le module central utilise l’une des deux méthodes suivantes pour infecter l’application : décompilation ou binaire.

La méthode de décompilation repose sur le fait que les applications Android sont rédigées en Java, ce qui signifie qu'il est possible de les recompiler. Par conséquent, « Agent Smith » décompile à la fois l’application d’origine et le code malveillant, et les fusionne.

Paysage de l’infection

Les injecteurs de « Agent Smith » ont adopté une tactique d'infection agressive. La simple permutation d’une application innocente contre un double infecté ne suffit pas à cette famille de logiciels malveillants. Elle le fait pour chaque application sur l'appareil tant que les noms des packages figurent sur sa liste de proies.

Cette campagne infecte également le même appareil à plusieurs reprises, dès qu’il existe de nouveaux correctifs malveillants. Cela a conduit Checkpoint à estimer qu'il pourrait y avoir plus de 2,8 milliards d'infections au total, soit environ 25 millions d'appareils uniques, ce qui signifie qu'en moyenne, chaque victime aurait subi environ 112 détournements d'applications innocentes.

En tant que vecteur d’attaque initial, « Agent Smith » exploite l’app store 9Apps, avec plus de 360 variantes différentes d’injecteur. Afin de maximiser les profits, des variantes avec SDK « MinSDK » et « OTA » sont utilisées pour infecter davantage les victimes avec d'autres familles de logiciels publicitaires. La majorité des injecteurs sur 9Apps sont des jeux, tandis que les autres appartiennent aux catégories suivantes : divertissement pour adultes, lecteur multimédia, utilitaires photo et utilitaires système.

Nom : repartition.png
Affichages : 3090
Taille : 36,1 Ko
Répartition des catégories d'applications des injecteurs

Parmi ce grand nombre de variantes, les 5 principaux injecteurs les plus infectieux ont été téléchargés plus de 7,8 millions de fois

Nom : injecteur.png
Affichages : 3183
Taille : 125,0 Ko

La campagne « Agent Smith » vise principalement les utilisateurs indiens, qui représentent 59 % de la population touchée. Contrairement à d’autres campagnes de logiciels malveillants ne s’appuyant pas sur Google Play, « Agent Smith » a un impact significatif non seulement sur les pays en développement, mais également sur certains pays développés où Google Play est facilement accessible. Par exemple, les États-Unis (avec environ 303 000 infections), l'Arabie saoudite (245 000), l'Australie (141 000) et le Royaume-Uni (137 000).

« Bien que la plupart des infections se soient produites sur des appareils fonctionnant sous Android 5 et 6, nous constatons également un nombre considérable d'attaques réussies contre les nouvelles versions d'Android.

« C'est une observation inquiétante. AOSP a corrigé la vulnérabilité Janus depuis la version 7 en introduisant la fonctionnalité APK Signature Scheme V2. Toutefois, afin de bloquer les vulnérabilités Janus, les développeurs d'applications doivent signer leurs applications avec le nouveau schéma afin que le composant de sécurité de l'infrastructure Android puisse effectuer des contrôles d'intégrité à l’aide des fonctionnalités améliorées ».

Source : Check Point

Voir aussi :

Facebook publie en open source Hermes, un moteur JavaScript léger optimisé pour exécuter React Native sur Android
Android : plus de 1 000 applications collectent nos données, malgré les autorisations refusées
Le système d'exploitation de Huawei sera plus rapide qu'Android et MacOS d'après Ren Zhengfei, le PDG de Huawei
À propos de son nouvel OS Fuchsia, Google déclare qu'il essaie « simplement de nouveaux concepts » sans chercher à remplacer Android et Chrome OS
Mozilla réinvente son application mobile sur Android pour contrer le monopole de Google Chrome