Nous avons détecté une grande campagne de publicité en cours d'exécution pendant environ un an, avec les applications concernées installées huit millions de fois et ce, uniquement sur Google Play.

Nous avons identifié 42 applications sur Google Play comme appartenant à la campagne, qui était en cours d'exécution depuis juillet 2018. De ce nombre, 21 étaient encore disponibles au moment de la découverte. Nous avons signalé les applications à l'équipe de sécurité de Google et elles ont été rapidement supprimées. Cependant, les applications sont toujours disponibles dans les boutiques d'applications tierces. ESET détecte ce logiciel publicitaire, collectivement, comme Android/AdDisplay.Ashas.

Figure 1. Les applications de la famille Android/AdDisplay.Ashas rapportées à Google par ESET.

Figure 2. Le membre le plus populaire de la famille Android/AdDisplay.Ashas sur Google Play était « Video downloader master » avec plus de cinq millions de téléchargements.

Fonctionnalité Ashas

Toutes les applications offrent les fonctionnalités qu'elles promettent, en plus de fonctionner en tant qu'adware. La fonctionnalité du logiciel publicitaire est la même dans toutes les applications que nous avons analysées. Notez bien : L'analyse de la fonctionnalité ci-dessous décrit une seule application, mais s'applique à toutes les applications de la famille Android/AdDisplay.Ashas.

Une fois lancée, l'application commence à communiquer avec son serveur C&C (dont l'adresse IP est encodée en base64 dans l'application). Il envoie des données clés "maison" sur le périphérique concerné : type de périphérique, version du système d'exploitation, langue, nombre d'applications installées, espace de stockage libre, état de la batterie, si le périphérique est en mode root et en mode Developer activé, et si Facebook et FB Messenger sont installés.

Figure 3. Envoi d'informations sur l'appareil concerné.

L'application reçoit les données de configuration du serveur C&C, nécessaires à l'affichage des publicités, à la furtivité et à la résilience.

Figure 4. Fichier de configuration reçu du serveur C&C.

Quant à la furtivité et à la résilience, l'attaquant utilise un certain nombre d'astuces.

Tout d'abord, l'application malveillante tente de déterminer si elle est testée par le mécanisme de sécurité Google Play. A cet effet, l'application reçoit du serveur C&C le drapeau isGoogleIp, qui indique si l'adresse IP de l'appareil concerné se situe dans la plage des adresses IP connues des serveurs Google. Si le serveur renvoie cet indicateur comme positif, l'application ne déclenchera pas la charge utile du logiciel publicitaire.

Deuxièmement, l'application peut définir un délai personnalisé entre l'affichage des annonces. Les échantillons que nous avons vus avaient leur configuration réglée pour retarder l'affichage de la première annonce de 24 minutes après le déverrouillage de l'appareil. Ce délai signifie qu'une procédure de test typique, qui prend moins de 10 minutes, ne détectera aucun comportement indésirable. De plus, plus le délai est long, plus le risque que l'utilisateur associe les publicités indésirables à une application particulière est faible.

Troisièmement, en fonction de la réponse du serveur, l'application peut également masquer son icône et créer un raccourci à la place. Si un utilisateur typique essaie de se débarrasser de l'application malveillante, il y a des chances que seul le raccourci soit supprimé. L'application continue alors à s'exécuter en arrière-plan à l'insu de l'utilisateur. Cette technique de furtivité a gagné en popularité parmi les menaces liées aux logiciels publicitaires distribuées via Google Play.

Figure 5. Délai pour retarder l'affichage des annonces mises en œuvre par le logiciel publicitaire.

Une fois que l'application malveillante reçoit ses données de configuration, le périphérique affecté est prêt à afficher les publicités selon le choix de l'attaquant; chaque publicité est affichée en plein écran. Si l'utilisateur veut vérifier quelle application est responsable de l'affichage de l'annonce, en appuyant sur le bouton « Applications récentes », une autre astuce est utilisée : l'application affiche une icône Facebook ou Google, comme le montre la Figure 6. Le logiciel publicitaire imite ces deux applications pour avoir l'air légitime et éviter les soupçons - et ainsi rester sur l'appareil affecté aussi longtemps que possible.

Figure 6. L'activité des logiciels publicitaires se fait passer pour Facebook (à gauche). Si l'utilisateur appuie longtemps sur l'icône, le nom de l'application responsable de l'activité est affiché (à droite).

Enfin, la famille des logiciels publicitaires Ashas a son code caché sous le nom de paquet com.google.xxx. Cette astuce - se faire passer pour un service légitime de Google - peut aider à éviter tout examen minutieux. Certains mécanismes de détection et bacs à sable peuvent mettre de tels noms de paquets sur une liste blanche, afin d'éviter le gaspillage de ressources.

Figure 7. Code malveillant caché dans un paquet nommé « com.google ».

Traquer le développeur

À l'aide d'informations de source ouverte, nous avons retracé le développeur du logiciel publicitaire, que nous avons également identifié comme l'opérateur de la campagne et le propriétaire du serveur C&C. Dans les paragraphes suivants, nous décrivons nos efforts pour découvrir d'autres applications du même développeur et en protéger nos utilisateurs.

Premièrement, à partir des informations associées au domaine C&C enregistré, nous avons identifié le nom du titulaire, ainsi que d'autres données comme le pays et l'adresse courriel, comme le montre la Figure 8.

Figure 8. Informations sur le domaine C&C utilisé par le logiciel publicitaire Ashas.

Sachant que les informations fournies à un bureau d'enregistrement de domaine peuvent être fausses, nous avons poursuivi nos recherches. L'adresse e-mail et les informations sur le pays nous ont conduit à une liste d'étudiants suivant un cours dans une université vietnamienne - corroborant l'existence de la personne sous le nom de laquelle le domaine a été enregistré.

Figure 9. Une liste des étudiants de classe universitaire incluant le nom de domaine C&C du titulaire du domaine C&C.

En raison de mauvaises pratiques en matière de protection de la vie privée de la part de l'université de notre coupable, nous connaissons maintenant sa date de naissance (probablement : il semble avoir utilisé son année de naissance dans le cadre de son adresse Gmail, comme confirmation partielle supplémentaire), nous savons qu'il était étudiant et quelle université il fréquentait. Nous avons également pu confirmer que le numéro de téléphone qu'il a fourni à l'agent d'enregistrement de domaine était authentique. De plus, nous avons récupéré sa carte d'identité de l'université; une recherche rapide sur Google nous a permis de voir certaines de ses notes d'examen. Cependant, les résultats de son étude sont hors de la portée de notre recherche.

En nous basant sur l'adresse email de notre coupable, nous avons pu trouver son dépôt GitHub. Son dépôt prouve qu'il est bien un développeur Android, mais il ne contenait aucun code public du logiciel publicitaire Ashas au moment de la rédaction de ce billet.

Cependant, une simple recherche Google pour trouver le nom du progiciel publicitaire a retourné un projet « TestDelete » qui a été disponible dans son référentiel à un moment donné.

Le développeur malveillant a également des applications dans l'App Store d'Apple. Certaines d'entre elles sont des versions iOS de celles qui ont été supprimées de Google Play, mais aucune ne contient de fonctionnalité d’adware.

Figure 10. Les applications du développeur malveillant publiées sur l'App Store qui ne contiennent pas les adwares Ashas.

En cherchant plus loin les activités du développeur malveillant, nous avons également découvert son canal Youtube qui propage l'adware Ashas et ses autres projets. Quant à la famille Ashas, l'une des vidéos promotionnelles associées, « Head Soccer World Champion 2018 - Android, ios » a été visionnée près de trois millions de fois et deux autres ont atteint des centaines de milliers de vues, comme le montre la Figure 11.

Figure 11. Chaîne YouTube du développeur malveillant.

Sa chaîne YouTube nous a fourni une autre information précieuse : il figure lui-même dans un tutoriel vidéo pour l'un de ses autres projets. Grâce à ce projet, nous avons pu extraire son profil Facebook - qui répertorie ses études à l'université précitée.

Figure 12. Profil Facebook du bureau d'enregistrement du domaine C&C (photo de couverture et photo de profil éditée).

Lié au profil Facebook du développeur malveillant, nous avons découvert une page Facebook, Minigameshouse, et un domaine associé, minigameshouse[.]net. Ce domaine est similaire à celui utilisé par l'auteur du logiciel malveillant pour sa communication avec le C&C du logiciel publicitaire, minigameshouse[.]us.

En observant cette page Minigameshouse , on constate qu’elle indique en outre que cette personne est bien le propriétaire du domaine minigameshouse[.]us : le numéro de téléphone enregistré avec ce domaine est le même que celui qui apparaît sur la page Facebook.

Figure 13. La page Facebook gérée par le détenteur du domaine C&C utilise le même nom de domaine de base (minigameshouse) et le même numéro de téléphone que le C&C malveillant enregistré utilisé par le logiciel publicitaire Ashas.

Il est intéressant de noter que sur la page Facebook de Minigameshouse, le développeur malveillant fait la promotion d'un grand nombre de jeux au-delà de la famille Ashas pour téléchargement sur Google Play et l'App Store. Cependant, tous ces éléments ont été supprimés de Google Play - malgré le fait que certains d'entre eux ne contenaient aucune fonctionnalité de logiciel publicitaire.

De plus, l'une des vidéos YouTube du développeur malveillant - un tutoriel sur le développement d'un "Instant Game" pour Facebook - sert d'exemple de sécurité opérationnelle totalement ignorée. Nous avons pu voir que ses sites Web récemment visités étaient des pages Google Play appartenant à des applications contenant le logiciel publicitaire Ashas. Il a également utilisé son compte de messagerie pour se connecter à divers services de la vidéo, qui l'identifie comme le propriétaire du domaine adware, sans aucun doute.

Grâce à la vidéo, nous avons même été en mesure d'identifier trois autres applications qui contenaient des fonctionnalités publicitaires et qui étaient disponibles sur Google Play.

Figure 14. Captures d'écran de la vidéo YouTube de ce développeur montre l'historique de vérification des logiciels publicitaires Ashas sur Google Play.

Télémétrie d’ESET

Figure 15. Détections ESET d'Android/AdDisplay.ashas sur les appareils Android par pays.

Les logiciels publicitaires sont-ils nocifs?

Parce que la vraie nature des applications contenant des adwares est généralement cachée à l'utilisateur, ces applications et leurs développeurs doivent être considérés comme indignes de confiance. Lorsqu'elles sont installées sur un appareil, les applications contenant des logiciels publicitaires peuvent, entre autres choses :

  • Ennuyer les utilisateurs avec des publicités intrusives, y compris des publicités frauduleuses;
  • Gaspiller les ressources de la batterie de l'appareil;
  • Générer un trafic réseau accru;
  • Recueillir les renseignements personnels des utilisateurs;
  • Cacher leur présence sur l'appareil affecté pour obtenir la persistance;
  • Générer des revenus pour leur opérateur sans aucune interaction avec l'utilisateur.

Conclusion

En nous basant uniquement sur l'intelligence open source, nous avons pu retracer le développeur du logiciel publicitaire Ashas, établir son identité et découvrir d'autres applications connexes infectées par le logiciel publicitaire. Voyant que le développeur n'a pris aucune mesure pour protéger son identité, il semble probable que ses intentions n'étaient pas malhonnêtes au début - et cela est également soutenu par le fait que toutes ses applications publiées ne contenaient pas d'annonces indésirables.

À un certain moment au cours de sa « carrière » sur Google Play, il a apparemment décidé d'augmenter ses revenus publicitaires en implémentant la fonctionnalité adware dans le code de ses applications. Les différentes techniques de furtivité et de résilience mises en œuvre dans le logiciel publicitaire nous montrent que le coupable était conscient de la nature malveillante de la fonctionnalité ajoutée et a tenté de la garder cachée.

L'introduction de fonctionnalités indésirables ou nuisibles dans des applications bénignes et populaires est une pratique courante chez les « mauvais » développeurs, et nous nous engageons à traquer de telles applications. Nous les signalons à Google et prenons d'autres mesures pour perturber les campagnes malveillantes que nous découvrons. Enfin, nous publions nos résultats pour aider les utilisateurs d'Android à se protéger.

Indicateurs de compromission (IoCs)

Package name Hash Installs
com.ngocph.masterfree c1c958afa12a4fceb595539c6d208e6b103415d7 5,000,000+
com.mghstudio.ringtonemaker 7a8640d4a766c3e4c4707f038c12f30ad7e21876 500,000+
com.hunghh.instadownloader 8421f9f25dd30766f864490c26766d381b89dbee 500,000+
com.chungit.tank1990 237f9bfe204e857abb51db15d6092d350ad3eb01 500,000+
com.video.downloadmasterfree 43fea80444befe79b55e1f05d980261318472dff 100,000+
com.massapp.instadownloader 1382c2990bdce7d0aa081336214b78a06fceef62 100,000+
com.chungit.tankbattle 1630b926c1732ca0bb2f1150ad491e19030bcbf2 100,000+
com.chungit.basketball 188ca2d47e1fe777c6e9223e6f0f487cb5e98f2d 100,000+
com.applecat.worldchampion2018 502a1d6ab73d0aaa4d7821d6568833028b6595ec 100,000+
org.minigamehouse.photoalbum a8e02fbd37d0787ee28d444272d72b894041003a 100,000+
com.mngh.tuanvn.fbvideodownloader 035624f9ac5f76cc38707f796457a34ec2a97946 100,000+
com.v2social.socialdownloader 2b84fb67519487d676844e5744d8d3d1c935c4b7 100,000+
com.hikeforig.hashtag 8ed42a6bcb14396563bb2475528d708c368da316 100,000+
com.chungit.heroesjump c72e92e675afceca23bbe77008d921195114700c 100,000+
com.mp4.video.downloader 61E2C86199B2D94ABF2F7508300E3DB44AE1C6F1 100,000+
com.videotomp4.downloader 1f54e35729a5409628511b9bf6503863e9353ec9 50,000+
boxs.puzzles.Puzzlebox b084a07fdfd1db25354ad3afea6fa7af497fb7dc 50,000+
com.intatwitfb.download.videodownloader 8d5ef663c32c1dbcdd5cd7af14674a02fed30467 50,000+
com.doscreenrecorder.screenrecorder e7da1b95e5ddfd2ac71587ad3f95b2bb5c0f365d 50,000+
com.toptools.allvideodownloader 32E476EA431C6F0995C75ACC5980BDBEF07C8F7F 50,000+
com.top1.videodownloader a24529933f57aa46ee5a9fd3c3f7234a1642fe17 10,000+
com.santastudio.headsoccer2 86d48c25d24842bac634c2bd75dbf721bcf4e2ea 10,000+
com.ringtonemakerpro.ringtonemakerapp2019 5ce9f25dc32ac8b00b9abc3754202e96ef7d66d9 10,000+
com.hugofq.solucionariodebaldor 3bb546880d93e9743ac99ad4295ccaf982920260 10,000+
com.anit.bouncingball 6e93a24fb64d2f6db2095bb17afa12c34b2c8452 10,000+
com.dktools.liteforfb 7bc079b1d01686d974888aa5398d6de54fd9d116 10,000+
net.radiogroup.tvnradio ba29f0b4ad14b3d77956ae70d812eae6ac761bee 10,000+
com.anit.bouncingball 6E93A24FB64D2F6DB2095BB17AFA12C34B2C8452 10,000+
com.floating.tube.bymuicv 6A57D380CDDCD4726ED2CF0E98156BA404112A53 10,000+
org.cocos2dx.SpiderSolitaireGames adbb603195c1cc33f8317ba9f05ae9b74759e75b 5,000+
games.puzzle.crosssum 31088dc35a864158205e89403e1fb46ef6c2c3cd 5,000+
dots.yellow.craft 413ce03236d3604c6c15fc8d1ec3c9887633396c 5,000+
com.tvngroup.ankina.reminderWater 5205a5d78b58a178c389cd1a7b6651fe5eb7eb09 5,000+
com.hdevs.ringtonemaker2019 ba5a4220d30579195a83ddc4c0897eec9df59cb7 5,000+
com.carlosapps.solucionariodebaldor 741a95c34d3ad817582d27783551b5c85c4c605b 5,000+
com.mngh1.flatmusic 32353fae3082eaeedd6c56bb90836c89893dc42c 5,000+
com.tvn.app.smartnote ddf1f864325b76bc7c0a7cfa452562fe0fd41351 1,000+
com.thrtop.alldownloader f46ef932a5f8e946a274961d5bdd789194bd2a7d 1,000+
com.anthu91.soccercard 0913a34436d1a7fcd9b6599fba64102352ef2a4a 1,000+
com.hugofq.wismichudosmildiecisiete 4715bd777d0e76ca954685eb32dc4d16e609824f 1,000+
com.gamebasketball.basketballperfectshot e97133aaf7d4bf90f93fefb405cb71a287790839 1,000+
com.nteam.solitairefree 3095f0f99300c04f5ba877f87ab86636129769b1 100+
com.instafollowers.hiketop 3a14407c3a8ef54f9cba8f61a271ab94013340f8 1+

Serveurs C&C

http://35.198.197[.]119:8080

Techniques MITRE ATT&CK

Tactic ID Name Description
Initial Access T1475 Deliver Malicious App via Authorized App Store The malware impersonates legitimate services on Google Play
Persistence T1402 App Auto-Start at Device Boot An Android application can listen for the BOOT_COMPLETED broadcast, ensuring that the app's functionality will be activated every time the device starts
Impact T1472 Generate Fraudulent Advertising Revenue Generates revenue by automatically displaying ads

Bravo et merci à @jaymin9687 pour avoir attiré notre attention sur le problème des publicités indésirables dans l'application « Video downloader master ».