Le problème avec un DDoS est en deux parties:
1) Étant donné que les bots sont si nombreux, ils n'ont pas besoin d'avoir une régulation de requête aussi élevée qu'un seul bot, et ne sont donc pas aussi faciles à reconnaître comme des robots.
2) Tout ce que vous voyez, ce sont les adresses IP (et les User-Agent
en fonction de la façon dont vous filtrez le trafic des robots). Toute adresse IP peut être un bot DDoS et toute adresse IP peut être un visiteur légitime. Certaines adresses IP auront à la fois un bot DDoS et un visiteur légitime. Que faites-vous?
Disons que votre site peut gérer 1000 req / s et qu'un visiteur ne fait jamais plus de 10 req / s. Un bot à 100 req / s est facile à bloquer, dix bots à 100 req / s sont faciles à bloquer. Mais 200 bots à 5 req / s sont difficiles à bloquer, car ils se comportent correctement.
200 bots à 100 req / s sont également difficiles à bloquer, car ils ne peuvent même pas faire plus de 5 req / s, ce qui donne l'impression qu'ils se comportent correctement. Cette situation est bien pire que 200 bots à vraiment 5 req / s, car un visiteur a maintenant 10 demandes sur 10010 essayant de se faufiler dans la connexion plutôt que les 10 plus gérables parmi 1010 qui parviennent au serveur.
1000 bots à 100 req / s rendrait improbable pour chaque visiteur réel de se connecter au site. Et une attaque de cette ampleur va également causer des problèmes ailleurs.
Une défense solide pour votre site est une arme puissante pour un attaquant:
Si votre site bloque des adresses IP (ou même des navigateurs spécifiques sur les IP) s'ils se comportent mal, quelqu'un pourrait décider abuser de votre défense pour provoquer une attaque DoS côté client.
Exemple: Mallory crée une page Web contenant une centaine "d'images" avec margin-left: -1000em; largeur: 1px; height: 1px;
et toutes ces images sont des URL "sensibles" sur votre site. Lorsqu'un visiteur visite la page de Mallory, il enverra 100 demandes abusives à votre serveur et sera donc bloqué.
Donc, obtenir une défense plus agressive contre les attaques (D) DoS entraînera également une autre vulnérabilité.
Une défense "intelligente" comme les CAPTCHA (pour donner aux visiteurs une chance de prouver qu'ils sont également des visiteurs et pas seulement des bots malveillants) aura également pour effet secondaire d'exiger des ressources du serveur.
Télécharger des images lorsque la connexion est bloquée ne semble pas être une très bonne idée. Je ne me souviens pas non plus d'un grand nombre de sessions pour les CAPTCHA, les CAPTCHA qui ne recevront pas de réponse, en partie parce que les images n'ont pas pu être envoyées, en partie parce que la majorité des visiteurs ne sont pas humains.
Et sur un site dynamique (hautement ou non mis en cache), vous combattrez le feu avec de l'essence.