L’affaire Button Stealer
(anatolyzenkov.com)- Button Stealer est une extension de navigateur qui « vole » un à un les boutons présents sur les sites web visités par l’utilisateur afin de les collectionner
- C’est plutôt un outil ludique : il suffit de naviguer sur le web comme d’habitude pour voir sa collection de boutons s’agrandir automatiquement
- Le produit est présenté comme une extension amusante, inutile et gratuite
- Parmi les indicateurs publics affichés figurent une note de 4,9/5 sur le Chrome Web Store,
#3 Product of the Daysur Product Hunt et↑492 Featured Product - L’extension fonctionne en local et n’envoie pas de données à l’extérieur, ce qui permet de préserver la confidentialité des données utilisateur
Comment les boutons de sites web sont collectés
- Button Stealer est une extension de navigateur qui « vole » un bouton sur les sites web ouverts par l’utilisateur
- Même sans action particulière de la part de l’utilisateur, la collection de boutons volés s’agrandit au fil de son activité en ligne habituelle
- Le produit lui-même est présenté comme un outil amusant, inutile et gratuit
Badges et indicateurs publics
-
Chrome Web Store
- Note : 4,9/5
- Badge Featured affiché
-
Product Hunt
#3 Product of the Day↑492 Featured Product
Traitement des données personnelles et installation
- Button Stealer fonctionne en local
- Comme aucune donnée n’est envoyée nulle part, les données utilisateur restent privées
- La page propose un bouton d’installation de Button Stealer
1 commentaires
Avis sur Hacker News
Le problème de cette extension « inoffensive », c’est qu’elle finit par utiliser
host_permissionsdans son manifeste.Elle peut faire pratiquement n’importe quoi sur toutes les pages web que vous consultez, et même en extraire des données.
Du point de vue d’un développeur d’extension, je passe mon tour. Il est dangereux qu’une extension de ce genre, sans réelle utilité et juste amusante, demande des permissions aussi larges.
Si vous vérifiez le code sur GitHub puis installez l’extension localement, vous pouvez éviter le risque qu’une modification malveillante arrive plus tard.
Même si je donne l’accès au DOM de toutes les pages que je visite, ça irait si elles n’avaient aucun moyen d’exfiltrer les données.
La bonne approche, selon moi, serait de permettre d’avoir une fonction isolée du reste du code, et de payer un tiers de confiance pour examiner les capacités de cette fonction.
Dans ce cas, cette fonction pourrait seulement 1) accéder au HTML du site web, 2) trouver les boutons et 3) retourner uniquement ce qui compose le bouton.
Le message d’autorisation rédigé par l’organisme de confiance pourrait alors être précis, du genre : « Cette extension veut copier les boutons des sites web ».
J’aimerais appeler ça le calcul DEWISOTT : ça fait exactement ce qui est écrit sur la boîte.
Tant que cette fonction n’est pas modifiée, l’extension pourrait être mise à jour 1 000 fois par jour.
Ça ressemble à la version applicative d’un e-mail de phishing.
En gros, on vous demande l’accès à tout, sur tous les sites que vous visitez, juste pour un effet visuel.
Ce genre d’extension m’inquiète à l’installation.
Quelqu’un pourrait proposer une grosse somme au développeur pour la racheter, puis l’utiliser à des fins moins amusantes.
Je ne sais pas si des permissions supplémentaires sont nécessaires, mais au moins le content script actuel s’exécute déjà sur « [https:///\](https://*/\) ».
Je me demande s’il y a une raison particulière d’utiliser des API propres à Chrome plutôt que l’API standard WebExtensions.
Je pensais expérimenter avec les extensions web, mais j’aimerais savoir quelles limites concrètes l’API standard a par rapport aux API spécifiques à chaque navigateur.
Firefox est compatible avec les appels d’API
chrome.*que j’utilise dans mon extension maison.GitHub : https://github.com/anatolyzenkov/button-stealer
J’ai regardé le code et il semble inoffensif. En revanche, je ne sais pas s’il existe un moyen de vérifier que le code publié sur le Chrome Extension Store est bien le même.
Ça me rappelle la vue des publicités cliquées de https://adnauseam.io/ : https://adnauseam.io/img/adnauseam_vault.png
Aux problèmes modernes, il faut des solutions modernes.
J’aime l’idée, mais les permissions d’accès font un peu peur.
Idéalement, on pourrait sans doute le refaire sous forme de bookmarklet. Mais comme il faut enregistrer des fragments HTML de boutons dans un fichier, il faudrait probablement une solution de contournement autour des Blob pour permettre le téléchargement.
J’avais déjà créé un outil avec un objectif similaire.
Sauf qu’il volait du CSS/SCSS plutôt que des boutons, et que ce n’était pas une extension mais un outil CLI. On peut le trouver sur GitHub sous
coalio/rfscss.Je me demande s’il enregistre le HTML/CSS pour pouvoir réutiliser facilement les boutons, ou s’il les enregistre sous forme d’images.
Dans le premier cas, ce serait assez utile ; dans le second, ce serait amusant mais moins utile. Si ce sont des images, je me demande aussi à quel point il serait difficile d’extraire tous les boutons depuis une page qui les affiche.
Ça a l’air d’être une très bonne méthode pour trouver de l’inspiration en design UI/UX.