CrowdSec AppSec Component : Sécurisé vos site web

 

Introduction

Découvrez CrowdSec Application Security Component (ou CrowdSec AppSec Component), une fonctionnalité en version bêta de sécurité avancée pour les applications

Le composant AppSec offre :

  • Capacités pour appliquer des correctifs virtuels avec un minimum d'effort requis.
  • Support de vos règles ModSecurity existantes.
  • En associant les fonctionnalités traditionnelles d'un pare-feu applicatif web (WAF) aux capacités avancées de CrowdSec, nous obtenons une détection avancée des comportements qui serait autrement complexe à réaliser.
  • Une intégration totale avec la pile logiciel de CrowdSec, comprenant la console et les composants de correction.

Ce composant utilise les capacités de remédiation déjà intégrées dans les serveurs Web (tels que Nginx, Traefik, Haproxy, etc.) pour offrir des fonctionnalités de pare-feu d'applications Web.

source : crowdsec.net

Installation et configuration

Pré-requis

Pour obtenir un composant AppSec opérationnel, vous aurez besoin de :

  • Crowdsec >= 1.5.6
  • Nginx >= 1.0.6rc

Installation

Installation des dépendances :

apt update && sudo apt upgrade
apt install nginx lua5.1 libnginx-mod-http-lua luarocks gettext-base lua-cjson

Installation du bouncer nginx :

apt install crowdsec-nginx-bouncer

Installation de la collection appsec-virtual-patching :

cscli collections install crowdsecurity/appsec-virtual-patching

Cette collection contient :

  • La configuration du composant AppSec ( crowdsecurity/virtual-patching)
  • Toutes nos règles de patch virtuel
    • L'analyseur CrowdSec pour AppSec
    • Les scénarios CrowdSec pour AppSec

Configuration

Le composant AppSec joue le rôle d'une source de données en transmettant des données de requête au moteur de sécurité. Nous établirons cette connexion de la même manière que nous le faisons avec d'autres sources de données, en utilisant un fichier d'acquisition.

mkdir -p /etc/crowdsec/acquis.d
cat > /etc/crowdsec/acquis.d/appsec.yaml << EOF
listen_addr: 127.0.0.1:7422
appsec_config: crowdsecurity/virtual-patching
name: myAppSecComponent
source: appsec
labels:
  type: appsec
EOF

listen_addr : détermine l'interface/port sur lesquels le service est à l'écoute.
appsec_config : est le nom de la configuration que le composant AppSec utilisera. Dans cet exemple, nous utilisons "crowdsecurity/virtual-patching", récupéré depuis le hub, mais vous pouvez créer et nommer votre propre configuration. Vous pouvez les retrouver dans "/etc/crowdsec/...".

On redémarre ensuite CrowdSec :

systemctl restart crowdsec

Vous pouvez ensuite voir dans les journaux /var/log/crowdsec.log que CrowdSec démarre le composant AppSec :

On rajoute ensuite l'url ainsi que le port de communication dans le bouncer nginx :

cat > /etc/crowdsec/bouncers/crowdsec-nginx-bouncer.conf << EOF
APPSEC_URL=http://127.0.0.1:7422
EOF

On redémarre ensuite le composant de remédiation :

systemctl restart nginx

On peut maintenant testé notre configuration :

Maintenant déclenchons la règle "CVE-2023-42793":

Et dans le naviguateur cela donne :

Et voilà!

Votre application est désormais censée être protégée contre les tentatives d'exploitation les plus courantes.