Qu'est-ce qu'un script intersite (XSS) ?

Un script intersite (XSS) est une attaque par injection de code, dans le cadre de laquelle un cyberadversaire insère un code malveillant dans un site web légitime. Le code s'exécute ensuite sous la forme d'un script infecté dans le navigateur web de l'utilisateur, permettant ainsi au cyberattaquant de voler des informations sensibles ou d'usurper l'identité de l'utilisateur.

Les forums web, les groupes de discussion, les blogs et autres sites web qui permettent aux utilisateurs de publier leur propre contenu sont les plus exposés aux attaques XSS. À moins que l'application web n'examine, ne vérifie et ne code les saisies en entrée, tout script malveillant inclus dans le code sera automatique exécuté par les navigateurs des autres utilisateurs. Ce script peut ensuite accéder aux cookies, aux jetons de session ou à d'autres informations sensibles de l'utilisateur conservés par le navigateur et utilisés sur ce site. Il peut même réécrire le contenu de la page web infectée dans le cadre d'attaques plus avancées.

En raison de leur capacité d'évitement, les attaques sans fichier et basées sur des scripts, comme les scripts intersites, se sont multipliées ces dernières années. Ces attaques, qui contournent facilement les antivirus et pare-feux traditionnels, sont relativement simples à exécuter. Il est par conséquent essentiel que les entreprises incluent la détection et la prévention des scripts intersites dans leur stratégie de cybersécurité globale pour protéger les visiteurs de leur site web et réduire le risque d'atteinte à leur réputation.

gtr-2023-fr-cover

VOUS SOUHAITEZ GARDER UNE LONGUEUR D'AVANCE SUR LES CYBERADVERSAIRES ?

Téléchargez le Global Threat Report 2023 pour découvrir les tendances observées par nos équipes chez les cyberpirates en matière de techniques, tactiques et procédures.

<b>Télécharger</b>

Attaques XSS

Les attaques XSS exploitent les vulnérabilités de sécurité de sites web de confiance pour distribuer du code malveillant à d'autres utilisateurs.

Bien que relativement fréquentes, ces attaques ne constituent pas une priorité pour la communauté de la cybersécurité en raison de leur impact relativement limité. Comme le script malveillant affecte uniquement les interactions de l'utilisateur avec le site infecté, l'activité du cyberattaquant est limitée à la session en cours. En outre, la plupart des attaques utilisent le langage JavaScript, ce qui n'octroie au cybercriminel qu'un accès limité au système d'exploitation de l'utilisateur et aux informations personnelles stockées ailleurs sur le terminal.

En savoir plus

Découvrez comment identifier rapidement les vulnérabilités des systèmes et applications de votre entreprise.

Regarder la vidéo : Using Falcon Spotlight for Vulnerability Management

Cela dit, les attaques XSS peuvent compromettre les informations d'un utilisateur présentes sur un site infecté. Le cyberattaquant peut ainsi capturer les identifiants, les mots de passe, les informations de paiement et autres données sensibles de l'utilisateur. Il peut également se faire passer pour l'utilisateur et disposer ainsi des mêmes possibilités d'action qu'un utilisateur légitime sur ce site. Les attaques de ce type peuvent avoir des répercussions considérables si le site autorise les visiteurs à effectuer ou à modifier des transactions ou à changer les informations de compte, notamment les coordonnées.

Les attaques XSS peuvent également constituer la première étape ou l'élément central d'une attaque plus avancée. Un cyberadversaire peut, par exemple, exploiter les informations collectées pendant une attaque XSS pour informer les tactiques d'ingénierie sociale utilisées dans des attaques de phishing ou par usurpation d'identité. Ces activités peuvent être à l'origine de problèmes de sécurité plus graves, tels que des attaques de logiciels malveillants, de ransomwares ou de chevaux de Troie.

Types d'attaques XSS

On distingue trois grands types d'attaques XSS :

  1. Attaque XSS reflétée ou non persistante : le script malveillant est exécuté dans le cadre d'une requête HTTP active et est renvoyé par le serveur web à l'utilisateur.
  2. Attaque XSS stockée ou persistante : le script malveillant est enregistré de manière permanente dans la base de données de l'application web, comme le journal des visiteurs, un forum web ou un champ de commentaire.
  3. Attaque XSS basée sur le DOM : la vulnérabilité de sécurité est présente dans le code côté client, c'est-à-dire le code exécuté dans le navigateur à la place du code côté serveur.

Attaque XSS reflétée ou non persistante

Il s'agit du type d'attaque XSS le plus simple : une application web reçoit des données provenant d'une requête HTTP et répond immédiatement, sans valider ni coder les données. Comme l'application ne traite pas les données, le cyberattaquant peut facilement lancer une attaque basée sur un script contre d'autres utilisateurs.

Dans une attaque reflétée, le script injecté se présente sous la forme d'un message d'erreur, d'un résultat de recherche ou d'une action similaire via un lien malveillant. Une fois activé, ce lien exécute le script, ce qui permet au code injecté d'atteindre le site vulnérable et d'être renvoyé au navigateur de l'utilisateur. Comme le navigateur considère le site comme une source de confiance, il exécute le code. Le script exécute ensuite toutes les actions à la disposition de l'utilisateur et capture toutes les données transmises par l'utilisateur pendant cette session.

Attaque XSS stockée ou persistante

Dans une attaque XSS stockée, ou persistante, une application web partage des données provenant d'une source non fiable ou non vérifiée dans des réponses HTTP ultérieures. Le script injecté est enregistré de façon définitive sur les serveurs cibles, dans une base de données, une publication dans un groupe de discussion, un commentaire ou tout autre emplacement. Si le site ne traite pas les données soumises, le cyberattaquant peut facilement saisir un contenu intégrant un script malveillant qui infectera d'autres utilisateurs. La victime récupère le script malveillant depuis le serveur lorsqu'elle demande les informations stockées.

Attaque XSS basée sur le DOM (Document Object Model)

Il s'agit d'une attaque XSS assez rare. Contrairement aux deux autres types d'attaques (attaques XSS reflétées et persistantes), qui ciblent le code côté serveur, une attaque XSS basée sur le DOM exploite des vulnérabilités de sécurité sur le code côté client ou le code exécuté dans le navigateur. Dans ce type d'attaque, une application web traite de manière non sécurisée les données JavaScript provenant d'une source non fiable. Les attaques XSS basées sur le DOM se produisent toujours en JavaScript étant donné qu'il s'agit du seul langage compris par tous les navigateurs.

Autres méthodes de classification des scripts intersites

Notez que ces trois types de scripts intersites, bien que distincts, ne sont pas exclusifs. Ces catégories peuvent se chevaucher dès lors que les cyberadversaires combinent des éléments de deux de ces types d'attaques dans une même campagne.

C'est pourquoi la communauté de la cybersécurité désigne les attaques XSS en fonction de l'endroit où le code est exploité, côté serveur ou client, et parle d'attaque XSS serveur ou client.

Comment fonctionne un script intersite ?

Comme expliqué ci-dessus, le mécanisme d'une attaque XSS dépend du type d'attaque déployé, mais la plupart suivent le même processus :

  1. Le cyberattaquant identifie un emplacement et une méthode pour l'injection de code malveillant dans une page web. Pour ce faire, le site web doit permettre aux utilisateurs d'ajouter du contenu à la page par le biais de commentaires, de publications ou de champs de contact. Si le cyberattaquant vise une cible précise, il utilisera des tactiques d'ingénierie sociale, comme le phishing et l'usurpation d'identité, pour encourager l'utilisateur à se rendre sur le site en question. Sinon, il attendra qu'un utilisateur quelconque découvre le code.
  2. La victime visite le site web contenant le code injecté. Le terminal utilisé par la victime accepte et exécute le script infecté, qu'il considère comme faisant partie du code source d'un site de confiance. Comme le code n'est pas visible et que la plupart des internautes ne comprennent pas les langages de programmation courants, comme JavaScript, il leur est difficile de détecter les attaques XSS.

Pourquoi les cybercriminels ont-ils recours à des attaques XSS ?

Les attaques XSS ont généralement pour but de voler les cookies d'un utilisateur. Grâce à ces informations stockées, le cyberattaquant peut se faire passer pour sa cible sur ce site et disposer ainsi des mêmes possibilités d'action que l'utilisateur légitime. Il peut également recueillir des données personnelles précieuses, comme des identifiants de connexion, des mots de passe, des informations de paiement et d'autres informations sensibles, qui lui faciliteront la tâche au moment de lancer d'autres attaques utilisant des techniques d'ingénierie sociale. Le site web lui-même peut également être ciblé. Dans ce cas, le cyberadversaire utilisera son code pour réécrire ou modifier le contenu de la page web.

Différentes approches XSS

Une attaque XSS peut se produire partout où une requête HTTP peut se frayer un chemin jusqu'à la sortie HTML. Voici une liste des tactiques courantes utilisées par les cyberattaquants dans le cadre d'une attaque XSS :

  • Utilisation d'une balise

Expert Tip

Dans cette vidéo, CrowdStrike vous explique comment utiliser les nombreuses fonctionnalités de détection de Falcon pour prévenir les attaques basées sur des scripts.

Regarder la vidéo : How Falcon Prevents Script-Based Attacks

L'équipe chargée de la sécurité du site web de l'entreprise doit travailler de concert avec l'équipe de cybersécurité ou un partenaire de cybersécurité de confiance pour évaluer le risque d'attaque XSS du site de l'entreprise.

Pour assurer la sécurité et la fiabilité d'un site web côté client et côté serveur, il peut être utile de recourir à une solution de gestion des vulnérabilités qui recherche en continu les vulnérabilités du site. Pour ce faire, vous pouvez faire appel à un expert SecOps, généralement un membre de l'équipe de cybersécurité, qui collaborera avec les développeurs web et d'autres membres de l'équipe web pour mettre en place de bonnes pratiques de sécurité en matière de développement et de maintenance des sites web. Cet expert peut également fournir des renseignements sur les points faibles ou les vulnérabilités critiques susceptibles d'exposer votre site web à des attaques XSS.

Vous pouvez également mettre en place, en collaboration avec votre équipe de cybersécurité, les pratiques suivantes pour créer un environnement web sûr et fiable :

  • Réalisez un test d'intrusion manuel dans les zones les plus susceptibles d'être exploitées.
  • Limitez la capacité des utilisateurs à ajouter du contenu au site web et aux autres ressources de l'entreprise, comme les forums, les blogs ou les groupes de membres.
  • Si vous autorisez les saisies des utilisateurs, filtrez tous les contenus entrants au moyen de paramètres stricts. Pensez également à coder les données en sortie.
  • Empêchez l'injection de code malveillant dans des réponses qui ne devraient pas contenir de code HTML ou JavaScript.
  • Proposez une formation continue à la cybersécurité et des possibilités de perfectionnement à votre équipe informatique, ainsi qu'aux développeurs, programmeurs et ingénieurs informatiques, afin de les sensibiliser aux risques posés par les scripts intersites et de leur permettre d'intervenir de manière adéquate en cas d'attaque XSS.