Est-il possible - en théorie - d'arrêter1 une attaque DDoS de n'importe quelle taille? Beaucoup de gens prétendent qu'il est impossible d'arrêter les attaques DDoS et me disent que je ne devrais pas jouer avec les mauvaises personnes sur Internet.
Mais que se passe-t-il si, dans environ 5 ans, tout le monde est en mesure de louer un botnet? Ne devrions-nous pas simplement repenser toute l'architecture Internet alors?
1: par arrêt, j'accepte également de supprimer les effets négatifs aka garder le service en cours d'exécution.
Imaginez un centre commercial. Par définition, tout le monde peut entrer dans le centre commercial et parcourir les magasins. C'est public. Les magasins s'attendent à ce que des gens viennent, regardent les présentoirs, entrent peut-être et achètent des choses.
Dans le centre commercial, il y a un commerçant qui vend, disons, des ordinateurs. Appelons-le Jim. Il veut que les gens viennent voir les ordinateurs et soient incités à les acheter. Jim est le gars sympa de notre histoire.
Qu'il y ait Bob. Bob est un nihiliste mécontent qui déteste Jim. Bob ferait tout son possible pour rendre Jim malheureux, par exemple perturber les affaires de Jim. Bob n'a pas beaucoup d'amis, mais il est intelligent, à sa manière tordue. Un jour, Bob dépense de l'argent pour faire publier une annonce dans le journal local; l'annonce indique, en gros caractères et en couleurs vives, que Jim lance une grande promotion à l'occasion du dixième anniversaire de sa boutique: les cent premiers clients qui entrent dans la boutique recevront un iPad gratuit . Afin de couvrir ses traces, Bob effectue ses transactions avec le journal sous le pseudonyme de "bob" (qui est son nom, mais épelé à l'envers).
Le lendemain, bien sûr, le pauvre Jim est submergé par des gens qui veulent un iPad gratuit. La foule obstrue la boutique de Jim mais aussi une partie substantielle du centre commercial, qui regorge de personnes déçues qui commencent à comprendre qu'il n'y a rien de tel qu'un iPad gratuit. Leur négativité les rend peu susceptibles d'acheter autre chose, et de toute façon ils ne peuvent pas bouger à cause de la presse de la foule, donc les affaires dans le centre commercial s'arrêtent complètement. Jim devient très impopulaire, avec les ex-amateurs d'iPad, mais aussi avec ses collègues commerçants. Bob ricane.
À ce stade, Jim contacte la directrice du centre commercial Sarah. Sarah décide de gérer l'urgence en appelant les pompiers. Les pompiers arrivent avec leurs casques brillants, leurs camions clignotants, leurs sirènes hurlantes et leurs haches pointues, et bientôt convaincre la foule de se disperser. Ensuite, Sarah appelle son amie Gunther. Gunther est le fils d'immigrants allemands, un pur produit du Melting Pot américain, mais plus important encore, il est un agent du FBI, en charge de la question. Gunther est intelligent, à sa manière tordue. Il contacte le journal, et est d'abord perplexe, mais a ensuite une révélation intuitive: ah-HA! "bob" est simplement "Bob" épelé à l'envers! Gunther procède rapidement à l'arrestation de Bob et l'envoie rencontrer son destin sombre mais légal devant le juge du comté.
Enfin, afin d'éviter d'autres problèmes avec d'autres nihilistes qui ne seraient pas suffisamment découragés par la vision du cadavre démembré de Bob exposée devant le centre commercial, Sarah conçoit une mesure d'atténuation: elle embauche Henry et Herbert, deux musclés d'apparence moyenne jeunes hommes, et les affiche aux entrées du centre commercial. Henry et Herbert sont responsables de bloquer l'accès si un grand nombre de personnes tentent d'entrer, au-delà d'un seuil donné. Si un proto-Bob frappe à nouveau, cela permettra la gestion du problème à l'extérieur , dans le parking, où l'espace ne manque pas et la foule contrôle beaucoup plus facile.
Moralité: un DDoS ne peut pas être évité, mais ses conséquences peuvent être atténuées en mettant des mesures proactives, et les auteurs peuvent être dissuadés par l'affichage habituel et historiquement approuvé des muscles par les forces de l'ordre. Si les botnets deviennent trop faciles à louer, les conséquences prévisibles incluent une implication accrue de la police, une authentification proactive des utilisateurs au niveau de l'infrastructure, la fermeture des parties les plus douteuses du réseau (en particulier l'accès à Internet pour les pays les moins coopératifs) et une forte dose de mécontentement et tristesse de la perte d'un âge passé, plus civilisé.
Malgré ce que disent les autres, oui, vous le pouvez.
De nombreuses grandes entreprises ont des solutions très efficaces, et même la récente bataille de Spamhaus, qui a utilisé DNS DDoS à une échelle jamais vue auparavant, a été rapidement couverte une fois CloudFlare intégré.
Les solutions que j'ai testées sont très efficaces pour transférer le trafic DDoS, même lorsqu'il s'agit d'un miroir d'un trafic réel et valide. Pour certains de ces tests, le basculement était inférieur à la milliseconde et n'avait presque aucun effet mesurable sur le trafic légitime.
Ceux-ci fonctionnent par des protocoles de réacheminement dynamique et pourraient en principe fonctionner n'importe où. La raison pour laquelle ils ne sont utilisés que par les grandes entreprises est qu'ils coûtent cher.
Un correctif judicieux pour tous les FAI est de gérer le trafic sortant et de partager les listes de filtres, ce qui pourrait empêcher complètement les attaques DDoS. Il faudrait simplement que les utilisateurs et les entreprises l'exigent de leurs FAI et qu'ils se déplacent de ceux qui n'ont pas fourni ce service. Finalement, tout FAI qui ne l'a pas fourni serait simplement mis sur liste noire.
Non, ce n'est pas possible, en théorie ou en pratique. Une attaque DDoS suffisamment bien répartie est impossible à distinguer du trafic légitime.
Considérez les effets "slashdot" ou "reddit" ou "digg", où le trafic légitime réel supprime les services réseau sur le site Web cible. La simple publication d'un lien vers le site Web cible sur slashdot est un DDoS efficace dans de nombreux cas.
Eh bien, vous pouvez faire évoluer l'infrastructure pour rendre plus difficile pour un botnet de conserver suffisamment de trafic pour désactiver le service, mais en fin de compte, le seul compteur si un DDoS utilise un trafic autrement légitime pour causer des problèmes, tout ce que vous pouvez faire est d'augmenter votre bande passante être plus élevé que le leur. Si vous pouvez identifier une source comme voyou, vous pouvez essayer d'empêcher le trafic d'être traité par votre serveur (ce qui réduira la charge du processeur et de la mémoire) mais vous devrez toujours faire face au trafic jeté qu'Internet va fournir. .
Il existe en principe des moyens d'arrêter un DDOS:
Le moyen le plus simple est de simplement y ajouter plus de ressources. Bonne chance pour essayer de supprimer Amazon.com ou google.com. Combinez une entrée DNS à tour de rôle avec des tonnes de serveurs cloud et il est vraiment difficile de vous DDOS.
Tout le monde ne peut pas se permettre des ressources aussi immenses, mais c'est à cela que servent des services comme CloudFlare. Si vous devenez leur client, ils fournissent les ressources (procurations, bande passante), et dès que vous en avez besoin, vous les attribuent. C'est comme une assurance, beaucoup de gens partagent l'investissement et vous en bénéficiez en cas de besoin.
Le trafic DDOS est souvent est distinct du trafic légitime .:
Last but not least, beaucoup plus pourrait être fait avec la coopération de votre FAI ou des fournisseurs de backbone. Si l'attaque est géographiquement concentrée, arrêtez temporairement le routage des données de cette région vers vos serveurs. Je suppose que ce type de stratégies devra être utilisé plus largement à l'avenir.
(Dans l'analogie de Tom Leek: Imagine Bob a fait son offre gratuite d'iPad uniquement aux personnes noires/chinoises/caucasiennes/... Maintenant embauchez un garde de sécurité raciste. Vous arrêterez la vague de faux clients, mais à un prix, à savoir que vous allez irriter certains clients légitimes. (Inutile de dire que s'il vous plaît ne faites pas cela en réalité.))
Juste pour être complet, si vous savez qui vous attaque, vous pouvez riposter. Soit légalement en appelant les autorités, soit en les remboursant dans leur propre pièce et en attaquant leurs serveurs (mais ne le faites pas!).
Il y a des choses que vous pouvez faire mais vous ne serez jamais protégé à 100%.
On m'a recommandé le pare-feu Fail2Ban pour mon site sur ce forum avant et cela a aidé. Fondamentalement, un fail2ban détecte une activité similaire x quantité de fois dans ses fichiers journaux, il interdit cette ip.
Le blocage de tous les ports non utilisés est également utile.
Je suppose qu'avec une architecture p2p seulement, cela pourrait être possible ... Mais cela nécessiterait de nombreux changements dans le comportement des ordinateurs, et cela impliquerait de la lenteur pour de nombreux petits sites Web. C'est une bonne question.
Lorsque vous avez une architecture réseau qui permet la centralisation, elle autorisera toujours DDOS. Pour être en mesure de les empêcher, vous auriez besoin de l'ensemble de l'infrastructure Internet pour prendre connaissance de DDOS, ce qui signifie que toutes les demandes adressées à une certaine IP seraient filtrées lorsqu'un goulot d'étranglement est détecté. Il serait très coûteux d'implémenter une telle fonctionnalité car les routeurs sont conçus pour être rapides et nécessiteraient un "mode de confinement DDOS" qui vérifierait les adresses cibles des paquets, ce qui serait lent. Le site Web ne serait toujours pas réactif ou inaccessible, mais ne se bloquerait pas.
Une autre façon serait de permettre au site Web d'avoir une sorte de système miroir/de diffusion pour répéter le contenu. La diffusion signifie que le contenu est automatiquement répété par les routeurs. Mais cela nécessiterait de ne pas changer souvent, ce qui serait une exigence sévère, et peu de sites Web pourraient se le permettre, car c'est cher.
Honnêtement, je ne considère pas vraiment DDOS comme une attaque ou un problème de sécurité. Les botnets le sont.
Le moyen le moins cher, le plus efficace et le plus simple de bloquer une attaque DDoS:
Dès que le serveur reçoit plus de requêtes qu'il ne peut en gérer, un "Secure-Mode" s'active. Dans ce mode, chaque adresse IP demandeuse obtient un site HTML minimal, le plus petit est le mieux, consistant en un avertissement d'une attaque DDoS en direct et d'une invite captcha:
Les adresses IP qui saisissent le bon captcha vont dans une liste blanche permettant de parcourir le site comme d'habitude. Une fois que les demandes ont de nouveau baissé, le "mode sécurisé" s'éteint
J'adore la réponse du centre commercial. Voici donc quelques détails supplémentaires. Que se passe-t-il lorsque le centre commercial est protégé mais que le parking commence à se remplir?
Tout d'abord, non, il n'est pas possible d'arrêter une attaque de n'importe quelle taille avec l'architecture Internet actuelle. Un grand FAI bien financé, vous pouvez cependant en arrêter de très gros.
Mais (à peu près) tant que l'attaque est plus petite que la taille de vos connexions entrantes FAI, ils peuvent faire un bon travail pour que les choses fonctionnent. Mais ils ont besoin d'une technologie sophistiquée.
La meilleure chose avec laquelle j'ai eu beaucoup à faire a deux étapes.
La première étape identifie les pics de trafic possibles causés par l'activité DDoS. Une société appelée Arbor Networks est spécialisée dans ce domaine ( http://www.arbornetworks.com/ )
Ensuite, le réseau reçoit l'ordre de prendre tout le trafic pour la destination et de le réacheminer vers les laveurs DDoS. Chaque épurateur peut gérer une certaine quantité de trafic et il réussit à choisir le trafic valide hors du bruit.
L'épurateur transfère ensuite le trafic valide vers le site d'origine.
Il existe des recherches sur le sujet et, en théorie, il semble y avoir des moyens d'arrêter les attaques DDOS.
Ici est un discours d'Adrian Perrig sur SCION , un prototype fonctionnel pour une nouvelle architecture de réseau. This devrait être l'article sur la partie du système qui fait l'atténuation DDOS. Bien sûr, ils font des hypothèses sur l'attaque des botnets et autres.
Comme d'autres l'ont noté, si votre attaquant est suffisamment puissant pour que l'attaque DDOS ressemble à du trafic légitime, vous êtes essentiellement dans la même situation que si vous n'aviez pas suffisamment de ressources pour tous vos utilisateurs. C'est pourquoi ce cas ne peut être évité.
En fonction, dépendemment. Si un DDoS de la taille d'un seul octet sur la moitié d'Internet est lancé sur le reste, Internet entier sera en panne. Mais c'est presque impossible. Une attaque DDoS normale peut être absorbée mais pas arrêtée. Dans l'exemple ci-dessus de Tom Leek, le gars de la sécurité ne peut gérer qu'un nombre limité de personnes, si le monde entier arrive en masse, il ne peut rien faire. C'est la même chose avec DDoS. Vous pouvez payer CloudFlare, Incapsula, ... pour être le gardien mais avec suffisamment de puissance, un DDoS les supprimera.
La principale chose dont les attaquants DDoS tirent parti est un ressource centralisée qu'ils peuvent submerger de trafic. Si vous créez l'application de sorte qu'elle soit hautement distribuée, les attaques DDoS ne sont pas efficaces.
C'est exactement ce qui a été fait avec l'infrastructure DNS et anycast. Le DNS de Google, par exemple, est à 8.8.8.8 Mais ils utilisent anycast, donc les machines réelles qui traitent les demandes à 8.8.8.8 sont dispersées dans les centres de données du monde entier. Ainsi, les attaques DDoS dirigées vers 8.8.8.8 seront également divisées et distribuées, ce qui n'est pas l'objectif des attaques DDoS. Pour ne pas dire que cela le rend impossible mais loin, beaucoup moins efficace.
Malheureusement, toutes les applications ne sont pas conçues pour fonctionner derrière une adresse IP anycast. Mais l'approche globale est la meilleure défense. Rendez l'application hautement distribuée et l'efficacité du DDoS diminue.
Une solution commune au niveau de la mégacorporation: Achetez suffisamment de bande passante/serveurs pour accueillir à la fois les utilisateurs légitimes et les DDoS.
En dehors de jeter l'équipement au problème. la seule autre solution est la vigilance constante et généralisée du public. Trop de gens sont bâclés avec leurs ordinateurs et leur permettent de se faire contrôler par des portes dérobées ou à distance. Certains fabricants d'appareils négligent également les appareils électroniques domestiques compatibles Internet, les configurant mal et les rendant vulnérables aux piratages.
Règle générale: interdisez les connexions entrantes lorsque vous ne les utilisez pas. Si vous configurez votre ordinateur pour bloquer toutes les connexions entrantes, personne ne peut le contrôler à distance (à l'exception des instances extrêmement dégénérées de backdoors/"zombieware" qui établissent activement des connexions avec des serveurs pour lire des commandes).
La plupart du temps, l'utilisateur moyen d'un ordinateur ne devrait pas avoir besoin d'autoriser les connexions entrantes. Si vous devez le faire, débloquez uniquement les ports/programmes spécifiques qui nécessitent des connexions entrantes, puis bloquez à nouveau les connexions entrantes une fois que vous avez terminé avec ces ports/programmes.
Les périphériques IOT sont un peu plus difficiles. Vous ne pouvez pas simplement les faire bloquer toutes les connexions entrantes car elles sont conçues pour être télécommandées.