Quel est le meilleur moyen de prévenir les attaques XSS ?

Les vulnérabilités de script intersite ont été exploitées par des attaquants depuis le début des années 2000, et XSS figure dans la liste des 10 risques de sécurité critiques de l’OWASP pour les applications Web depuis 2004. Cependant, de nombreux développeurs, administrateurs système et même certains testeurs de pénétration ne le prennent toujours pas au sérieux. Afin de devenir un pirate ou un défenseur efficace des applications Web, vous devez comprendre les bases de la prévention des attaques XSS.

Les attaques XSS posent toujours problème

Le script intersite est un type de vulnérabilité d’application Web qui permet aux attaquants d’injecter et d’exécuter du code malveillant côté client dans le navigateur de la victime au sein d’une application Web légitime.

L’impact et la gravité des attaques XSS réussies peuvent varier. Les attaques XSS peuvent entraîner un détournement de session, des jetons volés, des cookies de session volés et des attaques de falsification de requêtes inter-sites. Ces attaques peuvent entraîner des comptes d’utilisateurs compromis.

Une attaque XSS réussie peut également permettre à un attaquant d’utiliser des cookies volés ou falsifiés pour usurper l’identité d’utilisateurs valides. Dans les cas où l’utilisateur valide dispose de droits d’administration au sein de l’application, l’attaquant peut ensuite utiliser ces privilèges pour modifier des pages ou exécuter du code à distance côté serveur de l’application.

Types d’attaques XSS

Il existe trois types d’attaques XSS : stockées, réfléchies et basées sur le modèle d’objet de document (DOM).

  1. Une attaque XSS stockée permet à un attaquant d’intégrer un script malveillant dans une page vulnérable, qui est ensuite exécuté lorsqu’une victime consulte la page. Le XSS stocké est considéré comme le type d’attaque XSS le plus dommageable. Par exemple, lorsqu’un attaquant injecte une charge utile JavaScript malveillante directement dans une application Web vulnérable, le navigateur Web enregistre la charge utile JavaScript injectée. Ensuite, chaque fois que la victime visite ce site Web ou cette application Web, le code malveillant est exécuté.
  2. Une attaque XSS réfléchie se produit lorsque la charge utile malveillante est intégrée dans un lien et activée uniquement lorsque l’utilisateur clique sur le lien. Ici, la charge utile malveillante n’est pas stockée mais uniquement affichée sur la page Web sous la forme d’une URL ou de données POST.
  3. Une vulnérabilité XSS basée sur le DOM survient lorsque le DOM est utilisé pour générer du contenu dynamique contenant des entrées utilisateur qui peuvent être traitées sans vérification. Ce type d’attaque est effectué avec JavaScript dans le navigateur de la victime

Prévention des attaques XSS

Pour éviter les attaques XSS, les développeurs doivent valider les entrées utilisateur en filtrant correctement ou en échappant les caractères spéciaux, puis en encodant la sortie pour empêcher les attaques XSS stockées et les attaques XSS réfléchies. Les caractères spéciaux suivants doivent toujours être filtrés ou échappés pour éviter qu’ils ne soient exploités de manière malveillante:

<

>

« 

)

(

&

Les développeurs doivent valider l’entrée utilisateur sourcessources and et encoder la sortie sinks puits to pour éviter les attaques XSS basées sur DOM. La propriété source d’entrée est l’endroit où le DOM lit, et la source est l’endroit où l’attaquant peut injecter du code malveillant pour exploiter la vulnérabilité XSS. Les propriétés de source suivantes doivent être évitées:

  • URL
  • documentURI
  • location
  • href
  • search
  • hash

Les puits sont les points où le DOM exécute les caractères ou le code malveillants de l’entrée – la source – qui, à son tour, est envoyé à la page Web. Ces puits doivent être évités pour éviter les attaques XSS basées sur un déni de service:

  • innerHTML
  • outerHTML
  • ecrire

Si vous souhaitez mieux comprendre et prévenir les attaques XSS, Google a créé un site Web de jeux XSS pour apprendre comment ces attaques fonctionnent et comment mieux les prévenir. Le projet Mutillidae 2 de l’OWASP offre également une cible d’apprentissage aux professionnels de la sécurité Web pour affiner leurs défenses d’attaque XSS.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée.