XSS (Cross-Site Scripting) et pourquoi c’est une menace pour la sécurité

  • Joseph Goodman
  • 0
  • 3039
  • 101
Publicité

Les vulnérabilités de script entre sites constituent le plus gros problème de sécurité des sites Web aujourd'hui. Des études ont montré qu'elles étaient extrêmement courantes - 55% des sites Web contenaient des vulnérabilités XSS en 2011, selon le dernier rapport de White Hat Security, publié en juin 2012. Tandis que la plupart des gens ont entendu parler des virus informatiques Un bref historique des 5 pires virus informatiques de Bref historique des 5 pires virus informatiques de tous les temps Le mot "virus" et son association avec des ordinateurs ont été apposés par l'informaticien américain Frederick Cohen qui l'a utilisé pour décrire "un programme qui peut" infecter "d'autres programmes en les modifiant. d’inclure éventuellement… et d’autres problèmes similaires, les vulnérabilités XSS restent inconnues de la personne moyenne.

Une vulnérabilité de script intersite permet à un attaquant d'exécuter du code JavaScript arbitraire (provenant d'un autre site) sur une page Web. Le code s'exécute sur la page Web dans le navigateur de l'utilisateur.

Un exemple - Le ver Twitter StalkDaily

Jetons un coup d'œil à une attaque XSS ayant eu lieu dans le passé avec Twitter. En 2009, le ver StalkDaily Quelle est la différence entre un ver, un cheval de Troie et un virus? [MakeUseOf explique] Quelle est la différence entre un ver, un cheval de Troie et un virus? [MakeUseOf explique] Certaines personnes appellent n'importe quel type de logiciel malveillant un "virus informatique", mais cela n’est pas exact. Les virus, les vers et les chevaux de Troie sont différents types de logiciels malveillants avec des comportements différents. En particulier, ils se sont répandus dans très… proliféré à travers Twitter. Lorsqu'un utilisateur de Twitter visitait la page de profil d'un utilisateur infecté, sa page de profil était également infectée, propageant le ver. Le ver a également envoyé des tweets de chaque compte infecté.

Alors, comment a fonctionné le ver StalkDaily? Est-ce que quelqu'un a piraté les serveurs Web de Twitter? Pas tout à fait - même si c'était une sorte de bidouille.

Chaque utilisateur de Twitter peut définir une courte biographie sur sa page de profil. Les utilisateurs entrent du texte dans une zone de profil et, une fois qu'ils ont enregistré le profil, le texte apparaît sur leur page de profil. Quelqu'un s'est rendu compte que Twitter n'avait pas correctement filtré la saisie de texte dans la zone de biographie (nous y reviendrons plus tard). Il a simplement placé le texte saisi directement dans le code source de la page Web. Cela a permis à un utilisateur d'entrer une balise HTML qui charge un fichier JavaScript à partir d'un serveur Web tiers..

Lorsqu'un autre utilisateur de Twitter visitait la page de profil infecté, son navigateur chargeait le script. Le script avait un accès complet à tout le code Twitter officiel utilisé sur la page. Il était donc en mesure de demander le cookie Twitter de l'utilisateur (qui stocke l'état de connexion de l'utilisateur) et le nom d'utilisateur du navigateur. Le script a ensuite renvoyé ces informations au serveur Web tiers. Avec ces informations, le serveur Web tiers pourrait s'authentifier en tant qu'utilisateur Twitter, modifier la biographie de l'utilisateur pour propager le ver et envoyer des tweets à partir du compte de l'utilisateur..

Comment les développeurs peuvent prévenir les attaques XSS

Une règle simple permet aux développeurs Web de savoir si quelqu'un est un bon développeur Web pour votre projet. Comment savoir si quelqu'un est un bon développeur Web pour votre projet Choisir quelqu'un pour créer un site Web pour vous n'est pas une tâche facile. Même si vous ne construisez pas le prochain Gmail, vous devriez faire les choses correctement la première fois. Mais choisir un bon… pour empêcher les attaques de script entre sites: Ne faites confiance à aucune donnée provenant d'utilisateurs. Par exemple, dans le cas de Twitter, ils n'auraient pas dû faire confiance aux utilisateurs de texte saisis dans leurs champs de biographie. Twitter aurait dû prendre le texte et “assaini” ou “échappé” il - par exemple, devrait être changé eno