Comment les outils pour les développeurs Chrome aident-ils à se défendre contre les attaques par auto-xsSS

Wolfgang Beyer
Wolfgang Beyer

Qu'est-ce qu'une attaque XSS auto-infligée ?

Le self-XSS (ou script intersites auto-injecté) est un type d'attaque d'ingénierie sociale qui vous incite à exécuter du code malveillant dans votre navigateur Web. Contrairement aux attaques XSS classiques, qui reposent sur des failles dans les applications Web qui permettent aux pirates informatiques d'injecter du code malveillant, les attaques XSS auto-infligées reposent sur vos propres actions d'exécution de code potentielles.

Les attaques par auto-XSS impliquent généralement que le pirate informatique vous incite à copier et coller du code malveillant dans la console DevTools de votre navigateur. Pour ce faire, l'attaquant promet généralement une sorte de récompense. Il peut s'agir des éléments suivants:

  • vous promettent qu'il vous donnera accès à des fonctionnalités cachées ou à des récompenses virtuelles ;
  • Faire croire que le code est un test de sécurité ou une correction de bug
  • Ils vous promettent que le code vous permet de pirater un site Web à votre avantage.

Une fois le code exécuté, le pirate informatique peut prendre le contrôle de votre compte. Cela peut permettre à l'attaquant de:

  • Voler vos informations personnelles, comme votre nom, votre adresse et votre numéro de carte de crédit
  • Publier des messages ou des commentaires non autorisés en votre nom
  • Prenez le contrôle de vos comptes de réseaux sociaux.
  • propager des logiciels malveillants à d'autres utilisateurs ;

Comment les outils pour les développeurs Chrome tentent-ils de limiter les attaques XSS auto-infligées ?

Laisser les utilisateurs coller du code dans les outils pour les développeurs, puis l'exécuter, est intrinsèquement risqué. Mais il s'agit également de l'une des principales fonctionnalités des outils pour les développeurs Chrome. Nous avons donc dû trouver un équilibre entre atténuer les attaques potentielles par auto-XSS et ne pas interférer avec le travail des développeurs qui souhaitent simplement déboguer des sites Web.

Les développeurs ne copient généralement pas du code qu'ils trouvent sur le Web, le collent dans DevTools et l'exécutent sans d'abord jeter un coup d'œil rapide à ce qu'il fait. La plupart des développeurs sont très conscients des risques de sécurité liés à l'exécution de code trouvé dans un coin douteux du Web.

Chrome DevTools fait confiance aux développeurs pour qu'ils sachent ce qu'ils font. Nous ne voulons pas les ralentir ni les distraire lorsqu'ils copient-collent du code.

Nous pensons que les non-développeurs sont beaucoup plus susceptibles d'être victimes d'une attaque XSS auto-infligée. Pour vous protéger, nous estimons qu'il est acceptable et bénéfique de vous interrompre lorsque vous effectuez une action potentiellement dangereuse. Lorsque les outils pour les développeurs Chrome détectent qu'un utilisateur inexpérimenté tente de coller du code dans DevTools, ils s'arrêtent et affichent un avertissement.

Quand les Outils de développement affichent-ils des avertissements d'auto-XSS ?

DevTools utilise une heuristique très simple pour décider d'afficher ou non des avertissements d'auto-XSS: elle est basée sur l'historique de la console de votre profil utilisateur.

Si l'historique de la console de votre profil comporte au moins cinq entrées, DevTools ne vous enverra plus d'avertissements ni de pop-ups. L'historique de la console est la liste des commandes que vous avez saisies et exécutées dans la console. Ce sont les commandes qui s'affichent lorsque vous placez le curseur dans la console et appuyez plusieurs fois sur la flèche vers le haut.

À quoi ressemblent les avertissements d'auto-XSS ?

Lorsqu'un utilisateur inexpérimenté tente de coller du code dans la console, cette action est bloquée et la console affiche un avertissement à la place.

Avertissement d'auto-XSS dans la console.

Vous pouvez ignorer cet avertissement et activer le collage, mais pour ce faire, vous devez saisir "autoriser le collage".

Lorsqu'un utilisateur inexpérimenté colle du code dans l'éditeur de code DevTools (par exemple, dans le panneau Sources), l'expérience utilisateur est très similaire. Au lieu d'un avertissement, une boîte de dialogue modale s'affiche.

Boîte de dialogue modale d'auto-XSS dans le panneau "Sources".

Et encore une fois, la fermeture de cette boîte de dialogue ne suffit pas à activer le collage. Pour ignorer l'avertissement, vous devez saisir "autoriser le collage" dans le champ de saisie.

S'agit-il d'un paramètre unique ?

Oui. Une fois que vous aurez autorisé le collage, vous ne serez plus importuné par les avertissements d'auto-XSS.

Nous espérons que ce compromis entre utilité et inconvénients vous conviendra. En ajoutant des frictions, nous augmentons la probabilité que vous lisiez l'avertissement et réduisons ainsi le risque d'attaque par auto-XSS.

Les outils pour les développeurs Chrome conservent un indicateur qui spécifie si les avertissements d'auto-XSS doivent s'afficher ou non dans votre profil Chrome. Par conséquent, si vous créez un profil et que vous commencez immédiatement à coller du code dans DevTools, le collage est bloqué et des avertissements d'auto-XSS s'affichent à la place.

Pouvez-vous le désactiver pour l'automatisation des tests ?

Mais qu'en est-il des tests automatisés ? De nombreux outils de test créent un profil temporaire pour chaque exécution de test. Par conséquent, si vous utilisez DevTools pour déboguer vos tests automatisés, le collage dans la console est initialement bloqué.

Pour contourner ce problème, effectuez l'une des opérations suivantes:

  • Utilisez Chrome for Testing, une version de Chrome conçue spécifiquement pour les tests et l'automatisation. Les avertissements XSS automatiques sont désactivés.

  • Pour les autres versions disponibles de Chrome, transmettez l'indicateur de ligne de commande --unsafely-disable-devtools-self-xss-warnings à Chrome pour désactiver complètement la boîte de dialogue d'avertissement d'auto-XSS.

Conclusion

Que pensez-vous de cette stratégie pour atténuer les attaques XSS auto-infligées ? Si vous avez des commentaires ou des suggestions, ajoutez un commentaire à ce bug ou contactez-nous en utilisant l'une des méthodes suivantes.

En particulier si vous travaillez sur un site Web qui émet des avertissements concernant les attaques XSS auto-infligées via les journaux de console, nous serions ravis de discuter de l'alignement de nos efforts ou de la mesure de l'impact des mesures d'atténuation des attaques XSS auto-infligées.

Télécharger les canaux de prévisualisation

Envisagez d'utiliser Chrome Canary, Dev ou Bêta comme navigateur de développement par défaut. Ces canaux de prévisualisation vous donnent accès aux dernières fonctionnalités de DevTools, vous permettent de tester les API de plates-formes Web de pointe et vous aident à détecter les problèmes sur votre site avant vos utilisateurs.

Contacter l'équipe des outils pour les développeurs Chrome

Utilisez les options suivantes pour discuter des nouvelles fonctionnalités, des mises à jour ou de tout autre élément lié aux outils pour les développeurs.