Deanonymisation par Clickjacking en 2019

Je voudrais partager avec vous les résultats de mes recherches sur l'état actuel des choses dans le processus de désanonymisation utilisant la technique du détournement de clic. Par désanonymisation, j'entends la capacité d'un site Web malveillant à révéler l'identité d'un visiteur, y compris son nom complet et éventuellement d'autres informations. Je ne présente pas ici de nouvelles informations qui n'étaient pas connues du public auparavant, mais j'ai été très surpris de découvrir à quel point il est facile de violer la vie privée du visiteur et de révéler son identité, même si vous suivez les meilleures pratiques et utilisez un navigateur et un système d'exploitation modernes.

Tout a commencé avec Google YOLO


Mon voyage a commencé lorsque je suis tombé sur un excellent article de blog appelé Google YOLO , rédigé par @filedescriptor , sur la vulnérabilité de détournement de clics du widget Web Google YOLO (You Only Login Once) qui fournit une autorisation en ligne en un clic sur les sites Web . Je vous recommande fortement de passer et de lire un article de blog qui décrit et démontre de manière interactive les techniques de détournement de clics.

En bref, le problème de confidentialité est que vous pouvez créer un site Web avec un widget Google YOLO et masquer le widget comme un bouton inoffensif. Lorsque vous cliquez sur un bouton qui est inoffensif à première vue, la victime se connecte sans le savoir avec son compte Google, transférant son identité au propriétaire du site Web, y compris son nom complet et son adresse e-mail.

Souvent, cela n'a pas vraiment d'importance, car de nombreux sites Web connaissent probablement déjà votre identité. Néanmoins, ce problème peut avoir des conséquences désagréables. Pensez, par exemple, à remplir une enquête prétendument anonyme. Comme vous n'avez jamais visité ce site Web, vous pourriez penser qu'il n'a pas la possibilité d'associer vos réponses à votre identité, mais ce n'est pas du tout le cas.

Lorsque je suis tombé sur le blog de Google YOLO pour la première fois, Google avait déjà résolu le problème en limitant la fonctionnalité aux sites Web affiliés uniquement. Ce billet de blog décrit également le détournement de clics à l'aide du widget Facebook Like, mais lorsque vous avez cliqué sur le bouton, le widget a demandé une confirmation:

image

La demande de confirmation rend cette attaque impossible - même si la victime clique inconsciemment sur le bouton J'aime deux fois, elle devra toujours confirmer son action dans une fenêtre pop-up. Le popup ne peut pas être modifié par le site de l'attaquant et n'est donc pas sujet à l'attaque par détournement de clics. L'inconvénient de cette solution est qu'elle rend l'utilisation moins pratique, nécessitant des actions supplémentaires à chaque fois, même pour une utilisation intentionnelle du bouton «J'aime».

En conséquence, je suis arrivé à la conclusion que les grandes entreprises ont résolu ce problème, et pendant un certain temps, je l'ai oublié, jusqu'à ce que j'aie une nouvelle idée ...

Widget de commentaire Facebook: "typejacking"


Un jour, en me promenant sur Internet, je suis tombé sur un site Web qui utilisait le widget de commentaire Facebook pour permettre aux visiteurs de commenter une page tierce. À ce moment-là, je me suis souvenu de ce que j'avais lu plus tôt et j'ai pensé: le problème du détournement de clics a été résolu par les grandes entreprises, mais qu'en est-il du «typejacking»? Que se passe-t-il si je prends un widget de commentaire et le colle dans mon site Web, le déguisant en un formulaire sans rapport? Ensuite, si je peux convaincre la victime d'y saisir du texte, n'importe quel texte, et de l'envoyer en tant que commentaire Facebook sur ma page, je peux découvrir son identité en vérifiant sur Facebook quel compte vient de publier le commentaire.

Dans cet esprit, j'ai commencé à travailler sur une page Web qui illustre cette technique. Ce faisant, j'ai accidentellement découvert que le widget «Like», qui me semblait nécessiter une confirmation, fonctionne sans confirmation sur ma page Web! En lisant un widget sur Internet, j'ai découvert que Facebook, contrairement à Google, utilise une liste noire pour se protéger contre le détournement de clics.

La façon dont Facebook a décidé de protéger ses utilisateurs contre le détournement de clics peut le protéger contre une collection massive de likes - Facebook peut remarquer qu'un grand nombre de likes proviennent d'un site, ajouter une confirmation et même annuler des likes. Mais cela ne protège pas contre la menace de la désanonymisation. Un attaquant peut facilement créer un nouveau site Web et utiliser le détournement de clics avec le widget «J'aime», puis envoyer la page à un nombre limité de victimes et révéler leur identité en suivant les likes de Facebook.

À ma grande surprise, la technique du likejacking, un terme qui décrit la technique du clickjacking pour obtenir des likes, est connue depuis au moins 2010 . Et aujourd'hui, 9 ans plus tard, cela reste d'actualité. De plus, en ce qui concerne le «détournement», la question de la désanonymisation est rarement mentionnée. La question de la désanonymisation a été publiquement écrite, au moins aussi tôt qu'en 2012 , mais néanmoins, je pense que pas assez de gens le savent, surtout pour notre temps, quand de plus en plus de gens comprennent l'importance de la vie privée sur Internet.

En ce qui concerne la technique de détournement de type, j'ai quand même ajouté une page Web qui montre l'attaque . Vous pouvez vous expérimenter ou regarder la vidéo:



Clickjacking, typejacking ... quoi d'autre?


En réfléchissant à la technique de détournement de clics, je me suis demandé ce qui pourrait être fait d'autre en utilisant la possibilité d'insérer et de manipuler des widgets tiers sur un site Web malveillant. Les techniques de détournement de clics et de détournement de type sont conçues pour permettre à l'utilisateur d'interagir avec le widget. Que se passe-t-il si à la place nous convaincons l'utilisateur de nous fournir des informations à partir du widget?

Il s'est avéré que quelqu'un y avait déjà pensé avant moi. Une recherche rapide m'a conduit à l'article Tell Me About Yourself: The Malicious CAPTCHA Attack , qui analyse cette technique. Voici un exemple d'un article qui montre comment un attaquant peut tromper une victime et révéler son nom sans le savoir en masquant le widget comme un captcha innocent:

image

Prévention du détournement de clics pour les propriétaires de sites


Il n'existe toujours aucun moyen fiable d'empêcher le détournement de clics.

En 2009, l'en - tête HTTP X-Frame-Options a été introduit, qui offre une protection partielle contre le détournement de clics. L'en-tête permet au propriétaire du site Web de spécifier quelles pages ne doivent pas être dans le cadre. Le navigateur supportant l'en-tête refusera de charger ces pages dans un cadre. Bien que cela empêche le détournement de clic dans certains cas, cela n'aide pas avec les widgets qui doivent être chargés dans un cadre, comme un widget Like ou un widget de commentaire.

En regardant le titre X-Frame-Options , je me suis demandé pourquoi ne pas faire une option similaire qui fournirait une mesure de protection tout en permettant à la page Web de se charger dans un cadre? Pensez, par exemple, au widget «J'aime»: existe-t-il une bonne raison pour qu'une page Web dessine au-dessus d'un bouton? Boutons de redimensionnement ou de transparence? Avez-vous d'autres manipulations comme les filtres CSS? La seule raison pour laquelle je peux imaginer est le détournement de clics. Pourquoi ne pas introduire une nouvelle option X-Frame-Options , telle que X-Frame-Options: Isolate , qui permet à la page Web de se charger dans le cadre, mais garantit que le cadre ne peut pas être redimensionné et que le site Web parent ne peut pas se redessiner lui. Comme pour les idées précédentes, et quelqu'un m'a déjà suggéré cela .

Bien que les navigateurs n'implémentent pas une telle protection, les propriétaires de sites Web n'ont qu'une seule option: exiger une interaction supplémentaire avec l'utilisateur, par exemple, en utilisant une fenêtre contextuelle distincte. Nous avons vu que Facebook le fait avec le widget «J'aime», mais uniquement pour les sites Web suspects sur lesquels il est hébergé. De toute évidence, Facebook accorde plus d'importance à la commodité des utilisateurs qu'à leur confidentialité.

Mise à jour: il s'avère que Chrome donne aux propriétaires de widgets la possibilité de détecter le détournement de clics à l'aide de la fonction Intersection Observer v2 . Cette fonctionnalité est activée par défaut à partir de Chrome 74, sortie en avril 2019. Malheureusement, seul Chrome l'implémente actuellement, et ce n'est pas si facile à utiliser - du moins plus difficile que d'ajouter un en-tête. Voir Confiance, c'est bien, Observation, c'est mieux pour plus d'informations.

Prévention du détournement de clics pour les utilisateurs


Après avoir essayé plusieurs solutions, je suis arrivé à la conclusion que le blocage des cookies tiers est le meilleur moyen de prévenir les fuites d'informations par le détournement de clics. Cela n'empêche pas la technique de détournement de clic elle-même, mais comme le cadre intégré ne reçoit pas de cookies de visiteur, ce cadre ne sera pas particulièrement utile à un attaquant.

De plus, l'option pour bloquer les cookies tiers est que dans la plupart des navigateurs, cette option est intégrée initialement. Pas besoin d'installer des extensions tierces ou de rechercher des solutions différentes pour différents navigateurs ou appareils.

L'inconvénient est que les widgets tels que le widget J'aime ou le widget de commentaire cesseront de fonctionner sur tous les sites. Je ne les manque pas beaucoup, mais peut-être que cette option ne convient pas à tout le monde.

Un autre avantage du blocage des cookies tiers est que le blocage peut protéger contre les attaques latérales qui ne nécessitent pas d'intervention de l'utilisateur. Par exemple, cette méthode montre l'utilisation de CSS3 pour désanonymiser les utilisateurs de Facebook sans interaction supplémentaire avec la page Web. Un autre exemple d'une vulnérabilité ancienne mais intéressante qui peut être évitée en bloquant les cookies tiers est le vol générique entre domaines dans plusieurs navigateurs , qui utilise une faille dans la spécification CSS pour forcer le navigateur à utiliser la page d'origine croisée comme CSS et accès. à des informations spécifiques ( numéro du projet Chromium ).

Conclusion


Parmi tous les détails historiques et techniques de cet article, il y a une recommandation que je voudrais souligner à nouveau: pensez à bloquer les cookies tiers afin d'améliorer la protection de votre identité sur Internet.

J'espère que cet article contribuera à faire connaître la technique de détournement de clics connue depuis 2010 et qui n'a pas encore été résolue. Les éditeurs de navigateurs envisageront peut-être d'introduire des mesures pour l'empêcher, pour limiter la manipulation des trames.

PS On Habré a écrit il y a 5 ans un problème similaire sur le site Web de VKontakte . Il semble que la démo ne fonctionne plus (vous devez confirmer l'action dans une fenêtre pop-up), mais, comme vous pouvez le voir, le thème est toujours d'actualité. Peut-être que sur VKontakte il y a un autre widget que vous pouvez utiliser, par exemple, un widget de commentaire. Mais, malheureusement, dans cet article, l'auteur n'a pas mentionné le blocage des cookies tiers.

Source: https://habr.com/ru/post/fr473552/


All Articles