Analyse détaillée : HummingBad, le malware Android qui rapporte 300 000$ /mois

Analyse détaillée : HummingBad, le malware Android qui rapporte 300 000$ /mois
5 (100%) 2 votes

Un groupe Chinois a créé un malware Android qui génère plus de 300.000$ /mois via des clics frauduleux sur des publicités mobile. Ce groupe contrôlait plus de 85 millions de terminaux mobile, partout dans le monde. En plus des clics frauduleux, les plus offrants pour avoir un accès complet au téléphone de leurs victimes. Bienvenue dans un nouveau monde, celui de demain.

C’est en février 2016, que des chercheurs de chez Check Point ont découvert pour la première fois HummingBad : un malware qui établit un rootkit persistant sur les appareils Android, génère des revenus publicitaires frauduleux et installe des applications frauduleuses, sans votre consentement.

hummingBad 1Depuis Février 2016, ce malware est en croissance exponentielle, voici comment :

  • HummingBad s’appuie sur le SDK d’une entreprise d’analytics mobile, partageant leurs technologies et leurs ressources, leur permettant ainsi de contrôler des dizaines de millions d’appareils Android.
  • La campagne génère $ 300 000 par mois, prouvant que ce type de malware peut permettre d’atteindre une véritable autonomie financière.

Mais les gains financiers ne sont que la partie visible de l’iceberg :

  • Le groupe à tenté de rooter des milliers d’appareils chaque jour et à réussi sur des centaines d’entre eux.
  • Avec autant de terminaux à disposition, il est tout à fait possible créer un botnet afin mener des attaques ciblées sur certaines entreprises ou organismes gouvernementaux.
  • Toutes les données de ces appareils sont accessibles, y compris les données de nombreuses entreprises. En effet, beaucoup d’employeurs fournissent un téléphone pro à leurs employés qui l’utilisent alors en pro/perso….Ce qui permettait au groupe chinois de vendre l’accès aux données à d’autres cybercriminels, sur le marché noir.

L’accès à ces terminaux et à leurs données crée un flux régulier et constant de revenus pour Yingmob (entreprise derrière le malware HummingBad). Enhardi par leur indépendance financière et technologique, leurs niveaux de compétences a fortement progressé – mettant les utilisateurs finaux, entreprises et organismes gouvernementaux en danger.

Yingmob

En suivant les serveurs de commande et contrôle (C&C) utilisés par HummingBad, les chercheurs ont découvert leurs serveurs. Ceux-ci appartiennent à Yingmob, une régie publicitaire mobile chinoise.
A noter : Yingmob était déjà connu de certaines entreprises de sécurité pour avoir lancé un malware iOS appelé Yispecter. Donc si on récapitule l’activité de Yingmob :

  • Yispecter utilise les certificats Yingmob pour s’installer sur les appareils
  • HummingBad et Yispecter partagent leur serveurs de C&C
  • Les serveurs d’HummingBad contiennent aussi QVOD : un lecteur vidéo mobile gratuit. Principalement utilisé en Chine pour lire des vidéos pornos sur iOS, cette application est bien sûr infectée par Yispecter
  • Ces deux malwares installent des applications frauduleuses sans le consentement de l’utilisateur.

Yingmob a plusieurs équipes de développement légitimes, pour leur plateforme de tracking / analytics mobile. L’équipe en charge de HummingBad est nommée « Équipe de développement pour la plate-forme outre-mer » et se divise en quatre groupes, pour un total de 25 employés. Cette équipe se trouve au niveau 5, Xingdu Plaza, Beiqu 73 rd., Yuzhong, Chongqing, Chine.

L’équipe a trois projets de développement :

  • Eomobi : Les composants du malware HummingBad
  • Hummers Offers : La plateforme d’analytics pour leurs serveurs publicitaires
  • Hummer Launcher : Plateforme publicitaire pour Android (via un APK)

L’équipe de développement a six gammes de produits :

  1. Eobomi
  2. Hummer Launcher
  3. Root Software Development Kit (SDK)
  4. Hummer Offers
  5. MAT
  6. Unitemobi

HummingBad prend son envol – dans le monde entier

L’analyse du code d’HummingBad a révélé qu’il envoie des notifications à Umeng, un service d’analytique depuis lequel les attaquants gèrent leurs campagnes. Une analyse plus approfondie du compte Umeng de Yingmob a révélé l’étendue de la campagne de HummingBad.

hummingbad5C’est presque 200 apps qui ont été retrouvées par les chercheurs de Check Point, sur le même compte Umeng. 25% d’entre elles sont estimées être des applications mobile malicieuses. La plupart d’entre elles étant seulement des variantes de l’appli de base. En cumulant toutes les applications, la campagne HumminBad touche près de 85 millions d’appareils.

Selon l’interface Umeng, l’activité a commencé en août 2015 :

hummingbad6Après avoir analysé la plupart des applications présentes sur le compte Umeng, l’équipe de recherche estime que presque 10 millions d’utilisateurs se servent de ces applications (malveillantes). Alors que les victimes sont réparties dans le monde entier, l’Inde et la Chine sont les plus touchées.

Les 20 premiers pays infectés ont plus de 100 000 victimes chacun. HummingBad cible les utilisateurs de toutes les versions de système Android.

Un malware créé uniquement pour l’argent – pour l’instant

C’est en manipulant les SDKs de nombreux Ad Server mobile que HummingBad génère de l’argent. Il utilise en fait l’intégralité des actions rémunérés possibles : afficher de la publicité (ou remplacer les publicités affichées par les siennes), cliquer sur les publicités et installer des applications. Quand je vous dis que le modèle publicitaire sur internet est mort…. En utilisant ces méthodes, les personnes derrière HummingBad gagnent bien plus qu’en jouant selon les règles.

C’est via la section “Developer Defined Events”, sur le compte Umeng de Yingmob, qu’il faut se tourner pour comprendre que chaque application est utilisée dans le but précis de frauder, via les revenus publicitaires. Voici les datas concernant la campagne Hummingbad :

  • Les apps affichent plus de 20 millions de pub display par jour,
  • Yingmob arrive à un CTR ou taux de clic de 12,5 % (TRES élevé !), complètement illégitime, générant plus de 2,5 millions de clics par jour,
  • HummingBad installe plus de 50 000 applications frauduleuses par jour.

Cela se traduit par les revenus suivant :

  • Yingmob à un RPC (revenu par clics ) de 0,00125$
  • Chaque jour, les clics frauduleux génèrent plus de 3 000 $
  • Avec un tarif de 0.15$ par application installée, HummingBad génère plus de 7 500$ par jour
  • Yingmob arrive donc à minima à 10 000$ par jour, soit environ 300 000$ par mois.

Alors que le profit est une motivation assez puissante pour n’importe quelle organisation de ce type (Yingmob est rentable et indépendant financièrement), la structure organisationnelle du groupe Chinois leur permet de rapidement s’étendre vers de nouveaux leviers de monétisation comme : vendre l’accès aux 85 millions de périphériques Android qu’ils contrôlent.

Cette nouvelle activité attirerait un tout nouveau public – et une nouvelle source de revenus – pour Yingmob. Accéder rapidement et facilement aux données sensibles des mobiles connectés aux réseaux d’entreprises et autres organismes gouvernementaux du monde entier est extrêmement attrayant.

Ces millions d’appareils Android et les données qu’ils renferment sont aujourd’hui encore vulnérables.

Comment HummingBad fonctionne ? – Analyse détaillée –

hummingbadLa première méthode d’infection détectée par l’équipe de Check Point est une attaque de type “drive-by download”, ciblant principalement des sites adultes. HummingBad utilise une chaîne d’attaque sophistiquée avec plusieurs étapes dont deux composantes principales. Le premier composant essaie d’obtenir l’accès root sur votre terminal avec un rootkit qui exploite plusieurs vulnérabilités. En cas de succès, les attaquants obtiennent alors un accès complet à votre téléphone. Si l’accès root échoue, un second composant utilise une fausse notification de mise à jour système, incitant les utilisateurs à accorder les autorisations système maximales à HummingBad.

———————————-

Une attaque « drive-by-download » est une méthode d’infection qui se déclenche tout simplement parce qu’un utilisateur visite un site Web. Traditionnellement, les malwares étaient « activés » par un utilisateur qui avait ouvert de lui-même un fichier infecté (par exemple, ouvrir une pièce jointe ou double-cliquer sur un fichier exécutable, qui avait été téléchargé sur Internet).

Malheureusement, les méthodes ont beaucoup évolué ces dernières années, et ce niveau d’interaction n’est plus nécessaire. Un malware peut être caché dans le code source d’un site, ou caché dans des bannières ou publicités… Le simple fait de visiter un site est suffisant pour que votre ordinateur soit infecté ou vos détails personnels volés.

———————————
Peu importe si l’accès root est réussi, HummingBad télécharge autant d’apps frauduleuses que possible. Ces applications malveillantes sont faites d’un mélange de plusieurs composants malveillants, dont beaucoup ont les mêmes fonctionnalités.

SSP

Le premier élément malveillant, connu sous le nom de SSP, affiche des publicités illégitimes et installe des applications frauduleuses. SSP est déclenché par quatre événements : démarrage, allumage – extinction de l’écran, détection de la présence d’un utilisateur, détection de tout changement de connectivité.

hummingbad10Lors du déclenchement, SSP démarre un service nommé “Se” qui lance la suite logique malicieuse et démarre le réseaux de publicité utilisés par l’application. Les différentes variations d’HummingBad utilisent différentes régies telles que Mobvista, Cheetah, Apsee, ou Startapp.

SSP démarre un timer qui planifie un “LockTask” toutes les 10 secondes. Si toutes les conditions (temporisation, connexion internet, paramètres reçus par le serveur) sont remplies, LockTask redémarre le serveur “Se” et lance le processus “MainActivity”, activant la publicité vérolée.

Une fois que le processus “MainActivity” est lancé, le malware commence à afficher des bannières publicitaires avec un bouton « Fermer ». Le Malware bloque toute tentative de revenir à l’écran d’accueil ou à l’écran précédent, forçant l’utilisateur à cliquer sur la bannière. Si l’utilisateur clique sur le bouton « Fermer », le logiciel malveillant imite un clic sur la bannière. Une fois le clic fait, SSP envoie une requête à un serveur qui renvoie un lien vers un APK (Android Application Kit – Fichier permettant d’installer une application sur Android). SSP télécharge ensuite cette APK depuis le serveur.

hummingbad11Une fois l’APK téléchargé, l’app vérifie si l’appareil est rooté par un autre des composants. Si l’appareil est rooté, il installe les APK téléchargés en silence. Sinon, SSP tente l’installation via une boîte de dialogue utilisateur. Une fois installé, SSP lance l’APK et diffuse un “INSTALL_REFERRER”, à l’aide des informations reçues du serveur pour imiter une installation depuis Google Play et obtenir les gains provenant de la régie publicitaire.

Pour recevoir des mises à jour et envoyer des rapports, SSP récupère l’accès via un JSON téléchargé depuis d1qxrv0ap6yf2e.cloudfront[.]net/domain/xxx.json.


Les valeurs possibles sont :

  • {« id »:3, »name »: »CAP », »master »: »032o[.]com », »slave »: »032n[.]com »}
  • {« id »:4, »name »: »SSP&CCSDK », »master »: »guangbom[.]com », »slave »: »ssppsspp[.]com »}
  • {« id »:5, »name »: »asdf », »master »: »asdf », »slave »: »asdf »} //I think
  • {« id »:6, »name »: »efwe », »master »: »gwsgs », »slave »: »dgss »}//it’s unused
  • {« id »:7, »name »: »1″, »master »: »1″, »slave »: »1″} //and this
  • {« id »:8, »name »: »CAP-DW », »master »: »ccaa100[.]com », »slave »: »ccaa200[.]com »}
  • {« id »:9, »name »: »SSP-DW », »master »: »cscs100[.]com », »slave »: »cscs200[.]com »}
  • {« id »:11, »name »: »HM-JK », »master »: »hmapi[.]com », »slave »: »eoapi[.]com »}
  • {« id »:12, »name »: »易盟-易窗 », »master »: »ma2.heshan88[.]com », »slave »: »sl2.heshan88[.]com »}
  • {« id »:13, »name »: »易盟-易推 », »master »: »ma2.heshan88[.]com », »slave »: »sl2.heshan88[.]com »}
  • {« id »:14, »name »: »易盟-启弹 », »master »: »ma2.heshan88[.]com », »slave »: »sl2.heshan88[.]com »}
  • {« id »:15, »name »: »iadpush », »master »: »ma2.lb0408[.]com », »slave »: »sl2.lb0408[.]com »}
  • {« id »:16, »name »: »1mob-fudian », »master »: »ma2.heshan88[.]com », »slave »: »sl2.heshan88[.]com »} • {« id »:17, »name »: »QS », »master »: »aa0ad[.]com », »slave »: »aa0ab[.]com »}
  • {« id »:18, »name »: »1mob-xin(点滴/BDSDK », »master »: »ma2.heshan88[.]com », »slave »: »sl2.heshan88[.]com »}

Processus d’injection Google Play

SSP injecte une bibliothèque dans le processus Google Play. Via cette action, le Malware peut imiter les clics sur les boutons installer/acheter/accepter sur le Google Store. Cette injection détermine si le bouton requis est activé et comprend aussi quelle fenêtre de Google Play est en arrière plan.

Le malware injecte la bibliothèque native via ptrace : ptrace est un appel système trouvé dans plusieurs Unix et les systèmes d’exploitation Unix-like. En utilisant ptrace (ou « processus trace »), un processus peut contrôler l’autre, ce qui permet au contrôleur d’inspecter et manipuler l’état interne de sa cible. ptrace est utilisé par les débogueurs et d’autres outils d’analyse de code.

 

SSP utilise l’appel système de ptrace pour contrôler les autres applications, lire et écrire dans leur mémoire et dans leurs registres. En combinant plusieurs appels via ptrace, SSP charge sa bibliothèque dans la mémoire d’autres processus. La librairie injectée dynamiquement charge alors du dex-code (code java compilé pour Android) dans les différents processus. Une fois chargé, le dex-code démarre son service et scanne périodiquement le Goole Play en imitant des clics sur les boutons Installer/Acheter/Accepter quand ils apparaissent.

RightCore

Présent dans le premier échantillon de HummingBad trouvé en février 2016, le composant RightCore contient les fonctionnalités permettant de rooter un terminal. L’application infectée vérifie si le terminal est rooté, si ce n’est pas le cas le malware décrypte RightCore (chaque caractère est encrypté en XOR). Suivant la version, RightCore download un pack d’exploits depuis un serveur ou décrypte les exploits qu’il embarque avec lui. Ensuite, il analyse la configuration de votre terminal afin de choisir la meilleure manière de lancer ces exploits.

Si l’exploit est un succès, l’application télécharge ensuite des applications frauduleuses en mode silencieux. Les fichiers de root sont nommés ipm et ppm, au lieu des classiques « su », afin d’éviter la détection. Selon l’interface Umeng, HummingBad a tenté de rooter des milliers de terminaux chaque jour, avec succès.

CAP

Le composant CAP installe quant à lui les applications frauduleuses en utilisant une technique élaborée. Quand CAP est lancé sur un téléphone, il décrypte module_encrypt.jar (depuis son package) et charge dynamiquement le code contenant la fonctionnalité principale du malware. Enfin une commande est exécutée périodiquement afin de reveiller l’application.

A chaque réveil CAP vérifie si des données ont changé. S’il détecte un changement, l’application nettoie tous les downloads, notifications et événements en attentes et vérifie ses signes vitaux : depuis combien de temps CAP est lancé et le nombre de requêtes envoyées précédemment. Si les paramètres du terminal présentent les bonnes conditions, CAP envoie la requête au serveur afin de télécharger une application frauduleuse.

Une fois que CAP a reçu l’application, il tente l’installation – en mode silencieux si le terminal est rooté, ou en affichant une boite de dialogue à l’utilisateur si le téléphone n’est pas rooté. Ce mécanisme permet aux attaquants de contrôler la quantité d’applications installées chaque jour, tout en faisant profil bas pour éviter les suspicions. Périodiquement, CAP envoie des statistiques d’activités aux serveurs et vérifie si une mise à jour est disponible.

Injection d’un faux IMEI

CAP crée un faux IMEI (International Mobile Station Equipment Identity) “unique” de 15 caractères, permettant d’imiter l’activité de nouveaux terminaux. En faisant ceci, CAP installe les mêmes applications plusieurs fois sur le même terminal (!!) et reçoit le paiement de deux installations et non d’une seule.

Simulation de clics sur Google Play

CAP effectue une ouverture externe du Google Play (GP) en cliquant sur une bannière publicitaire proposant d’installer une application via le GP. Une fois GP ouvert, le malware simule la séquence de clics sur les boutons “installer” et “valider” afin de recevoir les gains liés à une installation d’application référente. Les clics sont simulés en exécutant « input tap X Y », utilisant les coordonnées des boutons sur le GP.

Comment s’en protéger ?

Le seul moyen sûr de le détruire est d’effectuer une restauration d’usine de son téléphone. Mais pour l’instant, très peu de téléphones français sont touchés. On ne répétera jamais assez ces quelques conseils de base :

  • N’allez pas sur des sites non-réputés depuis votre téléphone
  • Si vous naviguez sur des sites adultes, n’oubliez pas d’utiliser un adblocker mobile
  • Ne laissez jamais activé les « Sources Inconnues » dans le menu de Sécurité du téléphone
  • Evitez autant que possible les magasins d’application pirate qui sont quasi-systématiquement remplis d’applications vérolées
  • Vérifiez systématiquement les permissions des applications que vous installez sur votre téléphone. (Non, une application de Wallpaper n’a aucune raison d’avoir accès à vos SMS !)

Enfin, sachez que l’installation d’un antivirus sur un téléphone n’est pas forcément un gage de sécurité absolu. Il permet parfois de repérer plus rapidement de potentiels virus ou malwares mais il ne protège jamais d’une mauvaise décision de l’utilisateur.

Conclusion

Yingmob est sans doute le premier groupe (connu du grand public) arrivant à ce degré d’organisation et d’auto-suffisance financière. Mais il ne sera certainement pas le dernier : ce type de malware n’en est qu’à ses débuts et de nombreux hackers se serviront de l’exemple de Yingmob afin de lancer de nouvelles campagnes plus massives et sophistiquées.

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