
BoNeSi - le Simulateur de botnet DDoS
BoNeSi, le simulateur de botnet DDoS, est un outil pour simuler le trafic de botnet dans un environnement de test sur le fil. Il est conçu pour étudier l'effet des attaques DDoS.
Quel trafic peut être généré ?
BoNeSi génère des attaques par inondation ICMP, UDP et TCP (HTTP) à partir d'une taille de botnet définie (différentes adresses IP). BoNeSi est hautement configurable et les taux, le volume de données, les adresses IP source, les URLs et d'autres paramètres peuvent être configurés.
Qu'est-ce qui le rend différent des autres outils ?
Il existe de nombreux autres outils pour usurper des adresses IP avec UDP et ICMP, mais pour l'usurpation TCP, il n'existe pas de solution. BoNeSi est le premier outil à simuler des inondations HTTP-GET provenant de vastes réseaux de bots. BoNeSi essaie également d'éviter de générer des paquets avec des motifs facilement identifiables (qui peuvent être facilement filtrés).
Où puis-je exécuter BoNeSi ?
Nous recommandons vivement d'exécuter BoNeSi dans un environnement de test fermé. Cependant, les attaques UDP et ICMP peuvent également être exécutées sur Internet, mais vous devez être prudent. Les attaques par inondation HTTP ne peuvent pas être simulées sur Internet, car les réponses du serveur web doivent être renvoyées vers l'hôte exécutant BoNeSi.
Comment fonctionne l'usurpation TCP ?
BoNeSi écoute les paquets TCP sur l'interface réseau et répond à tous les paquets afin d'établir des connexions TCP. Pour cette fonctionnalité, il est nécessaire que tout le trafic provenant du serveur web cible soit renvoyé vers l'hôte exécutant BoNeSi.
Quelle est la performance de BoNeSi ?
Nous nous sommes beaucoup concentrés sur la performance afin de simuler de grands botnets. Sur un AMD Opteron à 2 GHz, nous avons pu générer jusqu'à 150 000 paquets par seconde. Sur un AMD Phenom II X6 1100T plus récent à 3,3 GHz, vous pouvez générer 300 000 pps (en utilisant 2 cœurs).
Les attaques de BoNeSi sont-elles couronnées de succès ?
Oui, elles sont très efficaces. Les attaques UDP/ICMP peuvent facilement saturer la bande passante et les attaques par inondation HTTP mettent rapidement les serveurs web hors service. Nous avons également testé BoNeSi contre des systèmes commerciaux de pointe de mitigation DDoS et avons réussi soit à les faire planter, soit à cacher l'attaque pour qu'elle ne soit pas détectée.
Une vidéo de démonstration de BoNeSi en action peut être trouvée ici.
BoNeSi est un générateur de trafic réseau pour différents types de protocoles. Les attributs des paquets et des connexions créés peuvent être contrôlés par plusieurs paramètres comme le taux d'envoi ou la taille de la charge utile, ou ils sont déterminés aléatoirement. Il usurpe les adresses IP source même lors de la génération de trafic TCP. Pour cela, il inclut une simple pile TCP pour gérer les connexions TCP en mode promiscuité. Pour un fonctionnement correct, il faut s'assurer que les paquets de réponse sont acheminés vers l'hôte sur lequel BoNeSi est exécuté. Par conséquent, BoNeSi ne peut pas être utilisé dans des infrastructures réseau arbitraires. Le type de trafic le plus avancé qui peut être généré est celui des requêtes HTTP.
TCP/HTTP Afin de rendre les requêtes HTTP plus réalistes, plusieurs éléments sont déterminés aléatoirement :
Copyright 2006-2007 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz Ceci est un logiciel libre. Sous licence Apache License, Version 2.0. Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.
:~$ ./configure
:~$ make
:~$ make install
:~$ bonesi [OPTION...] <dst_ip:port>
Options:
-i, --ips=FILENAME nom de fichier avec la liste d'IP
-p, --protocol=PROTO udp (par défaut), icmp ou tcp
-r, --send_rate=NUM paquets par seconde, 0 = infini (par défaut)
-s, --payload_size=SIZE taille de la charge utile (par défaut : 32)
-o, --stats_file=FILENAME nom de fichier pour les statistiques (par défaut : 'stats')
-c, --max_packets=NUM nombre maximal de paquets (requêtes pour tcp/http), 0 = infini (par défaut)
--integer Les IP sont des entiers dans l'ordre de l'hôte au lieu de la notation pointée
-t, --max_bots=NUM déterminer max_bots dans le préfixe 24 bits aléatoirement (1-256)
-u, --url=URL l'url (par défaut : '/') (uniquement pour tcp/http)
-l, --url_list=FILENAME nom de fichier avec la liste d'urls (uniquement pour tcp/http)
-b, --useragent_list=FILENAME nom de fichier avec la liste des user agents (uniquement pour tcp/http)
-d, --device=DEVICE périphérique d'écoute réseau (uniquement pour tcp/http, par ex. eth1)
-m, --mtu=NUM définir MTU (par défaut 1500). Actuellement seulement avec TCP.
-f, --frag=NUM définir le mode de fragmentation (0=IP, 1=TCP, par défaut : 0). Actuellement seulement avec TCP.
-v, --verbose afficher des messages de débogage supplémentaires
-h, --help afficher le message d'aide et quitter
50k-bots
browserlist.txt
urllist.txt
Copyright 2006-2007 Deutsches Forschungszentrum fuer Kuenstliche Intelligenz
Copyright 2008-2026 Markus Goldstein
Ceci est un logiciel libre. Sous licence Apache License, Version 2.0.
Il n'y a AUCUNE GARANTIE, dans la mesure permise par la loi.
Ce logiciel est soutenu par ...