WAF : Web Application Firewall

On connait tous le terme firewall qui sont des logiciels ou équipement capables de filtrer les connexions.
Ainsi, il est possible de bloquer des connexions sur des règles établies sur les ports, protocoles (TCP, UDP, etc) ou des adresses IPs.

Les WAF pour Web Application Firewall sont les dernières générations de pare-feux.
Ces derniers fonctionnent sur le serveur WEB ou dans une application comme WordPress.
A partir d’une signature, un WAF peut bloquer une requête HTTP et retourner un code, comme 403 pour « interdiction ».

Voici une présentation et survol des WAF.

WAF : Web Application Firewall
WAF : Web Application Firewall

Introduction au WAF

Un WAF surveille les connexions HTTPs et selon certaines règles et signatures peut bloquer ou autoriser une requête HTTP.
Ces signatures reposent souvent des règles en RegEx.

L’intérêt de ce type de pare-feu est multiple :

  • Bloquer les attaques WEB à partir de signatures
    • Cross‑site scripting (XSS), (CSRF)
    • Remote File Include (RFI)
    • Remote code execution (RCE)
    • Local File Include (LFI)
  • Bloquer des requêtes HTTP à partir d’une adresse IP, UserAgent, référent, GeoIP.
  • Améliorer les protections contre les 0-days
  • Ajouter des filtrages sur l’accès à des ressources critiques (Page d’administration, etc)
  • Log et journaux plus précis sur les requêtes HTTP et mise en place d’alerte en cas d’attaques.

Cette surveillance et inspection se fait sur différentes parties de la requête HTTP.

  • L’adresse IP du client : gestion de liste blanche ou liste noire
  • Le userAgent, par exemple, on peut interdire des bots à partir de ce dernier.
  • Le contenu de l’URL, par exemple, une attaque RFI peut-être détectée en vérifiant les paramètres passés dans l’URL par exemple : file=/etc/password
  • Le contenu de la requête HTTP avec les données et par exemple détecter un script malveillant.

Enfin un WAF peut appliquer ces règles globalement, c’est à dire à toutes les ressources, URL ou paramètres.
Cela est très utile pour éviter et traiter les faux positifs.

Les réglages du WAF de Sucuri depuis l'interface WEB de gestion
Les réglages du WAF de Sucuri depuis l’interface WEB de gestion

Par exemple, ci-dessous l’accès au panneau d’administration de WordPress est interdite pour l’IP.
En effet, le WAF n’autorise que les connexions à cette URL que pour des IPs autorisées.

WAF et blocage d'accès aux ressources
WAF et blocage d’accès aux ressources

Dans cet autre exemple, l’accès à la page est interdite car le WAF a détecté une attaque RFI/LFI car on tente d’accéder au fichier /etc/password.

Le WAF détecte une attaque RFI ou LFI
Le WAF détecte une attaque RFI ou LFI

WAF intégré au serveur WEB

Un Web Application Firewall peut-être intégré au serveur WEB.
Ce dernier va donc analyser les requêtes HTTP en amont avant de les autoriser sur le serveur WEB.

Un administrateur ayant un serveur dédié peut donc installer un WAF sans soucis.

 WAF intégré au serveur WEB
WAF intégré au serveur WEB

Le module modsecurity disponible pour Apache et Nginx est la référence.
Un article de présentation existe sur le site : Présentation modsecurity pour Apache

Pour résumer, il faut installer et active le module modsecurity puis on créé les règles de signatures à appliquer.
Du côté des applications possibles, un anti-spam phpBB basé sur du GeoIP : modsecurity avancé : antispam WordPress et phpBB

L’installation est relativement simple, par contre, la mise en place de signature s’avère plus compliquée.
Il faut gérer les faux positifs qui peuvent être nombreux.

A noter qu’il faut un serveur WEB assez puissant au niveau de la CPU et mémoire, en effet, ces analyses alourdissent le serveur WEB et peut donc allonger le temps de réponse des pages.
Pour les architectures plus complexes, on peut imaginer des WAF sur des serveurs dédiés sous la forme de web-proxy qui se positionnent en amont du serveur WEB.

WAF et CDN pour WordPress

Des offres de CDN intégrant des WAF ont vu le jour avec des offres très accessibles.
IL s’agit donc d’offres WAF en SAAS.
Le but est de positionner le CDN en amont du serveur WEB ou de l’hébergeur WordPress.

Le fonctionnement technique est globalement le même que précédemment.
Simplement ici vous bénéficiez d’infrastructures plus importantes et réparties dans le monde.
Vous n’avez donc pas à vous souciez ou très peu des montés de chargés.
Enfin, vous déléguez la partie vraiment complexe du WAF, ce qui vous permet de vous concentrez à d’autres tâches.

WAF et CDN en amont du serveur WEB
WAF et CDN en amont du serveur WEB

Le schéma ci-dessous récapitule l’architecture avec à gauche une requête HTTP/HTTPS provenant d’internet qui passe par le CDN (ici Sucuri).
Si la requête est autorisée ; la page du cache du CDN est envoyée ou on demande la page au serveur WEB final.
A contrario, si la requête correspond à une signature, elle est interdite.
On obtient alors une page d’erreur d’autorisation et d’accès provenant du CDN comme donnée en exemple dans le paragraphe précédent.

Exemple architecture CDN/WAF pour WordPress
Exemple architecture CDN/WAF pour WordPress

Une modification des DNS est nécessaire pour faire pointer le domaine du site sur l’adresse du CDN.
Ensuite, on fait les déclarations qui vont bien sur l’interface du CDN pour que la connexion entre le CDN et le serveur WEB se fasse.

Vous trouverez plus d’informations sur les CDN sur la page : CDN : optimisation et sécurité WordPress

WAF en extension pour WordPress

Sur WordPress, il existe des plugins WAF.
Ces derniers analysent les requêtes HTTP avant d’autoriser l’accès au contenu de WordPress.
Ils ont l’avantages d’être très simples à mettre en place puisqu’il suffit d’installer l’extension.
Ensuite, on peut paramétrer l’extension et activer ou non certaines protections.
Les avantages des WAF sous la forme d’extension :

  • Gratuit mais des versions payantes existent avec des fonctionnalités supplémentaires (analyse antivirus, analyse de plugins non à jour, modifications de fichiers PHP WordPress, etc)
  • Facile à mettre en place et à administrer

Les points faibles :

  • Seul le site WordPress ayant le plugin est protégé. Ainsi, si une page WEB vulnérable est présente sur un autre site non WordPress. Cela peut permettre le piratage de vos sites WEB.
L'interface de WordFence
L’interface de WordFence
L'interface de WordFence
L’interface de WordFence

Les limites des WAF

Comme toute protection, les WAF ne dérogent pas et peuvent être contournés.
Par exemple, en jouant sur les X-Forwards ou contenu de la requête, il reste possible de contourner les règles.

La première chose à comprendre est que l’efficacité du WAF dépend des règles et signatures mises en place.
Ainsi, un WAF peut par exemple aider à se protéger des attaques 0day aveugles et automatisées.
Cependant, il sera probablement moins efficaces contre une attaque ciblée.
Par exemple, en mars 2019, CloudFlare protégeait ses sites Drupal d’une attaque 0-day massive : Stopping Drupal’s SA-CORE-2019-003 Vulnerability

Il faut aussi penser qu’un WAF est un logiciel, donc il peut aussi comporter des vulnérabilités.
Ce dernier peut donc au final être utilisé pour compromettre un serveur WEB.

En clair donc, il faut bien voir le WAF comme un maillon dans une chaîne de sécurité et non comme le maillon essentiel qui protège de tout.

image_pdfimage_print
(Visité 616 fois, 1 visites ce jour)

Partager l'article