|
 |
|
 |
|
Le Déni de Service Distribué (DDoS) |
Background
Le "Distributed denial-of-service" ou déni de service distribué est un type d'attaque très évolué visant à faire planter
ou à rendre muette une machine en la submergeant de trafic inutile (voir fiche DoS). Plusieurs machines à la fois sont
à l'origine de cette attaque (c'est une attaque distribuée) qui vise à anéantir des serveurs, des sous-réseaux, etc.
D'autre part, elle reste très difficile à contrer ou à éviter. C'est pour cela que cette attaque représente une menace
que beaucoup craignent.
Les outils
Pour mieux comprendre le phénomène, il parait impossible de ne pas étudier les outils les plus importants dans ce domaine, qui doivent leur notoriété à des
célèbres attaques ayant visé des grands sites sur le net.
Un réseau typique se compose donc d'un maître (point central)
et de nombreux hôtes distants, encore appelés démons.
Pendant le déroulement de l'attaque, le hacker se connecte au maître qui envoie alors un ordre à tout
les hôtes distants (via UDP, TCP ou ICMP). Ces communications peuvent également dans certains cas être chiffrées.
Ensuite, les hôtes distants vont attaquer la cible finale suivant la technique choisie par le hacker. Ils vont par
exemple se mettre à envoyer un maximum de paquets UDP sur des ports spécifiés de la machine cible. Cette masse de
paquets va submerger la cible qui ne pourra plus répondre à aucune autre requête (d'où le terme de déni de service).
D'autres attaques existent, tel que l'ICMP flood, le SYN flood (TCP), les attaques de type smurf, les attaques dites
furtives, les attaques de déni de service dites agressives (dont le but est bel et bien de faire crasher complètement
la cible), ou encore des attaques de type "stream attack" (TCP ACK sur des ports au hasard)...
Certains outils se sont même inspiré des chevaux de Troie (voir fiche sur les
chevaux de Troie) qui installent de petits serveurs
irc permettant au hacker de les commander via cette interface.
Mode opératoire
Les DDoS se sont démocratisées depuis 2-3 ans. En effet dans les premiers temps, cette attaque restait assez compliquée
et nécessitait de bonnes connaissances de la part des attaquants; mais ceux-ci ont alors développé des outils pour
organiser et mettre en place l'attaque. Ainsi le processus de recherche des hôtes secondaires (ou zombies) a été
automatisé. On cherche en général des failles courantes (buffer overflows sur wu-ftpd, les RPCs...) sur un grand
nombre de machines sur Internet et l'attaquant finit par se rendre maître (accès administrateur) de centaines voir
de milliers de machines non protégées. Il installe ensuite les clients pour l'attaque secondaire et essaye également
d'effacer ses traces (corruption des fichiers logs, installation de rootkits). Une fois le réseau en place, il n'y a
plus qu'à donner l'ordre pour inonder la victime finale de paquets inutiles.
Il est intéressant de noter que les victimes dans ce type d'attaques ne sont pas que celles qui subissent le déni de
service; tous les hôtes secondaires sont également des machines compromises jusqu'au plus haut niveau (accès root),
tout comme l'hôte maître.
La menace provient du fait que les outils automatisant le processus ont été très largement diffusés sur Internet. Il
n'y a plus besoin d'avoir des connaissances pointues pour la mettre en place, il suffit de "cliquer" sur le bouton.
Contre-mesures
Il n'est pas évident de se prémunir contre ces attaques par déni de service, car la mise en place du réseau offensif
par l'attaquant repose sur le fait que beaucoup de machines sont peu ou pas sécurisée et présentent des failles.
Ces failles sont tellement nombreuses et d'autre part il existe tellement
de machines vulnérables sur Internet qu'il devient impossible d'empêcher de telles attaques.
Ainsi, si un outil de DDoS est détecté sur un système, cela signifie sûrement que il a été installé sur de nombreux
autres systèmes sans être décelé. D'autre part, la présence de cet outil signifie également que le système a été
intégralement compromis, qu'il présente sûrement des backdoors et qu'on y a peut-être installé un rootkit (type Adore). Il est
donc urgent et nécessaire de retirer complètement cette machine du réseau et de l'inspecter pour éventuellement la
réinstaller.
Pour détecter un tel outil, on pourra chercher des noms évocateurs parmi les processus système s'il n'y a pas de
rootkit installé et si l'attaquant à laissé un nom par défaut. Ces noms peuvent être regroupés dans la liste suivante
(non exhaustive):
Trinoo maître: master
Broadcast: ns
TFN client: tfn
Démon: td
Stacheldraht Handler: mserv
Agent: td
Shaft Handler: shaftmaster
Agent: shaftnode
mstream Handler: master
Agent: server
Trinity Agent: /usr/lib/idle.so
Portshell: /var/spool/uucp/uucico
Alt. Portshell: /var/spool/uucp/fsflush
Il peut être également fort utile de connaître les outils (au nombre de 4, principalement) utilisés par les hackers. Des
analyses sont disponibles pour 3 d'entres eux :
Il existe également un compte-rendu de congrès scientifique sur le sujet qui apporte beaucoup d'idées pour se défendre et
récupérer après de tels incidents :
Le Pushback : une contre-mesure en développement
Face aux menaces grandissantes provoquées par ce type d'attaques, les scientifiques se penchent de plus en plus sur des
techniques capables de les contrer; une des plus récentes est la technique du Pushback. Nous ne rentrerons pas dans les
détails ici, tous les papiers étant disponibles sur le site ACC and Pushback.
Très brièvement, cette technique a pour but d'identifier les attaques de DoS et surtout de DDoS grâce à des heuristiques, de
les contrer en remontant à leur source, enfin de maintenir et de protéger le bon trafic qui souffre également la plupart du temps des congestions
engendrées par de telles attaques.
Cette méthode utilise un contrôle de congestion basé sur des agrégats, un agrégat étant défini comme un sous-ensemble
du trafic présentant une propriété identifiable. Exemples de propriétés :
- Paquets TCP SYN
- Paquets à destination de X
- Paquets IP dont les checksums sont incorrects
- ...
Le but est d'identifier les aggrégats responsables de la congestion et de les éliminer pour rétablir un trafic normal. Une
fois la signature (c'est-à-dire la propriété identifiante, le trait caractéristique de l'attaque) établie, le flux est
comparé en temps réel dans le routeur le plus proche de la cible du DDoS. Ce routeur commence à rejeter (drop) les paquets
correspondants à la signature et envoie également un message d'alerte aux routeurs en amont sur les brins d'où lui
parvient le trafic incriminé. Ce message d'alerte contient entre autres choses la signature qui va permettre à ces
routeurs d'éliminer à leur tour les paquets correspondants à l'attaque. Et ces routeurs vont également envoyer des messages
d'alerte aux routeurs situés en amont.
Cette technique récursive a pour avantage de pouvoir remonter jusqu'aux sources de l'attaque; elle permet également de
décongestionner le coeur même du réseau, ce qui était impossible avec les techniques centrées sur la protection pure de la
cible. Enfin, même si une partie du trafic légitime est tout de même perdue, les résultats finaux sont plutôt positifs.
| |  | |  | |      |