Comment une politique de sécurité du contenu peut-elle prévenir les attaques XSS et d’autres vulnérabilités ?
Luke Watts
9 février 2020
0 minutes de lectureProtéger le code à l’ère de la cybercriminalité n’est pas une mince affaire, et nombre de méthodes éprouvées restent tout aussi efficaces aujourd’hui qu’il y a 20 ans. En matière de piratage Web, les navigateurs modernes ont considérablement renforcé leur sécurité. Des mesures comme une politique de sécurité du contenu peuvent bloquer bon nombre des techniques les plus anciennes, qui restent étonnamment courantes.
Les attaques par injection existent depuis les débuts d’Internet et restent un problème en 2020. Découvrons de plus près la célèbre vulnérabilité XSS et voyons comment la mise en place d’une politique de sécurité du contenu infaillible peut grandement contribuer à empêcher qu’un site ne serve de vecteur à du code malveillant.
Qu’est-ce qu’une vulnérabilité XSS ?
Le cross-site scripting (XSS) est une attaque qui exploite une vulnérabilité courante des applications Web. Le pirate se sert de l’application Web pour transmettre un logiciel malveillant à un autre utilisateur, au moyen d’un code « injecté » directement dans le site. Ce logiciel malveillant peut effectuer de nombreuses actions, mais la plus courante consiste à voler les cookies d’autres utilisateurs.
Le vol de cookies permet aux pirates de se faire passer pour leurs victimes lorsqu’ils accèdent à un site. Pour les dérober, un code JavaScript est inséré dans le site via un formulaire capable de lire du HTML, comme une fiche produit, un commentaire ou une barre de recherche. Toute personne qui accède au lien du commentaire, de la fiche ou du résultat de recherche contenant le code malveillant reçoit automatiquement le logiciel malveillant sur son ordinateur.
Le logiciel malveillant extrait alors les cookies de la session de l’utilisateur et les envoie au pirate. Celui-ci peut les charger dans son navigateur. Une fois sur le site ciblé, il est authentifié comme sa victime. Il ne lui reste plus qu’à trouver les informations de facturation de l’utilisateur ou à modifier le mot de passe de son compte.
Les attaques XSS existent depuis les débuts du HTML. Elles ont visé les services de messagerie, les sites de commerce en ligne, les banques en ligne et les sites d’enchères. Le problème a été si répandu que Facebook, Twitter et YouTube ont également fait partie des sites touchés. Pourtant, malgré des avancées considérables en matière de sécurité, les attaques XSS restent un problème. On estime qu’en 2019, 84 % des sites Web restaient vulnérables aux attaques XSS via jQuery.
Comment utiliser une politique de sécurité du contenu pour se protéger contre les attaques XSS
Une politique de sécurité du contenu (CSP) est une couche de sécurité conçue spécifiquement pour détecter et atténuer les attaques par injection, y compris celles qui exploitent des vulnérabilités XSS. Elle complique considérablement l’injection de code malveillant par un pirate, qui chercherait à dérober les données ou les cookies des utilisateurs légitimes d’un site.
Avec une CSP, les développeurs peuvent :
Définir les ressources autorisées et leurs origines à l’aide d’une liste d’autorisation : autrement dit, seuls les scripts et codes nécessaires au fonctionnement de l’application Web provenant d’origines spécifiques sont autorisés. Tout le reste est bloqué.
Définir la directive CSP : par défaut, cette directive est default-src, mais elle peut être modifiée. Plusieurs directives permettent de contrôler des éléments spécifiques de la CSP selon les besoins.
Déterminer si les scripts en ligne ou eval() sont autorisés : par défaut, un en-tête CSP bloque les scripts en ligne et la fonction eval(), considérés comme malveillants.
Déterminer si les attributs de style sont autorisés en HTML : comme le CSS peut être exploité, la configuration par défaut de la CSP n’autorise pas les blocs ni l’attribut dans le HTML.
Activer le signalement des violations de la politique au serveur : cela permet de repérer les cas d’utilisation abusive.
Une CSP est généralement mise en place sur le serveur, selon un processus qui peut varier considérablement. Toutefois, si un fournisseur de services ne permet pas de contrôler la configuration du serveur, il est toujours possible d’activer la CSP dans l’en-tête du site à l’aide de balises meta.
Les développeurs peuvent également analyser et tester leur site Web pour vérifier l’utilisation d’en-têtes de sécurité HTTP et connaître son état actuel, ou utiliser le CSP Evaluator pour renforcer la configuration d’une CSP.
Pourquoi utiliser une politique de sécurité du contenu ?
Utiliser une CSP est une bonne idée pour tout site Web qui comprend des applications Web complexes, des fonctionnalités de connexion et des cookies utilisateur.
1. Les attaques XSS sont omniprésentes et dangereuses
Les attaques XSS exploitent la manière dont les navigateurs sont conçus, et notamment leur incapacité à distinguer par eux-mêmes le code légitime du code injecté. Elles constituent une porte dérobée permettant d’accéder aux données des utilisateurs et à d’autres informations sensibles.
2. Elle offre une protection contre les vulnérabilités XSS difficiles à repérer
Toute application Web qui s’appuie sur des cookies pour permettre la connexion peut être vulnérable aux attaques XSS, même si sa conception est par ailleurs soignée. Les pirates étant tenaces, une base de code qui semble sécurisée peut malgré tout comporter d’autres vulnérabilités que les développeurs ne repèrent pas.
3. Une CSP renforce les autres bonnes pratiques de sécurité
La CSP contribue à faire respecter les bonnes pratiques de sécurité en limitant de nombreuses actions et en réduisant la liste des origines autorisées. Elle est donc plus efficace lorsqu’elle est associée à d’autres bonnes pratiques de sécurité, comme l’utilisation de systèmes de modèles, l’analyse des vulnérabilités et les revues de sécurité manuelles.
Ne laissez pas votre site sans protection
Alors que l’accent est mis sur la sécurité des entreprises et du DevOps, on oublie souvent que les sites Web peuvent encore être piratés, et le sont effectivement. Les attaques XSS sont une vulnérabilité ancienne qui peut toujours toucher les sites dépourvus d’une politique de sécurité du contenu efficace. Heureusement, la mise en place d’une CSP est relativement simple. Prenez dès maintenant les mesures nécessaires pour que votre site Web soit aussi sécurisé que le reste de votre entreprise.
Améliorez vos compétences en programmation sécurisée
Des formations gratuites et de qualité en sécurité pour les développeurs, quand et où vous le souhaitez.
