web-dev-qa-db-fra.com

Que vérifie le site Web sur mon navigateur pour protéger le site Web contre un DDoS?

Certains sites que je visite me conduisent à une page qui dit grossièrement: "Vérification de votre navigateur avant d'accéder à example.com. Protection contre les attaques DDoS par CloudFlare".

Qu'en est-il exactement de mon navigateur qui est vérifié et comment cela aidera-t-il à protéger contre une attaque DDoS?

Automatic DDoS protection from CloudFlare

111
user133587

La plupart des attaques par déni de service (DOS) reposent sur une certaine asymétrie entre les ressources impliquées côté attaquant et côté cible. En d'autres termes, pour réussir, un DOS a besoin d'une action nécessitant très peu de ressources côté client (pour que chaque client puisse envoyer beaucoup de demandes) tout en impliquant de plus grandes ressources côté serveur (donc le ou les serveurs ne pourront pas pour gérer la charge).

Pour cette raison, les attaques DDOS (la version "distribuée" des attaques DOS) ne sont évidemment pas engagées par de vrais humains cliquant sur des liens dans un onglet de navigateur, mais par des bots envoyant une quantité massive de requêtes parallèles à la cible. La conséquence en est que le "client" DDOS n'est pas un vrai navigateur, mais un outil qui peut plus ou moins en simuler un.

Le système de protection Cloudflare DDOS est rapidement décrit sur leur site Web comme suit: "une page interstitielle est présentée aux visiteurs de votre site pendant 5 secondes pendant que les vérifications sont terminées" .

Deux choses déclenchent mon attention ici:

  • Les vérifications : le moyen le plus évident de trier les vrais utilisateurs du site Web des robots DDOS automatiques est de vérifier si le client HTTP est un vrai navigateur ou non. Cela peut passer par le test du comportement du client par rapport à un panel de tests (voir l'article " détection des bots via les empreintes digitales du navigateur " pour exemple) et comparer le résultat avec celui attendu d'une véritable instance du navigateur que le client prétend être (par exemple, si le client prétend être une version 52 de Firefox fonctionnant sur une machine Windows 10, présente-t-il les mêmes caractéristiques?) .

  • 5 secondes : exécuter des tests JavaScript et rediriger le visiteur pourrait être une opération très rapide et presque transparente, donc je pense que ce délai d'attente de "5 secondes" n'est pas là par accident, mais vise à rétablir l'asymétrie de calcul en faveur du serveur.

    • La version la plus légère de ce principe serait simplement de demander au client d'attendre (dormir) 5 secondes avant de soumettre à nouveau la même demande (avec un identifiant unique stocké dans un cookie, comme décrit sur la page Cloudflare). Cela forcerait le client DDOS à gérer d'une manière ou d'une autre une file d'attente de redirections en attente, et rendrait finalement le processus DDOS global moins efficace.

    • Une alternative plus brutale serait de demander au navigateur de résoudre un défi mathématique qui nécessiterait quelques secondes pour être résolu sur un système domestique moyen. Dans un tel cas, les attaquants n'auraient pas d'autre choix que de dépenser de la puissance de calcul pour résoudre ces défis s'ils voulaient continuer, mais cela annulerait complètement l'asymétrie puisque toutes les ressources de l'attaquant seront occupées à résoudre les défis au lieu d'envoyer des demandes, enfin "DOSER" le système de l'attaquant au lieu de celui de la cible.

101
WhiteWinterWolf

Juste pour ajouter ce que je sais par expérience: Cloudflare bloque les navigateurs non graphiques (testés: liens, lynx), non pas sur la première page vue, mais à partir de la seconde. Ces navigateurs (vraisemblablement) ne chargent pas les images, du moins ne les affichent pas, et ils ne prennent pas en charge le javascript non plus.

Comment puis-je savoir? Être coincé avec un environnement graphique cassé et rechercher des réponses sur le Web…

16
user2394284

Que fait le "défi du navigateur"?

Un simple calcul médiocre en JavaScript. Ensuite, il définit un UID en tant que cookie dans votre navigateur. Ainsi, la prochaine fois que vous visitez le site Web, il vérifie si le cookie est présent et s'il n'a pas expiré. Si le cookie n'est pas là ou qu'il a expiré, il vous mettra à nouveau au défi.

Comment?

Il y a un formulaire caché à l'intérieur de la page et de JavaScript, le formulaire obtient des nombres aléatoires "secrets" et JavaScript fait le calcul et soumet le formulaire au serveur.

C'est le moyen le plus médiocre d'atténuer les attaques DDoS de couche 7, car seul un véritable navigateur (ish) peut exécuter JavaScript et faire le calcul. Les scripts DDoS réguliers comme par exemple: slow loris ne peuvent pas exécuter JavaScript, et puisque le serveur ne reçoit pas le calcul, il renvoie simplement 403/503.

2
Norbert Boros

Cela signifie que le propriétaire de la page a engagé les services Cloudflare pour protéger sa page contre les attaques DoS. Est une sorte de page intermédiaire qui vérifie la connexion, puis redirige et vous montre la page finale si la vérification est réussie.

Ils vérifient l'origine (IP) de la connexion, le type de paquet, la taille du paquet, le nombre de paquets reçus (taux), l'agent utilisateur du navigateur, etc ... est la façon dont ils mesurent si la connexion est legitime ou ne pas passer le filtre ou non.

2
OscarAkaElvis