Prévention DoS
Categories:
Prévention DDoS
Deux méthodes d’attaque DoS :
- Faire planter le service
- Surcharger le réseau
Types d’attaques
| Type d’attaque | Méthode d’attaque | Contre-mesure |
|---|---|---|
| Distributed DoS | Plusieurs machines indépendantes attaquent simultanément avec des adresses IP différentes | 1. Dégradation du service 2. Liste noire 3. Désactivation des équipements réseau |
| Attaque Yo-yo | Pour les services capables de s’étendre automatiquement, attaquer durant les intervalles de réduction des ressources | Liste noire |
| Attaques de couche applicative | Attaquer des fonctionnalités ou caractéristiques spécifiques, l’attaque LAND appartient à ce type | Liste noire |
| LANS | Cette méthode utilise des paquets TCP SYN spécialement conçus (généralement utilisés pour établir une nouvelle connexion), faisant en sorte que la machine cible ouvre une connexion vide dont l’adresse source et l’adresse de destination sont toutes deux son propre adresse IP, entraînant une réponse continue et la consommation des ressources système jusqu’au crash. Cette méthode d’attaque diffère de l’attaque par inondation SYN. | Liste noire |
| DoS avancé et persistant | Attaque de reconnaissance/ ciblée/ évasion des contre-mesures/ longue durée/ grande puissance de calcul/ attaque multithread | Dégradation du service |
| Attaque DoS HTTP slow POST | Créer une connexion légale puis envoyer lentement de grandes quantités de données, entraînant l’épuisement des ressources du serveur | Dégradation du service |
| Attaque Challenge Collapsar (CC) | Envoyer fréquemment des requêtes légales standard qui consomment beaucoup de ressources, par exemple les moteurs de recherche qui consomment beaucoup de mémoire | Dégradation du service, reconnaissance de contenu |
| Inondation ICMP (Internet Control Message Protocol) | Beaucoup de paquets ping/ ping erronés / Ping of death (paquet ping malformé) | Dégradation du service |
| Attaques de refus de service permanent | Attaquer le matériel | Reconnaissance de contenu |
| Attaque réfléchie | Envoyer des requêtes à un tiers, en falsifiant l’adresse pour rediriger la réponse vers la véritable victime | Champ DDoS |
| Amplification | Utiliser certains services comme réflecteurs pour amplifier le trafic | Champ DDoS |
| Botnet Mirai | Utiliser des appareils IoT contrôlés | Champ DDoS |
| Panique SACK | Exploiter la taille maximale du segment et l’accusé de réception sélectif pour provoquer des retransmissions | Reconnaissance de contenu |
| Attaque Shrew | Exploiter les faiblesses du mécanisme de temporisation de retransmission TCP pour interrompre les connexions TCP sur le même lien avec de brèves salves de trafic synchronisé | Rejet avec temporisation |
| Attaque Slow Read | Similaire au slow post, envoie une requête légale mais lit très lentement afin d’épuiser le pool de connexions, en annonçant une très petite taille pour la fenêtre de réception TCP | Déconnexion avec temporisation, dégradation du service, liste noire |
| Inondation SYN | Envoyer de nombreux paquets TCP/SYN, entraînant des connexions semi-ouvertes sur le serveur | Mécanisme de temporisation |
| Attaques Teardrop | Envoyer des fragments IP endommagés avec une charge utile chevauchante et surdimensionnée à la machine cible | Reconnaissance de contenu |
| Attaque TTL expiré | Lorsqu’un paquet est abandonné en raison de l’expiration du TTL, le CPU du routeur doit générer et envoyer une réponse ICMP de dépassement de délai. Générer de nombreuses réponses peut surcharger le CPU du routeur | Rejet du trafic |
| Attaque UPnP | Basée sur la technique d’amplification DNS, mais le mécanisme d’attaque est un routeur UPnP qui transfère les requêtes d’une source externe à une autre, en ignorant les règles de comportement UPnP | Dégradation du service |
| Attaque par réflexion SSDP | De nombreux appareils, y compris certains routeurs résidentiels, comportent des vulnérabilités dans leurs logiciels UPnP, que les attaquants peuvent exploiter pour obtenir des réponses vers l’adresse cible de leur choix depuis le port 1900. | Dégradation du service, blocage du port |
| Usurpation ARP | Associer l’adresse MAC à l’adresse IP d’un autre ordinateur ou d’une passerelle (comme un routeur), redirigeant ainsi le trafic destiné à l’IP d’origine vers l’attaquant, entraînant un refus de service. | Champ DDoS |
Mesures de prévention
- Identifier le trafic d’attaque
- Destruction du service
- Reconnaissance du contenu du trafic
- Surcharger le service
- Enregistrer le temps d’accès
- Destruction du service
- Traiter le trafic d’attaque
- Rejeter le trafic d’attaque
- Bloquer l’IP d’attaque
- IPv4 a un nombre limité d’adresses, facile à construire une liste noire
- IPv6 a un grand nombre d’adresses, difficile à construire une liste noire. On peut utiliser des segments d’adresses IPv6, mais cela comporte un risque de blocage erroné
- Contrôler la fréquence d’accès
Outils open source
Outils d’attaque
https://github.com/palahsu/DDoS-Ripper- 162 forks, 755 étoiles
- https://github.com/MHProDev/MHDDoS
- 539 forks, 2,2k étoiles
- MHDDoS - Script d’attaque DDoS avec 40 méthodes
- https://github.com/NewEraCracker/LOIC
- 539 forks, 1,9k étoiles
- C#
- Outil de stress réseau
- https://github.com/PraneethKarnena/DDoS-Scripts
- 165 forks, 192 étoiles
- C, Python
- https://github.com/theodorecooper/awesome-ddos-tools
- 46 étoiles
- Collection d’outils ddos
Outils de défense
- https://github.com/AltraMayor/gatekeeper
- Licence GPL-3.0
- 159 forks, 737 étoiles
- C, Lua
- Gatekeeper est le premier système de protection DoS open source.
https://github.com/Exa-Networks/exabgp- Licence Apache-like
- 415 forks, 1,8k étoiles
- Python
- Le couteau suisse BGP du réseau
- https://github.com/curiefense/curiefense
- Licence Apache 2.0
- 60 forks, 386 étoiles
- Protection au niveau applicatif
- protège les sites, services et API
- https://github.com/qssec/Hades-lite
- Licence GPL-3.0
- 24 forks, 72 étoiles
- C
- Programme pilote Anti-ddos au niveau noyau
- https://github.com/snort3/snort3
- Licence GPL-2.0
- 372 forks, 1,4k étoiles
- Prochaine génération Snort IPS (Système de prévention d’intrusion)
- C++
Surveillance du trafic
- https://github.com/netdata/netdata
- Licence GPL-3.0
- 5,2k forks, 58,3k étoiles
- C
- https://github.com/giampaolo/psutil
- Licence BSD-3-Clause
- 1,2 forks, 8,2k étoiles
- Python, C
- Librairie multiplateforme pour la surveillance des processus et du système en Python, également surveillance réseau
- https://github.com/iptraf-ng/iptraf-ng
- Licence GPL-2.0
- 22 forks, 119 étoiles
- C
- IPTraf-ng est un programme de surveillance réseau basé sur la console pour Linux qui affiche des informations sur le trafic IP.