Il y a cinq ans, des chercheurs ont fait une découverte inquiétante : une application Android légitime sur le marché Google Play qui avait été furtivement rendue malveillante par une bibliothèque utilisée par les développeurs pour gagner des revenus publicitaires. En conséquence, l’application était infectée par du code qui avait causé la connexion de 100 millions de dispositifs infectés à des serveurs contrôlés par des attaquants pour télécharger des charges utiles secrètes.
À présent, l’histoire se répète. Des chercheurs de la même entreprise de sécurité basée à Moscou, ont rapporté lundi avoir trouvé deux nouvelles applications, téléchargées 11 millions de fois, infectées par la même famille de logiciels malveillants. Les chercheurs de Kaspersky pensent qu’un kit de développement de logiciels malveillants destiné à l’intégration de capacités publicitaires est à nouveau responsable.
Une technique astucieuse
Les kits de développement de logiciels, mieux connus sous le nom de SDK, sont des applications qui fournissent aux développeurs des cadres pouvant grandement accélérer le processus de création d’applications en simplifiant les tâches répétitives. Un module SDK non vérifié incorporé dans les applications était censé prendre en charge l’affichage d’annonces. En coulisses, il offrait une multitude de méthodes avancées pour une communication furtive avec des serveurs malveillants, où les applications téléchargeaient des données utilisateur et recevaient un code malveillant pouvant être exécuté et mis à jour à tout moment.
La famille de logiciels malveillants furtifs impliquée dans ces deux campagnes est connue sous le nom de Necro. Cette fois-ci, certaines variantes utilisent des techniques telles que la stéganographie, une méthode d’obfuscation rarement vue dans les logiciels malveillants mobiles. Certaines variantes déploient également un savoir-faire astucieux pour délivrer du code malveillant capable de fonctionner avec des droits système accrus. Une fois les dispositifs infectés par cette variante, ils contactent un serveur de commande et de contrôle contrôlé par l’attaquant et envoient des requêtes Web contenant des données JSON cryptées rapportant des informations sur chaque appareil compromis et l’application hébergeant le module.
Le serveur renvoie en retour une réponse JSON contenant un lien vers une image PNG ainsi que des métadonnées associées incluant le hash de l’image. Si le module malveillant installé sur le dispositif infecté confirme que le hash est correct, il télécharge l’image.
Le module SDK “utilise un algorithme stéganographique très simple”, ont expliqué les chercheurs de Kaspersky dans un article séparé. “Si la vérification MD5 réussit, il extrait le contenu du fichier PNG—les valeurs des pixels dans les canaux ARGB—en utilisant des outils Android standard. Ensuite, la méthode getPixel renvoie une valeur dont l’octet le moins significatif contient le canal bleu de l’image, et le traitement commence dans le code.”
Les chercheurs ont poursuivi :
Si nous considérons le canal bleu de l’image comme un tableau d’octets de dimension 1, alors les quatre premiers octets de l’image représentent la taille de la charge utile codée au format Little Endian (de l’octet le moins significatif à l’octet le plus significatif). Ensuite, la charge utile de la taille spécifiée est enregistrée : c’est un fichier JAR encodé en Base64, qui est chargé après décodage via DexClassLoader. Le SDK Coral charge la classe sdk.fkgh.mvp.SdkEntry dans un fichier JAR en utilisant la bibliothèque native libcoral.so. Cette bibliothèque a été obfusquée à l’aide de l’outil OLLVM. Le point d’entrée pour l’exécution dans la classe chargée est la méthode run.
Les charges utiles qui s’installent téléchargent des modules malveillants qui peuvent être combinés pour chaque dispositif infecté afin de réaliser une variété d’actions différentes. L’un des modules permet au code de fonctionner avec des droits système accrus. Par défaut, Android empêche les processus privilégiés d’utiliser WebView, une extension du système d’exploitation pour afficher des pages Web dans les applications. Pour contourner cette restriction de sécurité, Necro utilise une technique de piratage connue sous le nom d’ attaque par réflexion pour créer une instance séparée de la fabrique WebView.
Ce module peut également télécharger et exécuter d’autres fichiers exécutables qui remplaceront les liens rendu par WebView. Lorsqu’ils sont exécutés avec des droits système accrus, ces exécutables peuvent modifier les URL pour ajouter des codes de confirmation pour les abonnements payants et télécharger et exécuter un code chargé à des liens contrôlés par l’attaquant. Les chercheurs ont listé cinq charges utiles distinctes qu’ils ont rencontrées dans leur analyse de Necro.
Le design modulaire de Necro ouvre d’innombrables possibilités de comportement pour le logiciel malveillant. Kaspersky a fourni l’image suivante qui offre un aperçu.
Les chercheurs ont trouvé Necro dans deux applications Google Play. L’une était Wuta Camera, une application comptabilisant 10 millions de téléchargements à ce jour. Les versions 6.3.2.148 à 6.3.6.148 de Wuta Camera contenaient le SDK malveillant qui infecte les applications. L’application a depuis été mise à jour pour supprimer le composant malveillant. Une autre application avec environ 1 million de téléchargements—connue sous le nom de Max Browser—était également infectée. Cette application n’est plus disponible sur Google Play.
Les chercheurs ont également trouvé Necro infectant une variété d’applications Android disponibles sur des places de marché alternatives. Ces applications se présentaient généralement comme des versions modifiées d’applications légitimes telles que Spotify, Minecraft, WhatsApp, Stumble Guys, Car Parking Multiplayer et Melon Sandbox.
Les personnes préoccupées par une éventuelle infection par Necro devraient vérifier leurs dispositifs pour déceler des indicateurs de compromission listés à la fin de cet article.
Il est primordial d’être vigilant concernant les applications que nous téléchargeons, car même les applications qui semblent légitimes peuvent cacher des menaces. En tant que passionné de technologie, je continue à surveiller de près ce genre de situations et à informer mes proches des risques potentiels auxquels ils peuvent faire face en utilisant des applications Android.