Select Page

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

Le cross-site scripting (XSS) est un type d’attaque dans lequel les cybercriminels cherchent à profiter de failles de sécurité pour injecter du code malveillant dans les applications Web. Le XSS est un type d’attaque par injection ; il est généralement utilisé pour voler des données d’accès et d’autres informations sensibles. La solution Myra Web Application Security permet de se défendre contre de telles attaques.

Vue d’ensemble


01

Cross-site scripting: définition

Le cross-site scripting compte parmi les vecteurs d’attaque les plus populaires sur Internet ; le célèbre Open Web Application Security Project (OWASP) classe même le XSS parmi les dix menaces principales parmi les risques de sécurité les plus critiques pour les applications web. Dans le cross-site scripting, les pirates insèrent du code malveillant dans des pages normalement sans danger et dignes de confiance. Dès qu’un utilisateur visite le site et saisit ses identifiants de connexion, les pirates peuvent accéder à des éléments de la session, voire même prendre le contrôle de la connexion dans son ensemble. La gravité de l’attaque varie également en fonction du niveau de traitement privilégié accordé par le navigateur à l’application web concernée. Dans le pire des cas, les pirates obtiennent des droits d’accès étendus sur le système de l’utilisateur et peuvent ainsi accéder aux données locales. Le XSS peut même permettre une prise de contrôle complète du système concerné. Parmi les autres types d’attaques basées sur le XSS, on trouve notamment le phishing et le « defacement » de sites Web. Dans ce dernier cas, les pirates placent du contenu sur une page web à l’insu de l’exploitant de la page à des fins de diffamation.

02

Types de cross-site scripting

Dans la pratique, on distingue trois types de XSS : le cross-site scripting réfléchi, le cross-site scripting permanent et le cross-site scripting local. Toutes les variantes ont en commun le fait que les pirates utilisent pour leurs attaques un code de script malveillant dans des langages très répandus comme JavaScript.

Cross-site scripting réfléchi

Dans le XSS réfléchi, ou non-permanent, le script malveillant est traité côté serveur. Ainsi, si un utilisateur consulte une adresse préparée via le navigateur Web, un code de script malveillant est envoyé au serveur Web. Les serveurs insuffisamment sécurisés n’examinent pas suffisamment ce code et génèrent pour le visiteur une page web manipulée qui contient le code malveillant des pirates. Ce vecteur d’attaque est souvent utilisé par les cybercriminels pour le phishing, afin de récupérer les identifiants de connexion. Pour l’utilisateur concerné, ce type d’attaque est insoupçonnable, car il se produit sur un site web censé être fiable. Le site web manipulé est uniquement disponible via le lien préparé. Si un utilisateur accède au portail avec un lien propre, l’application Web ne contient pas non plus de code malveillant – c’est pourquoi on parle ici de XSS non permanent.

Cross-site scripting permanent

En revanche, dans le XSS permanent, le code malveillant envoyé au serveur via une faille de sécurité est stocké de manière permanente dans la base de données sous-jacente. Ainsi, il n’est même plus nécessaire d’insérer un lien préparé dans l’ordinateur de l’utilisateur pour que l’attaque réussisse – la faille reste à demeure sur le portail en question et attaque tous les visiteurs du portail. En principe, ces attaques XSS permanentes peuvent toucher toutes les applications Web qui enregistrent les entrées des utilisateurs côté serveur et les restituent – dès lors que les saisies ne sont pas soigneusement vérifiées. Ce type d’attaque permet par exemple aux pirates de récupérer en masse les identifiants de connexion sur des forums insuffisamment sécurisés.

Cross-site scripting local (basé sur le DOM)

Dans le XSS local, la faille ne se situe pas au niveau de l’application web et du serveur qui la sous-tend, mais directement chez l’utilisateur. Ainsi, même les sites web statiques, s’ils supportent JavaScript, sont concernés par ce vecteur d’attaque. Les cybercriminels placent alors un script malveillant directement dans le navigateur de l’utilisateur. La plupart du temps, cela se fait par le biais de liens préparés qui parviennent à l’utilisateur par un spam. Dans ce cas, les mesures de sécurité côté serveur sont inefficaces.

03

Impact du XSS sur les entreprises

Les cybercriminels utilisent généralement les attaques XSS comme base pour des attaques plus avancées, comme le spam par e-mail, le phishing ou même les attaques DDoS. Les pirates visent généralement les visiteurs ou les clients du site web concerné. En cas d’attaque réussie, ce sont leurs données qui sont corrompues, manipulées ou volées. Cela nuit évidemment à l’image du propriétaire du site, et entraîne des dommages durables en termes d’image, accompagnés de pertes de chiffre d’affaires non chiffrables.

Les attaques XSS dites de defacement de sites Web sont également préjudiciables pour les entreprises, qui sont alors montrées du doigt par les pirates. Les entreprises de tous les secteurs et de toutes les tailles sont concernées. Toutes les entreprises qui gèrent leurs propres sites Internet et applications Web sont des cibles potentielles pour le cross-site scripting.

04

Mesures de protection contre les attaques XSS

En raison de la variété des formes d’attaques XSS, ce vecteur d’attaque touche aussi bien les entreprises et les exploitants de sites web que leurs clients et utilisateurs. Les mesures de protection requises contre les attaques XSS sont donc elles aussi très larges.

Protection côté client contre les attaques XSS

Les utilisateurs peuvent se protéger contre les attaques XSS en limitant le traitement du code de script dans le navigateur. Différents modules complémentaires, comme NoScript, permettent d’assurer la gestion des scripts dans le navigateur. Toutefois, pour la plupart des utilisateurs, cette gestion active est sans doute trop complexe, car des adaptations sont constamment nécessaires pour garantir le bon fonctionnement des applications web. Dans la pratique, de telles extensions ne sont donc que très rarement utilisées.

En règle générale, il est recommandé de toujours vérifier minutieusement les liens contenus dans les e-mails reçus afin de détecter les bribes de code suspectes. En cas de doute, il est préférable d’accéder à la page en question en saisissant l’adresse manuellement, par mesure de sécurité. Dans la mesure du possible, il est recommandé de renoncer à l’HTML pour la présentation des e-mails chez le client – pour la communication numérique, le texte pur est parfaitement suffisant. Cette précaution permet de bloquer les liens ayant fait l’objet d’une manipulation malveillante dans les e-mails.

Protection côté serveur contre les attaques XSS

Du côté des entreprises, les mesures de protection contre les XSS sont plus étendues. Des directives rigoureuses en matière de code et des contrôles de saisie aident par exemple les webmasters à minimiser les vulnérabilités aux attaques XSS. Le whitelisting permet en outre aux exploitants de pages de définir des valeurs d’entrée sans danger et, à l’inverse, d’empêcher la transmission de codes malveillants au serveur. Dans la pratique, en fonction de l’application web, cette procédure s’avère parfois très laborieuse et peut donc être entachée d’erreurs. Mal configuré, le whitelisting bloque également des entrées valides d’utilisateurs et limite ainsi la fonctionnalité de l’application web.

Un WAF (Web Application Firewall) permet de remédier à ce problème. Cette solution de sécurité filtre le trafic entrant selon des règles prédéfinies et sépare ainsi les demandes d’utilisateurs valides des attaques potentielles. Le niveau de protection apporté par la technologie repose en grande partie sur une configuration correcte des règles de filtrage – ce qui requiert une expertise et la connaissance du trafic individuel sur l’application web en question.

05

Cross-site scripting : ce qu’il faut savoir

Les attaques XSS font partie de l’arsenal standard des cybercriminels depuis un certain temps déjà et cela ne devrait pas changer dans un avenir proche. Pour les pirates, le XSS constitue une méthode lucrative pour mener des campagnes de phishing à grande échelle via le spam. Leur butin : des données d’accès sensibles et des informations sur les comptes. En outre, le XSS permet de reprendre des sessions de connexion actives et d’accéder également à des systèmes locaux. Les attaquants peuvent également rechercher à diffamer des entreprises par le biais du defacement. Ainsi, celui qui parvient à introduire des contenus obscènes sur le site web d’une banque sérieuse, nuit durablement à son image.

Le XSS concerne aussi bien les entreprises que les clients et les utilisateurs. C’est pourquoi la sécurisation systématique des applications web devrait être une priorité absolue pour les webmasters. Les données saisies par l’utilisateur doivent être contrôlées avec précision afin d’éviter que du code malveillant n’atteigne les serveurs web. Une autre ligne de défense consiste à établir une liste blanche systématique des modèles d’entrée autorisés, ce qui peut parfois s’avérer très complexe.

Grâce à sa solution Web Application Security, qui intègre un WAF hyperscale, la Gestion des bots et un Malware Multiscan, Myra offre une protection à la fois fiable et flexible contre les attaques XSS et de nombreux autres types d’attaques.