Precursor : le système de Cloudflare qui détecte le comportement des agents sur l’ensemble d’une session
(blog.cloudflare.com)- Alors qu’il devient difficile de repérer les automatisations utilisant de vrais navigateurs et JavaScript avec de simples points de vérification isolés comme la connexion, l’inscription ou le paiement, Cloudflare introduit Precursor, qui analyse en continu les signaux comportementaux sur l’ensemble du parcours utilisateur
- Le système injecte dans les réponses HTML un JavaScript léger assemblé dynamiquement, collecte les mouvements du pointeur, l’activité clavier, le focus et l’état d’affichage de la page, puis les répercute en temps réel dans l’évaluation en périphérie et les mécanismes existants de défense contre les bots
- Les mouvements du poignet, les délais cognitifs, les tremblements de la main, ainsi que les rythmes de vitesse, de direction et de correction sont difficiles à reproduire sur toute une session pour une automatisation caractérisée par des déplacements rectilignes, une vitesse constante ou une précision excessive, ce qui en fait une base pour une classification au niveau de la session
- Une conception respectueuse de la vie privée est appliquée : le système ne collecte que le timing et le rythme plutôt que les frappes réelles, et ne relie pas les signaux comportementaux à des comptes utilisateur ou à des profils persistants, ni ne les expose directement dans les tableaux de bord clients
- Déployé actuellement comme fonctionnalité Enterprise Bot Management, Precursor peut être utilisé gratuitement jusqu’à sa disponibilité générale plus tard cette année ; il fonctionne sans modification de l’application, soit par observation en arrière-plan, soit en imposant un Challenge aux sessions non vérifiées
Des points de vérification isolés à l’ensemble de la session
- La défense contre les bots est une compétition antagoniste où l’adaptation des attaquants et la réponse des défenseurs se répètent ; Cloudflare combine la visibilité sur l’ensemble de son réseau avec des signaux issus de l’environnement client
- L’entreprise analyse plus de 1 000 milliards de requêtes par jour sur son réseau mondial afin d’identifier réputation, motifs et anomalies sur plus de 20 % du Web
- Cloudflare Turnstile a évolué d’une alternative au CAPTCHA vers un Challenge managé fondé sur le risque, qui ajuste le niveau de friction nécessaire à la vérification de l’utilisateur
- Turnstile s’exécute environ 3 milliards de fois par jour à des points sensibles comme la connexion, l’inscription ou le paiement, mais il ne donnait qu’une visibilité limitée sur la manière dont humains et bots se comportent sur l’ensemble du parcours utilisateur, y compris entre ces points
- Precursor comble ce manque de visibilité en collectant en continu des signaux comportementaux côté client dans l’ensemble des applications web et en les évaluant au niveau de la session
- Il étend à toute l’application la détection côté client fournie par Challenge
- Il complète Turnstile de façon facultative, les deux fonctionnalités étant incluses dans Enterprise Bot Management
La continuité comportementale, plus difficile à imiter qu’un court instant
- Les automatisations modernes peuvent exécuter JavaScript, utiliser de vrais environnements de navigateur et même réussir des CAPTCHA isolés ; sur de courts segments, elles peuvent donc paraître être des utilisateurs légitimes
- Reproduire un comportement humain cohérent sur toute une session est plus difficile, et Precursor utilise cette continuité comportementale comme signal de détection de fraude et d’abus
- Il ajoute davantage de signaux à chaque décision, afin d’améliorer la précision de la distinction entre humains et automatisations
- Il réduit la dépendance à des Challenges agressifs, limitant ainsi les interruptions inutiles pour les utilisateurs légitimes
- Les développeurs de bots doivent imiter toute la session, ce qui augmente le coût de création et de maintenance de l’automatisation et réduit la fiabilité des opérations à grande échelle
Erreurs humaines et contraintes physiques
- Les développeurs de bots ajoutent du bruit gaussien ou des délais aléatoires uniformes aux mouvements de souris, mais les mouvements humains sont soumis à des contraintes physiques et cognitives qui dépassent le simple bruit
- Axe de rotation du poignet : l’amplitude de mouvement du poignet et la rotation de l’avant-bras font que la souris se déplace souvent selon une forme d’arc
- Charge cognitive : après avoir vu une case à cocher, un délai mesurable s’écoule avant le clic
- Tremblement de la main : même une main stable présente des vibrations liées à la fréquence physiologique du tremblement
- Les automatisations tendent à utiliser une interpolation rectiligne ou des courbes de Bézier mathématiquement idéales, et à cliquer avec une précision difficile à reproduire pour un humain
- Un exemple de bibliothèque d’automatisation déplace la souris en ligne parfaitement droite, revient toujours à l’origine et réagit à la même vitesse
- À l’inverse, les humains présentent, même sur un même site, des trajectoires irrégulières, de petites corrections, des dépassements de cible, ainsi que des variations de vitesse, de timing et de direction
- Même si des interactions individuelles semblent plausibles, les différences de schémas comportementaux apparaissent sur l’ensemble de la session ; Precursor capte et évalue ces signatures comportementales au fil des interactions
Injection côté client et collecte de signaux
- Lorsque Precursor est activé, un script léger est automatiquement injecté dans les réponses HTML des sites qui transitent par le réseau Cloudflare
- Aucune configuration supplémentaire, connexion réseau séparée ni intégration tierce n’est nécessaire
- Le bundle est petit, obfusqué et assemblé dynamiquement pour chaque réponse
- Il est conçu pour ne pas perturber la logique des autres pages de l’application web hébergée
- Le script utilise des écouteurs d’événements légers pour capter les mouvements du pointeur, l’activité clavier, les changements de focus et l’état d’affichage de la page
- Les événements sont sérialisés dans un format compressé et mis en mémoire tampon
- Les données accumulées dans le tampon sont envoyées régulièrement à la couche d’évaluation
Évaluation en périphérie et validation croisée
- Les serveurs en périphérie désérialisent les payloads Precursor entrants en entrées comportementales, puis exécutent plusieurs évaluateurs via un répartiteur
- Chaque évaluateur peut lire les flux Precursor dont il a besoin et enregistrer des signaux dans un registre de détection partagé
- Le système ne s’appuie pas sur un seul événement, mais procède à une validation croisée de données différentes
- Il vérifie que l’activité du pointeur correspond au temps pendant lequel la page était visible
- Il examine si les événements clavier ne surviennent que lorsqu’un champ texte a le focus
- Les informations reçues en continu sont intégrées sous forme de signaux de détection individuels et utilisées pour calculer les pondérations de détection
Accumulation par session et couches de détection ultérieures
- Les données Precursor sont accumulées à l’échelle de la session, de sorte qu’un bot ne peut pas réinitialiser sa signature comportementale en actualisant la page ou en repartant d’un nouveau Challenge
- Les métadonnées de session sont également transmises aux couches de détection suivantes
- Heuristiques en mode shadow et analyse de session
- Comparaison entre achèvement attendu et achèvement réel
- Heuristiques de delinquency de session
- Les informations observées en périphérie sont enregistrées afin d’améliorer la détection et utilisées pour ajuster le score de bot de la session
Conception respectueuse de la vie privée
- Les écouteurs d’événements ne collectent que le minimum d’informations nécessaire pour distinguer les schémas humains des schémas d’automatisation et d’abus
- Pour l’activité clavier, ils ne captent pas les touches réellement enfoncées, mais seulement le timing et le rythme
- Ils évaluent des schémas comportementaux agrégés plutôt que des actions individuelles
- Les signaux comportementaux ne sont utilisés qu’au sein des systèmes de détection de bots de Cloudflare
- Ils ne sont pas directement exposés dans les tableaux de bord clients
- Ils ne sont pas associés à des comptes utilisateur, identités de connexion ou profils persistants
- Cela permet de réduire la friction imposée aux utilisateurs légitimes tout en mettant à jour en continu l’évaluation comportementale
Security Analytics basé sur les sessions
- Security Analytics ajoute une vue basée sur les sessions qui montre l’ensemble du parcours visiteur, plutôt que des requêtes individuelles
- Depuis le tableau de bord, il est possible d’examiner les questions suivantes
- À quoi ressemble une session typique sur le site ?
- Où les comportements s’écartent-ils de ce qui est attendu ?
- Quelles sessions montrent des signes d’automatisation au fil du temps ?
- Les comportements entre les requêtes, difficiles à détecter avec une analyse requête par requête, deviennent eux aussi analysables
- Les données Precursor étant directement transmises aux scores de bots, aux décisions de Challenge et aux règles de sécurité existants, le contexte de session ajouté peut être utilisé immédiatement dans les mécanismes de défense en place
Extensions futures et méthode d’activation
- Precursor constitue une base pour étendre la détection des bots à toute l’application, et Cloudflare prévoit de continuer à développer les domaines suivants
- L’étendue et la profondeur des signaux comportementaux utilisés pour la sécurité
- La manière dont les informations au niveau de la session influencent les protections de gestion des bots
- De nouvelles façons de visualiser les données de session et d’agir dessus
- À mesure que les bots évoluent, la détection doit elle aussi dépasser les points de vérification isolés pour couvrir l’ensemble du flux d’activité utilisateur
- Il est actuellement possible d’activer Precursor par zone dans le tableau de bord Cloudflare ; il est proposé gratuitement jusqu’à sa disponibilité générale plus tard cette année
- L’intensité de vérification des sessions peut être choisie de deux façons
- En mode à faible friction, le comportement est observé en arrière-plan
- Si une session entièrement vérifiée est nécessaire, un Challenge est imposé lorsqu’il n’existe pas de session existante
- Dès son activation, les défenses existantes contre les bots sont renforcées, sans nécessiter de modification de l’application
- Si vous utilisez déjà Bot Management ou Turnstile, le périmètre de détection s’étend au-delà des points de Challenge existants, jusqu’au reste de la session et aux activités entre les points protégés
1 commentaires
Commentaires sur Hacker News
Il est préoccupant de voir Cloudflare s’installer comme arbitre des bots, à la fois du côté du blocage et de l’autorisation, et cela ne semble pas sain pour l’ensemble d’Internet
Cela fait presque 20 ans que je me lamente sur le fait qu’il faut un meilleur mécanisme de rémunération des créateurs de contenu que la publicité, et cela pourrait en être la réponse
Les critiques disant qu’Anthropic et OpenAI se sont construits sur du contenu détourné persistent aussi, donc on ne peut pas ignorer cette réalité tout en voulant les deux à la fois
Avec une critique aussi générale, il est difficile de comprendre s’il s’agit de dire que sa couverture est trop large, ou que personne d’autre ne propose de service similaire
Il est un peu étrange de voir Cloudflare vendre des produits d’agents tout en lançant en même temps un service qui semble bloquer l’usage d’agents sur le Web
Ils utiliseront sûrement bien plus de signaux que le simple trajet de la souris, mais rien qu’avec cela, la détection peut déjà être compliquée avec des périphériques d’entrée non traditionnels comme les écrans tactiles ou le TrackPoint des ThinkPad
Si des utilisateurs d’outils de souris d’accessibilité sont pris à tort pour des bots, ce serait grave, mais si on leur accorde des exceptions, cela pourrait aussi devenir une voie de contournement pour la navigation par agent
Cela reste néanmoins presque certainement une bonne direction pour réduire les abus et le spam des bots agents
On peut fournir des services que les bons bots utiliseront tout en aidant à bloquer les mauvais
Si un bot imite maladroitement les mouvements de souris, c’est un fort signal d’anomalie, et un bon bot respectera
robots.txtsans cacher qu’il est un bothCaptcha faisait déjà tout cela il y a 6 ans
Cela ne se limitait pas à distinguer humains et bots, mais identifiait aussi les comportements clavier et souris qui apparaissent quand une même personne crée plusieurs comptes ou teste plusieurs cartes bancaires
Quand Cloudflare est passé à hCaptcha en 2020, cette détection des abus était incluse, et quand il l’a quitté en 2022, je pensais qu’il l’avait déjà réimplémentée en interne
Même en cherchant l’accessibilité sur la page, il n’y a aucun résultat, donc cette astrologie des mouvements de souris risque d’exclure complètement les personnes aveugles et les utilisateurs uniquement au clavier d’une grande partie d’Internet
S’ils se connectent et renoncent à leur anonymat, ils seront probablement considérés comme n’étant pas des bots
Dans certaines régions, il est même impossible de voyager sans smartphone, car on ne peut pas s’enregistrer pour un vol sans lui, mais la plupart des gens trouvent cela normal
La détection d’agents est un domaine en train d’émerger, et il deviendra bien plus important à l’avenir
Parmi les produits concernés, on trouve Foil(https://usefoil.com/), Kasada https://www.kasada.io/, DataDome(https://datadome.co/), Castle(https://castle.io/), Fingerprint(https://fingerprint.com/), HUMAN(http://humansecurity.com/), Google Cloud Fraud Defense(https://cloud.google.com/security/products/fraud-defense?hl=...), qui est de fait le successeur de reCAPTCHA, ainsi que Cloudflare Precursor
Les principaux usages actuels sont la prévention du credential stuffing automatisé, des faux comptes et des abus d’essais gratuits avec les coûts SMS Twilio qui en découlent, de la fraude au paiement, du scraping par LLM, ainsi que de l’accaparement automatisé de billets et de sneakers
Je me demande quel usage tirera le plus fortement la demande des entreprises, et j’aimerais qu’au lieu de bloquer systématiquement les agents, on puisse les détecter puis les rediriger vers une voie réservée aux agents, afin qu’ils puissent parcourir le Web et effectuer des tâches à la place de l’utilisateur
Ils fournissent des centaines de millions d’IP résidentielles, des empreintes de navigateur proches de celles des humains, des binaires de navigateur personnalisés, et contournent automatiquement Turnstile, reCAPTCHA v3, Kasada, DataDome, AWS WAF, etc. dès qu’ils apparaissent
Il combine le profilage et les probabilités de transition entre étapes, ce qui permet d’exiger une vérification supplémentaire des agents ou de les bloquer uniquement dans certaines zones d’actifs numériques, comme un paiement présentant un risque de refus
À l’heure actuelle, Precursor semble davantage axé sur la détection du scraping qui récupère plusieurs documents sur un même site
Je me demande ce qui pourrait bloquer des bots ou des agents qui ajouteraient de micro-tremblements pour imiter les mouvements du curseur humain
Ils utiliseraient sans doute d’autres signaux, mais celui-ci semble au moins facilement contournable dès que les bots deviennent un peu plus sophistiqués
Même un simple clustering par machine learning permet de distinguer les comportements de souris, de clavier et de tactile des bots de ceux des humains, mais cela risque aussi de discriminer les personnes handicapées qui utilisent des aides comme le suivi oculaire
Le comportement d’une personne n’utilisant qu’une seule main peut être très différent de celui d’un utilisateur typique, et actuellement, aux États-Unis, l’application de l’ADA reste faible hors de Californie, de l’Illinois et de l’État de New York
Une entreprise aussi influente que Cloudflare doit filtrer de manière prudente afin que les personnes handicapées ne subissent pas les effets de cette analyse comportementale
Ils ne peuvent pas se défausser en disant « nous ne fournissons qu’un score de probabilité de bot, et chaque site fixe son propre seuil », puis prétendre que le blocage de personnes handicapées est la faute des sites qui auraient fixé un seuil trop strict
À cette échelle, il faut assumer les effets de second et de troisième ordre des décisions
Ces données permettent de distinguer non seulement les bots, mais aussi le sexe, la main dominante, l’âge approximatif, la langue maternelle d’après les schémas de frappe, ainsi que les blessures, les phases de récupération et les handicaps mentaux ou physiques
La manière de naviguer sur un site peut aussi permettre d’estimer un TDAH, une schizophrénie, la maladie de Parkinson, l’usage de médicaments et les effets d’un traitement, donc il est très difficile d’imiter tous ces signaux au point d’entrer dans le même cluster qu’une personne typique
Même si cela peut fonctionner à court terme, des schémas nets apparaîtront avec le temps, et comme ils disposent aussi de données variées sur les tremblements selon les sites et les mises en page, ils peuvent facilement repérer les imitations artificielles
Même pour un même utilisateur, les mouvements changent selon le périphérique d’entrée
J’utilise une souris sur mon PC de travail, un pavé tactile sur mon ordinateur portable personnel, et le TrackPoint d’un ThinkPad sur mon portable pro, ce qui me donne trois profils comportementaux pour une seule personne
Ce sera différent des mouvements d’une IA, mais si l’empreinte des mouvements de souris devient une barrière de plus, on risque de voir apparaître beaucoup d’anomalies intéressantes
Cloudflare devrait arrêter de prétendre protéger Internet
https://developers.cloudflare.com/browser-run/quick-actions/...
Cette entreprise ressemble à une société qui vend du tabac tout en construisant des hôpitaux
J’ai hâte du jour où Cloudflare vendra les données sur l’état de mon poignet à des assureurs. Quel magnifique enfer de surveillance nous avons créé nous-mêmes
Récemment, à cause de faux positifs de Cloudflare, il arrive souvent qu’une session reste bloquée en chargement sans jamais passer à la vraie page
Si l’entreprise continue de déployer chaque jour de nouvelles solutions bricolées à l’intuition, je crains aussi que cela finisse par nuire à la qualité du service