Attaquer par déni de service comme un nul(l)

Une attaque par déni de service consiste à empêcher une application (ou tout autre chose) de faire ce pour quoi elle a été conçue.

Par exemple, si vous soudez le clapet de la boîte aux lettres de votre voisine, la mère Michou, parce qu’elle vous casse vraiment les… pieds, vous faites une attaque par déni de service : le facteur ne pourra plus laisser de courrier. Si vous avez de la chance, le facteur pourrait même déposer le courrier de votre voisine chez vous ! Vous venez de mettre en place une attaque MitM (Man in the Middle).

Déni de service

Petite introduction

Le déni de service (DoS… à ne pas confondre avec DOS, le terminal de commandes sous Windows) est parvenu aux oreilles du grand public suite aux diverses attaques des Anonymous en 2010. Il s’agit d’empêcher une application ou un serveur de fonctionner.

On différencie trois types d’attaque par déni de service :

  • DDoS, le plus simple
  • DoS, nécessite de bonnes connaissances
  • DrDoS, nécessite de bonnes connaissances et un peu de réflexion.

Pourquoi procéder à une attaque par déni de service ?

La protestation

Les Anonymous et d’autres groupes d’hacktivistes utilisent les attaques par déni de service pour paralyser un site, comme on manifesterait dans la rue.

Un site Internet peut ainsi être inaccessible durant quelques minutes / heures / jours. Tout dépend de la durée de l’attaque.

Détourner l’attention

Les hackers pourront également utiliser ce type d’attaque, très visible, pour détourner l’attention des experts sécurité de la société qu’ils attaquent. Ils exécuteront en parallèle une ou plusieurs autres attaques, plus silencieuses, pour s’introduire dans le réseau de l’entreprise.

L’ingénierie sociale

Un hacker peut également vouloir stopper une application après s’être présenté auprès des employés comme la personne à contacter en cas de dysfonctionnement. Les employés seront alors en confiance et enclins à lui donner des informations confidentielles.

La fuite d’information

En règle générale, lorsqu’une application ne fonctionne plus, son responsable essayera de la redémarrer. Durant cette étape de démarrage, il se peut que des informations, normalement invisibles, soient révélées :

  • Liste de fichiers
  • Identifiants
  • Noms d’ordinateurs
  • Courriers électroniques
  • Etc.

Cette fuite d’information peut également se produire si un hacker réussit à stopper une partie d’un serveur sans altérer le fonctionnement du reste. On pourra par exemple stopper le chiffrement SSL pour intercepter des informations en clair, ou stopper un serveur SSH pour forcer les administrateurs à se connecter en utilisant une connexion non chiffrée.

Le DDoS comme un nul(l)

Le DDoS (Distributed Denial of Service) est une attaque par déni de service qui, comme son nom l’indique, est distribuée. C’est à dire que plusieurs dizaines / centaines / milliers d’ordinateurs, regroupés dans ce qu’on appelle un botnet, vont attaquer simultanément un site Internet, misant sur le nombre de connexions pour rendre l’application inaccessible. Un peu comme la file d’attente à 8h devant une boutique Virgin le 13 mai 2013.

« Botte nette »???

Un « botnet » (Robot network : réseau de robots) est un groupe d’ordinateurs, machines à café, frigo, téléphone… ou toute autre machine connectée à Internet… agissant de manière cohérente et synchronisée pour atteindre un objectif. Un botnet est souvent contrôlé par un serveur central, appelé centre de contrôle ou « command and control center » (C&C).

Même si j'aurais pu trouver une image de meilleur goût, je trouve qu'elle illustre bien un botnet :-)

J’aurais pu trouver une image de meilleur goût, mais celle-ci illustre bien un botnet 🙂

Concrètement

Qui n’a jamais entendu parler de Loic (Low Orbit Ion Cannon), outil utilisé et diffusé par les Anonymous pour attaquer de manière cohérente des sites Internet ?

Loic

Vous pouvez utiliser ce logiciel en mode « hive » (ruche), il vous suffit de donner le nom d’un serveur IRC servant de centre de contrôle. Vous entrerez ainsi volontairement dans un botnet commandé par les administrateur du serveur IRC que vous avez indiqué.

Loic dispose de trois modes d’attaque :

  • TCP : ouvre une connexion TCP vers la cible, envoie une chaîne de caractères puis la referme.
  • UDP : idem pour une connexion UDP.
  • HTTP : se connecte au site web ciblé, demande la page d’accueil et attend la réponse.

Comme son nom l’indique, la méthode HTTP ne sera performante que contre un site Internet, si on l’utilise contre toute autre application Web (serveur FTP, serveur SMTP, etc.), elle reviendra à utiliser la méthode TCP.

Bien entendu, Loic est loin d’être le seul logiciel capable de contrôler ce type d’attaque. Pour une poignée de dollar$, vous pourrez louer un botnet de quelques dizaines / centaines d’ordinateurs pour mener à bien une attaque DDoS.
Ces ordinateurs loués sur le marché noir ont été infectés par un cheval de troie contrôlé par des personnes qui en ont fait leur métier. Vous pourrez également trouver, en cherchant un peu, des propositions pour rendre indisponible des sites Internet. Il faut alors payer en fonction de la durée d’indisponibilité voulue.

Voici une vidéo, maintenant connue, d’une attaque DDoS sur un serveur de VideoLan pour vous donner une idée de ce qu’il se passe réellement :

Le DoS comme un nul(l)

Une attaque (non distribuée) par déni de service peut être mise en oeuvre de différentes manières.

Hping3

Pour attaquer un ordinateur sur un réseau, on peut simplement l’inonder de requêtes : qui n’a jamais lancé un « ping -f » contre un ordinateur d’un de ses petits camarades en salle de TP ?

L’utilisation de l’outil ping peut assez rapidement rendre votre propre ordinateur inaccessible… ça sera votre bande passante contre la sienne.

Pour pallier ce problème, on a heureusement l’outil hping3 !

Dire « Bonjour » et continuer son chemin : l’attaque par paquets « SYN » :

hping3 --rand-source –S –L 0 –p <un port> <une adresse IP>

Les options :

  • –rand-source : si l’on se moque d’obtenir ou non une réponse de la cible, il est conseillé d’activer cette option. Les messages envoyés auront l’air de venir d’adresses IP aléatoires. La cible ne pourra pas vous localiser.
  • -S : Active l’indicateur « SYN ». Toute communication TCP commence par ce type de message.
  • -L 0 : Le message envoyé accusera réception d’un message ayant pour numéro de séquence « 0 »
  • -p <un port> : indique le port sur lequel envoyer les messages
  • <un adresse IP> : pour spécifier qui l’on attaque 🙂

Faire comme si l’on connaissait le serveur et continuer son chemin : l’attaque par paquets « SYN+ACK » :

hping3 --rand-source –SA –p <un port> <une adresse IP>

Les options que l’on ne connaît pas :

  • -SA : Active les indicateurs « SYN » et « ACK ». Toute communication TCP commence par un message « SYN » (vu plus haut) auquel le serveur répond par un « SYN+ACK ». Ici le serveur se comportera comme s’il essayait de se connecter à nous et se verra, dans beaucoup de cas, obligé de répondre par un message de fin de connexion.

L’arbre de Noël (Christmas tree) :

hping3 --rand-source –SAFRU –L 0 –M 0 –p <un port> <une adresse IP>

Les options que l’on ne connaît pas :

  • -M 0 : Indique le numéro de séquence de notre message.
  • -SAFRU : illumine l’arbre de Noël en activant tous les indicateurs du message. Le serveur utilisera alors énormément de ressources pour répondre et s’arrêtera donc bien plus vite !

Sapin de noël

Il existe bien d’autres possibilités avec cet outil :

 

Paralyser une société : l’énumération LDAP

La plupart des entreprises centralisent la gestion des droits de leurs employés dans un annuaire LDAP. Pour éviter d’être piratées, ces mêmes entreprises bloquent généralement les comptes des employés s’étant trompé plus de quatre ou cinq fois dans leur mot de passe.

Si le serveur LDAP est rarement accessible au public, il est néanmoins courant qu’il soit accessible à tout employé.

Un employé malveillant pourra alors, à l’aide d’un script :

  1. Obtenir une liste de tous les noms d’utilisateurs de l’entreprise.
  2. Tenter de s’authentifier quatre ou cinq fois avec chaque nom d’utilisateur, en utilisant un mot de passe erroné, bloquant ainsi tous les comptes de l’entreprise en quelques minutes (secondes ?)

De manière plus vicieuse, les informations contenues dans un annuaire LDAP (numéro de téléphone, adresses mail, etc.) pourront permettre de lancer une attaque par ingénierie sociale :

  1. Obtenir sur le LDAP l’adresse mail ou le numéro de téléphone de la secrétaire du patron, que nous appellerons Ginette
  2. La contacter en lui indiquant que vous êtes la personne en charge de la sécurité et que vous rencontrez actuellement des problèmes, qu’elle n’hésite pas à vous contacter au 06-05-04-03-02 si elle n’arrivait plus à se connecter.
  3. Attendre quelques heures
  4. Bloquer son compte, comme vu plus haut
  5. Attendre son appel
  6. La baratiner pour obtenir son mot de passe
  7. Appeler la vraie assistance technique pour débloquer son compte
  8. Rassurer la secrétaire 🙂
  9. Vous voilà en possession du compte de Ginette !

Slow HTTP (« HTTP lent », pour les francophones 😉  )

Cette méthode peut être redoutable. La configuration par défaut de serveurs bien connus (Apache, lighttpd, etc.) permet ce type d’attaque. Pour la mettre en oeuvre, un botnet n’est pas nécessaire. Un hacker peut envoyer quelques requêtes HTTP spécialement conçues (non terminées) pour faire attendre le serveur.

Lorsque vous configurez Apache par exemple, vous renseignez un nombre de connexions simultanées (disons 10). Si un hacker envoie 10 requêtes HTTP « lentes », il rendra inaccessible le serveur !

L’outil le plus connu pour effectuer ce type d’attaque est slowloris : http://ha.ckers.org/slowloris/

Bien d’autres possibilités

Il existe une multitude d’autres possibilités pour faire une attaque par déni de service. La moindre faille peut être utilisée. Vous avez certainement déjà eu droit à ce type de message :

Windows a cessé de fonctionner

Une attaque DoS consiste à obtenir le même résultat à distance : stopper une application ou un service. Tous les moyens sont bons :

  • Buffer overflow (c’est un peu bête de l’utiliser pour ça, mais bon…)
  • Génération d’une exception non interceptée
  • etc.

Le DRDoS comme un nul(l)

En début d’année, une attaque de ce type a ralenti tout Internet en générant un trafic de 300Gb/s contre un serveur cible. Pour un ordre d’idée, c’est l’équivalent de 10 films HD chaque seconde.

Finalement, le DRDoS (Distributed Reflection Denial of Service) est relativement simple. Il s’agit d’un botnet qui envoie des requêtes de transfert de zone (c’est technique, j’y reviendrai sans doute dans un prochain article) à des serveurs DNS en se faisant passer pour l’ordinateur cible.

Pour chaque message (quelques octets) envoyés à un serveur DNS, celui-ci peut envoyer plusieurs giga-octets à l’ordinateur cible. Chaque message du botnet sera alors réfléchi (comme contre un miroir) sur le serveur DNS, d’où « Reflection ».

DRDoS

Notez tout de même que beaucoup de serveurs DNS ont désactivé le transfert de zone pour éviter d’être utilisés dans ce type d’attaque.

Ce type d’attaque nécessite une grande maîtrise du botnet : il s’agit d’une attaque DDoS réfléchie sur un ou plusieurs serveurs DNS, il y a donc des risques de rendre ces serveurs DNS inaccessibles ! En 2002, des attaques de ce type ont stoppé 9 des 13 serveurs DNS racine. Si les 13 serveurs s’arrêtent, Internet s’arrête.

Notez qu’on peut faire réfléchir ce type d’attaque sur autre chose qu’un serveur DNS. L’important est de se faire passer pour la victime et que le réseau de la victime laisse entrer le trafic généré par les serveurs réfléchissants. Néanmoins, à grande échelle, le protocole DNS est celui offrant le meilleur rapport débit entrant / débit sortant.

Conclusion

Le déni de service est une attaque puissante. Il existe de nombreuses manières de la lancer et peu de façons de se protéger.

Les buts de ce type d’attaque sont variés :

  • Hacktivisme
  • Espionnage industriel
  • Racket : « On vous rend votre serveur si vous nous payez! »
  • Mise hors service de concurrents : la bande passante utilisée par les sites Internet est rarement gratuite et une augmentation du débit peut coûter cher…
  • etc.

Pour éviter les désagréments d’une attaque par déni de service, il est important pour une entreprise de tenir ses logiciels à jour et d’employer des administrateurs réseau très compétents… Au vu des débouchés après un Master réseau et télécommunications, c’est malheureusement trop rarement le cas en France. Le hacking a encore de beaux jours devant lui dans le pays des Fromages qui puent !

Miam !

Miam !

Parce que je n’ai pas la science infuse : sources

Publicités
À propos

Un informaticien, qui tente de faire comprendre au public que l'informatique n'est pas si compliquée, malgré des acronymes et autres termes obscurs pour faire croire que c'est difficile (et que c'est de votre faute si "ça ne marche pas")

Tagged with: , , , , , , , , , , , , , , , , , , , , , , , ,
Publié dans Glossaire, Informatique, Piratage
9 comments on “Attaquer par déni de service comme un nul(l)
  1. Geo dit :

    Article très complet ! J’ai appris encore des choses sur le déni de service grâces à vos explication très claire, merci 🙂 J’espère lire encore de nombreux articles de votre part 🙂
    Si vous avez besoins d’idée de sujet, j’en ai encore 🙂

    • mystcaster dit :

      J’ai déjà le sujet pour mes prochains articles, mais je prends toujours les idées 🙂

      • Geo dit :

        Ahah d’accord, bon je vous propose on sait jamais, je pensais au crypter,binder, packer,obfuscateur pour rendre un programme FUD, ainsi qu’a tout ce qui est booter, shell script, api pour les denis de services 🙂

      • bibish dit :

        Je plussoie !
        Car le web est rempli de pseudo tutoriel remplie de virus/vers…Etc
        Impossible de trouver un tutoriel, correcte, possé, intéressant et valide !

  2. Kitsun dit :

    Merci une nouvelle fois pour ces articles toujours aussi passionnant !

  3. koloce dit :

    Tu peux ajouter le chantage dans la liste : « Pourquoi procéder à une attaque par déni de service ? »
    Un site commercial qui reçoit un deni de service c’est des clients de perdu.

    Dommage que tu n’explique pas pourquoi un serveur répond toujours au demande même quand il veut quitter la connexion ( dans le protocole TCP les flags FIN + ACK).

    La technique de smurf. Très drôle à faire en lan.

    J’adore la première image.

    • mystcaster dit :

      Il est vrai que j’aurais pu expliquer pourquoi un serveur doit répondre… Après, si quelqu’un est réellement intéressé par ce sujet, il ne faut pas qu’il se contente de lire des blogs qui donnent du tout cuit.
      De bonnes ressources donnent les bases du protocole TCP (3 way handshake, acknoledgement, etc.)

      Mais voici quelques explications : TCP est un protocole dit « fiable ». C’est à dire qu’il contient un mécanisme de vérification des paquets (numéro de séquence). Chaque paquet doit être validé par son destinataire (ACK), y compris les paquets mettant fin à la connection (FIN, RST).

      TCP est un protocole de basse couche. Il intervient au niveau du système d’exploitation ou du pare-feu. Ce n’est donc pas l’application visée qui répond, mais directement le système d’exploitation qui se contente de respecter les standards TCP. Seule une modification du pare-feu, du système d’exploitation ou la mise en place d’un système de prévention d’intrusion peut protéger contre ce type d’attaque.

  4. guillaume dit :

    bonsoir ! 🙂 j’aimerait savoir si cela marche sous windows 8 ?le
    « hping3 –rand-source –S –L 0 –p  »
    car cela ne marche point sur mon cmd
    donc faut t-il linux ?
    merci d’une réponse 🙂

    • mystcaster dit :

      hping3 est préinstallé sur Kali Linux.
      Tu devrais pouvoir l’installer sur Windows 8 mais je n’ai vu que les sources sur le site officiel : http://www.hping.org/download.html
      Quelques connaissances pour compiler la bête seront donc nécessaires.
      Une version précompilée de hping2 pour Windows 7 existe sur la même page mais je ne suis pas certain qu’il dispose des mêmes options.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion / Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion / Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion / Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion / Changer )

Connexion à %s

MystCaster
juin 2013
L M M J V S D
« Mai   Juil »
 12
3456789
10111213141516
17181920212223
24252627282930
Catégories
Archives
%d blogueurs aiment cette page :