Lorsque l’utilisateur télécharge l’une de ces applications, elle va automatiquement créer un botnet qui va se servir d’adresses IP proxy pour camoufler les clics sur les publicités et générer ainsi des revenus pour le pirate.
Sur les dispositifs rootés, Viking Horde va fournir des charges utiles de logiciels malveillants qui peuvent exécuter n’importe quel code à distance, compromettant ainsi potentiellement la sécurité des données sauvegardées sur le dispositif. Il profite également des privilèges d’accès à la racine pour se rendre difficile, voire quasiment impossible à supprimer manuellement.
Parmi ces cinq applications, celle qui a été le plus téléchargée est Viking Jump qui a été mise sur le Google Play Store le 15 avril dernier et en moins d’un mois s’est vu téléchargé entre 50 000 et 100 000. Les chercheurs précisent que, dans certains marchés, Viking Jump figurait dans le top gratuit dans la catégorie « Jeux ».
L’instance la plus ancienne de Viking Horde est présente sur le Google Play Store depuis le 29 mars dernier et l’application en question s’appelle Wi-Fi Plus. Dans la liste qui compose ces instances figurent également l’application Memory Booster, Parrot Copter et Simple 2048. Toutes ces applications n’ont pas obtenu de grandes notes de la part des utilisateurs et les chercheurs pensent que cela peut être dû au fait que les utilisateurs ont remarqué un comportement étrange. Par exemple, l’un des commentaires d’un utilisateur sur Viking Jump avance : « Bonne (application), mais demande des permissions étranges. C’est un jeu qui semble correct, mais a éveillé ma suspicion lorsqu’il m’a demandé des accès à la racine que j’ai refusés en me servant de Superuser. Je recommande de ne pas l’installer ou de le désinstaller si votre dispositif est rooté et ne dispose pas de protection racine à l’instar de SuperSU (Superuser). Peut-être le développeur peut m’éclairer dessus ? »
Le botnet créé par les attaquants s’est propagé dans plusieurs pays. L’équipe de recherche a collecté des données sur la répartition des victimes de l’un des serveurs C&C dont se sont servis les attaquants. Dans celui-là, 12 % des victimes étaient en Espagne, 8 % aux États-Unis, 44 % en Russie, 4 % en Arabie saoudite.
Comment Viking Horde fonctionne-t-il ?
Tout d’abord, le logiciel malveillant est installé depuis de Google Play. Tandis que l'application lance le jeu, elle installe plusieurs composants en dehors du répertoire de l'application. Les composants sont nommés de façon aléatoire avec des mots faisant partie d’une liste prédéfinie et qui les feront passer pour des fichiers système comme core.bin, clib.so, android.bin et update.bin. Si le dispositif n’est pas rooté, il sont installés sur la carte SD, dans le cas contraire ils sont installés sur root/data. L'un de ces fichiers est utilisé pour échanger des informations entre les composants du logiciel malveillant. Un second fichier contient la liste des noms générés des composants afin de les rendre accessibles à tous les composants.
Par la suite, le logiciel vérifie si le dispositif est rooté.
- Si le dispositif est rooté, le logiciel lance l’exécution de deux autres composants :
- app_exec : qui implémente un protocole de communication avec le serveur ;
- app_exec_watch_dog : qui implémente la mise à jour et le mécanisme de persistance. Il s’occupe de gérer également app_exec et le redémarre si cela s’avère nécessaire.
- Si le dispositif n’est pas rooté, le logiciel lance app_exec comme une bibliothèque partagée et et appelle ses fonctions par l’interface native Java qui permet au code Java d’exécuter des binaires en natif.
Dans les deux cas de figure, c’est-à-dire si l’appareil est rooté ou non, une fois que app_exec est installé, il établit une communication TCP avec le serveur C&C et débute la communication.
La dernière étape est la création d’un proxy de connexion. Le serveur C&C envoie une commande de création de proxy avec deux adresses IP et ports passés en paramètre.
Le logiciel malveillant se sert de différentes techniques pour rester sur le dispositif. L’une d’elles consiste à installer plusieurs composants avec des noms les faisant passer pour des fichiers système afin d’être difficiles à localiser et donc à désinstaller. Sur les dispositifs rootés, deux mécanismes supplémentaires sont mis en place :
- app_exec : qui va vérifier l’existence de l’application principale. Si l’utilisateur désinstalle l’application principale, app_exec va déchiffrer un composant appelé com.android.security et l’installer silencieusement. Ce composant sera caché, s’exécute après un boot et dispose des mêmes facultés que app_exec.
- app_exec_watch_dog va pour sa part installer des composants mis à jour app_exec. Si app_exec venait à être supprimé, app_exec_watch_dog va le réinstaller depuis le fichier de mise à jour.
Check Point en a informé Google le 5 mai dernier.
Source : Check Point