Meta : panique médiatique et procès d’intention autour de l’injection d’un JavaScript de tracking
Facebook Palm
Le 17 août 2022 à 14h51
9 min
Société numérique
Société
Un blogueur a laissé entendre, à tort, qu'un code JavaScript injecté par Meta via le navigateur maison intégré dans ses apps Instagram et Facebook permettait au réseau social de « surveiller toutes les interactions des utilisateurs ». Meta rétorque qu'il vise a contrario à respecter l’App Tracking Transparency d’Apple. Explications.
« Instagram et Facebook peuvent suivre tout ce que vous faites sur n'importe quel site Web depuis le navigateur intégré à leur application » iPhone ou Android, affirme sur son blog Felix Krause, ancien ingénieur de Google. Le tweet annonçant son billet est encore plus explicite en faisant sauter le conditionnel, ajoutant de la confusion. Or, les utilisateurs ne sont pas traqués : ils pourraient l'être, potentiellement. Néanmoins, Meta « ne le fait pas ».
Navigateur maison et injection de code JavaScript
Le fond du problème n’est pas nouveau. Plutôt que d'avoir recours aux navigateurs tiers, les applications Meta en utilisent un maison. Un risque découlant de cette pratique est l’injection de code JavaScript à la volée sur les pages visitées, un problème signalé par le même Felix Krause en 2018.
Les conséquences peuvent être importantes car en utilisant cette technique, une application serait « en mesure de suivre chaque interaction avec les sites web, toutes les entrées de formulaire comme les mots de passe et les adresses, jusqu'au moindre clic ». Cela ne concerne pas que Meta, mais tous les éditeurs d’applications. Facebook aurait ouvert la boîte de Pandore en injectant du code – pcm.js –, même s’il ne traque pas, a priori, les utilisateurs, comme le reconnaît d'ailleurs Krause.
De la possibilité à la certitude
Le billet de blog de Felix Krause est repris par la presse tech' dans le monde entier dans des articles incomplets voir erronés. La quasi-totalité insinue en effet que Meta s'en servirait pour « traquer », « pister » ou « surveiller », « en secret », certains allant jusqu'à affirmer que « Facebook sait tout ce que vous faites ». D'autres appelant à ne plus cliquer sur des liens depuis Facebook ou Instagram.
Un emballement médiatique sensationnaliste qui intervient dans un climat tendu : la société a été largement éclaboussée par de nombreux scandales, dont celui de Cambridge Analytica. Afin de redorer son blason, elle annonce régulièrement des nouveautés, la dernière en date étant que l’historique dans Messenger serait bientôt chiffré de bout en bout pour toutes les conversations.
De son côté, Felix Krause, qui a déjà beaucoup écrit au sujet des questions de vie privée et de confidentialité sur IOS, se fait fort de rappeler que ses billets et découvertes sont repris par la presse tech' du monde entier. Et il se félicite que le problème qu'il avait identifié en 2018, et qui n'avait à l'époque guère intéressé les foules, fasse aujourd'hui la « Une » de sites communautaires comme Hacker News.
Instagram/Facebook peuvent-ils lire tout ce que je fais en ligne ? Non !
Sur son blog, Krause diffuse une « FAQ pour les non-initiés » (« FAQs for non-tech readers », en VO) indiquant clairement que « Instagram ne peut lire et observer vos activités en ligne que lorsque vous ouvrez un lien ou une publicité à partir de leurs applications ». Et encore, rappelons que ce n’est qu’une possibilité. Ce n’est a priori pas le cas actuellement. Krause reconnait d’ailleurs n’avoir trouvé aucune trace de donnée récupérée par Meta.
Il propose en outre d'utiliser une option permettant d'ouvrir les liens dans Safari, de copier-coller l'URL puis l'ouvrir dans un navigateur, ou d'utiliser la version web d'Instagram et Facebook, plutôt que les applications. Bref, ne pas utiliser le navigateur intégré aux applications.
Il invite les développeurs de sites web à rajouter ces deux lignes de code pour faire croire à Instagram et Facebook que le code de tracking est déjà installé :
<span id="iab-pcm-sdk"></span>
<span id="iab-autofill-sdk"></span>
Ainsi que ces lignes, « pour empêcher Instagram de suivre les sélections de texte de l'utilisateur sur votre site web » :
const originalEventListener = document.addEventListener
document.addEventListener = function(a, b) {
if (b.toString().indexOf("messageHandlers.fb_getSelection") >- 1) {
return null;
}
return originalEventListener.apply(this, arguments);
}
« Cela ne résoudra pas le problème réel d'Instagram qui exécute du code JavaScript sur votre site web, mais au moins aucun script JS supplémentaire ne sera injecté, et moins de données seront suivies », ajoute le chercheur. C’est un peu comme mettre un pansement sur une jambe de bois : si Meta décidait un jour d’injecter du code JavaScript pour traquer ses utilisateurs, il suffirait au réseau social d’utiliser un autre « id » pour contourner ces « protections ».
Un code censé faire respecter la vie privée des utilisateurs d'iOS
Krause explique avoir contacté Meta via son programme de bug bounty, qui lui répondait quelques heures plus tard avoir pu reproduire le « problème », lui demandant de patienter le temps de rédiger un rapport complet. 9 semaines plus tard, faute de réponse, Krause explique avoir décidé de rendre l'affaire publique. Son ticket avec Meta a finalement été marqué comme résolu « étant donné que les points soulevés dans [la] soumission sont intentionnels et ne constituent pas un problème de confidentialité ».
Cette nouvelle panique médiatique sur fond de possible atteinte à la vie privée a finalement fait réagir Meta, qui explique que le script permet a contrario, de respecter le choix de désactivation ses règles ATT (App Tracking Transparency) de l'utilisateur, comme le relève The Guardian et le reconnaît d’ailleurs Krause lui-même.
En réponse, le directeur de la communication de Meta déplore cela dit des « affirmations [qui] déforment le fonctionnement du navigateur intégré à l'application Meta » : « Nous avons intentionnellement développé ce code pour honorer les choix des utilisateurs en matière de transparence du suivi des applications (ATT) sur nos plateformes. Nous l'avons communiqué au chercheur ».
Des explications alambiquées
Interrogé par Krause qui voulait comprendre la pertinence d'une telle injection de code JavaScript, plutôt que de permettre à Instagram et Facebook d'utiliser les navigateurs par défaut, Meta lui répond que « pcm.js est nécessaire pour respecter la décision de l'utilisateur en matière d'ATT » :
« Le script doit être injecté pour authentifier la source et l'intégrité [...] des données reçues. L'authentification consisterait à vérifier que, lorsque les données sont reçues du navigateur In App, elles contiennent un nonce valide provenant du script injecté. SFSafariViewController ne supporte pas cela. »
Une explication qui ne semble pas complètement satisfaire Krause, qui estime que « d'autres applications, y compris WhatsApp de Meta, peuvent fonctionner parfaitement sans utiliser un navigateur personnalisé dans l'application ».
Claudio Agosti, fondateur de tracking.exposed, qui analyse et documente depuis 2016 comment les algorithmes surveillent les utilisateurs des réseaux sociaux (dont ceux de Facebook via facebook.tracking.exposed), résume la polémique de façon encore plus laconique : « Le pixel [de tracking] Facebook et ses boutons [de partage], ont toujours été comme ça. La seule nouveauté c’est qu'un ancien employé de Google le dit. »
Apple et Google pointés du doigt
Dans un article technique, à la fois beaucoup plus précis et mesuré que la majeure partie des médias qui ont crié au loup, The Register explique que Meta avait le choix entre deux kits pour son navigateur maison. Plutôt que d'utiliser SFSafariViewController – « le plus récent et le plus protecteur de la vie privée » – Meta a fait le choix de WKWebView qui est plus « personnalisable » et permet l’injection de code JavaScript.
« Les navigateurs intégrés aux applications ne devraient pas être autorisés à subvertir le choix du navigateur de l'utilisateur », explique sur Twitter l'Open Web Advocacy, un groupe d'ingénieurs logiciels qui dénonce les pratiques anticoncurrentielles et les écosystèmes propriétaires. « Apple et Google devraient faire respecter cette règle au niveau du système d'exploitation. OWA plaide pour que les utilisateurs aient le contrôle de ce qui se passe lorsqu'ils cliquent sur un lien, quelle que soit l'application ».
Alex Russell, un responsable du programme partenaire Microsoft Edge, estime lui aussi dans un autre thread sur Twitter que « le véritable scandale concernant le "navigateur" in-app de FB n'est pas le tracking supplémentaire, mais la subversion du choix du navigateur » :
« Je suis sûr que c'est une totale coïncidence que cela ait *également* pour effet de supprimer le blocage des trackers par les vrais navigateurs. Subvertir le choix du navigateur est une érosion structurelle de la vie privée. Cela neutralise les préférences des utilisateurs, et FB le sait. [...] Facebook recourt à cette pratique parce qu'il sait que son produit est merdique, mais il veut le trafic et la réduction du tracking qui en découle. »
En réponse à l'article du Register, un internaute précise qu'il ouvre d'ailleurs toujours les liens dans Safari, précisément pour pouvoir bénéficier de l'ad-blocker qu'il y a installé, afin d'alléger et d'accélérer l'ouverture des liens, ce que ne permettent pas les navigateurs des applications Meta.
Interrogé par le Register, le porte-parole de Meta n'a pas expliqué en quoi l'injection de code JavaScript permet d'« honorer les choix [ATT] des utilisateurs alors que la simple ouverture des pages Web dans le navigateur préféré des utilisateurs ou avec l'aide du SFSafariViewController d'Apple le ferait plus efficacement ». Apple ne semble pas avoir réagi pour le moment.
Meta : panique médiatique et procès d’intention autour de l’injection d’un JavaScript de tracking
-
Navigateur maison et injection de code JavaScript
-
De la possibilité à la certitude
-
Instagram/Facebook peuvent-ils lire tout ce que je fais en ligne ? Non !
-
Un code censé faire respecter la vie privée des utilisateurs d'iOS
-
Des explications alambiquées
-
Apple et Google pointés du doigt
Commentaires (22)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 17/08/2022 à 15h08
On est un peu naïf. Meta est un fournisseur de donnée. L’ATT va contre son modèle et Meta cherche juste tous les moyens possibles continuer de perdurer dans ce marché douteux. Tant que ça rince pourquoi se priver?
Le 17/08/2022 à 15h14
Il a raison sur un point : Ne pas utiliser les apps de ces services et toujours préférer la version navigateur quand c’est possible.
Le 17/08/2022 à 15h17
A titre personnel j’utilise Friendly, mais j’avoue que c’est par principe, je ne sais pas si l’application en question me traque ou pas.
Le 17/08/2022 à 15h20
Krauze ou Krause ?
Le 17/08/2022 à 15h49
Krause, & merci, j’ai corrigé
Le 22/08/2022 à 14h44
Je ne répond pas à l’article, qui ne me concerne vraiment pas du tout… Par contre cette photo d’illustration résume bien à elle seule la vacuité des sociaux, des journaux people (même combats)
Ce zoom sur : l’acné, puis le fond de teint à outrance !
Le 17/08/2022 à 15h50
Quelle plaie ces navigateurs intégrés. Presque toute les applis qui ont accès au web utilisent cela par défaut et dans de nombreux cas, ce comportement n’est pas désactivable dans l’application.
Le 17/08/2022 à 16h00
N’étant pas utilisateur de Facebook, je ne comprends même pas ce que c’est qu’un “navigateur intégré”.
Le 17/08/2022 à 17h01
Ça existe dans pleins d’applications (lecteur RSS, réseau social, jeux, etc). Ça permet de créer une sorte de wrapper pour afficher une page web sans quitter l’application. C’est simple à reconnaître, au lieu de ton navigateur qui s’affiche au clic d’un lien tu as un bandeau en haut + ta page web et en haut à droite sur Android 3 petits points avec en choix “ouvrir avec Chrome/brave/opera/etc.
Le 18/08/2022 à 07h10
j’ai l’impression que le navigateur intégré dans les apps est un firefox allégé chez moi, je me trompe ?
Le 18/08/2022 à 08h41
Oui, sous Android la majorité des applications utilisent une version allégé du navigateur par défaut, et pas une webview custom comme l’appli Facebook.
Ça garde les extensions, même si sous chrome y a pas d’extensions. Sous Firefox le bloqueur de pub ou dark reader sont actifs dans cette version allégé.
Le 17/08/2022 à 17h06
Plutôt que d’utiliser le navigateur de ton système (Firefox, Chrome, Safari), Facebook embarque le sien dans l’application.
En terme de développement et d’usage, c’est plus pratique (t’as la maîtrise sur tout, la certitude qu’aucun paramètre ne perturbe l’expérience utilisateur, etc …).
L’autre avantage, c’est que tu contournes les protections du système / du navigateur et les modules complémentaires (Adblock et co) puisque tu n’utilises pas le navigateur de l’utilisateur mais celui de l’application.
Le 18/08/2022 à 07h34
et les modules complémentaires (Adblock et co) puisque tu n’utilises
pas le navigateur de l’utilisateur mais celui de l’application.
je vois ça comme intérêt 1er. !
(outrepasser AD.)
Le 17/08/2022 à 20h17
En fait dans les réponses de Meta, il manque “continuer à pister les utilisateurs” pour que ça soit honnête, là c’est presque un mensonge par omission.
Une simple ouverture de lien dans un navigateur, sans échange de données avec l’application native, aurait aussi respecté les règles d’ATT…
Le 18/08/2022 à 05h19
Perso je pensais que c’était déjà le cas et admis par tous. LinkedIn fait ça et ça m’insupporte, rien que parce le navigateur n’a même pas les boutons précédent / suivant, mais aussi pour les divers blocages et modes sombres… Idem pour l’appli Google j’imagine d’ailleurs. Je vois mal ces boîtes passer à côté de l’opportunité !
Le 18/08/2022 à 05h57
De 1998 à 2022 c’est une ère géologique chez Microsoft et la mémoire n’est plus aussi vive qu’avant ?
Quelle légitimité à répondre aux questions du chercheur ou du débat qu’il pose, un expert es subversion de contrat logiciel peut-il, autrement qu’au titre de concurrent, prétendre à défendre la veuve et l’orphelin ?
C’est trop gros.
C’est un mensonge.
Problème : la qualité des données préjudiciables mais théoriquement échangées à égalité civile avec l’utilisateur ne sont pas définies dans le contrat et le besogneux service a loisir de s’appliquer les règles morales ou normatives qu’il veut, y compris donc pour déplacer la privacy du domaine impératif (exigence de probité) au domaine concurrentiel, et donc… payant !
Cette manière d’abuser de la confiance des utilisateurs à plusieurs en dansant la java niaise est consternante, comme le reste de la concurrence bidonnée induite par ces mauvais danseurs obèses.
Le 18/08/2022 à 09h31
A chaque fois que je lis ce type de news, je me dit : “ben normal, quoi il font du profil pas du charitable”
Nous sommes dans une économie capitaliste ultra libérale (celui qui ne voit pas ce constat est biaisé), donc le marché tend vers une “autorégulation” pour faire un max de tunes, en aucun cas un autre objectif est visé. (cf notre cher président l’a confirmé lors de son 2e sacrement : “l’écologie sera une priorité qui ne devra pas impacter notre économie”)
De ce constat, étant donné qu’il n’y a pas de règle sur les url, on accompagne l’utilisateur dans notre environnement tout au long de son activité. un lien dans fb ? ben je met mon navigateur perso qui va bien.
Les gens sont étonnés que la data soit partagée entre toutes les applis du groupe Meta, eh les gars google et ms le font depuis 20 ans déjà.
bref, rien de nouveau sous le soleil.
Le 19/08/2022 à 09h27
“l’écologie sera une priorité qui ne devra pas impacter notre économie”
Si on fait bien les choses, l’écologie peut même être un levier pour notre économie. Mais bon, je ne sais pas la vision qu’il a.
Quelle idée d’utiliser Gmail déjà ??
Le 19/08/2022 à 08h49
“OWA plaide pour que les utilisateurs aient le contrôle de ce qui se passe lorsqu’ils cliquent sur un lien, quelle que soit l’application”
Quel plaie que gmail ouvre systématiquement chrome au lieu de firefox sur téléphone…
Le 21/08/2022 à 15h52
En effet, comme dit plus haut: rien de neuf.
Bref, il faut juste répéter à l’envie: META cagoule ou ils te tiendront par les cilles (en chantant, cela passe mieux).
Le 22/08/2022 à 07h19
À condition que Méta change de nom au profit de Fouta
Le 22/08/2022 à 14h37
J”utilise l’application SlimSocial sur Android qui filtre une partie du tracking de FB et semble apriori réglo.