Article : aparté sur l'OWASP CRS et ses références

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
cedricandClaude Opus 5.5 committed 2026-10-27 17:11:35 +01:00
1 parent a9fad4634d
commit 350ebd7248
1 file changed
+4
+4
View File
@@ -20,6 +20,8 @@ BunkerWeb, c'est un nginx "durci par défaut", piloté par une grosse liste de r
Côté protections, on trouve dans la version communautaire : ModSecurity avec le CRS 4 ; des en-têtes de sécurité posés automatiquement (HSTS, CSP, X-Frame-Options...) ; l'antibot (challenge JavaScript, cookie, captcha maison, ou hCaptcha/reCAPTCHA/Turnstile) ; la limitation de débit et de connexions ; le "bad behavior", qui bannit une IP qui accumule trop d'erreurs 4xx ; des listes noires (IP, User-Agent, URI, listes communautaires, DNSBL, pays) ; Let's Encrypt intégré, HTTP/3, compression gzip et brotli. Il existe aussi une version PRO payante (anti DDoS, monitoring Prometheus, rapports...), que je n'ai pas testée ici. Côté protections, on trouve dans la version communautaire : ModSecurity avec le CRS 4 ; des en-têtes de sécurité posés automatiquement (HSTS, CSP, X-Frame-Options...) ; l'antibot (challenge JavaScript, cookie, captcha maison, ou hCaptcha/reCAPTCHA/Turnstile) ; la limitation de débit et de connexions ; le "bad behavior", qui bannit une IP qui accumule trop d'erreurs 4xx ; des listes noires (IP, User-Agent, URI, listes communautaires, DNSBL, pays) ; Let's Encrypt intégré, HTTP/3, compression gzip et brotli. Il existe aussi une version PRO payante (anti DDoS, monitoring Prometheus, rapports...), que je n'ai pas testée ici.
Petit aparté pour ceux qui ne connaissent pas : le Core Rule Set de l'OWASP (le CRS pour les intimes), c'est un jeu de règles open source pour ModSecurity (et son cousin Coraza), qui repère de façon générique les grands classiques des attaques web, injections SQL, scripts injectés dans les pages, inclusion de fichiers, injection de commandes, scanners, requêtes HTTP bancales... sans rien savoir de votre appli. Le principe est malin : chaque règle qui se déclenche ajoute des points à la requête, et au-delà d'un seuil, elle est bloquée. Un "niveau de paranoïa" (de 1 à 4) permet ensuite de régler le curseur entre "je laisse passer un peu plus" et "je bloque tout ce qui bouge, faux positifs compris". C'est cette brique que BunkerWeb embarque par défaut, en version 4 dans mon PoC.
L'architecture depuis la 1.6 est découpée en briques : L'architecture depuis la 1.6 est découpée en briques :
- `bunkerweb` : l'instance nginx elle-même, celle qui reçoit le trafic sur 80/443 ; - `bunkerweb` : l'instance nginx elle-même, celle qui reçoit le trafic sur 80/443 ;
@@ -260,6 +262,8 @@ Autres liens utiles :
- **BunkerWeb** : [documentation](https://docs.bunkerweb.io/latest/) - **BunkerWeb** : [documentation](https://docs.bunkerweb.io/latest/)
- **BunkerWeb sur GitHub** : [fichiers d'intégration officiels](https://github.com/bunkerity/bunkerweb/tree/v1.6.17/misc/integrations) - **BunkerWeb sur GitHub** : [fichiers d'intégration officiels](https://github.com/bunkerity/bunkerweb/tree/v1.6.17/misc/integrations)
- **OWASP** : [Core Rule Set](https://coreruleset.org/) - **OWASP** : [Core Rule Set](https://coreruleset.org/)
- **OWASP CRS** : [documentation](https://coreruleset.org/docs/)
- **OWASP** : [projet ModSecurity Core Rule Set](https://owasp.org/www-project-modsecurity-core-rule-set/)
- **OWASP** : [Juice Shop](https://owasp.org/www-project-juice-shop/) - **OWASP** : [Juice Shop](https://owasp.org/www-project-juice-shop/)
- **go-httpbin** : [dépôt GitHub](https://github.com/mccutchen/go-httpbin) - **go-httpbin** : [dépôt GitHub](https://github.com/mccutchen/go-httpbin)
- **Le PoC** : [dépôt Ansible + docker-compose](https://gitea.vlab.bzh/vLab-BZH/bunkerwebpoc) <!-- à rendre public avant publication --> - **Le PoC** : [dépôt Ansible + docker-compose](https://gitea.vlab.bzh/vLab-BZH/bunkerwebpoc) <!-- à rendre public avant publication -->