crowdsec — aspiration de la forge : l'agent était aveugle, deux scénarios la bannissent (24 h, portée Ip) #66

Merged
arcodange merged 3 commits from arcodange/crowdsec-aspiration-forge into main 2026-10-08 16:35:00 +02:00
3 Commits
Author SHA1 Message Date
CI BotandClaude Opus 5.5 8052b533da doc(réseau) — ce que le videur juge bien, et les deux limites qu'on ne voyait pas
Helm Charts / Detect changed charts (pull_request) Successful in 39s
Helm Charts / Library charts tool (pull_request) Skipped
Helm Charts / Application charts alloy (pull_request) Skipped
Helm Charts / Application charts chart (pull_request) Skipped
Helm Charts / Application charts grafana (pull_request) Skipped
Helm Charts / Application charts hashicorp-vault (pull_request) Skipped
Helm Charts / Application charts loki (pull_request) Skipped
Helm Charts / Application charts minio (pull_request) Skipped
Helm Charts / Application charts pgbouncer (pull_request) Skipped
Helm Charts / Application charts pgcat (pull_request) Skipped
Helm Charts / Application charts prometheus (pull_request) Skipped
Helm Charts / Application charts redis (pull_request) Skipped
Helm Charts / Application charts crowdsec (pull_request) Successful in 1m0s
La section 6 disait que la convention « crowdsec devant tout » tenait parce
que le videur juge la vraie IP. C'est vrai, mais le 2026-10-08 a montré deux
limites : l'agent ne lisait aucune ligne (racine Docker non montée), et le
plugin en mode stream ignore les décisions de plage (vérifié : la LAPI rend
bien la décision de plage en mode live, le flux stream la livre comme une
valeur que le plugin ne compare qu'à l'égalité).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 16:29:17 +02:00
CI BotandClaude Opus 5.5 601a2e7d84 feat(crowdsec) — deux scénarios contre l'aspiration de la forge, bans de 24 h, foyer en liste blanche
Le 2026-10-08, 16.216.88.0/24 (74 adresses qui tournent) et 74.7.227.0/24 ont
fait tourner Gitea à 100 % plus d'une heure sur blame/commit/commits/raw.
crowdsecurity/http-crawl-non_statics ne pouvait pas les voir : il compte par
adresse et tolère 2 req/s soutenues ; la plage ne dépassait pas 9 req/min par
adresse, et `.ts` (TypeScript ici) est rangé parmi les fichiers statiques.

- arcodange/forge-aspiration : pages git coûteuses sur le routeur gitea,
  regroupées par /24 ou /64, capacité 60, fuite 4 s ;
- arcodange/forge-comparaisons : compare/archive, capacité 15, fuite 60 s
  (un troisième robot enchaînait une comparaison de ~10 s toutes les 15 s) ;
- portée Ip conservée (une alerte par adresse présente dans le seau) : le
  videur Traefik en mode stream n'applique pas les décisions de plage ;
- profil LAPI : 24 h pour ces deux scénarios, les deux profils par défaut
  recopiés tels quels derrière ;
- liste blanche des adresses publiques du foyer (IPv4 et /64 IPv6).

Rejoué hors trafic dans un CrowdSec v1.7.0 local, avec le hub copié de
l'agent du cluster : voir la PR (débordements, sabotage du seuil, lecteur
humain, adresses privées et du foyer).

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 16:29:17 +02:00
CI BotandClaude Opus 5.5 231da8e020 fix(crowdsec) — l'agent lit enfin les journaux de Traefik : la racine Docker de pi1 est montée
Sur pi1, les journaux de conteneurs passent par une chaîne de liens qui finit
sous /mnt/arcodange/docker/containers (racine Docker déplacée ; l'ancienne,
/var/lib/docker/containers, n'est plus écrite depuis le 2026-04-07). Le chart
ne montait que /var/log et l'ancienne racine : le lien pendait dans le pod.

Mesuré le 2026-10-08 : « Error setting up tail for
/var/log/containers/traefik-… » au démarrage de l'agent (2026-09-26), les 54
journaux de /var/log/pods pointent tous sous /mnt/arcodange/docker, et la
métrique cs_filesource_hits_total n'existe pas (zéro ligne lue). Aucun
scénario HTTP n'a donc jamais pu déborder, pendant que la forge était aspirée.

Montage hostPath en lecture seule AU MÊME CHEMIN (le noyau résout le lien dans
l'espace de montage du pod), type Directory pour que l'agent refuse de démarrer
plutôt que de redevenir aveugle en silence si la racine bouge encore.

Co-Authored-By: Claude Opus 5.5 <[email protected]>
2026-10-08 16:29:05 +02:00