Pare-feu vs IDS vs IPS vs WAF : ce qu’ils inspectent, bloquent ou signalent

Tous quatre défendent contre les attaques qui transitent par le réseau, mais ils diffèrent par ce qu’ils inspectent et ce qu’ils font lorsqu’ils trouvent quelque chose. Un pare-feu ne laisse passer que le trafic autorisé par ses règles, selon les adresses IP, les numéros de port et des champs similaires. Un IDS (système de détection d’intrusion) inspecte le trafic jusqu’à son contenu, repère ce qui ressemble à une attaque et alerte les administrateurs, mais n’arrête pas le trafic. Un IPS (système de prévention d’intrusion) se place sur le chemin du trafic et bloque immédiatement les attaques qu’il détecte. Un WAF (pare-feu applicatif web) inspecte le contenu des requêtes HTTP et bloque les attaques contre les applications web, comme l’injection SQL. Aucun ne couvre tout à lui seul : on les utilise donc ensemble.

CritèrePare-feuIDSIPSWAF
Ce qu’il inspecte principalementAdresses IP source et destination, numéros de port et état des connexions (couches réseau et transport) ; certains produits identifient aussi les applicationsDes en-têtes des paquets jusqu’à leur contenu (de la couche réseau à la couche application)Comme un IDS, des en-têtes des paquets jusqu’à leur contenuLe contenu des requêtes et réponses HTTP et HTTPS (couche application)
Placement par rapport au chemin du traficSur le chemin (en ligne)En général hors du chemin, recevant une copie du trafic depuis un port miroir de commutateur ou équivalentSur le chemin (en ligne)Sur le chemin, devant le serveur web, sous forme de proxy inverse ou de service cloud
Action en cas de détectionBloque le trafic que ses règles n’autorisent pasÉmet une alerte et la journalise ; le trafic lui-même n’est pas arrêtéBloque le trafic ou coupe la connexionBloque les requêtes jugées malveillantes ; un mode qui se contente de détecter et de journaliser est aussi courant
Méthode de détectionRègles d’autorisation et de refus (adresses, ports, état des connexions)Comparaison avec des motifs d’attaque connus (signatures) et détection d’anomalies qui cherche les écarts par rapport au trafic normalComme un IDS, signatures et détection d’anomaliesRègles portant sur des motifs d’attaque comme l’injection SQL et le cross-site scripting, et règles définissant les entrées autorisées
Ce qu’il protège principalementLes points d’entrée et de sortie du réseau, en bloquant le trafic non autoriséLa surveillance des réseaux et des serveurs, pour repérer les signes d’attaque ou d’intrusionLes serveurs et terminaux du réseau, contre les attaques connuesLes applications web, contre les attaques qui exploitent leurs vulnérabilités
Impact des faux positifsUne erreur de règle bloque du trafic légitimeDe nombreuses fausses alertes noient les vraies et surchargent les opérateurs, mais le trafic métier n’est pas arrêtéUn faux positif bloque directement du trafic légitime : un réglage soigneux est donc nécessaireDes entrées légitimes, comme un texte contenant des symboles, jugées malveillantes font échouer les opérations des utilisateurs
Exemple d’emplacementÀ la frontière entre le réseau interne et Internet, entre segments réseau, et sur chaque serveur ou terminalSur le segment réseau à surveiller (sur le réseau) ou sur un serveur (sur l’hôte)À la frontière avec Internet, par exemple juste derrière le pare-feuDevant un serveur web public
LimitesNe peut pas arrêter les attaques qui passent par des ports autorisés, comme celles qui exploitent les failles des applications web ; n’a aucune fonction de chiffrement du traficNe fait que détecter et ne peut rien arrêter ; ne peut pas inspecter le trafic chiffré par TLS, sauf s’il est placé là où ce trafic peut être déchiffréLes attaques inconnues sans signature dépendent de la détection d’anomalies et passent facilement inaperçues ; ne voit pas le contenu chiffré ; sa capacité peut devenir un goulot d’étranglementNe protège pas le trafic autre que web ; ne corrige pas les vulnérabilités de l’application elle-même

Les valeurs indiquées sont des ordres de grandeur typiques et varient selon la génération de procédé et le produit.

Quand choisir l'un ou l'autre ?

Pare-feu
La mesure de base placée en premier sur tout réseau : n’autoriser que le trafic nécessaire et bloquer le reste.
IDS
Lorsqu’on veut repérer les signes d’attaque ou d’intrusion sans risquer d’interrompre le trafic. Il conserve aussi des traces pour les investigations.
IPS
Lorsque les attaques connues doivent être arrêtées automatiquement, sans attendre une décision humaine. On le règle généralement d’abord en mode détection seule avant d’activer le blocage, pour que les faux positifs n’arrêtent pas le trafic métier.
WAF
Lorsqu’on publie une application web. Il peut servir de solution provisoire en attendant la correction des vulnérabilités, mais ne remplace pas la correction de l’application.

Questions fréquentes

Quelle est la principale différence entre un IDS et un IPS ?

Le fait d’arrêter ou non les attaques détectées. Un IDS inspecte généralement une copie du trafic et se contente d’émettre des alertes, sans toucher au trafic. Un IPS se place sur le chemin du trafic et bloque immédiatement le trafic jugé malveillant. Avec un IPS, les faux positifs bloquent donc du trafic légitime, et il faut veiller à ce qu’une panne de l’équipement n’arrête pas tout le trafic. De nombreux produits peuvent basculer entre les deux modes.

Si j’ai un pare-feu, ai-je encore besoin d’un WAF ?

Ils remplissent des rôles différents : si vous publiez une application web, il est judicieux d’utiliser les deux. Dès qu’un pare-feu autorise le trafic vers le port 443 d’un serveur web, il ne distingue pas si le contenu est une requête légitime ou une attaque. Un WAF inspecte le contenu des requêtes HTTP, repère et bloque les motifs d’attaque comme l’injection SQL et le cross-site scripting.

Un IDS ou un IPS peut-il inspecter le trafic chiffré ?

Pas tel quel. Pour inspecter le contenu d’un trafic chiffré par TLS, il doit être placé derrière un équipement qui termine TLS (comme un proxy inverse ou un WAF), ou bien l’équipement doit lui-même déchiffrer le trafic pour l’inspecter. Sans déchiffrement, les anomalies doivent être repérées à partir des destinations, des volumes et des motifs temporels du trafic.

Qu’est-ce qu’un pare-feu de nouvelle génération (NGFW) ?

Un nom donné aux pare-feu qui combinent dans un seul équipement les règles traditionnelles sur les adresses et les ports avec des fonctions comme l’identification des applications à partir du contenu du trafic et des fonctions d’IPS. Les fonctions incluses varient selon les produits : vérifiez quelles couches il inspecte et ce qu’il peut bloquer.

Vérifier vos connaissances

Quelle description de la fonction de base d'un pare-feu (à filtrage de paquets) est correcte ?

  1. AIl chiffre la communication pour empêcher l'écoute clandestine en chemin
  2. BIl ne laisse passer que le trafic autorisé et bloque le reste, selon des règles fondées sur les adresses IP source et destination, les numéros de port, etc.
  3. CIl répartit les paquets entrants entre plusieurs serveurs pour distribuer la charge de traitement
Afficher la réponse et l'explication

Réponse : B. Il ne laisse passer que le trafic autorisé et bloque le reste, selon des règles fondées sur les adresses IP source et destination, les numéros de port, etc.

Un pare-feu est placé par exemple à la frontière entre un réseau interne et Internet, et autorise ou refuse le trafic selon des règles définies à l'avance. Un réglage typique est : « depuis l'extérieur, n'autoriser que le trafic vers le port 443 du serveur web public et refuser toutes les autres connexions entrantes ». La plupart des pare-feux actuels pratiquent l'inspection avec état (stateful inspection) : ils suivent l'état des connexions et laissent passer automatiquement les paquets de retour des connexions ouvertes depuis l'intérieur. Ils ne chiffrent pas ; on les combine donc avec TLS ou un VPN pour protéger le trafic. Ils ne peuvent pas non plus arrêter les attaques qui passent par un port autorisé (comme celles qui exploitent les vulnérabilités des applications web) ; on utilise donc aussi d'autres mesures, comme un WAF.

Dans une application web, saisir une chaîne comme ' OR '1'='1 dans le champ du mot de passe de l'écran de connexion permet de se connecter sans connaître le mot de passe. Comment s'appelle cette attaque ?

  1. AInjection SQL
  2. BCross-site scripting
  3. CTraversée de répertoires (directory traversal)
Afficher la réponse et l'explication

Réponse : A. Injection SQL

L'injection SQL exploite une application web qui construit des commandes pour la base de données (instructions SQL) en concaténant simplement les saisies de l'utilisateur sous forme de chaînes. Par exemple, lorsque ' OR '1'='1 est inséré là où se construit la condition « le mot de passe est égal à 'saisie' », l'apostrophe ferme la chaîne et la condition toujours vraie « ou '1' est égal à '1' » est ajoutée. La condition est donc satisfaite sans le mot de passe, et la connexion réussit. La même méthode peut aussi servir à voler, modifier ou supprimer des données. La contre-mesure fondamentale est un mécanisme qui n'interprète jamais la saisie comme une partie de la commande : les requêtes préparées avec des paramètres substituables (placeholders).

Une application web de forum présentait une vulnérabilité par laquelle des scripts contenus dans des textes publiés par des utilisateurs s'exécutaient dans le navigateur des autres visiteurs. Quelle combinaison indique correctement le nom de cette vulnérabilité et sa contre-mesure fondamentale ?

  1. AInjection SQL. Allonger le mot de passe utilisé pour se connecter à la base de données
  2. BCross-site scripting (XSS). Échapper les caractères ayant une signification particulière, comme < et >, lors de la sortie des textes publiés en HTML
  3. CCross-site scripting (XSS). Chiffrer la communication entre le serveur et le navigateur avec HTTPS
Afficher la réponse et l'explication

Réponse : B. Cross-site scripting (XSS). Échapper les caractères ayant une signification particulière, comme < et >, lors de la sortie des textes publiés en HTML

Le cross-site scripting (XSS) est une vulnérabilité dans laquelle une application web insère telle quelle la saisie d'un utilisateur dans le HTML, si bien qu'un script contenu dans cette saisie s'exécute dans le navigateur des visiteurs comme une partie de la page. Comme le script s'exécute en tant que page de ce site, il peut voler les informations de session du visiteur (cookies) ou afficher de faux champs de saisie. La contre-mesure fondamentale consiste à échapper les caractères ayant une signification particulière, comme <, >, & et les guillemets, selon l'endroit où ils sont produits (par exemple en convertissant < en &lt;), afin qu'ils s'affichent comme de simples caractères. Parmi les mesures complémentaires figurent l'attribut HttpOnly sur les cookies, pour que les scripts ne puissent pas les lire, et la restriction des scripts autorisés à s'exécuter au moyen d'une Content Security Policy. HTTPS protège le canal de communication et ne peut pas empêcher l'exécution d'un script incorporé dans une page légitime.

  1. Quelle affirmation décrit correctement une attaque zero-day ?
  2. Quelle affirmation décrit correctement une attaque DDoS ?
  3. Quelle description d'un proxy inverse est correcte ?

Questions d'entraînement sur Bases de la sécurité de l'information

Termes clés expliqués

Numéro de port
Nombre de 0 à 65535 utilisé par TCP et UDP pour indiquer à quelle application d'un terminal une communication est destinée. Les ports 0 à 1023, comme 80 pour HTTP, 443 pour HTTPS et 53 pour DNS, sont appelés ports bien connus (well-known ports).
Modèle OSI (modèle de référence OSI)
Modèle qui organise les fonctions de communication en 7 couches : physique, liaison de données, réseau, transport, session, présentation et application. Il sert de vocabulaire commun pour raisonner séparément sur le rôle de chaque couche.
Injection SQL
Attaque qui exploite une application web qui construit des instructions SQL en concaténant simplement les saisies des utilisateurs : la saisie sert à changer le sens de la commande pour manipuler la base de données sans autorisation. Les requêtes préparées avec paramètres substituables (placeholders) sont la contre-mesure fondamentale.
Cross-site scripting (XSS)
Vulnérabilité dans laquelle une application web insère telle quelle la saisie des utilisateurs dans le HTML, si bien qu'un script contenu dans cette saisie s'exécute dans le navigateur des visiteurs comme une page de ce site. Échapper à la sortie les caractères ayant une signification particulière est la contre-mesure fondamentale.
Proxy inverse (reverse proxy)
Serveur placé devant les serveurs web, qui reçoit les requêtes des utilisateurs à la place des serveurs et les relaie vers un ou plusieurs serveurs situés derrière lui. Il assure des rôles comme le traitement cryptographique centralisé de HTTPS (terminaison TLS), la conservation et le renvoi des réponses fréquemment demandées, la répartition de la charge entre plusieurs serveurs et le masquage de l'organisation des serveurs placés derrière lui. Il se distingue du proxy direct (forward proxy), placé du côté des utilisateurs et qui se connecte aux sites externes à leur place, par sa position et par ce qu'il protège.
TLS (Transport Layer Security)
Protocole qui chiffre la communication, détecte les falsifications et authentifie les serveurs à l'aide de certificats. HTTPS est HTTP protégé par TLS.
Attaque zero-day (attaque du jour zéro)
Attaque qui exploite une vulnérabilité logicielle pendant la période qui suit sa découverte et précède la fourniture d'un correctif (patch). Comme les correctifs ne peuvent pas l'empêcher, on en limite les dégâts par plusieurs couches de défense.

Comparatifs associés