Retour à l’étude BotGuard
Document de l’étude · Octobre 2026

Expériences du 18 octobre 2026

Synthèse publique des tests VPS, VM et qualité, sans traces privées.

Powered by RESONEO

BotGuard / SearchGuard : expériences du 18 octobre 2026

Corpus distincts

  • 17 octobre : quatre sessions, trois profils, neuf SERP, 43 documents Google. Les observations détaillées des lectures des VM appartiennent à ce corpus.
  • Pilote VPS : 37 essais enregistrés, plus une navigation supplémentaire dans une session ouverte. Trois enregistrements se sont arrêtés au contrôle d'IP, avant Google. Comparaison avec Chromium invalidée par des problèmes de version et de contrôles.
  • Série contrôlée sur VPS : 21 navigations, trois profils sources neufs et neuf paires NID conservé/supprimé, une sortie VPN américaine fixe.
  • Travail hors ligne : 96 replays de VM sur quatre échantillons (64 de la matrice initiale + 16 contrôles du tirage aléatoire + 16 contrôles conservant l'enveloppe), plus 48 cas synthétiques du contrôleur.

Accès et session

Sur le VPN suisse initial, Camoufox avec profil neuf a obtenu trois SERP après challenge ; Chrome avec interface et Chrome headless ont chacun enregistré trois refus. Le client HTTP sans JavaScript est resté sur un challenge dans trois essais. Sur la sortie native du VPS, Camoufox avec profil neuf a obtenu trois SERP après challenge, Chrome avec interface trois refus. Ce sont des observations par configuration, pas des taux de réussite généraux.

Série contrôlée : les trois sources neuves ont obtenu des SERP après challenge ; les neuf copies avec NID conservé ont obtenu des SERP directes ; les neuf copies avec NID supprimé ont obtenu des SERP après challenge. L'IP était stable avant et après chaque navigation ; l'identité du navigateur observée à l'exécution était identique. Huit paires sur neuf ne différaient que par NID parmi les cookies réellement transmis ; une différait aussi par __Secure-STRP. Les attentes de 5/35/120 secondes partent de l'ouverture du contexte, pas de l'émission de SG_SS, et n'établissent pas la validité du cookie à 30 secondes.

Binaire Camoufox Firefox 135.0.1-beta.24 ; paquet Python 0.4.11 ; Playwright 1.51.0. Chrome 153.0.8010.52. Le Chromium 141 en cache (révision 1194) ne correspondait pas à la révision 1161 attendue, absente. Requête : musée du Louvre site officiel, fr-FR, hl=fr, gl=fr. La série contrôlée a utilisé une sortie américaine fixe alors que la France était demandée ; toutes les branches partagent cette condition.

La qualité n'est pas certifiée

Les 21 SERP contrôlées contiennent toutes un domaine louvre.fr identifié. Aucune vidéo n'a été détectée par les résultats H3, les liens ou cartes de sources vidéo identifiables ou les titres de modules ; cette heuristique peut manquer des cartes sans libellé. Trois paires sur neuf ont des ensembles de titres extraits disjoints. Le titre candidat de la page d'accueil apparaît au rang 1 sur trois pages, au rang 7 sur dix-sept, et n'est pas identifié sur une. La présentation des sitelinks influe aussi sur l'extraction.

Les six pages avec NID conservé où le candidat de l'accueil est au rang 7 enregistrent Validate, contrairement aux trois pages avec NID conservé où il est au rang 1, dans la fenêtre d'observation. C'est exploratoire : les pages passées par un challenge ont elles aussi l'accueil à un rang bas, sans Validate. Ce n'est pas un classifieur global de qualité.

Les dix-neuf SERP capturées du pilote montrent aussi des variations de classement sur VPN et sur IP native, sans vidéo détectée. Il n'existe aucune référence humaine indépendante contemporaine ; les liens /goto opaques n'ont pas été suivis. Ni un empoisonnement des résultats ni son absence ne sont établis. L'abondance de vidéos reste un signal candidat, pas une signature prouvée de détection. Les observations de la VM YouTube du 17 octobre appartiennent à un autre corpus.

Contrôles hors ligne des VM

Les sorties A/B d'origine sont stables sur les quatre échantillons. L'extraction brute modifie les quatre sorties. Rétablir un tirage Math.random manquant ne rétablit que la VM IoM extraite. Conserver l'enveloppe d'origine et le code interne extrait rétablit les quatre sorties ; reformater ce code interne modifie de nouveau les quatre, deux fois par condition. Cela va dans le sens d'une sensibilité au texte source, sans localiser un mécanisme d'intégrité précis. Des interceptions d'accesseurs supplémentaires laissent les sorties d'origine inchangées dans ce banc d'essai hors ligne ; cela ne prouve pas que l'instrumentation passe inaperçue en ligne. La couverture des cadres enfants about:blank immédiats reste incertaine. Aucun token généré n'a été envoyé à Google.

Les 48 cas synthétiques du contrôleur concordent avec les assertions et la reconstruction : totaux 4 092/4 093/4 094, ancien cookie présent/absent, écriture acceptée/refusée, ss_cgi true/false, ce=30/0. La condition de transport stricte < 4 093 et la vérification de présence d'un SG_SS périmé sont reproduites. Le repli à deux secondes est un chemin d'aide, pas nécessairement une annulation de la VM. L'acceptation par le serveur est inconnue.

Protocole capturé

Le pilote enregistre X-Sg-Cs:s puis, 678 ms plus tard, une nouvelle tentative sur /async/callback:6761 avec sei et X-Sg-Ss (1 072 caractères) en plus, suivie de X-Sg-Cs:a. La méthode, le corps et les autres paramètres comparés restent identiques ; la réponse passe de 59 à 260 350 octets. Mode de requête : 1,isrpe=1,hcs=1. Le HAR n'identifie pas la pile JavaScript à l'origine de la requête.

La série contrôlée enregistre douze documents intermédiaires avec ce=30, ss_cgi=false, challenge_version=0, r=1. Les longueurs de ses six tokens Validate sont 1 403, 1 404, 1 400, 1 424, 1 448 et 1 435 ; le pilote avait 1 441 et 1 417, contre 1 471 à 1 544 dans neuf appels du corpus initial. Aucun X-Sg-Cs n'apparaît dans la série contrôlée. Un HTTP 200, des réponses vides et des longueurs de token proches n'établissent pas l'acceptation.

Limites et éléments conservés

Le test de visibilité n'a pas été concluant : les onglets, la fenêtre pop-up et le retrait effectif de la fenêtre X11 de l'affichage n'ont jamais produit document.hidden=true. Aucune comparaison valide de Google entre page visible et page masquée n'est revendiquée. Les comparaisons d'instrumentation et de session du pilote comptaient une répétition par branche, avec des empreintes de navigateur non figées. Les services déjà présents sur le VPS sont restés actifs. Aucun compte Google personnel ; essais séquentiels, ordre alterné, pauses de 20 secondes ; un refus explicite met fin à l'essai, sans changer d'IP pour chercher un succès. L'accès natif du VPS a été testé avec parcimonie dans le pilote et n'a pas été repris en phase deux.

Les classes de parcours distinguent SERP directe, SERP après challenge, challenge non terminé, refus et autre. Les documents réseau et les navigations JavaScript complètent les vérifications de structure, de titres et de liens. Le hash des 201 fichiers de capture privés définitifs a été calculé et vérifié. La rotation du VPN a été rétablie et les minuteurs de reprise supprimés. Les en-têtes bruts, cookies, tokens, HAR, profils et captures d'écran restent privés. Les CSV publics ne contiennent que des résumés filtrés par liste blanche.

Retour à l’étude BotGuard