Article rédigé dans le cadre de la Hacker’s Challenge et sponsorisé par Radware
Avant de rentrer dans le vif du sujet, je vous propose de faire d’abord une petite plongée historique non douloureuse.
Dans la petite ville de Champaign et Urbana dans l’Illinois (aux États-Unis) se trouve le CERL, un laboratoire de recherche informatique. Et en face du CERL, il y a un lycée.
Et si vous vous étiez rendu dans ce lycée en 1974, vous auriez pu y rencontrer David Dennis, un garçon de 13 ans passionné d’informatique. David très curieux de nature avait entendu parler d’une commande pouvant s’exécuter sur les systèmes PLATO qui justement se trouvaient au CERL. PLATO était l’un des premiers systèmes multi-utilisateurs grand public destinés à l’éducation et la recherche.
Ce système a été à l’origine de nombreux concepts modernes liés à l’utilisation multi user comme l’email, les chats rooms, la messagerie instantanée, les jeux multijoueurs ou le partage d’écran.
La commande apprise par David était « external » ou « ext » qui permettait d’interagir directement avec un périphérique externe connecté au terminal. Le truc rigolo, c’est que si vous lanciez cette commande sur un terminal où rien n’était branché, cela faisait crasher totalement la machine. Un reboot complet était alors nécessaire pour faire refonctionner le terminal. C’était un peu la blague du moment et David était curieux de voir ce que ça pourrait donner si cette commande était lancée simultanément sur tous les terminaux d’une salle pleine d’utilisateurs.
La bonne blague quoi !
Il a donc mis au point un petit programme et s’est rendu au CERL pour le tester. Résultat, 31 utilisateurs éjectés de leur session et obligés de rebooter. C’était la première attaque DoS (Déni de Service) de l’histoire. Suite à ça, PLATO a été patché pour ne plus accepter « ext » comme une commande pouvant être exécuté à distance.
A la fin des années 90, le DoS était aussi régulièrement pratiqué sur l’IRC pour déconnecter tous les gens d’une room afin que l’attaquant puisse reprendre la main sur l’administration de celle-ci en étant le premier à s’y reconnecter.
Des années plus tard, en août 1999, un hacker a mis au point un outil baptisé « Trinoo » afin de paralyser les ordinateurs du réseau de l’Université du Minnesota. Trinoo était en réalité un réseau composé de quelques machines « maitres » auxquelles le hacker pouvait donner des instructions de DoS. Ces machines maitres faisaient ensuite suivre ces instructions à des centaines de machines « esclaves », floodant massivement l’adresse IP de la cible. Les propriétaires des machines esclaves n’avaient aucune idée que leur machine était compromise. Ce fut l’une des premières attaques DDoS à grande échelle.
Le DDoS (Déni de Service Distribé) est devenu au fil des années la technique la plus utilisée pour paralyser des machines et le grand public a commencé à entendre ce terme en 2000 lorsque le site du FBI, eBay, Yahoo, Amazon ou encore le site de CNN en ont fait les frais lors d’une attaque d’une ampleur encore jamais observée à l’époque.
Maintenant la technique du DDoS est utilisée aussi bien par des cybercriminels réclamant des rançons que par des hacktivistes désireux de faire entre leur point de vue.
Types d’attaques DDoS
Il existe 3 catégories d’attaques DDoS :
- Les attaques DDoS basées sur le volume
- Les attaques DDoS ciblant les applications
- Les attaques DDoS à bas volume (LDoS pour Low rate)
Attaques DDoS basées sur le volume
Le concept est assez classique. Il s’agit de flooder la cible avec une grande quantité des paquets ou de connexions pour saturer tous les équipements nécessaires ou pour mobiliser toute la bande passante. Elles nécessitent des botnets, c’est à dire des réseaux de machines zombies capables de flooder des machines de manière synchronisée.
Ces réseaux botnet sont contrôlés par des cybercriminels qui l’utilisent pour leur profit ou qui le louent à l’heure à leurs clients pour une somme abordable. Ainsi, sans compétences techniques particulières, des mafias, des employés mécontents ou des concurrents peuvent franchir le pas et paralyser un serveur.
Attaques DDoS ciblant les applications
Une attaque DDoS peut cibler différentes applications mais la plus commune consiste à flooder à l’aide de requêtes GET et POST, le serveur web de la cible. Surchargé par ce flood HTTP, le serveur web ne parvient plus à répondre et le site ou le service devient inaccessible. D’autres applications peuvent être ciblées comme les DNS.
Attaques à bas volume
Ces attaques tirent le plus souvent parti de défaut de conception dans les applications. Avec une très petite quantité de données et de bande passante, un attaquant peut paralyser un serveur. L’un des exemples les plus connus est celui de Slowloris, un outil développé par RSnake (Robert Hansen) qui maintient ouvertes des connexions sur le serveur cible en envoyant une requête partielle. Ces connexions non refermées qui s’accumulent saturent alors totalement le serveur.
Je vais maintenant vous détailler des méthodologies de DDoS très connues pour que vous ayez une idée du fonctionnement de celles-ci.
Le Flood ICMP fait partie des attaques les plus anciennes. L’attaquant sature la cible à l’aide de requêtes ICMP echo (un genre de ping) ou d’autres types, ce qui permet de mettre par terre l’infrastructure réseau de la victime.
Le Flood SYN est un autre grand classique. Il consiste à initier des connexions TCP vers le serveur à l’aide d’un message SYN. Le serveur prend en compte ce message et répond au client à l’aide du message SYN-ACK. Le client doit alors répondre par un nouveau message de type ACK pour signifier au serveur que la connexion est correctement établie. Seulement voilà, dans le cadre d’une attaque de type SYN, le client ne répond pas et le serveur garde alors la connexion ouverte. En multipliant ce genre de messages SYN il est possible de paralyser le serveur.
Le Flood UDP consiste à envoyer un grand nombre de paquets UDP vers des ports aléatoire de la machine cible. Cette dernière indique alors avec un message ICMP qu’aucune application ne répond sur ce port. Si la quantité de paquets UDP envoyés par l’attaquant est conséquente, le nombre de messages ICMP renvoyé par la victime le sera aussi, saturant les ressources de la machine.
Le Flood SIP INVITE touche les systèmes VoIP. Les messages de type SIP INVITE utilisé pour établir une session entre un appelant et un appelé sont envoyés massivement à la victime, provocant le déni de service.
Les attaques Smurf sont un autre type d’attaques basées sur ICMP qui consiste à spoofer l’adresse IP de la victime pour émettre un grand nombre de paquets ICMP. Les machines présentes sur le réseau répondent alors à ces requêtes ICMP, ce qui sature la machine cible.
Les attaques par amplification DNS consistent à envoyer, en spoofant l’adresse IP de la victime, de petites requêtes vers un serveur DNS et d’exiger de lui une réponse d’une taille beaucoup plus importante. Un botnet peut alors largement amplifier la taille d’une attaque en s’appuyant sur des infrastructures existantes légitimes comme les serveurs DNS.
Les attaques chiffrées (basées sur SSL) sont de plus en plus courantes, car elles consomment beaucoup de CPU en enchainant les processus de chiffrement / déchiffrement sur le serveur cible mais aussi parce qu’elles sont plus difficilement détectables par les systèmes d’atténuation d’attaques qui ne sont pas toujours capables de déchiffrer du trafic SSL.
Les attaques 0day sont les plus difficiles à détecter et à stopper, car elles exploitent une faille non connue d’une application pour submerger la machine cible qui devient alors indisponible.
Mis à part Slowloris, des outils comme Low Orbit Ion Cannon (LOIC), High Orbit Ion Canon (HOIC), R.U. Dead Yet? (RUDY), #RefRef ou encore hping permettent aussi, sans grandes connaissances, d’effectuer des attaques DDoS sans avoir recours à d’immenses botnets. Par exemple, #RefRef exploite une vulnérabilité présente dans les bases SQL, et grâce à une injection SQL de quelques lignes, est capable d’enclencher un déni de service efficace.
Évidemment, personne n’est à l’abri d’une attaque DDoS. Heureusement, il existe des solutions techniques comme celles de Radware qui permettent de détecter et réduire l’impact de toutes ces attaques DDoS, qu’elles soient basées sur le volume, qu’elles exploitent un 0day ou qu’elles tentent de se dissimuler sous une couche de SSL.
Pour mieux vous rendre compte de la fréquence de ces attaques, le site digitalattackmap.com propose une carte animée. Vous pourrez voir la nature, l’origine et la destination de ces attaques DDoS qui se déroulent au moment où vous lisez ces lignes.
J’espère que cet article vous aura plu. La semaine prochaine, je vous parlerai des différents moyens que vous avez à votre disposition pour optimiser le chargement de vos pages web.