Une vulnérabilité de sécurité commune que les développeurs doivent prendre en compte est la Script intersite (XSS) problème. L'exploitation XSS peut être atténuée ou protégée en utilisant des procédures d'assainissement qui testent les valeurs des variables dans les requêtes GET et POST. Les attaques côté serveur existent également, mais elles vont bien au-delà de la portée. Apparemment, Googlebot et l'indexation souffrent actuellement de cette vulnérabilité.
Phishing Googlebot?
Bien que les attaques XSS puissent être utilisées pour altérer ou saboter des sites Web, elles constituent également une méthode de phishing. Un attaquant crée un lien malveillant et envoie aux utilisateurs un courrier électronique contenant ce lien vers un site Web vulnérable à l'exploit XSS. Lorsqu'un utilisateur clique sur le lien malveillant, un script s'exécute lors du chargement de la page. Les versions plus récentes de Chrome disposent d'un contrôle d'intégrité XSS Auditor pour les URL qui pourraient autrement tromper les utilisateurs.
Malheureusement, Googlebot utilise actuellement Chrome 41, une version antérieure du navigateur ne disposant pas du vérificateur XSS. Cela signifie-t-il que Googlebot est vulnérable aux URL de type hameçonnage où un attaquant pourrait injecter un script d'attaque SEO malveillant? Pour Google, un attaquant pourrait utiliser JavaScript pour injecter des éléments dans le DOM, tels que des backlinks, et pire, manipuler des éléments canoniques.
XSS Googlebot exploit
La preuve de concept (PoC) de cette attaque a été publiée par SEO (et Security Researcher) Tom Anthony décrivant le succès de la méthode d’attaque, y compris des captures d’éléments de preuve de l’outil d’inspection des URL de la Google Search Console affichant un code source modifié à la suite de la charge utile. N'oubliez pas que l'exécution d'un script malveillant de cette manière peut potentiellement réécrire entièrement la page pour l'indexation.
Tom décrit avoir entrepris les étapes appropriées de divulgation des vulnérabilités, répertorié un calendrier de ses communications avec Google et décrit les réponses. À ce stade, la divulgation de Tom est une perspective incertaine car la vulnérabilité peut encore fonctionner dans la nature, bien que Google lui ait dit en mars qu’il disposait de «mécanismes de sécurité». Les chercheurs en sécurité publient parfois des vulnérabilités de 0 jour (non corrigées) pour inciter les entreprises à agir.
Réponse de Google
Tom a noté que les gens voyaient des preuves que Googlebot avait une mise à niveau en attente qui inclurait probablement le filtre URL de l'auditeur XSS. Une fois que Googlebot a mis à niveau une instance plus récente de Chrome avec le vérificateur XSS Auditor en place, cette attaque ne fonctionnera plus. Dans l'intervalle, Google peut éventuellement indexer et publier des liens malveillants dans des SERP que des utilisateurs non avertis de Firefox (qui n'a actuellement pas d'auditeur XSS) pourraient éventuellement cliquer et se faire hacher.
Nous avons reçu la déclaration suivante de Google: «Nous sommes reconnaissants au chercheur d’avoir porté ce problème à notre attention. Nous avons enquêté et n'avons trouvé aucune preuve d'abus. Nous continuons d'être vigilants pour protéger nos systèmes et apporter des améliorations. "
Les exploits utilisant les techniques XSS sont tellement répandus qu'il est concevable que cela se produise quelque part. Il est à la fois crédible que personne autre que le chercheur ne l’ait essayé.
Comment se protéger contre les attaques XSS
Pour éviter les attaques les plus courantes, vous devez vous assurer qu'aucun code malveillant (Javascript, PHP, SQL, etc.) ne sera traité par votre application. Utilisez les attentes intégrées de valeurs, telles que l’assurance que seul le nombre exact et l’ensemble de variables correctement nommé sont présents avec chaque demande. Vous devez également coder les restrictions de type de données pour tester les valeurs entrantes avant de continuer.
Par exemple, si votre application attend un numéro, elle doit lever une exception, la rediriger et éventuellement mettre en liste noire l'adresse IP si elle obtient une valeur de chaîne dans le cadre d'une requête incorrecte. Le problème, c’est que de nombreux sites Web relativement populaires sont vulnérables à ce type d’attaque car ils ne prennent pas de telles mesures. Il est assez courant pour les attaquants d’attaquer les applications en modifiant les valeurs des variables de requête pour rechercher des opportunités d’exploitation.
Une des propositions de Google contre les attaques XSS prend le test d'intégrité de type de données décrit ci-dessus au niveau de l'en-tête de réponse HTTP avec ce qu'il appelle: Types de confiance. Bien que cela n’ait pas encore été adopté à grande échelle, les types de confiance peuvent éventuellement constituer une tactique importante pour la protection de vos pages. Le fait que la vulnérabilité ne soit pas actuellement corrigée est cependant la raison pour laquelle il est incertain de publier 0days. Google est vulnérable à cet exploit.