Vulnérabilité XSS 101 : Identifiez et arrêtez les scripts intersites

Découvrez comment l’authentification multifacteur (MFA) adaptative combat les brèches de données, la compromission des mots de passe faibles et les attaques de phishing.

Mis à jour: 01 septembre 2024 Temps de lecture: ~

 

Cet article a été traduit automatiquement.

 

Le cross-site scripting (ou XSS) est un formulaire d'attaque par injection. Un site hacker place un code malveillant à l'intérieur d'une partie d'un site web ou d'une application légitime. La cible se rend sur place et le code s'exécute.

A la fin d'une attaque XSS, un hacker a un accès non autorisé. Cette personne pourrait, par exemple, s'emparer des cookies de session d'un utilisateur. Avec ces données, le site hacker peut se faire passer pour la victime et faire quelque chose d'indésirable, comme voler de l'argent. Heureusement, il existe des moyens de protéger votre site.

Aucun concepteur de site web ne cherche à créer un piège. Malheureusement, les vulnérabilités des attaques XSS sont très répandues. En fait, certains experts affirment que de "nombreux" sites les incluent. Si c'est le cas, vous mettez tous vos visiteurs en danger.

Qu'est-ce que le cross-site scripting ?

XSS (ou cross-site scripting) est une faille de sécurité que vous avez codée dans votre site web. Les pirates utilisent XSS pour modifier ou prendre le contrôle des interactions que vos visiteurs auraient normalement avec votre site web ou votre application.

XSS détourne la politique d'origine identique du web. Cela implique :

  • Connexion. Un terminal est relié à un site web ou à une application.
  • l'autorisation. Le site web et le terminal se connectent par accord mutuel. Le terminal peut stocker des cookies, par exemple. 
  • Saut à la corde. Une fois les deux étapes ci-dessus terminées, le terminal fera confiance au site web pour les demandes futures. Aucune autre autorisation n'est requise. 

Un hacker implante un code malin quelque part sur votre site et votre application. Le terminal de l'utilisateur exécute le code sans même le vérifier, car IT semble provenir d'une source valide. 

Les problèmes de ce type peuvent être remarquablement répandus. Par exemple, des chercheurs ont découvert une vulnérabilité à l'intérieur d'un outil WordPress installé sur environ 100 000 sites web. Le site hacker ne doit pas modifier le code à chaque fois. Dès qu'un visiteur accède à un site infecté, le script peut être exécuté. 

Comment les attaques de CSS commencent-elles ?

Les terminaux et les sites web ne communiquent pas toujours à sens unique. Les deux échangent des données, et si Developer n'analyse pas ou ne bloque pas les entrées de l'utilisateur, les problèmes XSS commencent.

Le site web inclut les données de l'utilisateur dans le code de la page. Le site hacker insère une chaîne de caractères malveillante dans ce code vulnérable. Le prochain visiteur peut devenir une victime.

XSS est différent de cross-site request forgery (ou CSRF). Dans ce cas, un attaquant peut inciter une personne à émettre une requête. Mais le site hacker ne peut pas toujours voir la réponse. Dans une attaque XSS, le site hacker peut exécuter du code, voir la réponse et même quitter le site avec des données.

2 types d'attaques XSS

Toute attaque XSS commence par un code malveillant. Mais comme tout développeur le sait, il existe des milliers de types de codes différents.

L'OWASP reconnaît deux principaux types d'attaques XSS :

  • Serveur : Le code malin est inclus dans une réponse HTTP générée par votre serveur. 
  • client : Le code malin provient d'un utilisateur, et l'IT met à jour le DOM. 

Certaines attaques XSS sont transitoires et ne fonctionnent qu'une seule fois. D'autres sont persistants et peuvent rester stockés sur le serveur, sur le terminal de la cible, ou les deux.

9 cross-site scripting vecteur d'attaque

Le code vulnérable est essentiel dans la construction des attaques XSS. Les pirates informatiques recherchent généralement une vulnérabilité commune. 

Les étiquettes sont généralement à l'origine de l'attaque. Ces neuf types d'étiquettes sont considérés comme vulnérables :

Les étiquettes sont généralement à l'origine de l'attaque. Ces neuf types d'étiquettes sont considérés comme vulnérables :

  • Body
  • div
  • cadre
  • img
  • Éléments requis
  • Lien
  • objet
  • script
  • table

Vous ne pouvez pas créer un site web sans utiliser une ou plusieurs de ces balises. Ils sont très répandus et les utilisateurs ont tendance à vouloir les fonctionnalités qu'ils offrent. Vous ne pouvez pas protéger votre site en les éliminant.

Comment limiter les risques d'attaques par script intersites ?

Chaque fois que vous autorisez des entrées utilisateur non filtrées dans vos résultats, vous augmentez le risque d'une attaque XSS. Vous augmentez vos risques si vous utilisez des outils tels que Flash, VBScript et JavaScript.

Selon l'OWASP, la meilleure façon de réduire votre risque est d'utiliser un encodage de sortie sensible au contexte côté serveur. Essentiellement, vous utilisez une réponse différente aux données que vous fournissent vos visiteurs.

D'autres techniques sont utilisées :

  • Sommaire sécurité. Utilisez l'outil Sommaire politique de sécurité (CSP). Si l'option IT est activée, le navigateur vérifie les scripts avant de les exécuter. Tout ce qui est inhabituel est rejeté avant que le système informatique ne fonctionne.
  • Encodage. Veillez à ce que vos sorties soient codées, afin qu'elles ne ressemblent pas à un Sommaire actif.
  • Filtres. Déterminez les intrants qui semblent typiques ou attendus. Rejetez toute entrée utilisateur qui semble inhabituelle.
  • l'en-tête. Empêchez le code dans les réponses HTTP qui ne devraient pas inclure de HTML.
  • Java. N'autorisez pas l'utilisation de JavaScript sur votre site.

Une surveillance étroite est cruciale. Assurez-vous de savoir à quel moment le code se dirige vers vos visiteurs depuis votre site web, et fermez tout ce qui semble fonctionner de manière anormale.

Si vous souhaitez En savoir plus sur les attaques XSS et autres, téléchargez le livre technique sur la sécurité de Oktale livre technique sur la sécurité de aujourd'hui.

Références

Scripts croisés (Cross-Site Scripting) : De nombreux sites web restent vulnérables à un exploit courant sur le web. (novembre 2015). L'État du New Jersey.

Un bogue XSS dans le plugin WordPress SEOPress permet de prendre le contrôle d'un site. (août 2021). Menace Post.

Types de XSS. OWASP.

Écriture croisée (XSS). OWASP.

Continuez votre parcours dans l‘univers de l’identité