Mise à mal des forges Git par les collecteurs d'IA

Pour documenter ce fil, un article de synthèse vu par north america et publié à la suite de la dernière rencontre NANOG(94)

2 Likes

Brian Krebs a publié un nouvel article de sa série d’investigation sur les botnets et réseaux de proxies résidentiels :

DSLRoot, Proxies, and the Threat of ‘Legal Botnets’, Brian Krebs

Ce marché noir / gris foncé semble devenir de plus en plus bondé :

“These days it has become almost impossible to compete in this niche as everyone is selling residential proxies and many companies want you to install a piece of software on your phone or desktop so they can resell your residential IPs on a much larger scale,” DSLRoot explained. “So-called ‘legal botnets’ as we see them.”

1 Like

D’après Codeberg, les crawlers AI ont appris à résoudre le challenge Anubis. cf Codeberg : « It seems like the AI crawlers learned how to solv… » - social.anoxinon.de - Mastodon

It seems like the AI crawlers learned how to solve the Anubis challenges. Anubis is a tool hosted on our infrastructure that requires browsers to do some heavy computation before accessing Codeberg again. It really saved us tons of nerves over the past months, because it saved us from manually maintaining blocklists to having a working detection for « real browsers » and « AI crawlers ».

1 Like

« Residential criminal proxy » : on en apprend tous les jours :grin:

Il y a beaucoup à dire sur ce phénomène systémique, c’est assez décourageant de voir une telle combinaison de poisons se concrétiser de la sorte.

Bref, je pense qu’il ne peut y avoir que des réponses globales et que la communauté va s’organiser et trouver des solutions, forcément imparfaites mais il faudra vivre avec ça. Par exemple : des bases de données dynamiques d’agents qui participent à ces botnets.

En attendant, j’ai aussi fini par mettre en place Anubis (en fait Cerberus, un équivalent pour Caddy) par dépit.

1 Like

Tiens tiens tiens, en regardant les dernières news de Mirlo dont parlais @Jaunidule dans son post Exit to Community, je vois que cette plateforme d’hébergement de musique s’est aussi pris une saignée de crawls en septembre !

Cloudflare propose « Content Signals », une extension à robots.txt qui permet de déclarer les usages désirés et non-désirés, en distinguant par exemple la recherche en ligne de l’IA.

Un exemple :

User-Agent: *
Content-Signal: search=yes, ai-train=no 
Allow: / 

C’est une réaction à Google qui utilise le même robot pour alimenter à la fois la fonction recherche classique, et la fonction « AI Overview ».

3 Likes

Ca va dans le bon sens, mais je pense que ça ne changerait rien sans valeur juridique, et donc volonté politique. En attendant, les botnets continuent leur sale boulot.

1 Like

Certes, il faut de la régulation et volonté politique pour rendre cela contraignant. Mais le travail légal et technique sont complémentaires.

S’il n’existe aucun standard pour déclarer si politique d’indexation permet ou non l’usage par les IA, alors les vilains propriétaire de bots pourraient s’opposer à la régulation en disant « C’est inapplicable ! Il n’existe aucun standard pour qu’un bot détecte si l’usage pour AI est souhaité ou non »

1 Like

Je vais vous parler de deux outils utiles aujourd’hui pour identifier le trafic des bots : asncounter et grepcidr.

Le premier permet de grouper les IP par ASN, que ça soit depuis un log, ou depuis le trafic en temps réel avec tcpdump (super !) : https://anarc.at/blog/2025-05-30-asncounter/

La base de données des plages d’IP par ASN est téléchargée une fois et stockée en local, et les lookups se font en local.

Dispo dans le repo trixie-backports, ou à installer avec pip3.

Le second, grepcidr, permet de filtrer un ou plusieurs log selon une plage d’IP. Dispo dans les repos Debian.

Exemple chez moi :

# awk '{print $2}' /var/log/apache2/*access*.log | asncounter
count   percent ASN     AS
17392   22.58   8075    MICROSOFT-CORP-MSN-AS-BLOCK, US
9602    12.47   210743  BABBAR-AS, FR
7197    9.35    15169   GOOGLE, US
4695    6.1     132203  TENCENT-NET-AP-CN Tencent Building, Kejizhongyi Avenue, CN
3455    4.49    16509   AMAZON-02, US
2277    2.96    None    
1756    2.28    203020  HOSTROYALE, IN
1361    1.77    14618   AMAZON-AES, US
1320    1.71    136907  HWCLOUDS-AS-AP HUAWEI CLOUDS, HK
1260    1.64    48282   VDSINA-AS, RU
unique ASN: 1447
count   percent prefix  ASN     AS
9602    12.47   217.113.196.0/24        210743  BABBAR-AS, FR
6681    8.68    66.249.64.0/20  15169   GOOGLE, US
4409    5.73    43.173.128.0/18 132203  TENCENT-NET-AP-CN Tencent Building, Kejizhongyi Avenue, CN
2639    3.43    172.160.0.0/11  8075    MICROSOFT-CORP-MSN-AS-BLOCK, US
2277    2.96    None    None    
1960    2.55    74.224.0.0/14   8075    MICROSOFT-CORP-MSN-AS-BLOCK, US
1568    2.04    207.46.0.0/19   8075    MICROSOFT-CORP-MSN-AS-BLOCK, US
1485    1.93    157.55.0.0/16   8075    MICROSOFT-CORP-MSN-AS-BLOCK, US
1412    1.83    20.192.0.0/10   8075    MICROSOFT-CORP-MSN-AS-BLOCK, US
1261    1.64    82.97.199.0/24  203020  HOSTROYALE, IN
unique prefixes: 4510

Je vois que Babbar est le premier AS et premier préfixe à prendre 12,5% des requêtes de mon Apache. J’utilise donc grepcidr pour voir un peu ce qu’ils font :

# grepcidr 217.113.196.0/24 /var/log/apache2/other_vhosts_access.log
bohwaz.net:80 217.113.196.47 - - [23/Oct/2025:02:31:56 +0200] "GET /photos/tag/slideshow/sydney/6 HTTP/1.1" 301 504 "-" "Mozilla/5.0 (compatible; IbouBot/1.0; +bot@ibou.io; +https://ibou.io/iboubot.html)"
bohwaz.net:443 217.113.196.40 - - [23/Oct/2025:02:32:21 +0200] "GET /photos/tag/slideshow/art/5 HTTP/1.1" 200 2319 "-" "Mozilla/5.0 (compatible; IbouBot/1.0; +bot@ibou.io; +https://ibou.io/iboubot.html)"  
… etc.

On peut voir que c’est un bot d’IA, IbouBot. Ils sont plutôt dans les « gentils » bot, ils respectent le robots.txt, et ça serait pour un nouveau moteur de recherche français mais bon, ça vient d’une boîte (Babbar) qui ont déjà un autre bot plutôt relou en termes de requêtes, et qui ne sert qu’au SEO. Donc à vous de voir si vous voulez bloquer.

À part ça j’ai bloqué le range de Tencent, de toute évidence un bot, et Hostroyale qui est un bot (Brightbot) aussi.

Mais voilà du coup ça aide bien :slight_smile:

5 Likes

(Seulement) à moitié off-topic, j’aimerais bien intégrer une fonction de regroupement par ASN dans reaction, mais je ne vois pas trop à quoi ça pourrait ressembler en termes de configuration pour les admins. Si qqn a une idée là-dessus, hésitez pas à en parler sur ce fil du forum ou dans les issues du projet !

3 Likes

Faites gaffe, on va mettre à jour nos robots.txt Cette réaction est presque comique.

J’ai surtout le sentiment d’observer une terrible dépendance aux services google. Quand ceux-ci sont en panne, tous les autres tombent par un effet domino mode panique de la fin du monde. Voir l’outage du 12 juin dernier.

Pour la note drôle, l’internet selon google a été présenté trois jours avant au nanog 94, Grosso modo, toute la politique de peering ouverte est terminée. Si tu n’as pas 100G t’auras pas ton étoile de VPP… Et annonce de grand changement pour adapter internet à l’IA selon google.

Bonjour à tous,

Je fais de l’infogérance pour un client qui propose (et développe) du logiciel libre pour des bibliothèques. Ça fait un moment que les Crawlers AI génère une quantité de recherche folle dans ces moteurs de recherches : Mise à mal des forges Git par les collecteurs d'IA - #8 par kepon (ce qui occasionne des montés en charges conséquentes/visibles). Dans les 4 derniers jours juste pour openai ~4 millions de requêtes :
# grep openai /var/log/apache/*.log | wc -l 3855684

Mais comme je l’ai déjà dit Bloquer attaque http, ip multiple - #24 par kepon c’est pas simple à bloquer parce que de multiples requêtes depuis de multiples IP, plutôt lentement si on prend par IP…

Pour ma part c’est pas simple dans l’état de l’infra d’y mettre un anubis.

Crowdsec à sortie une blacklist Crawlers AI : https://app.crowdsec.net/blocklists/67b3524151bbde7a12b60be0 mais elle réservé aux comptes Platinium. Quelqu’un à une bonne liste communautaire ? Parce que si c’est le cas je vais faire ça + php bounced crowdsec si l’IP n’est pas FR (un petit captcha)

David

Le chaton indiehosters utilise crowdsec depuis un petit moment. Notamment sur ce forum car iels nous hébergent. :vibration_mode: @Arnaud, un avis ?


[edit]

Pmb ?

1 Like

Sur Crowdsec je l’utilise dans d’autre contexte avec du succès et des échecs (instabilité, CPU qui s’emballe… pas eu le temps de creuser pour l’instant, un restart suffit à le calmer)
Pour vous dire où j’en suis dans mon contexte ou Anubis est difficilement inter-calable :

Du coup le comportement actuel :

  • Si tu es hors UE (décision lié au taf de mon client) alors tu es soumis au Captcha de crowdsec pour être sûr que es un humain. Sauf si tu es un bot SEO
  • Si tu es en UE, rien ne change…

C’est un peu détourner de ce que permet Crowdsec et peut être que les bots d’IA savent résoudre le captcha :sweat_smile: mais je me dis que ça peut freiner… Bon j’ai pas encore de grand retour à faire… c’est trop frais… Si vous en voulez plus dites-moi et je partage les scripts ansible et compagnie quelque part…

Entre autre oui mais pas que…

Coté IndieHosters on a arrêté d’utiliser Crowdsec parce que ça faisait trop de faux positifs (ça bloquait des utilisateurs legit en VPN ou en partage connexion mobile). Et que ça ne permettait pas le white listing.
Il faudrait qu’on fasse un peu d’intégration pour y ajouter un contrôle avec altcha quand l’IP est dans la blacklist puis la rajouter en whitelist une fois vérifiée. C’est en projet mais on a pas eu le temps de le traiter.

En attendant on bloque les user-agents des bots et sur la forge on a ajouté anubis (GitHub - TecharoHQ/anubis: Weighs the soul of incoming HTTP requests to stop AI crawlers)

1 Like