Protection contre les DDoS
Comprendre et contrer les attaques par déni de service distribué
Notions théoriques
Une attaque DDoS (Distributed Denial of Service) vise à rendre un service indisponible en le submergeant de requêtes provenant de plusieurs sources simultanément.
Ces attaques exploitent souvent des réseaux de machines compromises appelées botnets.
Fonctionnement d'une attaque DDoS
- Infection des machines zombies : Un attaquant prend le contrôle de nombreux ordinateurs en les infectant avec un malware.
- Coordination de l'attaque : Les machines infectées reçoivent des instructions d'un serveur de commande et contrôle (C&C).
- Envoi massif de requêtes : Les machines zombies envoient un grand nombre de requêtes vers la cible, saturant ses ressources.
- Impact : Le serveur ciblé devient lent ou totalement inaccessible pour les utilisateurs légitimes.
Types d'attaques DDoS
- Attaques par saturation de bande passante : Envoi d'un volume massif de trafic pour épuiser la connexion réseau.
- Attaques par épuisement des ressources : Consommation excessive du processeur, de la mémoire ou des connexions simultanées d'un serveur.
- Attaques applicatives : Exploitation de vulnérabilités dans un service pour le rendre instable ou le faire planter.
Méthodes de protection
- Utilisation d'un pare-feu et de filtres : Bloquer les adresses IP suspectes et limiter le nombre de requêtes par seconde.
- Configuration d'un proxy inverse : Placer un serveur intermédiaire pour absorber et filtrer le trafic.
- Utilisation d'un service de protection DDoS : Faire appel à des services spécialisés comme Cloudflare ou AWS Shield.
- Mise en place de règles de limitation : Configurer les serveurs pour limiter le nombre de connexions simultanées par adresse IP.
Avantages et limites des protections
✅ Avantages :
- Réduction de l'impact des attaques en filtrant le trafic malveillant.
- Amélioration des performances du serveur en bloquant les requêtes inutiles.
- Protection proactive contre les attaques connues.
❌ Limites :
- Les attaques volumétriques peuvent dépasser les capacités du réseau.
- Les attaquants peuvent utiliser des techniques d'évasion pour contourner les protections.
- Une mauvaise configuration des filtres peut bloquer des utilisateurs légitimes.
Exemple pratique
Mise en place d'une protection contre les attaques DDoS avec iptables
Il est possible de configurer iptables, un pare-feu sous Linux, pour limiter le nombre de connexions et bloquer les adresses IP suspectes.
1) limitation du nombre de connexions par adresse IP
Restreindre le nombre de nouvelles connexions TCP par seconde :
sudo iptables -A INPUT -p tcp --syn --dport 80 -m connlimit --connlimit-above 10 -j DROP
Cette règle bloque les adresses IP qui tentent d'établir plus de 10 connexions simultanées sur le port 80.
2) détection et blocage des IP effectuant trop de requêtes
Limiter les requêtes à 30 par seconde pour éviter les abus :
sudo iptables -A INPUT -p tcp --dport 80 -m limit --limit 30/second --limit-burst 50 -j ACCEPT
sudo iptables -A INPUT -p tcp --dport 80 -j DROP
3) blocage des paquets malformés souvent utilisés dans les DDoS
sudo iptables -A INPUT -m state --state INVALID -j DROP
sudo iptables -A INPUT -p icmp --icmp-type echo-request -m limit --limit 1/second -j ACCEPT
Ces règles empêchent les attaques exploitant des paquets corrompus et limitent les requêtes ping pour éviter les attaques ICMP Flood.
4) vérification des règles appliquées
sudo iptables -L -v -n
Cette commande liste toutes les règles actives et permet de s'assurer que les protections sont bien en place.
Test de mémorisation/compréhension
TP pour réfléchir et résoudre des problèmes
Objectif
Dans ce TP, vous allez configurer un serveur Linux pour détecter et bloquer automatiquement une attaque DDoS simulée.
Vous utiliserez fail2ban en complément d'iptables pour identifier et bannir les adresses IP effectuant un nombre excessif de requêtes.