Les requêtes indésirables

../../../../2014/12/10/adware-publicites-indesirables-blocage-dns/
Antoine Van-Elstraete (antoine@van-elstraete.net)
mercredi 10 décembre 2014





5 min.

Image d'illustration

Ma chère et tendre Sophie aime installer de nombreux jeux et applications gratuites depuis le magasin d’applications de Google. Mais j’ai remarqué que sa tablette avait de nombreux accès réseaux, alors qu’elle n’était pas utilisée.

Synchronisations des mails, contacts, calendriers, tweets, … OK tout ça est voulu, mais une fois tous ces services désactivés, il reste encore quelques étranges requêtes.

Ces requêtes sont régulières, environ toutes les 5 minutes pour les plus fréquentes !

Les requêtes indésirables

Non seulement elle effectuent des connexions à internet, mais ces requêtes fournissent de nombreuses informations : Android 4.4.2, Tablette Lenovo A7600-F, « id 2d4c8203-eab8-0000-0000-0000000000000 » (modifié pour cet article), …

GET http://soma.smaato.net/oapi/reqAd.jsp?pub=923871640&adspace=65835007&format=ALL&formatstrict=true&dimension=LEADER&dimensionstrict=true&width=720&height=90&coppa=0&modifyRM=true&beacon=true&connection=wifi&osversion=4.4.2&devicemodel=Lenovo+A7600-F&devicebrand=Lenovo&screenwidth=800&screenheight=1232&devicetype=1&lang=fr-FR&osname=android&portrait=true&mraidver=2&googleadid=2d4c8203-eab8-0000-0000-000000000000&googlednt=0&response=XML&client=sdkandroid_4-3-1&apiver=413
GET http://a.applovin.com/2.0/ad?model=Lenovo+A7600-F&etf=686&dx=800&dy=1232&accept=custom_size,launch_app,video&api_did=10badd1d70a249426d&locale=fr_FR&network=wifi&revision=A7600-F&preloading=true&ntr=wifi&carrier=&ntf=wifi&os=4.4.2&platform=android&sdk_version=5.4.1&format=json&sdk_key=Ra31GHTlRgcB-un7sTCEz902duzU6iyXI_ZTG2Ihkwthoeqd71t4At7pm5HsoEO4DydU-xAhr2OdhDGpE7uP__&size=INTER&si=1&li=313&etr=10&vz=4a1faf71cfe596fe&brand=Lenovo&require=VIDEOA&idfa=2d4c8203-eab8-0000-0000-000000000000&vx=572f4ea557dbb90d,a2162e12e40c0fa4,5bcd4f6255d73a6e,c075a1feaa1ca1f0,9381ecc60869b23e,8bbc51796fafceca,dbaa3bed93b35bdc,1424cab848c2f673,01dbffefbce67863,37ae944d6c4e62a6,9e32756554c350bb,9288a1ee0425a14b,4765a681f2131c0a,a1657ccd543f12e6,b367cba9336eb1d4,58622486551cea8a,52f4a248e0123881,57848752abe75b81,9cc7be0484285278,bb5146f4bd7ecc21,e24ee4c4927dadb2,397bdb297cf39979,c938df92dbecc6cc,394714342a1ef71d,8c07b6d56e1d5bd8,f50a8be38b538117,29c7f5290d6213bb,7885dd0579fe7ab2,7f10fa3eb26775fc,975db2daf78b030c,100e2a29cb501ab2,52ef6f43ad7f76ac,ee0003482af9a89e,bab3ef1e554e85c6,4a1faf71cfe596fe,59473f5e54063610,40fde38e052500e1,de32c90df7fef9c0,32c9bbd48cfd7adc,c39bfd1b68f408f8,f5c584c01ff177ce,47b5a0492c9852fe,e8cd97209b6b1942,f51159cf92cf2de7,d8c0379f4b21041d,367f8eb1a8464d7b,f413cec2e58b9cf3,d2c19d96087e5414,059f22d7cdbe1c33,b40f9bbe3d6e4e57,972781e16b471ea8,773e140b2a64017c,be7391bb21f513fa,1a2df2329accad53,de587a5ee30732b7,0690e7997c09027d,1711009c6f4a27e2,aa80fb912985d36e,febbc860d4d7a2fc,a5350555f3829167,26409ebb8c64515d,1f0b50d5b44ab6b2,fc991f708b270f04,42a7dd7816a225ec,60c3b8a3158c449f,0ede5da05521c37a,16568adb3f980bfc,9c40104f66412490,dbca1157358a2895,eec390d1aa173f03,7de8736fbac195c9,a4d6da97ffc3f575,99a889b5026405e9,2dfd84944fbb2dba,cfd45ff4682b4404,729a7aaa4e4ae212,7d718e8507e24d66,254e018e3de81b50,38ae3410b197d32c,b7e0f401593ddae4,1dca1b8fb04c2566,69b82ccaca3b3805,9526038686bbb04e,3bdcf23ec696a49c,cf83ca895e299969,dc68b09334c2ef78,86b9d37d0a7d1cec,a3ec731b2126ac00,6dc4ad08c5aa7224,41655ee2c8ceeff9,9add20b7b6164ab2,dc88085c6113cab4,844f693e9fab4caf,2bf5b1f5c88af849,26030578874a59c5,de3629d55b0023c7,c132f41dc09821b4,94f8c2a776db8d4d
GET http://ads.mopub.com/m/ad?v=6&id=66cc877d82914e559ab9bf8992320bf1&nv=3.1.0&dn=Lenovo%2CLenovo%20A7600-F%2CA7600-F&udid=ifa%3A2d4c8203-eab8-0000-0000-000000000000&z=%2B0100&o=p&sc_a=1.0&mr=1&ct=2&av=1.0.10&android_perms_ext_storage=1
POST http://223.202.19.39/reaper/server/report2 - ORIGINAL_DST/223.202.19.39

C’est cette dernière qui revient le plus régulièrement. Examinons là :

  • Où ? En Chine : Beijing Blue I.T Technologies Co.,Ltd.
  • Quoi ? Rien, finalement ! Le POST ne contient aucune donnée…

Interceptions

Bon et bien tout ce que ça mérite, c’est d’être bloquée, hop :

iptables -A OUTPUT -d 223.202.19.39 -j DROP

Mais je ne vais pas utiliser le pare-feu pour bloquer toutes ces requêtes. Pour le reste, et les requêtes futurs, je vais utiliser un blocage au niveau du serveur DNS local. Tant qu’à faire, autant en profiter pour bloquer la publicité avec le reste des indésirables.

Ma passerelle internet utilise dnsmasq pour le DHCP et le DNS sur le réseau local.

Il existe des listes de noms d’hôtes où sont hébergés les services de publicités et autres trackings :

Il en existe certainement d’autres…

Ces listes sont au format « hosts », c’est à dire associant une IP à un nom de domaine. Dans ces cas, l’IP est toujours 127.0.0.1, c’est à dire l’ordinateur lui-même. En donnant le contenu de ces listes à dnsmasq, il va la parcourir avant d’effectuer une requête DNS. Si le nom de domaine correspond à l’un d’eux, il va chercher le fichier sur localhost (127.0.0.1). Il suffit donc de faire tourner un serveur web sur cette machine (pour éviter le délai de “timeout”).

Petit script pour faire l’ensemble de l’opération :

#!/bin/bash
wget "http://adaway.org/hosts.txt" -O /tmp/adaway-hosts
wget "http://adblock.gjtech.net/?format=hostfile" -O /tmp/adblock-hosts
wget "http://hosts-file.net/ad_servers.txt" -O /tmp/hostsfile-hosts
wget "http://www.malwaredomainlist.com/hostslist/hosts.txt" -O /tmp/malwaredomainlist-hosts
wget "http://securemecca.com/Downloads/hosts.txt" -O /tmp/securemecca-hosts
wget "http://someonewhocares.org/hosts/hosts" -O /tmp/someonewhocares-hosts
wget "http://sysctl.org/cameleon/hosts" -O /tmp/sysctl-hosts
wget "http://winhelp2002.mvps.org/hosts.txt" -O /tmp/winhelp2002-hosts
wget "http://pgl.yoyo.org/adservers/serverlist.php?hostformat=hosts&showintro=0&mimetype=plaintext" -O /tmp/yoyo-hosts
cat /tmp/adaway-hosts /tmp/adblock-hosts /tmp/hostsfile-hosts /tmp/malwaredomainlist-hosts /tmp/securemecca-hosts /tmp/someonewhocares-hosts /tmp/sysctl-hosts /tmp/winhelp2002-hosts /tmp/yoyo-hosts | grep ^127.0.0.1 | grep -v ^$ | sort | uniq > /etc/bad-hosts

Puis dans la configuration de dnsmasq, ajouter :

addn-hosts=/etc/bad-hosts