RousselTMLEARNING

Observabilité

CrowdSec : comprendre le pare-feu collaboratif

Ce qu'est CrowdSec, comment il détecte et bloque les attaques : Security Engine, parsers, scénarios, Local API, Central API et bouncers.

1. Ce qu’est CrowdSec #

Le principe en quelques minutes.

Le problème #

Exposez un serveur sur Internet : en quelques minutes, des robots essaient des mots de passe SSH, cherchent un fichier .env ou testent une faille connue. Ces attaques se voient dans vos logs, mais personne ne les lit en continu.

CrowdSec lit ces logs à votre place, reconnaît les comportements d'attaque et fait bloquer les adresses concernées. Son moteur est libre (licence MIT) et écrit en Go.

Deux idées fortes #

  • Séparer la détection du blocage. Le moteur décide ; d'autres composants, les bouncers, appliquent la décision là où c'est utile : pare-feu, reverse proxy, CDN ou application.
  • Partager le renseignement. Chaque installation peut signaler les attaques qu'elle subit et recevoir en retour une liste d'adresses reconnues comme malveillantes.

2. L’architecture #

Les composants et leur rôle.

Vue d’ensemble #

Architecture de CrowdSec : les logs passent par les parsers, les scénarios, la Local API, puis les bouncers appliquent

ComposantRôle
Security EngineLe service crowdsec : il lit les logs et détecte les attaques.
ParsersTransforment une ligne de log en événement structuré.
ScénariosReconnaissent un comportement, par exemple trop d'échecs de connexion.
Local API (LAPI)Conserve alertes et décisions. Elle écoute sur le port 8080 par défaut.
Central API (CAPI)Service de CrowdSec : reçoit les signaux, renvoie la réputation communautaire.
ProfilsTransforment une alerte en décision : ban de 4 h par défaut.
BouncersAppliquent les décisions. Ils sont aussi appelés remediation components.
HubCatalogue de collections, parsers et scénarios prêts à l'emploi.
cscliL'outil en ligne de commande pour tout administrer.

Le cycle complet #

Cycle d'une attaque : ligne de log, événement, seau, alerte, décision, blocage

Erreur classique. Installer le paquet crowdsec ne bloque rien : il faut au moins un bouncer. Sans lui, les décisions restent lettre morte.

3. Le renseignement collaboratif #

Ce qui est partagé, et comment la liste reste fiable.

Ce qui est envoyé #

Quand un scénario se déclenche, CrowdSec envoie à la CAPI un signal : l'adresse de l'attaquant, le scénario et l'horodatage. Vos logs ne quittent pas votre serveur. En retour, la LAPI télécharge une liste d'adresses, visible avec l'origine CAPI dans les décisions.

cscli capi status
cscli decisions list --origin CAPI

Éviter l’empoisonnement #

Une liste participative pourrait être polluée par de faux signaux. CrowdSec croise donc les signaux de nombreux participants et évalue leur fiabilité avant de publier une adresse. Les adresses légitimes bien connues, comme les grands résolveurs DNS, sont écartées par des listes d'exclusion, par exemple la collection crowdsecurity/whitelist-good-actors.

Facultatif. Vous pouvez couper ce partage : DISABLE_ONLINE_API=true dans Docker, ou sans identifiants CAPI. La détection locale continue de fonctionner, sans la liste communautaire.

Sources #

Articles liés

CrowdSec ou Fail2ban : quelles différences ?

Comparaison de CrowdSec et Fail2ban : détection, blocage, partage, performances, multi-serveurs, et méthode p…

Installer et configurer CrowdSec : paquets, Docker, acquisition

Installer CrowdSec avec les paquets ou Docker, comprendre ses fichiers, déclarer les logs à lire, enrôler la …

Collections, parsers et scénarios CrowdSec

Le Hub, les collections, le pipeline des parsers et les scénarios : installer, comprendre avec cscli explain,…

Pour aller plus loin

Soutenir

♥ SOUTENIR

Soutenez RousselTM Learning

Les formations, articles, TP et attestations restent gratuits et sans publicité intrusive. Une contribution libre, du montant de votre choix, finance l’hébergement, les environnements de TP et l’écriture de nouveaux contenus.

Contribuer avec PayPal Montant libre · carte bancaire ou compte PayPalEn savoir plus
QR code PayPal
Ou scannez ce QR code avec votre téléphone

Merci, chaque contribution compte !