Passer au contenu principal

WAF open source Coraza : protéger vos applications cloud sans vendor lock-in

Par Cloud Inspire · 12 mai 2026 · 1 min de lecture

WAFCorazasécuritéapplicationNIS2DORADSIFrench

Les pare-feu traditionnels protègent les réseaux. Les pare-feu applicatifs Web (WAF) protègent les applications. Et en 2026, les attaques ne visent plus les ports — elles visent les API, les formulaires, les sessions et les payloads HTTP. L’OWASP Top 10 n’a pas changé de fond depuis des années, mais les DSI continuent de déployer des WAF propriétaires à 30 K€/an qui filtrent mal le trafic légitime et laissent passer les attaques sophistiquées.

Coraza est un WAF open source qui change la donne : compatible ModSecurity, intégré nativement à Traefik, conforme aux règles OWASP Core Rule Set, et 100 % open source. Pas de licence, pas de vendor lock-in, pas de boîte noire.

Ce guide vous explique comment déployer Coraza comme WAF dans votre architecture cloud, en conformité avec NIS2 et DORA.


Pourquoi un WAF en 2026 (et pourquoi Coraza)

Les menaces ne passent plus par le port 22

Les statistiques de l’OWASP sont sans appel :

Un pare-feu réseau ne voit pas l’injection SQL dans un paramètre POST. Un VPN ne filtre pas le XSS dans un cookie. Seul un WAF inspecte la couche 7 (HTTP) pour bloquer les attaques applicatives.

Pourquoi Coraza et pas ModSecurity ou un WAF propriétaire

CritèreModSecurityWAF propriétaireCoraza
LicenceApache 2.0 (mais lié à Apache)PropriétaireApache 2.0
IntégrationApache/Nginx seulementAppliance propriétaireTraefik, Caddy, Nginx, Go
PerformanceModérée (C)VariableÉlevée (Go)
Règles OWASPOui, CRS 4.xOui, variesOui, CRS 4.x
LangageC (legacy)PropriétaireGo (moderne)
AuditCode source publicBoîte noireCode source public
CoûtGratuit15-30 K€/anGratuit

Coraza = ModSecurity 2.0. Mêmes règles, même syntaxe SecLang, mais en Go, plus rapide, mieux intégré, et sans les limites de l’architecture C d’Apache.


L’architecture WAF dans un cloud souverain

WAF + Traefik + Zero Trust

Coraza s’intègre nativement à Traefik, le reverse proxy utilisé dans la stack Cloud Inspire :

┌─────────────────────────────────────────────────────┐
│                    INTERNET                          │
└─────────────────────┬───────────────────────────────┘
                      │ HTTPS
┌─────────────────────▼───────────────────────────────┐
│               TRAEFIK (Reverse Proxy)               │
│          + Coraza WAF (Plugin natif)                │
│                                                      │
│  • Terminaison TLS                                   │
│  • Filtrage OWASP (930 catégories d'attaque)        │
│  • Rate limiting                                     │
│  • Geo-blocking                                     │
│  • Virtual patching                                 │
└──────────┬───────────┬──────────────┬──────────────┘
           │           │              │
     ┌─────▼────┐┌─────▼────┐┌───────▼──────┐
     │ App Web  ││  API     ││ Portail      │
     │ (Site)   ││ (REST)   ││ (Citoyen)    │
     └──────────┘└──────────┘└──────────────┘

Avantage : le WAF est dans le proxy, pas devant. Pas de point de défaillance supplémentaire, pas de saut réseau, pas de latence ajoutée.

Les 7 couches de protection

CoucheProtectionExemple
L3/L4IP blocking, geo-blockingBlocage des pays non ciblés
L7 - HTTPValidation des méthodesBLOQUER PUT, DELETE si non utilisé
L7 - HeadersValidation des en-têtesAnti-clickjacking (X-Frame-Options)
L7 - BodyFiltrage du contenuInjection SQL, XSS dans les formulaires
L7 - SessionProtection des sessionsSession fixation, CSRF
L7 - RateLimitation du débit100 req/min par IP (anti-brute force)
L7 - BotDétection des botsChallenge JavaScript, CAPTCHA

Déploiement Coraza : configuration pratique

Configuration de base

Coraza s’intègre à Traefik via un plugin natif. Configuration minimale :

# traefik/traefik.yml (extrait)
experimental:
  plugins:
    coraza:
      moduleName: "github.com/corazawaf/coraza-traefik-plugin"
      settings:
        directives: |
          SecRuleEngine On
          SecDefaultAction "phase:1,log,deny,status:403"
          # OWASP Core Rule Set
          Include @owasp_crs/10-setup.conf
          Include @owasp_crs/11-setup.conf
          # Règles personnalisées
          SecRule REQUEST_URI "@streq /health" "id:1,phase:1,pass,nolog"
          # Rate limiting
          SecAction "id:2,phase:1,initcol:ip=%{REMOTE_ADDR},pass,nolog"
          SecRule IP:COUNT "@gt 100" "id:3,phase:1,deny,status:429,msg:'Rate limit exceeded'"

Règles OWASP Core Rule Set (CRS)

Le CRS d’OWASP est le standard de facto pour les WAF. Il couvre les 10 catégories OWASP :

ID CatégorieAttaque couverteExemple de détection
920.xProtocol violationsRequête HTTP malformée
921.xProtocol attacksRequest smuggling
930.xApplication attacksPath traversal (../../etc/passwd)
931.xApplication attacksRemote file inclusion
932.xApplication attacksRemote code execution
933.xApplication attacksPHP injection
941.xApplication attacksXSS (cross-site scripting)
942.xApplication attacksSQL injection
943.xApplication attacksSession fixation
949.xInbound blockingScore d’anomalie cumulé

Mode recommandé : commencer en détection (mode SecRuleEngine DetectionOnly) pendant 2 semaines, analyser les faux positifs, puis passer en blocage (SecRuleEngine On).

Règles personnalisées sectorielles

Pour le secteur bancaire et financier :

# Banqueroute : bloquer les tentatives d'injection sur les API de paiement
SecRule REQUEST_URI "@contains /api/v1/payment" \
  "id:1000,phase:1,pass,nolog,ctl:ruleEngine=On"

# Bloquer les user-agents suspects
SecRule REQUEST_HEADERS:User-Agent "@rx (?i)(sqlmap|nikto|nmap|masscan)" \
  "id:1001,phase:1,deny,status:403,msg:'Suspicious user-agent'"

# Protection contre les attaques par force brute sur les endpoints d'auth
SecRule REQUEST_URI "@rx /api/v1/auth" \
  "id:1002,phase:1,pass,nolog,initcol:ip=%{REMOTE_ADDR}"
SecRule IP:AUTH_COUNT "@gt 5" \
  "id:1003,phase:2,deny,status:429,msg:'Auth rate limit'"

WAF et conformité réglementaire

NIS2 : sécurité du réseau et des systèmes

NIS2 (Art. 21) exige des « mesures techniques appropriées » pour la sécurité du réseau. Le WAF répond directement :

Mesure NIS2Réponse WAF
Sécurité du réseauFiltrage L7, protection contre les attaques applicatives
Gestion des incidentsJournalisation de toutes les requêtes bloquées
Détection des intrusionsOWASP CRS, détection des attaques connues
TraçabilitéAudit logging complet des requêtes et blocages

DORA : résilience des systèmes financiers

DORA exige la résilience opérationnelle des systèmes ICT financiers :

RGPD : sécurité des traitements

L’article 32 du RGPD exige des « mesures techniques appropriées » pour protéger les données personnelles :


Les 5 erreurs de configuration WAF

Erreur 1 : Activer en mode blocage immédiatement

Le WAF bloquant du trafic légitime est pire que pas de WAF du tout (les utilisateurs ne peuvent plus travailler).

Solution : 2 semaines en mode DetectionOnly minimum. Analyser les faux positifs. Créer des exceptions. Puis passer en mode blocage.

Erreur 2 : Ne pas personnaliser les règles

Le CRS OWASP est générique. Il bloquera des requêtes légitimes de votre application métier.

Solution : identifier les faux positifs pendant la phase de détection et créer des règles d’exception ciblées.

Erreur 3 : Ignorer les logs

Un WAF qui journalise mais que personne ne lit est un WAF inutile.

Solution : intégrer les logs Coraza dans Loki (via Promtail). Dashboard Grafana dédié avec alertes sur les pics d’attaques.

Erreur 4 : Protéger seulement le site web

Les API sont le vecteur d’attaque n°1 en 2026. Si vous ne protégez que le site web et pas les API, vous protégez la porte d’entrée mais laissez les fenêtres ouvertes.

Solution : règles WAF spécifiques pour chaque endpoint API (authentification, paiement, données personnelles).

Erreur 5 : Pas de virtual patching

Quand une CVE est publiée, il faut parfois des semaines pour corriger le code. Pendant ce temps, votre application est vulnérable.

Solution : ajouter une règle WAF temporaire qui bloque l’exploit spécifique. C’est le virtual patching — une protection immédiate pendant que l’équipe corrige le code.


Observabilité du WAF : dashboards et alertes

Dashboard Coraza dans Grafana

Les métriques essentielles à surveiller :

MétriqueSeuil d’alerteAction
Requêtes bloquées/min> 50Investigation attaque
Requêtes bloquées/heure> 500Attaque probable
Top règle bloquanteTendanceAjuster les règles
Taux de faux positifs> 5 %Créer des exceptions
Score d’anomalie moyen> 3Revoir la configuration
Tentatives d’injection SQL> 10/heureAlerte sécurité

Intégration avec la stack d’observabilité

Coraza → Traefik logs → Promtail → Loki → Grafana

                                            ├── Dashboard WAF (temps réel)
                                            ├── Alertes (Attack > seuil)
                                            └── Rapport mensuel NIS2/DORA

Chaque requête bloquée est journalisée avec :


La stack Coraza Cloud Inspire

ComposantOutilRôle
WAFCorazaFiltrage applicatif L7, OWASP CRS
Reverse proxyTraefikTerminaison TLS, routage, intégration WAF
IdentitéKeycloakAuthentification, MFA, SSO
SupervisionGrafana + LokiDashboards WAF, alertes, audit trail
SecretsVaultCertificats TLS, rotation automatique
RéseauCiliumMicro-segmentation, NetworkPolicy

Tout est open source. Pas de licence propriétaire, pas de boîte noire, pas de vendor lock-in sur votre sécurité applicative.


Performance : Coraza vs ModSecurity vs WAF propriétaire

MétriqueModSecurityWAF propriétaireCoraza
Latence ajoutée15-25 ms5-15 ms3-8 ms
Débit (req/s)2 0005 00010 000+
CPU overheadÉlevé (C)VariableFaible (Go)
MémoireÉlevéeVariableOptimisée
Règles OWASP CRS800+Variable800+
Faux positifsModérésVariablesConfigurables

Coraza écrit en Go est 3-5x plus rapide que ModSecurity en C, avec une empreinte mémoire réduite. Pas de process séparé, pas de communication inter-process — le WAF tourne dans le même processus que Traefik.


Déploiement en 5 jours

JourActionLivrable
J1Installer Coraza + TraefikWAF opérationnel en mode détection
J2Configurer OWASP CRS + règles personnalisées800+ règles actives
J3Phase de détection (2 semaines recommandées)Liste des faux positifs
J4Ajuster les exceptions + passer en blocageWAF en production
J5Intégrer Grafana + alertesDashboard WAF opérationnel

Note : la phase de détection (J3) dure idéalement 2 semaines en production pour collecter assez de trafic légitime. Le déploiement technique prend 5 jours, la mise en production complète 3 semaines.


Conclusion

Le WAF est la dernière ligne de défense de vos applications — et il doit être ouvert, auditable et performant. Coraza apporte tout ce que les WAF propriétaires offrent (règles OWASP, virtual patching, rate limiting), sans le coût, sans la boîte noire, et sans le lock-in.

Pour les DSI en environnement réglementé, Coraza + Traefik est la combinaison qui sécurise les applications tout en satisfaisant les exigences NIS2, DORA et RGPD de journalisation et de traçabilité.

Cloud Inspire déploie Coraza + Traefik en 5 jours sur votre cloud privé OpenNebula, avec les dashboards Grafana et les règles OWASP préconfigurées. Si vous voulez sécuriser vos applications sans payer un WAF propriétaire 30 K€/an, parlons-en.

---

Restez informé de l'actualité cloud & IA

Recevez nos analyses, retours terrain et nouveautés produits. Pas de spam, pas de bruit.

En vous inscrivant, vous acceptez notre politique de confidentialité. Désinscription à tout moment.