Une nouvelle technique pour contourner les adblockers avec les websockets
Elle serait exploitée par des sites web pour afficher des publicité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 :
- La zone_id est la zone où le JavaScript place la pub.
- 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).
- L’image elle-même transmise avec un encodage base64 pour qu’elle soit reconstruite en utilisant un data uri scheme.
- 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
Partager