Toi aussi, mon fils ! Manipulations de trojan sur Google Play

Contenu

Pour les auteurs de virus, Google Play est un peu la Terre promise. L’application malveillante qui arrive à y entrer peut toucher un très large public et bénéficie de la confiance de celui-ci et de la complaisance des systèmes de sécurité du système d’exploitation (par exemple, l’interdiction par défaut de l’installation d’applications téléchargées depuis des sources qui ne sont pas officielles constitue bien souvent un obstacle pour le malware). Toutefois, il est très difficile d’entrer dans Google Play : avant d’être acceptée dans Google Play, chaque application est soumise à une analyse détaillée qui fait intervenir différents systèmes, automatiques ou manuels, afin d’identifier d’éventuels comportements indésirables.

Certains auteurs de virus, résignés à l’idée de ne pouvoir déjouer ce mécanisme de contrôle, ont appris à utiliser l’application cliente du magasin pour atteindre leurs objectifs. Ces derniers temps, nous avons observé à plusieurs reprises des trojans qui utilisent l’application Google Play afin de télécharger, d’installer et d’exécuter, dans le cadre de campagnes publicitaires, des applications du magasin sur le smartphone à l’insu de son propriétaire ainsi que de laisser des commentaires et de fausser le classement de l’application. En règle générale, les applications installées par les trojans ne vont pas nuire directement à l’utilisateur. Toutefois, la victime peut perdre de l’argent sur son compte de téléphonie mobile sous la forme du coût élevé du trafic de données. De plus, les trojans peuvent télécharger et installer non seulement des applications gratuites, mais également des applications payantes, ce qui oblige l’utilisateur à verser des sommes encore plus importantes.

Nous allons vous présenter ici les méthodes employées pour réaliser ce genre de manipulations sur Google Play.

Niveau 1. N00b

La première méthode consiste à obliger le client officiel Google Play a réaliser les actions sollicitées par l’individu malintentionné. L’idée générale est d’utiliser un trojan pour lancer le client, y ouvrir la page de l’application requise, puis rechercher les éléments de l’interface (boutons) et interagir au niveau logiciel avec ceux-ci afin de lancer le téléchargement, l’installation et le lancement de l’application. Les éléments indispensables de l’interface ont été mis en évidence en rouge sur l’illustration ci-dessous :

goo_1 goo_2 goo_3

La méthode employée pour interagir avec l’interface varie, mais les techniques suivantes sont en général présentes :

  1. Utilisation des fonctionnalités d’accessibilité du système d’exploitation (utilisées par les modules Trojan.AndroidOS.Ztorg).
  2. Imitation d’une saisie réalisée par l’utilisateur (utilisé par Trojan-Clicker.AndroidOS.Gopl.c).
  3. Injection dans le processus du client Google Play pour modifier sa logique de fonctionnement (utilisé par Trojan.AndroidOS.Iop).

Nous allons analyser le fonctionnement de tels trojans sur la base de l’exemple de Trojan.AndroidOS.Ztorg.n. Ce malware utilise les fonctionnalités d’accessibilités prévues à l’origine pour créer des applications qui viennent en aide aux utilisateurs à capacité réduite (par exemple, des applications pour la commande vocale de l’interface). Le trojan reçoit depuis le serveur de commande une tâche qui contient le lien vers l’application requise. Il l’ouvre dans Google Play, puis exécute le code suivant :

goo_4

Ce code sert à surveiller l’affichage à l’écran de l’élément indispensable de l’interface et à cliquer sur celui-ci. C’est ainsi qu’a lieu la succession de clics sur les bouton « BUY » (dans l’illustration, le prix est indiqué sur ce bouton), « ACCEPT » et « CONTINUE ». Cela suffit pour acheter l’application si l’utilisateur a associé une carte bancaire à son compte Google.

Niveau 2. Pro

Certains auteurs de virus préfèrent la voie plus complexe. Au lieu d’utiliser la méthode simple et éprouvée décrite ci-dessus, ils créent leur client pour le magasin d’applications en utilisant HTTPS API.

Toi aussi, mon fils ! Manipulations de trojan sur Google Play

(Je vais coder mon propre Google Play avec des trojans et des accès root)

La difficulté de cette méthode tient au fait que le fonctionnement de ce « client » fait-maison repose sur la détention d’informations (par exemple le nom d’utilisateur et le mot de passe, des tokens d’identification) qui ne sont pas accessibles à une application normale. Pour la plus grande joie des individus malintentionnés, toutes les données nécessaires sont conservées en clair sur l’appareil, au format pratique SQLite. L’accès est limité seulement par le modèle de sécurité d’Android, mais les applications peuvent le violer, par exemple à l’aide d’un appareil rooté et sans problème pour accéder aux données.

Ainsi, certaines versions du malware Trojan.AndroidOS.Guerilla.a, diffusé à l’aide du malware Leech capable de rooter les périphériques, possèdent leur client pour Google Play Ce client est capable de télécharger et d’installer des applications gratuites et payantes. Il est également en mesure d’évaluer une application et de laisser un commentaire à son sujet dans le magasin Google.

Une fois lancé, Guerrilla commence à récolter les informations indispensables :

  1. informations d’identification du compte de l’utilisateur dans Google Play.
  2. La réalisation d’opérations dans Google Play repose sur l’utilisation obligatoire de tokens spéciaux créés lors de l’authentification de l’utilisateur. Dans le cas le plus simple, si l’utilisateur a déjà ouvert une session dans Google Play, le trojan peut utiliser les tokens mis en cache localement. Cela s’opère à l’aide d’une simple recherche dans la base de données qui se trou à l’emplacement /data/system/users/0/accounts.db :

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

    Grâce au code ci-dessous, le trojan vérifie s’il existe des tokens prêts sur l’appareil infecté. Autrement dit, il vérifie si l’utilisateur a ouvert une session et s’il peut réaliser des opérations dans Google Play :

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

    Si ces tokens ne sont pas présents, le malware récupère le nom d’utilisateur et le mot de passe en cache de l’utilisateur et ouvre lui-même une session via OAuth:

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

  3. Android_id : identifiant unique de l’appareil.
  4. Google Service Framework ID : identifiant unique de l’appareil dans les services Google.

    Le malware essaie d’abord d’obtenir cet identifiant via des méthodes standard, mais s’il échoue pour une raison quelconque, il exécute le code suivant :

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

  5. Google Advertising ID : il s’agit de l’identifiant unique pour l’affichage de publicités attribué par les services de Google Play.
  6. Guerrilla l’obtient de la manière suivante :

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

    Toi aussi, mon fils ! Manipulations de trojan sur Google Play

  7. Le malware obtient, de la même manière, les données relatives à l’appareil, sous une forme mise en cache depuis le fichier/data/data/com.google.android.gms/shared_prefs/Checkin.xml« 

Après que le trojan a récolté les données indiquées ci-dessus, il commence à accepter les tâches de téléchargement et d’installation des applications. Voici une structure d’une de ces tâches :

Toi aussi, mon fils ! Manipulations de trojan sur Google Play

Le trojan télécharge l’application à l’aide de requêtes POST exécutées via les liens indiqués ci-dessous :

  1. https://android.clients.google.com/fdfe/search permet de réaliser une recherche selon la requête soumise par les individus malintentionnés. Cette requête est nécessaire pour simuler l’interaction de l’utilisateur avec le client Google Play (le scénario principal d’installation d’applications via un client officiel suppose que l’utilisateur lance d’abord une recherche, puis passe à la page de l’application).
  2. https://android.clients.google.com/fdfe/details : cette requête rassemble des informations complémentaires sur l’application qui sont indispensables au téléchargement.
  3. https://android.clients.google.com/fdfe/purchase : téléchargement des tokens et des données relatives à l’achat qui seront utilisées lors de la requête suivante.
  4. https://android.clients.google.com/fdfe/delivery : le trojan reçoit l’URL et le cookie indispensables au téléchargement du fichier .apk.
  5. https://android.clients.google.com/fdfe/log : confirmation du téléchargement (pour augmenter le compteur de téléchargements).
  6. https://android.clients.google.com/fdfe/addReview : octroi d’une note et ajout de commentaires.

Au moment de former leurs requêtes, les individus malintentionnés ont tenté de reproduire le plus fidèlement possible les requêtes similaires envoyées par le client officiel. Ainsi, chacune d’entre elles utilise la sélection suivante d’en-têtes HTTP :

Toi aussi, mon fils ! Manipulations de trojan sur Google Play

Après l’exécution des requêtes, l’application proprement dite peut être téléchargée, installée (via la commande ‘pm install -r’ qui permet d’installer l’application sans l’accord de l’utilisateur) et lancée.

Conclusion

Les trojans qui utilisent l’application Google Play pour télécharger, installer et lancer des applications depuis le magasin sur un smartphone à l’insu de son propriétaire se propagent généralement via des malwares capables de rooter l’appareil qui ont déjà obtenu les autorisations maximales sur l’appareil. C’est grâce à cela qu’ils peuvent réaliser des attaques de ce genre contre l’application client Google Play. Signalons qu’à l’issue du 2e trimestre 2016, les malwares capables de rooter un appareil occupaient plus de la moitié des positions du TOP 20 des malwares pour appareils mobiles. Pour cette raison, il ne faut pas sous-estimer cette menace. D’autant plus que ces malwares peuvent télécharger non seulement des malwares qui compromettent l’écosystème Android et qui dépensent l’argent de l’utilisateur en achetant des applications dont ce dernier n’a pas besoin, mais également d’autres malwares.

Posts similaires

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *