Une nouvelle technique pour contourner les adblockers avec les websockets
Elle serait exploitée par des sites web pour afficher des publicités

Le , par Coriolan, Chroniqueur Actualités
Avec l’utilisation accrue des bloqueurs de publicités, le marché mondial de la publicité est menacé. On évalue à 6 % le pourcentage d'internautes recourant à des adblockers, soit 200 millions d’internautes dans le monde. Les pertes liées au blocage de la publicité en ligne ont été estimées à 21,8 milliards de dollars rien que pour l’année 2015. Face à cette réalité, les géants de l’industrie se sont empressés de prendre des actions concrètes pour défendre leurs intérêts, à l’image de Google qui a pris des mesures pour s’attaquer au problème des mauvaises publicités ou encore de Facebook qui a cherché à contourner les mécanismes d’Adblock.

Un développeur a démontré dans un billet de blog comment il est possible de contourner les adblockers en exploitant les websockets. Lors du développement d’un outil de capture et d’analyse du trafic réseau sur Chrome, le développeur a dû utiliser l’API chrome.webrequest avant de se rendre compte que cet API ne permet pas l’analyse du trafic des websockets. Cette limitation ne date pas d’aujourd’hui, un bogue a été rapporté depuis 2012 selon lequel les requêtes de WebSocket ne sont pas interceptées par chrome.webRequest.onBeforeRequest. Les utilisateurs se sont plaints que sans le blocage des WebSockets, les sites web peuvent contourner facilement les bloqueurs de publicité. Autrement dit, si les données liées au WebSocket ne sont pas visibles des extensions de Chrome via l’API webRequest, alors il sera impossible de les intercepter sans avoir recours à quelques manipulations complexes.

Au début, il était clair que cette limitation menaçait les adblockers, au moins en théorie. Néanmoins, le nombre de sites web qui l’ont exploitée est resté obscure. En aout 2016, un employé de la compagnie propriétaire de Pornhub.com (MindGeek) a commencé à contester la décision d’ajouter des possibilités de blocage du WebSocket dans l’API de Chrome. Pornhub est le 63e site le plus visité du monde selon Alexa. En effet, les sites de MindGeek exploitaient cette limitation pour afficher des annonces même à ceux ayant installé Adblock Plus. Les pubs sur Pornhub sont marquées par “By Traffic Junky”, un réseau également dirigé par Mindgeek.

À chaque visite de Pornhub.com, le site essaye de détecter si le visiteur utilise un adblocker. Si jamais il arrive à le détecter, le site ouvre une connexion WebSocket qui agit comme un mécanisme de sauvegarde pour délivrer des pubs. En analysant les logs du trafic, on voit un nombre de requêtes réseau bloquées par Adblock : elles sont marquées comme Failed, l'inspection en détail montre que la cause de ce blocage est net::ERR_BLOCKED_BY_CLIENT. Cette erreur est affichée par Chrome quand un élément est bloqué lors du chargement.

Le développeur a trouvé que Pornhub exploite le WebSocket pour se connecter au domaine “ws://ws.adspayformy.site.” (les pubs financent mon site), un joli tour joué aux utilisateurs de bloqueurs de publicité. Quand le WebSocket se charge, le navigateur envoie une frame avec JSON vers chaque place où est affichée une pub. En vérifiant les frames WebSocket, on se rend compte que chaque frame contient les données renvoyées pour chaque annonce :

  1. La zone_id est la zone où le JavaScript place la pub.
  2. Le media_type de l’image pour que la page puisse savoir quel élément créer (la plupart des pubs sont des vidéos).
  3. L’image elle-même transmise avec un encodage base64 pour qu’elle soit reconstruite en utilisant un data uri scheme.
  4. Un “img_type” (“image/jpeg”) pour passer aux données uri.


De cette façon, les mécanismes des bloqueurs de publicité sont contournés puisqu’ils s’appuient sur l’API webRequest.

Le 25 octobre 2016, un contributeur a écrit un correctif permettant de bloquer les WebSockets en utilisant l’API webRequest. S’il est accepté, il sera inclus dans la version stable de Chrome. Il apparait également que les bloqueurs de publicité ont commencé à mettre en place des solutions pour bloquer cette technique. Une chose est sure, la guerre entre les fournisseurs de contenu et adblockers est annoncée.

Source : blog BugReplay

Et vous ?

Qu'en pensez-vous ?

Voir aussi :

Facebook va bientôt contourner les adblockers sur sa plateforme, tout en offrant aux utilisateurs plus de contrôle sur leur expérience de publicités


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse

Avatar de micka132 micka132 - Membre expert https://www.developpez.com
le 03/11/2016 à 21:35
Je vais dire peut être une connerie mais si je suis un fournisseur de pub, pourquoi je demande pas aux sites de précharger le contenu de la pub et de l'inclure dans le template de la page.
Si la publicité fait partie intégrante du flux "normal" du site, comment le adblocker va s'y prendre pour la détecter?
Avatar de jopopmk jopopmk - Membre expert https://www.developpez.com
le 03/11/2016 à 21:53
Une techno intéressante déjà pervertie (et pas par le site de Pr0n derrière ça comme on pourrait le penser). On va se retrouver encore avec des contentieux, dans un an avertissement obligatoire pour les sites qui utilisent les websocket, et dans deux ans blocage par défaut du protocole par les navigateurs ...
Citation Envoyé par micka132 Voir le message
Je vais dire peut être une connerie mais si je suis un fournisseur de pub, pourquoi je demande pas aux sites de précharger le contenu de la pub et de l'inclure dans le template de la page.
Si la publicité fait partie intégrante du flux "normal" du site, comment le adblocker va s'y prendre pour la détecter?
Template ou pas template si la ressource est récupérée par le client depuis un autre domaine les blocker verront le truc. Une solution pourrait donc être d'héberger directement les pubs sur le domaine du site, par contre les annonceurs devront faire confiance auxdits sites sur les stats d'affichage, et là autant dire qu'ils seront -logiquement- pas trop pour.
Avatar de marsupial marsupial - Membre expérimenté https://www.developpez.com
le 03/11/2016 à 21:56
Surtout qu'il y a des cas de pubs incluant des malwares... source dvp. D'où l'inclusion d'un add-on en web assembly pour faire le tri au cas où le firewall, le navigateur, la sandbox, la sonde et l'antivérole fasse mal leur boulot.
Avatar de sevyc64 sevyc64 - Modérateur https://www.developpez.com
le 03/11/2016 à 23:20
Citation Envoyé par jopopmk Voir le message
Template ou pas template si la ressource est récupérée par le client depuis un autre domaine les blocker verront le truc. Une solution pourrait donc être d'héberger directement les pubs sur le domaine du site, par contre les annonceurs devront faire confiance auxdits sites sur les stats d'affichage, et là autant dire qu'ils seront -logiquement- pas trop pour.
Et avec un système de redirection dynamique ?
La pub est chargée depuis le même domaine que le site, sauf que le serveur du domaine, à la requête va lui-même la chercher sur les serveur des la régie de pub pour la fournir ensuite comme si elle était locale au site.

Mais bon, perso, je suis un antipub convaincu. Ils ont trop abuser et il va falloir beaucoup beaucoup d'efforts désormais pour me convaincre de faire machine arrière. Et leur petite géguerre n'y travaille pas pour.
Avatar de Beanux Beanux - Membre éclairé https://www.developpez.com
le 04/11/2016 à 0:31
Légalement une publicité doit être différentiable du contenu (après les site/régie qui sont dans l'illégalité, c'est une autre histoire).
Donc soit ça l'est pas pour un humain et c'est pas illégal, soit ça l'est et les bloqueur de pub trouveront une solution.
Avatar de yann2 yann2 - Membre expérimenté https://www.developpez.com
le 04/11/2016 à 0:32
Citation Envoyé par sevyc64 Voir le message
Et avec un système de redirection dynamique ?
La pub est chargée depuis le même domaine que le site, sauf que le serveur du domaine, à la requête va lui-même la chercher sur les serveur des la régie de pub pour la fournir ensuite comme si elle était locale au site.
Un proxy quoi. Encore une fois l'annonceur ne peut pas faire la différence entre un visiteur réel et une tentative d'arnaque de l'admin du site en faisant croire à des vues alors qu'il n'y en n'a pas. Sans compter qu'en faisant ça, tu dois avoir la bande passante pour les pubs (qui sur certains sites sont beaucoup plus gros que le contenu du site, il suffit de désactiver le bloqueur pour s'en apercevoir )
Avatar de Traroth2 Traroth2 - Membre chevronné https://www.developpez.com
le 04/11/2016 à 10:21
Citation Envoyé par micka132 Voir le message
Je vais dire peut être une connerie mais si je suis un fournisseur de pub, pourquoi je demande pas aux sites de précharger le contenu de la pub et de l'inclure dans le template de la page.
Si la publicité fait partie intégrante du flux "normal" du site, comment le adblocker va s'y prendre pour la détecter?
Même là, ça reste possible, avec le positionnement de la pub dans la page. Les pubs sont toujours au même endroit dans l'arborescence de la page, et en bloquant l'affichage de ces parties, on efface la pub.
Avatar de halaster08 halaster08 - Membre émérite https://www.developpez.com
le 04/11/2016 à 11:06
Mais quand vont-ils comprendre que trop de pub tue la pub.
Si les gens ferment la porte, ce n'est pas une invation a passer par la fenêtre.
C'est clairement pas avec ce genre de méthode qu'ils vont faire baisser le nombre d'adbloqueurs, au contraire.
Avatar de zaza576 zaza576 - Membre actif https://www.developpez.com
le 04/11/2016 à 12:08
Hello les développeurs,

donc si j'ai bien compris, il ne me reste plus qu'à bloquer aussi le protocole et tous les services liés aux websockets de Chrome, Firefox et compagnie.

Bon, bah hop, comment virer de la publicité sans se prendre le choux.

Merci pour cet article. Cela me fait prendre conscience que certaines boîtes n'ont pas encore abandonné l'idée qu'on se fait de la pub sur Internet et vont jusqu'à dépenser le moindre pecko pour développer des solutions alternatives pour encore déranger les internautes dans leur navigation paisible.

Après tout, qui utilise encore les WebSockets c'est so 2015 XD.
Avatar de Traroth2 Traroth2 - Membre chevronné https://www.developpez.com
le 04/11/2016 à 16:04
Cela dit, les gens qui prennent la peine d'installer un adblocker, je ne suis pas sûr que ça soit vraiment une bonne idée de leur mettre de la pub sous le pif en utilisant un moyen de le contourner. Moi, quand ça m'arrive, ça me donne envie de noter la marque en question pour être certain de ne jamais l'acheter par accident !
Contacter le responsable de la rubrique Accueil