Blog

Guide WAF pour votre hébergement Drupal

21.07.2025
drupal-waf

Drupal est réputé pour sa robustesse et sa sécurité. Cependant, dans le paysage numérique actuel, la sécurité d'un CMS ne dépend pas uniquement de son noyau. Le trafic, les modules contribués et les nouvelles techniques d'attaque créent des menaces constantes. Pour les chefs de projet, les DevOps et les hébergeurs, garantir l'intégrité, la disponibilité et la performance d'un site Drupal est une priorité absolue. C'est ici qu'intervient le pare-feu applicatif web, ou WAF (Web Application Firewall). Loin d'être un gadget technique, c'est une composante stratégique de tout hébergement moderne.

Qu'est-ce qu'un WAF (Web Application Firewall) ?

Imaginez un WAF comme le garde du corps de votre site web. Il se place entre vos utilisateurs et votre serveur d'hébergement, inspectant chaque requête HTTP/S à la recherche de comportements malveillants.

Définition simple et analogie

Pour faire simple, un WAF est un filtre intelligent. Il analyse le trafic entrant pour bloquer les menaces connues avant même qu'elles n'atteignent votre site Drupal. Contrairement à un simple portier qui vérifie une liste d'invités, le WAF analyse le comportement et les intentions de chaque visiteur.

La différence entre un WAF et un pare-feu réseau traditionnel

Il est crucial de ne pas les confondre :

  • Un pare-feu réseau fonctionne aux couches 3 et 4 du modèle OSI. Il filtre le trafic en se basant sur les adresses IP, les ports et les protocoles. C'est la première ligne de défense de l'infrastructure.
  • Un WAF opère à la couche 7 (la couche applicative). Il comprend le langage HTTP et peut donc faire la distinction entre une requête légitime et une tentative d'exploitation de faille applicative, comme une injection SQL.

Les deux bénéfices clés d'un WAF pour Drupal : sécurité et performance

L'intérêt d'un WAF ne se limite pas à la sécurité. C'est aussi un formidable outil pour optimiser la vitesse de votre site Drupal.

Un bouclier proactif pour votre sécurité

Un WAF protège votre site contre les menaces les plus courantes et les plus critiques identifiées par l'OWASP (Open Web Application Security Project).

  • Protection contre les injections SQL et XSS : il détecte et bloque les requêtes qui tentent d'insérer du code malveillant dans votre base de données ou dans les pages rendues à vos visiteurs.
  • Mitigation des attaques DDoS : il peut absorber et filtrer les attaques par déni de service distribué (DDoS) qui visent à saturer votre serveur. Certaines attaques ciblent des fonctionnalités spécifiques de Drupal, comme les requêtes AJAX du module Flag, et un WAF peut les contenir grâce à une limitation de débit (rate limiting).
  • Filtrage des bots malveillants : il identifie et bloque les bots qui tentent de spammer vos formulaires, de voler votre contenu (scraping) ou de chercher des vulnérabilités.
  • Contrôle d'accès géographique : vous pouvez facilement bloquer le trafic provenant de pays entiers, réduisant ainsi la surface d'attaque si votre activité se concentre sur des régions spécifiques.
drupal-waf-fonctionnement

Un booster de performance inattendu

La plupart des services WAF modernes, comme AWS CloudFront ou Sucuri, sont couplés à un réseau de diffusion de contenu (CDN).

  • Mise en cache du contenu statique : le WAF sert les images, fichiers CSS et JavaScript depuis un serveur proche de l'utilisateur (le "edge"), réduisant drastiquement le temps de chargement.
  • Déchargement du serveur web : en servant le contenu en cache et en bloquant le trafic inutile, le WAF diminue la charge sur votre serveur d'hébergement. Celui-ci peut alors se concentrer sur sa tâche principale : exécuter Drupal et générer les pages dynamiques.
  • Optimisation de la latence : grâce à son réseau mondial, le CDN intégré assure une latence minimale pour tous vos utilisateurs, où qu'ils se trouvent.

Cas pratique : configurer AWS WAF avec CloudFront pour Drupal

Prenons un exemple concret avec AWS, une solution très utilisée par les équipes DevOps. Nous allons configurer des règles pour renforcer la sécurité d'un site Drupal.

Prérequis : un compte AWS et une distribution CloudFront

Avant de commencer, vous devez avoir un compte AWS fonctionnel et une distribution CloudFront déjà configurée pour servir votre site Drupal.

Étape 1 : créer une Web ACL (Access Control List)

La Web ACL est le conteneur dans lequel vous allez définir votre ensemble de règles de filtrage. Rendez-vous dans le service AWS WAF, choisissez une région (il est recommandé de choisir "Global (CloudFront)") et créez une nouvelle Web ACL.

Étape 2 : mettre en place des règles managées par AWS

La force d'AWS WAF réside dans ses ensembles de règles gérées par des experts en sécurité. C'est la première chose à activer.

  • Ajoutez des "Managed rule groups".
  • Sélectionnez le groupe AWSManagedRulesCommonRuleSet. Il protège contre une grande partie des menaces du top 10 de l'OWASP.
  • Pensez également à AWSManagedRulesKnownBadInputsRuleSet pour bloquer les requêtes contenant des patterns reconnus comme malveillants.

Étape 3 : créer des règles personnalisées pour Drupal

C'est ici que vous adaptez le WAF à votre contexte Drupal.

Exemple 1 : bloquer l'accès à des pays spécifiques

Si votre audience est principalement française, vous pouvez bloquer les requêtes venant d'autres régions souvent sources d'attaques.

  • Dans votre Web ACL, ajoutez une nouvelle règle personnalisée ("Add my own rules and rule groups").
  • Choisissez "Rule builder".
  • Nommez la règle (ex: Block-non-FR-countries).
  • Choisissez "Request originates from a country in".
  • Sélectionnez les pays que vous souhaitez bloquer.
  • Pour l'action, choisissez "Block".
// Extrait conceptuel de la règle en JSON
{
  "Name": "Block-non-FR-countries",
  "Priority": 1,
  "Statement": {
    "NotStatement": {
      "Statement": {
        "GeoMatchStatement": {
          "CountryCodes": ["FR", "BE", "CH"] // Autorise la France, Belgique, Suisse
        }
      }
    }
  },
  "Action": {
    "Block": {}
  },
  "VisibilityConfig": { ... }
}

Exemple 2 : bloquer une attaque DDoS sur le module Flag

Le module Flag de Drupal utilise des liens AJAX qui peuvent être exploités pour lancer des attaques DDoS ciblées, car chaque clic génère un appel au serveur. Nous pouvons limiter le nombre de requêtes sur ces URLs.

  • Créez une autre règle personnalisée.
  • Nommez-la (ex: Rate-limit-flag-module-urls).
  • Choisissez le type de règle Rate-based rule.
  • Définissez un seuil, par exemple 100 requêtes par 5 minutes par adresse IP.
  • Dans la section "Statement", ciblez spécifiquement les URLs du module Flag.
    • If a request: URI path
    • Match type: Starts with
    • String to match: /flag/flag/
  • L'action est implicite : bloquer les IP qui dépassent le seuil.

Cas pratique : configurer le WAF de Cloudflare pour votre site Drupal

Cloudflare est l'un des services les plus populaires pour protéger et accélérer les sites web. Sa configuration est réputée pour sa simplicité. Voyons comment l'utiliser pour un site Drupal.

Prérequis : un site Drupal ajouté à Cloudflare

Pour commencer, votre site Drupal doit être actif sur Cloudflare. Cela signifie que vous avez déjà ajouté votre domaine et que vos serveurs de noms (DNS) pointent vers ceux de Cloudflare.

Étape 1 : activer les ensembles de règles managées (Managed Rulesets)

La protection principale de Cloudflare provient de ses propres jeux de règles, mis à jour en permanence pour contrer les nouvelles menaces.

  1. Connectez-vous à votre tableau de bord Cloudflare et sélectionnez votre domaine.
  2. Allez dans la section Security > WAF.
  3. Dans l'onglet Managed rules, vous verrez le Cloudflare Managed Ruleset. Assurez-vous qu'il est bien activé. Ce jeu de règles protège déjà contre une vaste gamme d'attaques courantes.
  4. Selon votre abonnement (Pro ou supérieur), vous pouvez aussi activer le OWASP Core Ruleset pour une protection encore plus fine, basée sur les recommandations de l'OWASP.
cloudfare-rules

Étape 2 : créer des règles personnalisées pour Drupal

Maintenant, nous allons créer des règles spécifiques pour répondre à nos besoins, comme le blocage de pays ou la protection contre une attaque sur un module Drupal.

Exemple 1 : bloquer l'accès à des pays spécifiques

Si votre activité est locale, bloquer les pays non pertinents est une mesure de sécurité efficace.

  1. Allez dans Security > WAF, puis dans l'onglet Firewall rules.
  2. Cliquez sur Create a firewall rule.
  3. Donnez un nom à votre règle, par exemple Block-non-European-countries.
  4. Dans le constructeur de règle, configurez le champ comme suit :
    • Field : Country
    • Operator : is not in
    • Value : Sélectionnez les pays que vous souhaitez autoriser (ex: France, Belgique, Suisse).
  5. Choisissez l'Action : Block.
  6. Cliquez sur Deploy.

La règle bloquera toute personne visitant votre site depuis un pays qui ne figure pas dans votre liste autorisée.

Exemple 2 : limiter le débit pour contrer une attaque sur le module Flag

Pour vous protéger d'une attaque DDoS ciblant les URLs AJAX du module Flag, nous allons utiliser la fonction de "Rate Limiting".

  1. Allez dans Security > WAF, puis dans l'onglet Rate limiting rules.
  2. Cliquez sur Create rule.
  3. Donnez un nom à la règle, par exemple Rate-limit-flag-module.
  4. Dans la section "If traffic matching the URL", entrez le chemin à surveiller : votredomaine.com/flag/flag/*.
  5. Définissez les caractéristiques de la limitation :
    • Rate : 100 requests (par exemple)
    • Duration : 1 minute (par exemple)
  6. Choisissez l'action à entreprendre lorsque le seuil est dépassé : Block pour une durée de 10 minutes, par exemple.
  7. Cliquez sur Save and Deploy.

Désormais, toute adresse IP qui envoie plus de 100 requêtes en une minute sur les URLs du module Flag sera automatiquement bloquée pendant 10 minutes.

Exemple 3 : bloquer des URLs sensibles pour les utilisateurs anonymes

Certaines fonctionnalités, notamment celles qui utilisent beaucoup l'AJAX comme le module Flag, ne devraient être accessibles qu'aux utilisateurs connectés. Les autoriser pour le trafic anonyme peut ouvrir la porte à des abus ou à des attaques par déni de service ciblées.

Nous pouvons créer une règle qui bloque l'accès à ces URLs pour tout visiteur n'ayant pas de cookie de session Drupal. Pour Drupal, ce cookie commence généralement par SESS.

Objectif : Bloquer les requêtes vers /flag/flag/ si l'utilisateur n'est pas authentifié.

  1. Comme pour les exemples précédents, rendez-vous dans Security > WAF, puis dans l'onglet Firewall rules et cliquez sur Create a firewall rule.
  2. Donnez un nom clair à la règle, par exemple Block-flag-url-for-anonymous.
  3. Nous allons maintenant construire une règle avec deux conditions combinées par un AND.
    • Première condition (cible l'URL) :
      • Field : URI Path
      • Operator : contains
      • Value : /flag/flag/
    • Cliquez sur And.
    • Seconde condition (cible les utilisateurs anonymes) :
      • Field : Cookie
      • Operator : does not contain
      • Value : SESS
  4. Enfin, dans la section "Then... Choose an action", sélectionnez Block.
  5. Cliquez sur Deploy.

WAF et hébergement Drupal : qui est responsable de quoi ?

La mise en place d'un WAF implique une collaboration.

  • Pour les chefs de projet : il est crucial d'inclure le WAF dans le budget initial et de maintenance. Ce n'est pas une dépense, c'est une assurance. Argumentez en termes de continuité de service, de protection de la réputation et d'amélioration des performances SEO (grâce à la vitesse).
  • Pour les DevOps/hébergeurs : la configuration initiale est votre responsabilité. Mais un suivi est nécessaire. Il faut surveiller les faux positifs (requêtes légitimes bloquées) et ajuster les règles en fonction des évolutions du site (ajout de nouveaux modules, etc.). Mettez en place des alertes pour être notifié des pics de trafic bloqué.

Conclusion : un WAF n'est plus une option, mais un standard

En résumé, l'intégration d'un WAF dans une architecture d'hébergement Drupal offre une double valeur ajoutée. Il constitue une barrière de sécurité indispensable contre des menaces de plus en plus sophistiquées tout en agissant comme un puissant levier de performance grâce à ses fonctionnalités de CDN. Pour les équipes projet, ignorer le WAF, c'est laisser la porte ouverte aux risques et se priver d'un avantage concurrentiel en termes de vitesse et de fiabilité. L'heure n'est plus à se demander si vous avez besoin d'un WAF, mais comment l'intégrer au mieux à votre projet Drupal.

 

FAQ - Questions fréquentes sur les WAF et Drupal

1. Un WAF peut-il ralentir mon site ? Au contraire. Bien qu'il ajoute une micro-latence pour l'inspection, le gain de performance obtenu grâce à la mise en cache par le CDN intégré est immensément supérieur. Le résultat net est presque toujours une accélération significative du site.

2. Est-ce que les modules de sécurité Drupal comme Security Kit ne suffisent pas ? Les modules internes sont utiles et recommandés, mais ils agissent après que la requête a déjà atteint votre serveur et consommé ses ressources. Un WAF agit en amont, bloquant la menace avant qu'elle ne touche votre infrastructure. Les deux sont complémentaires : le WAF est le bouclier, les modules sont l'armure.

3. La configuration d'un WAF est-elle complexe ? Les solutions comme Sucuri ou Cloudflare offrent des configurations très simples. Des solutions plus puissantes comme AWS WAF demandent une expertise DevOps, mais les règles de base managées offrent déjà une excellente protection "out-of-the-box".

4. Quel est le coût d'un WAF ? Les prix varient. Cloudflare propose une offre gratuite généreuse. Pour AWS WAF, la tarification dépend du nombre de règles et du volume de requêtes traitées. Pour un site à trafic moyen, le coût se chiffre généralement en quelques dizaines d'euros par mois, un investissement très rentable au vu de la protection apportée.

 

Un projet ? Parlons-en

En tant qu'agence web experte Drupal, nous sommes à votre écoute pour étudier vos besoins
et vous proposer les meilleures solutions.

Autres articles

L'intégration de frameworks frontaux comme Angular avec des systèmes de gestion de contenu (CMS) est devenue une pratique courante dans le développement web. Ce guide vise à accompagner les développeurs dans le processus d'intégration d'Angular avec Drupal, en exploitant les avantages de ces deux technologies.

Le monde du développement web est en constante évolution, et Drupal, le CMS réputé pour sa flexibilité et sa robustesse, ne fait pas exception. Avec l'arrivée des Drupal Recipes, la création et la gestion de sites web Drupal entrent dans une nouvelle ère. Fini les configurations complexes et les installations fastidieuses, place à la simplification, à la rapidité et à l'efficacité !

Associer la flexibilité de Drupal à la puissance d'Amazon Web Services (AWS) est une stratégie adoptée par de nombreuses entreprises pour construire des plateformes web robustes et scalables. Cependant, naviguer dans l'écosystème AWS peut s'avérer complexe et coûteux si l'approche n'est pas maîtrisée. Cet article s'adresse aussi bien aux chefs de projet qu'aux développeurs et DevOps en quête d'une solution d'hébergement performante.

Ce mercredi 7 juin 2023, l'équipe de sécurité de Drupal a annoncé officiellement un nouveau délais supplémentaire en prolongeant le support de Drupal 7 jusqu'au  5 janvier 2025, tout en précisant qu'il s'agit de la dernière prolongation, et que le niveau de support fourni serait ajusté