Maison  >  Article  >  interface Web  >  Une brève introduction aux principes et défenses des attaques DDoS JavaScript (images et texte)

Une brève introduction aux principes et défenses des attaques DDoS JavaScript (images et texte)

黄舟
黄舟original
2017-03-13 16:58:141728parcourir

L'attaque par déni de service distribué (DDoS) est l'une des attaques les plus anciennes et les plus courantes lancées contre des sites Web. Nick Sullivan est ingénieur système chez CloudFlare, un fournisseur de services d'accélération et de sécurité de sites Web. Récemment, il a écrit sur la façon dont les attaquants utilisent des sites Web malveillants, le détournement de serveur et les attaques de l'homme du milieu pour lancer des attaques DDoS, et a expliqué comment utiliser HTTPS et la nouvelle technologie Web à venir appelée « Intégrité des sous-ressources (SRI) ». La technologie protège les sites Web. des attaques.

Une grande partie des interactions sur les sites Web modernes proviennent de JavaScript. Les sites Web implémentent des fonctionnalités interactives en ajoutant du code JavaScript directement au HTML ou en chargeant du JavaScript à partir d'un emplacement distant via l'élément HTML9be8c280d3dc51bb61988971f6c2aa5c. JavaScript peut émettre des requêtes HTTP(S) pour charger le contenu d'une page Web de manière asynchrone, mais il peut également transformer le navigateur en une arme pour les attaquants. Par exemple, le code suivant peut inonder un site Web compromis de requêtes :

function imgflood() {  
  var TARGET = 'victim-website.com'
  var URI = '/index.php?'
  var pic = new Image()
  var rand = Math.floor(Math.random() * 1000)
  pic.src = 'http://'+TARGET+URI+rand+'=val'
}
setInterval(imgflood, 10)

Le script ci-dessus créera 10 balises d'image sur la page chaque seconde. La balise pointe vers "victim-website.com" avec un paramètre query aléatoire. Si l'utilisateur visite un site Web malveillant contenant ce code, il participera alors sans le savoir à une attaque DDoS sur « victime-website.com », comme indiqué ci-dessous :

浅谈JS DDoS攻击原理与防御

De nombreux les sites Web utilisent un ensemble commun de bibliothèques JavaScript. Pour économiser de la bande passante et améliorer les performances, ils utilisent des bibliothèques JavaScript hébergées par des tiers. jQuery est la bibliothèque JavaScript la plus populaire sur le Web, utilisée par environ 30 % des sites Web en 2014. D'autres bibliothèques populaires incluent le SDK Facebook et Google Analytics. Si un site Web contient une balise de script qui pointe vers un fichier JavaScript hébergé par un tiers, tous les visiteurs du site Web téléchargeront le fichier et l'exécuteront. Si un attaquant compromet un tel serveur hébergeant un fichier JavaScript et ajoute du code DDoS au fichier, alors tous les visiteurs feront partie de l'attaque DDoS. Il s'agit d'un piratage de serveur, comme le montre la figure ci-dessous :

浅谈JS DDoS攻击原理与防御

La raison pour laquelle cette attaque fonctionne est qu'il manque un mécanisme dans HTTP qui permet aux sites Web d'empêcher l'exécution de scripts falsifiés. Pour résoudre ce problème, le

W3C a proposé d'ajouter une nouvelle fonctionnalité, la cohérence des sous-ressources. Cette fonctionnalité permet à un site Web d'indiquer au navigateur d'exécuter un script uniquement si le script qu'il télécharge correspond au script que le site Web souhaite exécuter. Ceci est accompli via le hachage de mot de passe, codez comme suit :

<script src="https://code.jquery.com/jquery-1.10.2.min.js" 
integrity="sha256-C6CB9UYIS9UJeqinPHWTHVqh/E1uhG5Twh+Y5qFQmYg=" 
crossorigin="anonymous">
Un hachage de mot de passe identifie de manière unique un bloc de données, et deux fichiers n'auront pas le même hachage de mot de passe.

Attribut intégrité fournit le hachage du mot de passe du fichier de script que le site Web souhaite exécuter. Une fois le navigateur téléchargé le script, il calcule son hachage puis compare la valeur résultante avec la valeur fournie par l'intégrité. S'il ne correspond pas, le script cible a été falsifié et le navigateur ne l'utilisera pas. Cependant, de nombreux navigateurs ne prennent actuellement pas en charge cette fonctionnalité, et Chrome et Firefox ajoutent la prise en charge de cette fonctionnalité.

Les attaques de l'homme du milieu constituent le moyen le plus récent permettant aux attaquants d'insérer du code JavaScript malveillant dans des sites Web. Lorsque vous accédez à un site Web via un navigateur, celui-ci passe par de nombreux nœuds. Si un nœud intermédiaire ajoute du code malveillant à la page Web, une attaque de l'homme du milieu se produira, comme le montre la figure ci-dessous :

浅谈JS DDoS攻击原理与防御

La technologie de cryptage peut complètement bloquer cette injection de code. Avec HTTPS, toutes les communications entre le navigateur et le serveur Web sont cryptées et authentifiées, empêchant des tiers de modifier la page Web pendant la transmission. Par conséquent, configurer le site Web sur HTTPS uniquement, conserver le certificat et vérifier le certificat peut empêcher efficacement les attaques de l'homme du milieu.

En réponse aux commentaires des internautes, Nick a souligné que SRI et HTTPS se complètent et que l'utilisation des deux en même temps peut offrir une meilleure protection au site Web. En plus des méthodes ci-dessus, l’utilisation de certains produits de sécurité anti-DDoS pour renforcer la protection est également une option.


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn