Les chercheurs d'ESET ont découvert une application Android malveillante utilisée pour lancer des attaques DDoS. Grâce au fait que c'est le site web d'ESET qui était visé, les chercheurs d'ESET ont pu identifier l'application, l'analyser et la signaler à Google - qui l'a rapidement retirée de son Google Play Store.
L'attaque visant le site web mondial d'ESET, www.eset.com, a eu lieu en janvier 2020. Elle a duré sept heures et a été menée en utilisant plus de 4 000 adresses IP uniques. Celles-ci ont été identifiées comme malveillantes et bloquées au moment de l'attaque.
Notre analyse a montré que l'attaque a été menée en utilisant des milliers d'instances de l'application « Updates for Android » qui était - à l'époque - disponible sur l'app store officiel d'Android. La seule fonctionnalité malveillante de l'application reposait sur sa capacité à charger du JavaScript à partir d'un serveur contrôlé par l'attaquant et à l'exécuter sur l'appareil de l'utilisateur. Ceci explique pourquoi l'application est arrivée sur le Play store.
L'application Updates for Android a été téléchargée pour la première fois sur le Play store le 9 septembre 2019. La version originale de l'application ne permettait pas de charger le JavaScript, qui a finalement été utilisé de manière abusive pour mener l'attaque DDoS - il a été ajouté dans la dernière mise à jour de l'application deux semaines avant l'attaque. L'application a été installée plus de 50 000 fois. Nous ignorons combien d'instances de l'application ont été installées après la mise à jour ou ont été mises à jour vers la version malveillante. Sur la base de notre avis, Google a rapidement retiré l'application de la boutique Play.
Pour attirer ses victimes, et pour poser légitimement, l'application a un site web correspondant, i-updater[.]com, qui se présente comme une « sources quotidiennes de l’actualité ». (Le site web est toujours en ligne. Nous ne voyons aucune raison de faire un effort pour le retirer, car le site web lui-même n'est pas malveillant).
Fonctionnalité
La fonctionnalité annoncée de l'application Updates for Android, qui est toujours disponible dans les sources non officielles de l'application, affiche un flux de nouvelles quotidiennes à l'utilisateur.
Même si on fait abstraction de la malveillance de l'application, son nom et celui de son développeur, « System apps », sont trompeurs. L'application n'a rien à voir avec le système ou les mises à jour du système.
Pour éviter toute suspicion, l'application affiche quelques nouvelles ; cependant, sa principale fonctionnalité est de recevoir des commandes d'un site web prédéfini qui sert de serveur de commande et de contrôle (C&C). Le logiciel malveillant envoie un message au C&C toutes les 150 minutes et fournit son ID de dispositif - une mesure qui permet de contrôler chaque dispositif individuellement.
Fonctionnalité malveillante
Sur la base des commandes que l'application reçoit du C&C, elle peut afficher des publicités dans le navigateur par défaut de l'utilisateur (notez que cette fonctionnalité s'étend en dehors de l'application), cacher la présence de l'application à l'utilisateur en masquant l'icône de l'application et exécuter des JavaScript arbitraires fournis à distance.
Cette dernière fonctionnalité a été utilisée pour mener l'attaque DDoS sur le site web d'ESET.
Les informations suivantes proviennent de l'analyse des échantillons utilisés dans l'attaque.
Le logiciel malveillant ouvrirait un fichier local nommé new_method.html que l'application transporte dans ses actifs. Son but est de charger du JavaScript distant servi par le serveur C&C.
Basé sur le code JavaScript reçu par l'application depuis son C&C, le dispositif se connecte chaque seconde au site web cible pour l'inonder de trafic.
L'attaque DDoS commence par la réception par l'appareil compromis d'une commande de chargement du script de l'attaquant qui spécifie le domaine ciblé. Une fois le script chargé, l'appareil commence à faire des requêtes au domaine ciblé jusqu'à ce qu'il soit servi par un autre script du serveur C&C, qui peut contenir un domaine cible différent.
Depuis que nous avons commencé à surveiller le site web qui fournit la fonctionnalité C&C au réseau de zombies, nous avons vu six autres scripts être servis, chacun contenant un domaine différent pour les dispositifs captifs à attaquer. Il s'agissait de sites d'information et de commerce électronique remarquables, pour la plupart en Turquie. Depuis le 2 février, le script est vide, ce qui signifie que les attaquants ont essayé de servir leur botnet jusqu'à deux jours après que Google y ait mis fin (en majeure partie).
Conclusion
La méthode d'attaque DDoS décrite dépend du nombre d'appareils infectés dont disposent les attaquants. Sur un potentiel théorique de plus de 50 000 instances, environ 10 % ont été effectivement impliqués dans l'attaque.
L'attaque décrite montre que les attaquants peuvent être patients et attendre que la base d'utilisateurs d'une application atteigne la taille requise avant de mettre en œuvre la fonctionnalité malveillante dans l'application.
La détection de ce type de fonctionnalité malveillante n'est pas facile, car la même technique (bien sûr, sans qu'aucun JavaScript malveillant ne soit chargé) est utilisée par des dizaines de kits et de cadres de développement de logiciels Android légitimes. Cela signifie que toute détection simple basée sur un tel code entraînerait un grand nombre de faux positifs.
Le fait que des solutions simples ne soient pas viables ne signifie pas pour autant que les utilisateurs d'appareils Android n'ont aucune chance de se protéger. Nous avons amélioré nos mécanismes de détection en nous basant sur ce que nous avons appris des fonctionnalités et du comportement de cette application. Certaines de ces améliorations ont déjà été mises en œuvre dans les technologies que nous utilisons pour la protection du Play store au sein de l'App Defense Alliance. D'autres sont en cours d'implémentation dans d'autres couches de sécurité de notre solution de sécurité des terminaux, y compris nos détections basées sur l'apprentissage machine.
Indicateurs de compromission (IoCs)
Package Name | Hash | Detection |
---|---|---|
com.world.hello.myapplication | 34A6BD8B96729B6F87EC5E4110E02BEE1C76F5A9 | Trojan.Android/Hiddad.AJN |
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 | The malware listens for the BOOT_COMPLETED broadcast, ensuring that the app's functionality will be activated every time the device starts. |
Defense Evasion | T1508 | Suppress Application Icon | The malware hides its icon from launcher. |
Impact | T1472 | Generate Fraudulent Advertising Revenue | The malware can display unwanted advertisement. |
Command and Control | T1436 | Commonly Used Port | The malware uses port 443 for its C&C communications. |
T1437 | Standard Application Layer Protocol | The malware uses HTTPS for its C&C communications. |