RousselTMLEARNING

TP · CrowdSec : de la découverte à l'expertise

TP 2 : Écrire un scénario et le tester en simulation avec correction

La correction est intégrée au TP (Voir les encadrés de couleur vert)

Ce que vous allez apprendre dans ce TP
  • Comprendre une ligne avec explain
  • Écrire un scénario leaky
  • Utiliser la simulation
  • Protéger une IP de confiance

Introduction #

Ce que vous allez apprendre dans cette section
  • Comprendre une ligne avec explain
  • Écrire un scénario leaky
  • Utiliser la simulation
  • Protéger une IP de confiance

Contexte. Votre application renvoie 401 sur /login en cas d'échec. Vous voulez une règle sur mesure, testée avant de bloquer.

Prérequis : le TP 1  ·  Durée estimée : 40 min

Mise en place #

Étapes guidées, avec leur correction.

  1. 1. Comprendre une ligne

    Suivez le trajet d’une ligne Nginx.

    Voir la correction
    docker compose exec crowdsec cscli explain --type nginx --log "198.51.100.7 - - [$(LC_ALL=C date '+%d/%b/%Y:%H:%M:%S %z')] \"POST /login HTTP/1.1\" 401 12 \"-\" \"curl/8\""
  2. 2. Écrire le scénario

    Pourquoi ? Quatre échecs en rafale, c'est une attaque ; un échec de temps en temps, une erreur humaine.

    Ajoutez le fichier au conteneur, puis redémarrez.
    Voir la correction
    type: leaky
    name: local/login-bf
    description: "Détecte le brute force sur le formulaire de connexion"
    filter: "evt.Meta.service == 'http' && evt.Parsed.verb == 'POST' && evt.Meta.http_path == '/login' && evt.Meta.http_status == '401'"
    groupby: evt.Meta.source_ip
    capacity: 4
    leakspeed: 10s
    blackhole: 1m
    labels:
      remediation: true
      service: http
      behavior: http:bruteforce
      label: "Brute force sur /login"
    docker compose cp local-login-bf.yaml crowdsec:/etc/crowdsec/scenarios/local-login-bf.yaml
    docker compose restart crowdsec
    docker compose exec crowdsec cscli scenarios list | grep local
  3. 3. Passer en simulation

    Déclenchez le scénario en simulation.

    Voir la correction
    docker compose exec crowdsec cscli simulation enable local/login-bf
    docker compose restart crowdsec
    for i in $(seq 1 8); do
      echo "198.51.100.7 - - [$(LC_ALL=C date '+%d/%b/%Y:%H:%M:%S %z')] \"POST /login HTTP/1.1\" 401 12 \"-\" \"curl/8\"" >> logs/access.log
    done
    sleep 5
    docker compose exec crowdsec cscli alerts list
    docker compose exec crowdsec cscli decisions list

    Résultat attendu : une décision (simul)ban pour local/login-bf. Le scénario du Hub LePresidente/http-generic-401-bf se déclenche aussi, avec un vrai ban.

  4. 4. Protéger une IP de confiance

    Ajoutez la plage à une allowlist et constatez la suppression des décisions.

    Voir la correction
    docker compose exec crowdsec cscli allowlists create bureau -d "IP de confiance"
    docker compose exec crowdsec cscli allowlists add bureau 198.51.100.0/24
    docker compose exec crowdsec cscli allowlists check 198.51.100.7
    docker compose exec crowdsec cscli decisions list
    docker compose exec crowdsec cscli simulation disable local/login-bf

Niveau de difficulté : ●●○○○ (2/5)

Mon suivi

  • ⏱ Durée estimée : ≈ 40 min

Connectez-vous pour suivre votre progression et prendre des notes. Se connecter

💬 Poser une question

Articles recommandés

Collections, parsers et scénarios CrowdSec

Le Hub, les collections, le pipeline des parsers et les scénarios : installer, comprendre avec cs...

Décisions, profils, allowlists et AppSec dans CrowdSec

Gérer les décisions avec cscli, adapter la durée et le type de blocage avec les profils, éviter l...

CrowdSec : comprendre le pare-feu collaboratif

Ce qu'est CrowdSec, comment il détecte et bloque les attaques : Security Engine, parsers, scénari...

CrowdSec en production : bonnes pratiques

Les réflexes pour exploiter CrowdSec en production : LAPI, clés, faux positifs, base de données, ...

Protection des Applications

Découvrez comment sécuriser vos backends contre les abus et les attaques courantes. Guide pratiqu...

Bouncers CrowdSec : Cloudflare, équipements réseau, Kubernetes et bouncer sur mesure

Bloquer au CDN avec Cloudflare Workers, alimenter pfSense ou MikroTik avec Blocklist Mirror, prot...

Installer et configurer CrowdSec : paquets, Docker, acquisition

Installer CrowdSec avec les paquets ou Docker, comprendre ses fichiers, déclarer les logs à lire,...

Les bouncers CrowdSec : principes et bouncer pare-feu

Comprendre les bouncers CrowdSec : où bloquer, modes live et stream, clés d'API, API des décision...

CrowdSec ou Fail2ban : quelles différences ?

Comparaison de CrowdSec et Fail2ban : détection, blocage, partage, performances, multi-serveurs, ...

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 !