DataDome

Suivre Selenium pour ChromeDriver modifié

Table des matières

Qu’est-ce que Selenium ?

Selenium est un framework populaire lancé en 2004 qui utilise du code pour équiper les navigateurs. Les développeurs de bot utilisent Selenium pour indiquer aux navigateurs les actions à effectuer automatiquement (par exemple, cliquer sur un lien, charger une page, faire une tentative de connexion, ajouter un produit au panier, etc.)

Selenium peut être utilisé pour équiper différents navigateurs, notamment Chrome, Firefox, Opera et Safari. Cet article porte sur l’utilisation de Selenium avec Chrome.

La balise JS côté client de DataDome détecte la modification de ChromeDriver appliquée par les développeurs de bots, ce qui nous permet de suivre l’activité de chaque bot chez différents clients. Voici comment et pourquoi cela fonctionne, et ce que cela peut signifier pour vous.

L’utilisation de Selenium

Selenium reste un choix courant, même si de nombreux développeurs de bots ont migré vers des frameworks plus récents, notamment Puppeteer et Playwright. Lancé en 2004, Selenium est très populaire en raison de son ancienneté et de sa capacité à équiper différents navigateurs tels que Chrome, Firefox, Opera et Safari.

Le ChromeDriver modifié

ChromeDriver est le morceau de code inclus dans le mode headless de Chrome qui écoute et exécute les instructions Selenium. Il est facile d’identifier un Selenium de Chrome non modifié qui utilise le ChromeDriver par défaut grâce à des attributs discriminants qui le différencient des navigateurs Chrome authentiques utilisés par les humains.

Un des objets JavaScript natifs présents dans le navigateur (objet document) possède une propriété discriminante nommée « $cdc_asdjflasutopfhvcZLmcfl_ » qui peut servir à détecter la présence de ChromeDriver. Il existe des sources qui indiquent aux développeurs de bots ou aux fraudeurs comment modifier le fichier binaire de ChromeDriver pour éviter d’être détecté.

Même si les utilisateurs peuvent modifier ChromeDriver en recompilant Chromium, des articles de blog proposent de simplement localiser la chaîne discriminante ($cdc_asdjflasutopfhvcZLmcfl_ ) dans le fichier binaire de ChromeDriver et de la remplacer par une autre afin de contourner les techniques courantes de détection des bots.

Notre moteur de détection peut toutefois identifier les modifications apportées au fichier binaire de ChromeDriver. Cela nous permet de :

  1. Détecter Selenium pour le Chrome modifié en temps réel à l’aide d’une approche basée sur JavaScript que nous avons développée et qui résiste aux fichiers binaires modifiés de ChromeDriver.
  2. Suivre les différents acteurs en fonction de la modification qu’ils ont appliquée à leur fichier binaire ChromeDriver. La modification utilisée est souvent stable (elle ne change pas fréquemment) pour un développeur de bot donné, elle peut donc être liée à un individu ou à un petit groupe d’attaquants.

De plus, comme la chaîne modifiée tend à être unique pour un bot donné, nous pouvons rechercher son origine sur GitHub, Google et d’autres moteurs de recherche. Rechercher la chaîne modifiée nous permet de comprendre d’où peuvent venir les attaquants. Par exemple, cet article de blog sur un site chinois montre comment remplacer la chaîne ChromeDriver originale par « $abc_asdjflasutopfhvcZLmcfl_ ».

 

Selenium pour ChromeDriver modifié dans la nature

Le graphique ci-dessous montre comment nous suivons les acteurs malveillants qui utilisent Selenium avec un ChromeDriver modifié. Vous pouvez voir le nombre distinct de clients de DataDome ayant des sites web ou applications sur lesquels nous détectons chaque signature ChromeDriver modifiée :

Graphique montrant le Selenium de ChromeDriver modifié pour les clients de DataDome

Les secteurs plus populaires : l’e-commerce et le scraping de petites annonces

La signature ChromeDriver modifiée la plus populaire, identifiée par son attribut surchargé « $mks_xsdrpotbutorXXXXXXXXXX », est présente sur environ 20 sites web (principalement d’e-commerce et de petites annonces) et applications mobiles protégés par DataDome. Les bots effectuent du scraping pour extraire des informations sur les produits, notamment leur description, leur prix et leur évaluation.

Les scalpers de baskets

Le deuxième bot ChromeDriver modifié le plus courant, « $abc_asdjflasutopfhXXXXXXXXX », est présent sur cinq sites clients distincts, tous liés à l’industrie des baskets. Notre analyse montre que les bots mènent des attaques de scalping à partir de proxys résidentiels, propres, en essayant d’acheter des baskets en édition limitée.

Les faux influenceurs

La troisième signature ChromeDriver modifiée, « $dog_asdjflasutopfXXXXXXXXX », est utilisée par trois de nos clients pour manipuler des votes. Ces bots augmentent les votes des publications et déclenchent de fausses vues ou écoutes pour manipuler le classement des articles, des chansons et des vidéos.

 

Conclusion

Les attaquants ne ménagent pas leurs efforts pour éviter d’être détectés. Cependant, grâce aux signaux avancés collectés par notre balise JS côté client, nous pouvons détecter la modification que les développeurs de bots appliquent pour suivre leur activité sur différents clients. Cela nous permet de comprendre l’intention et le mode opératoire des bots.

Les exemples ci-dessus démontrent l’importance d’avoir une détection côté client en plus de la détection côté serveur pour mieux sécuriser vos sites et comprendre ce que les attaquants font sur votre site web.