Traquer le développeur d’adwares Android affectant des millions d’utilisateurs | WeLiveSecurity

Traquer le développeur d’adwares Android affectant des millions d’utilisateurs

Les chercheurs d'ESET ont découvert une campagne publicitaire d'un an sur Google Play et ont traqué son développeur. Les applications concernées, installées huit millions de fois, utilisent plusieurs astuces pour la furtivité et la persistance.

Les chercheurs d’ESET ont découvert une campagne publicitaire d’un an sur Google Play et ont traqué son développeur. Les applications concernées, installées huit millions de fois, utilisent plusieurs astuces pour la furtivité et la persistance.

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 nameHashInstalls
com.ngocph.masterfreec1c958afa12a4fceb595539c6d208e6b103415d75,000,000+
com.mghstudio.ringtonemaker7a8640d4a766c3e4c4707f038c12f30ad7e21876500,000+
com.hunghh.instadownloader8421f9f25dd30766f864490c26766d381b89dbee500,000+
com.chungit.tank1990237f9bfe204e857abb51db15d6092d350ad3eb01500,000+
com.video.downloadmasterfree43fea80444befe79b55e1f05d980261318472dff100,000+
com.massapp.instadownloader1382c2990bdce7d0aa081336214b78a06fceef62100,000+
com.chungit.tankbattle1630b926c1732ca0bb2f1150ad491e19030bcbf2100,000+
com.chungit.basketball188ca2d47e1fe777c6e9223e6f0f487cb5e98f2d100,000+
com.applecat.worldchampion2018502a1d6ab73d0aaa4d7821d6568833028b6595ec100,000+
org.minigamehouse.photoalbuma8e02fbd37d0787ee28d444272d72b894041003a100,000+
com.mngh.tuanvn.fbvideodownloader035624f9ac5f76cc38707f796457a34ec2a97946100,000+
com.v2social.socialdownloader2b84fb67519487d676844e5744d8d3d1c935c4b7100,000+
com.hikeforig.hashtag8ed42a6bcb14396563bb2475528d708c368da316100,000+
com.chungit.heroesjumpc72e92e675afceca23bbe77008d921195114700c100,000+
com.mp4.video.downloader61E2C86199B2D94ABF2F7508300E3DB44AE1C6F1100,000+
com.videotomp4.downloader1f54e35729a5409628511b9bf6503863e9353ec950,000+
boxs.puzzles.Puzzleboxb084a07fdfd1db25354ad3afea6fa7af497fb7dc50,000+
com.intatwitfb.download.videodownloader8d5ef663c32c1dbcdd5cd7af14674a02fed3046750,000+
com.doscreenrecorder.screenrecordere7da1b95e5ddfd2ac71587ad3f95b2bb5c0f365d50,000+
com.toptools.allvideodownloader32E476EA431C6F0995C75ACC5980BDBEF07C8F7F50,000+
com.top1.videodownloadera24529933f57aa46ee5a9fd3c3f7234a1642fe1710,000+
com.santastudio.headsoccer286d48c25d24842bac634c2bd75dbf721bcf4e2ea10,000+
com.ringtonemakerpro.ringtonemakerapp20195ce9f25dc32ac8b00b9abc3754202e96ef7d66d910,000+
com.hugofq.solucionariodebaldor3bb546880d93e9743ac99ad4295ccaf98292026010,000+
com.anit.bouncingball6e93a24fb64d2f6db2095bb17afa12c34b2c845210,000+
com.dktools.liteforfb7bc079b1d01686d974888aa5398d6de54fd9d11610,000+
net.radiogroup.tvnradioba29f0b4ad14b3d77956ae70d812eae6ac761bee10,000+
com.anit.bouncingball6E93A24FB64D2F6DB2095BB17AFA12C34B2C845210,000+
com.floating.tube.bymuicv6A57D380CDDCD4726ED2CF0E98156BA404112A5310,000+
org.cocos2dx.SpiderSolitaireGamesadbb603195c1cc33f8317ba9f05ae9b74759e75b5,000+
games.puzzle.crosssum31088dc35a864158205e89403e1fb46ef6c2c3cd5,000+
dots.yellow.craft413ce03236d3604c6c15fc8d1ec3c9887633396c5,000+
com.tvngroup.ankina.reminderWater5205a5d78b58a178c389cd1a7b6651fe5eb7eb095,000+
com.hdevs.ringtonemaker2019ba5a4220d30579195a83ddc4c0897eec9df59cb75,000+
com.carlosapps.solucionariodebaldor741a95c34d3ad817582d27783551b5c85c4c605b5,000+
com.mngh1.flatmusic32353fae3082eaeedd6c56bb90836c89893dc42c5,000+
com.tvn.app.smartnoteddf1f864325b76bc7c0a7cfa452562fe0fd413511,000+
com.thrtop.alldownloaderf46ef932a5f8e946a274961d5bdd789194bd2a7d1,000+
com.anthu91.soccercard0913a34436d1a7fcd9b6599fba64102352ef2a4a1,000+
com.hugofq.wismichudosmildiecisiete4715bd777d0e76ca954685eb32dc4d16e609824f1,000+
com.gamebasketball.basketballperfectshote97133aaf7d4bf90f93fefb405cb71a2877908391,000+
com.nteam.solitairefree3095f0f99300c04f5ba877f87ab86636129769b1100+
com.instafollowers.hiketop3a14407c3a8ef54f9cba8f61a271ab94013340f81+

Serveurs C&C

http://35.198.197[.]119:8080

Techniques MITRE ATT&CK

TacticIDNameDescription
Initial AccessT1475Deliver Malicious App via Authorized App StoreThe malware impersonates legitimate services on Google Play
PersistenceT1402App Auto-Start at Device BootAn Android application can listen for the BOOT_COMPLETED broadcast, ensuring that the app's functionality will be activated every time the device starts
ImpactT1472Generate Fraudulent Advertising RevenueGenerates 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 ».

Discussion