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 protégée contre les tentatives d'exploitation les plus courantes.
Article réalisé par Killian Prin-Abeil