3 points par GN⁺ 2025-04-14 | 1 commentaires | Partager sur WhatsApp
  • Anubis a été déployé sur policytoolbox.iiep.unesco.org de l’UNESCO, ce qui attire davantage l’attention sur lui comme exemple d’outil anti-bots utilisé par une grande organisation
  • Après vérification que unesco.org est bien le domaine officiel de l’UNESCO, ce déploiement est considéré comme un cas d’usage réel par une organisation liée aux Nations unies
  • Son usage s’élargit aux côtés de déploiements déjà connus, comme les archives de la Linux Kernel Mailing List, le SVN de FreeBSD, SourceHut, FFmpeg, Wine et GNOME GitLab
  • Le fait que de telles organisations adoptent Anubis montre que le problème du trafic de bots sur Internet pourrait être plus grave qu’on ne le pensait
  • Anubis et sa stack environnante nécessitent davantage de temps ; avec un soutien suffisant, le développement à plein temps, voire le recrutement, deviendraient possibles

Confirmation du déploiement à l’UNESCO

  • Anubis a été déployé sur policytoolbox.iiep.unesco.org, un site de l’UNESCO, agence des Nations unies
  • unesco.org est indiqué sur Wikipedia comme le domaine officiel de l’Organisation des Nations unies pour l’éducation, la science et la culture
  • L’équipe souhaite contacter les administrateurs système de l’UNESCO pour vérifier s’ils ont rencontré des problèmes lors de l’installation, et rendre le processus d’installation plus simple

Déploiements connus et travaux à venir

  • Les cas confirmés de déploiements à grande échelle incluent notamment :
    • les archives de la Linux Kernel Mailing List
    • le SVN de FreeBSD, bientôt git
    • SourceHut
    • FFmpeg
    • Wine
    • UNESCO
    • The Science Olympiad Student Center
    • l’environnement de bureau Enlightenment
    • le GitLab de GNOME
  • Si des organisations de cette taille utilisent Anubis, le problème du trafic de bots pourrait être bien plus grave que ce qui était anticipé
  • Comme dans le cas de YouTube, qui a un temps été proche de « the inversion », où le trafic de bots dépasse le trafic humain, la question restante est de savoir à quel point un phénomène similaire s’est généralisé sur l’ensemble d’Internet
  • Il faut consacrer du temps de façon sérieuse à Anubis et à la stack associée ; avec suffisamment de soutien financier, il serait possible de travailler dessus à plein temps et même de recruter
  • Si Anubis vous est utile, un soutien sur Patreon est demandé

1 commentaires

 
GN⁺ 2025-04-14
Avis de Hacker News
  • Article lié : Anubis : un proxy de preuve de travail pour bloquer les crawlers d’IA (100 points, il y a 23 jours, 58 commentaires) https://news.ycombinator.com/item?id=43427679

  • C’est amusant que Xe ait transformé quelque chose qui, autrefois, ressemblait presque à une blague / un shitpost en un produit réellement utile. On dit toujours que le timing fait tout
    Je suis un peu surpris que tant de sites le veuillent ou en aient besoin. Je comprends le problème des pages Git lentes sur certains serveurs Git très profonds, sans cache, servis depuis des disques lents
    L’UNESCO m’a un peu étonné. Ce sous-site est assez gros, avec des milliers de documents, mais comme c’est du contenu statique, il devrait être facile à servir. En regardant, c’était un WordPress déployé à la va-vite sur Apache, sans cache, sans compression du contenu, ni HTTP/2 ou HTTP/3
    Il est probablement facile de corriger ça pour le servir à très bas coût même sur une toute petite machine, mais évidemment il faut de l’expertise, et l’expertise n’est toujours pas bon marché
    On pourrait demander à un LLM, mais si on ne sait même pas quoi demander, ça n’aide pas encore beaucoup. Si on ne sait même pas que le site est lent au départ, pourquoi poserait-on la question ? On entendra juste dire qu’il croule sous le trafic et on ira chercher un défenseur furry

    • « Il faut de l’expertise, et l’expertise n’est toujours pas bon marché », c’est vrai, mais en même temps je trouve toujours surprenant qu’il y ait probablement beaucoup moins de gens capables de configurer Anubis que de gens ayant de l’expérience dans l’administration de WordPress
      Je ne veux pas dire que c’est difficile, mais plutôt que peu de gens savent même que ça existe
      À vue de nez, s’ils ne touchent pas à WordPress, ce n’est peut-être pas un problème technique : ils ne veulent pas mettre les mains dans une instance fragile, ou il y a un problème de droits dans l’organisation, ou l’administrateur part du principe que WP est déjà bien configuré
    • Le site sur lequel j’aimerais l’appliquer contient beaucoup d’articles, et avec la recherche à facettes basée sur les tags, le nombre de combinaisons et de pages possibles devient pratiquement infini
      Il n’y a aucun moyen de mettre ça en cache, et les bots ne respectent même pas le fichier robots ; ils continuent à demander des URL et récupèrent les articles encore et encore avec toutes sortes de nombres et de combinaisons. C’est vraiment pénible
    • Les scrapers IA ne sont pas seulement mal implémentés, ils vont même jusqu’à invalider délibérément le cache
      Jusqu’ici, les seules solutions que j’ai vues sont Cloudflare, l’obligation de se connecter, Anubis, ou une infrastructure d’une taille absurde
      Un site disait que 60 % de son trafic venait de bots, et pour des sites plus petits, la proportion est probablement bien plus élevée
    • Les défenses anti-bots / anti-scraping / anti-DDoS basées sur la preuve de travail existaient déjà il y a 10 ans ; je ne comprends pas pourquoi elles ne se répandent que maintenant
      Je me souviens aussi de projets qui tentaient de faire de la preuve de travail un calcul utile
  • Si vous ne voyez pas très bien de quoi il s’agit, c’est destiné à bloquer le scraping par l’IA
    « Anubis utilise des défis de preuve de travail pour garantir que le client utilise un navigateur moderne et peut calculer des sommes de contrôle SHA-256 »
    https://anubis.techaro.lol/docs/design/how-anubis-works
    C’est plutôt chouette, et ça pourrait être utile pour un ou deux de mes projets

    • Depuis quelques années, je me demande si le Web est fait pour les humains ou pour les machines. Je ne vois pas vraiment de bonne raison de bloquer spécifiquement les bots quand il s’agit de servir du contenu
      Permettre de publier du contenu ou d’exécuter des actions peut évidemment poser problème dans de nombreux cas
      Mais pour la simple fourniture de contenu, le fait que ce soit un humain ou un bot n’est généralement pas le critère qu’on cherche à filtrer ou à bloquer. Si un client donné n’abuse pas du système, pourquoi faudrait-il se soucier de savoir si ce client est humain ?
  • « Le temps est également utilisé comme entrée. Car, en raison de la nature de la ligne temporelle linéaire, le serveur comme le demandeur savent ce qu’est le temps »
    C’est une phrase hilarante dans la documentation

    • Bon sang, j’avais oublié que j’avais laissé ça. C’est drôle. Je pense que je vais juste la garder
    • Malheureusement, sortie de son contexte, cette affirmation est fausse. Anubis arrondit le temps à la semaine la plus proche, et si la semaine voisine est aussi valide, c’est probablement suffisant
      Pour diverses raisons, les désynchronisations d’horloge sont courantes. On ne peut pas s’attendre à ce que les 10 % d’utilisateurs les moins bien lotis aient une date correcte même au jour près, et même les 25 % du bas peuvent être décalés d’environ 5 minutes
  • Les images de la page intermédiaire affichée en attendant la fin du contrôle Anubis sont vraiment adorables. J’ai toujours trouvé les illustrations et les personnages du blog de Xe magnifiques
    À part ça, je me demandais quel impact cela aurait sur les moteurs de recherche classiques, et en quoi c’était différent de la solution de Cloudflare pour bloquer les crawlers IA ; c’est expliqué sur la page GitHub [1]
    « Si vous installez et utilisez ceci, il est très probable que certains moteurs de recherche n’indexent pas votre site. Ce n’est pas considéré comme un bug d’Anubis, mais comme une fonctionnalité »
    « C’est une réponse un peu façon frappe nucléaire, mais les bots scrapers d’IA ont récupéré les données de manière trop agressive, au point qu’il n’y avait pas vraiment le choix »
    « Dans la plupart des cas, vous n’aurez pas besoin de l’utiliser, et protéger un serveur d’origine donné avec Cloudflare suffira probablement. Mais si vous ne pouvez pas ou ne voulez pas utiliser Cloudflare, Anubis est là »
    [1]: https://github.com/TecharoHQ/anubis/

    • Oui. Pour l’instant, malheureusement, cela bloque l’indexation par les moteurs de recherche. Plus tard, il sera peut-être possible de mettre les IP des moteurs de recherche sur liste blanche
      Cela dit, des services comme Google utilisent parfois les mêmes IP pour l’IA et pour l’indexation de recherche
      Des améliorations sont quand même en cours, comme laisser passer les balises Open Graph, afin qu’au moins les aperçus enrichis fonctionnent
    • Je suis d’accord, les images de la page intermédiaire sont mignonnes. Mais l’idée qu’un jour quelqu’un finisse par les juger « problématiques » d’une manière ou d’une autre et qu’elles soient supprimées me terrifie
  • J’ai lu des choses sur Anubis, et c’est un super projet. Malheureusement, comme indiqué dans les commentaires, les visiteurs du site doivent activer JavaScript™
    Si le site a de toute façon besoin de JavaScript™ pour améliorer l’expérience utilisateur, c’est tout à fait acceptable, mais c’est moins adapté à des sites statiques qui n’ont absolument pas besoin de JS
    J’ai créé ma propre solution pour bloquer efficacement ces « mauvais bots » au niveau réseau. Avec la base de données MaxMind et un WAF/proxy inverse maison, je bloque au niveau ASN (BGP) des réseaux entiers de plusieurs grands acteurs « Big Tech / Big LLM »

    • Une part importante du trafic de bots dont parle cet article vient de plages d’IP résidentielles ordinaires
      Bien sûr, il y a aussi des manipulations d’ASN et des fraudes à la réputation, mais c’est très difficile à contrer. En examinant rapidement les logs, j’ai constaté que ces bots font généralement une seule requête depuis une IP résidentielle donnée, et que ces plages sont probablement aussi utilisées par de vrais utilisateurs humains
      En bref, il y a un risque de bloquer du trafic légitime. Cette solution comporte aussi un risque, mais pour la plupart des humains, le risque réel est bien plus faible
      Ce serait bien de ne pas avoir besoin de JavaScript et de pouvoir prendre en charge les utilisateurs qui l’ont désactivé, mais aucun client ni utilisateur final ne s’est jamais plaint d’une obligation d’activer JavaScript
      Ceux qui s’opposent à l’exigence de JavaScript sont une minorité bruyante, et la plupart d’entre eux l’activent simplement quand ils tombent sur un site qui en a besoin. Même alors, je pense que très peu poussent un soupir de défaite
    • Pour les curieux, la marque « JavaScript » appartient à Oracle : https://javascript.tm/
    • Comment savoir si c’est un LLM ou un VPN ? Comment distinguer le trafic LLM avec la base de données MaxMind ?
    • Y a-t-il un lien vers ta solution maison ?
  • J’aime l’idée, mais une fois la nature du défi clarifiée, il faudra probablement descendre au niveau du protocole
    En matière d’accessibilité, il vaudrait mieux au final que le défi de preuve de travail fasse partie de quelque chose de plus proche de TCP, plutôt que d’être implémenté séparément en JavaScript sur chaque site web

    • Il existe bien Cloudflare PrivacyPass, devenu standard IETF [0], mais c’est assez étrange et l’implémentation de référence est un nid à bugs
      [0] https://datatracker.ietf.org/wg/privacypass/about/
    • Il suffit d’envoyer un défi arbitraire sous forme de boîte noire SPIR-V ou MLIR. Intégrer l’échange défi-réponse à HTTP permettrait une large prise en charge et une accélération matérielle flexible
      La solution « suffisamment correcte » est le classique SHA(seed, nonce), déjà largement utilisé. Si les géants de la tech l’avaient voulu, cela aurait pu être facilement intégré à une couche plus basse de la pile
  • Sur mon téléphone, la résolution de la détection de bot prend pas moins de 5 secondes

    • J’utilise Fennec, un fork de Firefox disponible sur F-Droid, avec un Pixel 9 Pro XL, et ça prend environ 8 secondes au niveau de difficulté 4
      Personnellement, je ne trouve pas l’expérience utilisateur si mauvaise, puisque je n’ai rien à faire. Je préfère clairement ça à un CAPTCHA
    • C’est bien mieux qu’une boucle infinie de CAPTCHA Cloudflare
    • Tu as de la chance. Chez moi, ça a pris 30 secondes
    • Dans mon cas, c’est autour de 0,5 seconde, c’est intéressant
  • Je travaille actuellement sur un prototype que j’appelle « police web Enigma ». L’idée est d’appliquer à la police web servie et mise en cache une graine personnalisée et des valeurs de rotation propres à chaque session utilisateur
    L’objectif est de rendre le web scraping irréaliste à cause du coût de calcul de l’OCR. Pour l’instant, c’est un jeu du chat et de la souris, et j’aimerais un peu changer l’équilibre
    Sans session utilisateur, le source HTML devient en pratique dénué de sens, et si la mise en cache des assets disparaît avec un comportement de type OTP, la page web peut aussi devenir illisible
    Cela permettrait effectivement de créer un CAPTCHA où l’utilisateur ajuste une fenêtre de graine locale jusqu’à pouvoir lire certains mots. Par exemple : « Déplacez le curseur jusqu’à ce que le mot Foxtrott soit lisible »
    J’aimerais beaucoup avoir l’avis de Xe. Pourrions-nous unir nos forces ?
    La stack technique est Go, car c’est le seul langage avec lequel il était facile de modifier directement des fichiers de police web sans problème

    • Même en mettant de côté les problèmes d’accessibilité évidents, ce n’est au mieux qu’un chiffrement par substitution, non ? Avec un corpus suffisant, le déchiffrement me semble beaucoup plus facile
    • Le problème n’est pas que le site soit scrapé en soi, mais le volume de requêtes qui fait tomber l’infrastructure ou augmente les coûts. Les moteurs de recherche font ça depuis plus de 30 ans
      Abîmer le texte n’aidera probablement pas. Ils continueront quand même à marteler le site. À voir les schémas de trafic, les gens qui ont conçu ces bots sont juste... <https://www.youtube.com/watch?v=ulIOrQasR18>
      Pour ce qui est de « J’aimerais avoir l’avis de Xe. Pourrions-nous unir nos forces ? », d’après ce que je comprends, le projet a surtout besoin d’aide pour devenir plus durable à court et à long terme, plutôt que d’ajouter encore des fonctionnalités. Anubis semble déjà très bien fonctionner
  • En tout cas, ça marche très bien pour bloquer les utilisateurs qui ont désactivé JavaScript

    • Oui. Comme tentative pour le rendre attrayant auprès d’un plus large public, c’est vraiment faible. Tant qu’il n’y aura pas de version nojs, ce n’est pas différent des scrapers « IA » en ce que ça casse le web