|
Attaque DOS (Deny of service)
par Sébastien FONTAINE (_SebF)
1 - Introduction
2 - Définition
3 - Les principales attaques
3.1 -
Attaque ARP Poisoning
3.2 -
Attaque par fragmentation
(fragment attack)
3.3 -
Attaque Ping de la mort (Ping
of death)
3.4 -
Attaque Unreachable Host
3.5 -
Attaque ICMP Redirect
3.6 -
Attaque Ping Flood (ICMP Flood)
3.7 -
Attaque UDP Flood
3.8 -
Attaque * Flood
3.9 -
Attaque Land (Land Attack)
3.10 -
Attaque SynFlood
3.11 -
Attaque Session Flood
3.12 -
Attaque Mail Bombing
4 - Les variantes des attaques
4.1 -
La réflexion - Smurf
4.2 - L'IP
Spoofing
4.3 - Le zombie
5 - Histoire des grandes attaques
6 - Histoire des condamnations
7 - Demande de rançon
8 - Conclusion
9 - Discussion autour de la
documentation 10 - Suivi du document
Le samedi 25 janvier 2003, 5h30 UTC,
plusieurs vols aériens sont annulés, il y a des perturbations pour les paiements
par cartes de crédit et les guichets automatiques subissent eux aussi des
problèmes, plusieurs grandes entreprises voient leurs réseaux inutilisables.
C'est le résultat de du virus SLAMMER qui
provoqua un déni de service généralisé planétaire. Basé sur UDP, il s'est
propagé en moins de 30 minutes sur plus de 75 000 ordinateurs connectés à
Internet.
Le déni de service, connu sous le titre
anglophone de "Denial Of Service" ou encore DOS, est une attaque
réalisée dans le but de rendre indisponible durant une certaine période les
services ou ressources d'une organisation. Généralement, ce type d'attaque à
lieu contre des machines,
serveurs et accès d'une entreprise afin qu'ils deviennent inaccessibles pour leurs
clients. Le but d'une telle attaque n'est pas d'altérer ou de supprimer des données, ni
même de voler quelconque information. Il s'agit ici de nuire à la réputation de
sociétés présentes sur Internet en empêchant le bon fonctionnement de leurs
activités.
La réalisation d'un déni de service n'est pas très compliquée, mais pas moins
efficace. Il est possible d'attaquer tout type d'équipements réseau tel que les
serveurs, routeurs et Switchs. Cela touche 99% de la planète car la plupart des dénis de service exploitent des failles liées au
protocole TCP/IP. Nous pouvons
diviser les impacts des attaques DOS en deux catégories :
- Les dénis de service par saturation
qui consistent à submerger une machine de requêtes, afin qu'elle ne soit plus
capable de répondre aux demandes réelles.
- Les dénis de service par exploitation des vulnérabilités qui consistent à
exploiter une faille du système cible afin de le rendre inutilisable.
Le principe de ces attaques est
d'envoyer des paquets ou des données de taille ou de constitution inhabituelle,
afin de provoquer une saturation ou un état instable des équipements victimes et
de les empêcher ainsi d'assurer les services réseau qu'elles sont sensées
offrir. Dans certains cas extrêmes, ce type d'attaque peut conduire au crash de
l'équipement cible.
Le déni de service est donc un type d'attaque qui coûte très cher puisqu'il
interrompt le cours normal des transactions d'une organisation. Sachant qu'à
l'heure actuelle, les sommes et les enjeux d'une entreprise sont généralement
énormes, cela peut poser de graves problèmes si une telle situation se produit
ne fût-ce que quelques heures. Imaginez les impacts :
- Financier d'un grand site de commerce
en ligne dont sa plateforme d'hébergement serait indisponible lors des fêtes de
Noël ?
- Sur l'image d'une banque qui ne pourrait plus recevoir ses mails ?
- Globaux pour vous, en tant qu'entreprise qui communiquez avec vos clients ?
Les contre-mesures sont compliquées à
mettre en place et doivent être spécifiques à un type d'attaque. Etant donné que
les attaques par déni de service utilisent les services et protocoles normaux
d'Internet, s'en protéger reviendrait à couper les voies de communications
normales, sachant qu'il s'agit de la raison d'être principale des machines
concernées (Site web, Messagerie, Extranet, ...).
Il faut donc essayer se protéger au mieux de certains comportements anormaux, ce
qui implique notamment la vérification de l'intégrité des paquets, la
surveillance du trafic, établissement de profils types et de seuils... On est
donc loin de la protection absolue, mais il est tout de même possible de se
protéger de façon intelligente et flexible.
Cette attaque se base sur l'envoi
d'informations ARP falsifiés. Ainsi, les différents équipements du LAN apprennent
des mauvaises correspondances adresses IP avec MAC. La conséquence est de rompre
toutes communications entre deux équipements IP. Les cibles sont souvent les
serveurs et les routeurs rendant indisponible les services associés.
Cette technique d'attaque est basé sur
la fragmentation IP. L'objectif est de planter la pile IP de la cible en
modifiant les numéros de séquences.
En effet, le protocole IP est prévu pour
fragmenter les datagrammes de taille importante provenant de la
couche 4 du
modèle OSI. Le datagramme est alors fragmenté en en plusieurs paquets IP
possédant chacun un numéro de séquence et un numéro d'identification commun. A
réception des fragments, la cible rassemble les paquets grâce aux valeurs de
décalage (en anglais offset) qu'ils contiennent.
L'astuce est de modifier les numéros de
séquence afin de générer des blancs ou des recouvrement lors du réassemblage par
la pile IP cible. Et certain équipement ne le supportait pas avec différent
conséquence tel que l'arrêt du service TCPIP.
Cependant, revenons sur terre,
aujourd'hui, comme pour le ping de la mort, cette technique n'est plus viable du faite que les pile IP
ont toutes évoluées. Le faite de détailler cette attaque permet de
raconter l'histoire et se remémorer des souvenirs.
Cette technique d'attaque est
dépassée, mais elle a
fait ses preuves à l'époque. Elle exploitait une faiblesse dans
l'implémentation
de la plus part des piles IP en envoyant un paquet ICMP d'une taille non
conforme (supérieur à 64 octets).
Ceci avait pour effet de planter directement la pile IP attaquée.
Cependant, revenons sur terre,
aujourd'hui, comme pour l'attaque par fragmentation, cette technique n'est plus viable du faite que les pile IP ont toutes
évoluées. Nous pouvons donc discuter en
datagramme ICMP de grande taille sans
aucun soucis (heureusement). Le faite de détailler cette attaque permet de
raconter l'histoire et se remémorer des souvenirs.
L'attaque Ping de la mort est souvent
confondue en pensant qu'elle est basée sur le faite de saturer une bande
passante en ICMP. Ce n'est pas le cas, car ce principe est appliquée par
l'attaque Ping Flood et non pas par Ping de la mort.
Cette
attaque envoie des messages ICMP de type "Host Unreachable" à une cible, provoquant la
déconnexion des sessions et paralyse ainsi la victime. La simplicité de cette
attaque est qu'elle demande qu'un faible débit du fait que les envois de
datagramme ICMP peuvent être sur une faible cadence.
Cette attaque envoi des messages ICMP de
type "Redirect" à une cible pouvant être aussi bien un serveur comme un routeur.
Le datagramme informera la victime qu'il faut passer par une autre chemin.
Ainsi, cela provoquera une indisponibilité WAN.
Beaucoup d'hôte Internet ou privée répondent aux paquets ICMP,
il est donc facile de les inonder de ce flux afin les rendre indisponibles.
D'ailleurs, que les cibles répondent ou pas à l'ICMP, l'objectif premier étant de
saturer leurs bande passantes d'accès réseau, processeurs, mémoire ...
Ping Flood est la
plus répandu des attaques par déni de service, car de nombreux particuliers et
amateurs s'amusent simplement à pinguer un host distant. Et bien sur, ils se
font plaisir en ajoutant les options permettant d'augmenter la cadence au
maximum. Cependant, Microsoft à limité les options de son Ping obligeant ainsi à
attendre une seconde entre chaque Ping. Ca permet d'éviter aux particuliers de
s'amuser avec cette attaque, mais il faut être réaliste, Windows n'est pas le
seul OS et Ping.exe n'est pas la seule application ...
Le concept de cette attaque est
identique au Ping Flood. C'est de saturer les ressources de la cible en terme de
débit, processeur, mémoire à l'aide de
datagramme UDP De la même manière, que la cible réponde ou pas
au flux abondant émis, ne change pas le résultat.
3.8 - Attaque * Flood
Le concept de cette attaque, dont je
viens d'inventer le nom, est de saturer une cible exactement comme le réalise Ping Flood et UDP Flood. Le concept de ces attaques se base toutes sur l'envoi
massive de requête à destination de la cible. Ces requêtes ne sont pas
obligatoirement basées sur ICMP ou UDP, mais elles se reposeent sur TCP,
IGMP, IP_raw, ... D'où le nom de l'attaque * Flood indiquant que l'on peux
saturer une cible avec n'importe quel flux IP.
Cette attaque consiste à démarrer un
ouverture de session TCP via un SYN à destination d'un port ouvert de la machine
cible. L'astuce de l'attaque est de préciser l'adresse IP source identiquement à
l'IP destination ainsi que le port source identiquement au port destination. La
victime recevant cette trame pense alors qu'il discuter avec lui même ce qui
généralement provoquait un crash.
Cependant, revenons sur terre,
aujourd'hui, comme pour le ping de la mort et , cette technique n'est plus viable du faite que les pile
TCP/IP
ont toutes évoluées. Le faite de détailler cette attaque permet de
raconter l'histoire et se remémorer des souvenirs. Du plus, les consoles IDS et
les Firewall sont tous opérationnels pour bloquer de type de trame.
Cette attaque utilise une faiblesse du
protocole TCP en se basant sur
l'envoi massive de demande d'ouverture de session SYN. L'objectif étant de
saturer le nombre maximum de sessions TCP en cours de l'équipement IP assaillis.
Ainsi, lorsque cette limite est atteinte, la cible ne pourra plus établir aucune
session TCP causant une indisponibilité de tous ces applications en écoute de
port TCP.
Tout équipement IP dispose de plusieurs
variables pour gérer le fonctionnement de TCP. Ceci apportant donc les limites
définies suivantes :
- Le nombre de session maximum établies
(L'attaque SynFlood ne se base pas sur cette limite)
- Le nombre de session maximum en cours d'établissement
- Le temps d'attente du retour ACK avant de supprimer la session en cours
Pour se protéger, il est donc possible
de jouer sur ces valeurs afin d'accepter plus de sessions et d'être plus réactif
sur la durée d'attente. Cependant, le fait de modifier ces valeurs peux
engendrer un impact de performance local. De plus, cela ne fait que repousser
les limites que l'attaquant se fera un malin plaisir à atteindre.
Les SynCookies représente une solution
technique relativement efficace. Sur le même principe que les cookies HTTP, le
serveur sollicité renvoie un cookie crypté dans le SYN/ACK, puis il efface
l'entrée de sa file d'attente. Si c'est un client régulier il lui renverra un
ACK, dont on peut déduire le cookie et reconstitué ainsi l'entrée dans la file
d'attente. La problématique de cette technique est que tout le monde
n'implémente pas ce mécanisme provoquant ainsi des problèmes de compatibilité.
On notera aussi que l'implémentation d'IPSec
dans IPv6 rendra les ces attaques difficiles.
IPv6 compliquera aussi la taches des
pirates par le nombre d'adresses à scanner et par l'affectation unique d'une IP
qui augmentera leur traçabilité.
Vous trouverez sur
ce lien web un exemple
d'outil permettant de réaliser cette attaque.
La méthode générale de
cette attaque consiste à
saturer un service distant en montant un plus grand nombres de connexions TCP que peut
en supporter la cible. Cela ressemble beaucoup à l'attaque SynFlood excepté le
fait qu'elle se base sur le montage complet d'une session TCP (SYN - SYN/ACK -
ACK). La conséquence pour la cible est de plus pouvoir accepter aucune
session TCP supplémentaire.
Cette attaque à l'avantage d'être très
simple à mettre en oeuvre, mais la faiblesse d'être très rapidement repéré. La
force de cette attaque est son couplage en mode distribué.
Du côté cible, les préconisations afin
de tenter de l'éviter sont :
- Augmenter le nombre de sessions
maximums supportées
- Dupliquer la cible afin d'obtenir N fois le nombre de sessions maximums
- Mettre en oeuvre des boîtiers de repartissions de charge des sessions TCP
- Implémenter une console IDS détectant l'attaque afin de bloquer l'IP
attaquante
Vous trouverez sur
ce lien web un exemple d'outil
permettant de réaliser cette attaque.
Cette attaque, très souvent utilisée par
du grand public, consiste à envoyer plusieurs milliers d'emails à destination
d'une entreprise ou d'un utilisateur cible. L'impact est évidement avec un remplissage massive de la boite à lettre
utilisateur, mais surtout de saturer le débit Internet de l'entreprise ciblée
qui ne possède pas de qualité de service.
Cette attaque devient de moins en moins
efficace du fait que les entreprise possède de plus en plus des tuyaux de boucle
local en haut débit, de la QOS performante et des relais Anti-Spam pertinents.
Cette variante
consiste à envoyer une trame à la destination d'un broadcast de réseau. La
finalité est couplé cette trame à une adresse IP source correspondante à celle de
la cible. Ainsi, le flux de réponse en destination de la cible sera fortement
multiplié.
Cette amplification peux facilement se
coupler avec les attaques :
- Attaque Ping Flood
- Attaque UDP Flood
- Attaque * Flood
Vous trouverez sur
ce lien web un exemple d'outil
permettant de réaliser cette variante.
Cette variante permet de se cacher lors
de l'attaque. Pour cela, il suffit de changer l'adresse IP Source afin de pas
être reconnu. Il est même possible d'effectuer un changement aléatoire à chaque
envoi, cela brouillera particulièrement les pistes.
Ce camouflage peux facilement se coupler
avec les attaques ne nécessitant pas de recevoir la réponse :
- Attaque Ping de la mort
- Attaque Ping Flood
- Attaque UDP Flood
- Attaque * Flood
- Attaque SynFlood
- Attaque par fragmentation (fragment attack)
- Attaque Unreachable Host
- Attaque ICMP Redirect
Cette variante permet de très bien se
cacher en exécutant l'attaque à partir d'une machine distantes ne nous
appartenant pas. Pour cela, il faudra donc pirater et prendre la main d'une
machine Internet qui sera appelé Zombie, d'où l'attaque sera lancée. Ainsi, la
cible ne verra que le Zombie dans ses logs et pas la source réelle du hacker.
C'est une technique est simple à
réaliser du fait qu'il existe de nombreuses stations de travail de particulier
sans aucune protection ou presque.
Ce camouflage peux facilement se coupler
avec toutes les attaques.
Voici des exemples d'attaques qui furent
considérées comme toutes importantes en fonction de leurs date d'exécution
respective.
En Avril 1992, L'attaque Nuke (Icmp_unreach)
En janvier 1996, L'attaque Octopus (While - connect)
En décembre 1996, L'attaque Ping de la
mort (Ping Of Death)
En juillet 1997, L'attaque Smurf
En juillet 1997, L'attaque WinNuke qui
provoquait sur les stations Windows 95 et NT, un écran bleu (blue screen) ou un
reboot
En octobre 1997, L'attaque
Land valable sur les système Windows 95 OSR2, 98, NT 4.O, FreeBSD, HP-UX,
OpenBSD, SunOS, IOS et etc ...
En octobre 1997, L'attaque Latierra qui impactait les stations Windows 95 par un crash et occupait 100% du CPU
des stations Windows NT 4.0 (SP3)
En décembre 1997, L'attaque Teardrop / Overdrop qui provoquait un plantage sur les stations Linux
(jusqu'au kernel 2.0.31), 95
OSR et NT
En janvier 1998, L'attaque Bonk
impactait les stations Win95 OSR2 patchées et NT 4.0 par un plantage.
En janvier 1998, L'attaque Newtear
impactait les stations Windows NT4 patchées et Win95
En janvier 1998, L'attaque Bonk/Boink
visait les stations Windows en émettant plein de paquet UDP corrompus provoquant
des blocage ou des plantages du système d'exploitation cible.
En janvier 1998, L'attaque Fraggle en
inondation de paquets UDP amplifié par la variante Smurf
En avril 1998, L'attaque Nestea
impactait les systèmes d'exploitations Linux 2.0.*, 2.1.* et certaines versions Windows.
En juin 1998, L'attaque Syndrop basé sur Teardrop en
TCP avec le bit SYN et des champs invalides tel que le numéro de séquence, la taille de
fenêtre, etc. L'impact est de bloquer les stations Windows NT4 SP3 par un Freeze.
En septembre 1998, L'attaque Snork,
surnommé "Tueur de Windows NT", envoyait des paquets Netbios de type RPC (port
UDP 135) en se faisant passer pour une autres station Windows NT.
En octobre 1998, L'attaque
Smack inondait de paquets ICMP aléatoires de type UnReachable. Les systèmes
d'exploitations impactés étaient BSD, RedHAT, Slackware.
En janvier 2000, L'attaque Stream/Raped
Inondait des paquets TCP avec le flag marqué en ACK. Les adresses et numéros de
séquence étaient aléatoires.
En mai 2000, L'attaque Jolt2.c bloquait
les Firewall-1. Checkpoint avait réagis avec un patch, cependant, le temps de
mise à jours mondiale dépendait des administrateurs eux mêmes et ce fût donc
long.
Le 23 octobre 2002, L'attaque de type Ping
Flood en mode distribuée sur les serveurs racines DNS de l'Internet. Seulement 4
serveurs sur 13 sont restés disponibles.
Le 25 janvier 2003, L'attaque Slammer
s'enclencha à 5h30 UTC. Plusieurs vols aériens sont annulés, il y a des perturbations pour es paiement
par cartes de crédit et les guichets automatiques subissent eux aussi des
problèmes, plusieurs grandes entreprises voient leurs réseaux inutilisables.
C'est le résultat de du virus SLAMMER qui
provoqua un déni de service généralisé planétaire. Basé sur UDP, il s'est
propagé en moins de 30 minutes sur plus de 75 000 ordinateurs connectés à
Internet.
En août 2003, L'attaque Baster,
Virus,
était programmé pour effectuer une attaque de déni de service distribué sur le
site de mise à jour Windows. Mais le désassemblage (reverse engineering) fait
sur le virus à permis de comprendre son fonctionnement et sa cible. Microsoft a
donc fait migré son serveur sur une autre adresse pour contrer la future
attaque. Cependant,
La stratégie de Microsoft a retenue l'attention car sa page d'accueil était alors
hébergé sur une plateforme Linux du réseau d'Akamai. Microsoft avait par
ailleurs désactivé l'entrée DNS sur www.windowsupdate.com le temps de l'attaque,
ce qui a considérablement atténué les effets.
Les arrestations sont rares, car les
hackers, pirates et inconscients sont difficilement repérable. Cependant, les
peines attribuées pour les personnes attrapées sont lourdes. Voici quelques
exemples de condamnations :
Cinq ans de prison et 35000$ d'amende pour
l'Américain Jasmine Singh
âgé de 17 ans. Il a été accusé d'avoir à 5 reprises rendus injoignables les sites
Internet Jersey-Joe.com et Distant Replays. Il agissait pour le compte du
propriétaire d'une société concurrente, âgé lui de 18 ans. Les plaignants
estimaient le préjudice à
1,5 millions de dollars. Son mode opératoire était de contrôler des milliers
de machines dans le monde à l'aide d'un Virus et ainsi de les utiliser pour inonder de requêtes les sites visés, les rendant
injoignables.
21 mois de prison avec sursis pour
l'Allemand Sven Jaschan âgé de 17 ans. Il a été accusé d'avoir crée le ver
Sasser qui c'est très vite propagé sur la planète entière. L'impact fût un
redémarrage massive des stations de travail et serveurs Windows.
Quatre ans de prison pour les deux
Américains New-Yorkais Shaun Harrison âgés de 18 ans et Saverio
Mondelli 19. Ils ont été accusé du piratage
d'un site communautaire. La sanction fût lourde face au délit réel. Ils ont
illégalement pénétré sur le site MySpace et demandé une rançon de 150
milles dollars à
son propriétaire.
Huit ans de prison pour un groupe de
trois russes. Le 28 juillet 2004, ils ont attaqué le site DoubleClick entraînant
le site de ses clients, qui dépendent de sa technologie pour gérer leurs
bannières de publicité. Leurs sites furent fortement ralentis ou complètement paralysés pendant de
longues heures, entraînant dans son infortune les sites de ses clients, qui
dépendent de sa technologie pour gérer leurs bannières de publicité. Ils ont
extorqués plus de 4 millions d'Euros repartis sur plus de 54 sites WEB d'une
trentaine de pays. Cette peine est la plus lourde prononcée en Russie, car la
justice a considéré l'affaire comme relevant de l'extorsion en bande organisée
et non du seul piratage informatique.
Le déni de service
occasionne beaucoup de problèmes repartit dans le monde entier souvent exécuté
aléatoirement pour le fun. Aujourd'hui, les braqueurs de banques n'existent presque
plus, mais leurs remplaçant sont arrivés. On voit donc se profiler de plus en plus
d'attaque qui sont ciblées représentant une nouvelle technique de chantage que
bons nombres de pirates exercent maintenant
allégrement. En effet, les sociétés dont la principale activité est basée sur un
flux d'information Internet, souvent avec des sommes importantes en jeu,
sont menacées.
Les pirates actuels utilisent donc les attaques par déni de service comme
nouvelle arme pour exercer un chantage contre les sociétés connectés à Internet. Le message est clair
"La bourse ou l'exploitation de votre site". Il est évident que le
ralentissement, voir même le blocage de leurs services pendant quelques heures, pourrait occasionner de grandes pertes d'argent ainsi
que beaucoup de désagréments pour leurs clients. Ces sociétés ont donc tout
intérêt à obéir ou à trouver une parade pour s'en protéger, sans quoi les
menaces seraient mises à exécution et ou pourraient perdurer.
Cette nouvelle
arme est maintenant utilisée de plus en plus couramment. Toutes les sociétés
gérant de l'argent sont menacées, aucune n'est à l'abri. Toute société
accessible par Internet est ouverte est potentiellement en danger. On remarque
d'ailleurs le nombre d'attaques de ce genre augmente chaque année.
Il ne faut pas sous-estimer la puissance
de ces attaques. De plus, il faut aussi prendre conscience qu'il existe deux
catégories d'individus dangereux sur la planète :
- Les bandes organisées sont issues des
groupes mafieux, des terroristes et etc.
- Les adolescents ou jeunes adultes qui sont inconscients. De plus, ils se
sentent rassurés et protégés du fait d'être dans leurs chambres derrière leurs
ordinateurs personnels.
Pour se protéger de ce type d'attaque,
il est nécessaire d'investir dans la sécurité interne en créant un poste ou
service dédié au sein de l'entreprise. Leurs deux objectifs principaux devront
être la prévention et le curatif. Le premier sera de mener une veille active sur les nouvelles attaques et
vulnérabilités. Le second objectif, le curatif, devra procéder à un suivi
régulier des différentes mise à jour et d'être très réactifs sur la surveillance
des événements relatés en supervision de l'architecture sécurité.
La réalité du risque est donc évidente,
dans ce cas, il peut être intéressant de contracter une police d'assurances couvrant les
pertes éventuelles engendrées par une attaque de ce type.
Vous pouvez poser toutes vos questions,
vos remarques et vos expériences à propos des attaques DOS. Pour cela,
rendez-vous sur le Forum
Sécurité.
Version 1.0, le 13 novembre 2006, par
Sébastien FONTAINE, création du document.
|