Google Chrome, le navigateur Web populaire, est utilis par des millions de personnes travers le monde. Cependant, rcemment, une dcouverte intrigante a t faite concernant une extension cache dans Chrome qui permet laccs des API prives, y compris des informations sur lutilisation du processeur. Explorons cette extension, ses implications en matire de confidentialit et les questions quelle soulve.
Dans une srie de tweets, le dveloppeur Luca Casonato a attir l’attention de tous sur l’existence d’une fonctionnalit potentiellement problmatique dans Google Chrome et d’autres navigateurs bass sur Chromium, tels que Microsoft Edge et Brave. Il s’avre que ces navigateurs disposent d’une extension intgre qui accorde tous les domaines appartenant Google, tels que *.google.com, un accs exclusif des informations dtailles sur le systme.
Ces informations comprennent des donnes sur l’architecture de l’unit centrale avec quelques spcificits, telles que le nom du modle et les donnes sur l’utilisation du processeur. Cette fonctionnalit, qui est utilise pour la surveillance des performances et le dbogage, n’est pas disponible pour les domaines autres que ceux de Google.
Cette extension intgre, qui n’apparat pas dans le panneau d’extensions standard de Chrome et ne peut pas tre dsactive, a t retrace jusqu’ un commit d’octobre 2013, avec une revue de code disponible en source. Cette fonctionnalit permet aux services Google tels que Google Meet de surveiller les ressources du systme et d’offrir des conseils de performance, tels que la fermeture des onglets si le processeur est fortement sollicit. Cette fonctionnalit est ralise grce un appel API particulier qui rcupre des informations dtailles sur le processeur et des mesures de performance du systme.
Google Chrome donne tous les sites *.google.com un accs complet l’utilisation du processeur du systme/de l’onglet, l’utilisation du processeur graphique et l’utilisation de la mmoire. Il donne galement accs des informations dtailles sur le processeur et fournit un canal de retour pour la journalisation. Cette API n’est pas expose d’autres sites, mais uniquement *.google.com.
Ceci est intressant car il s’agit d’une violation claire de l’ide selon laquelle les vendeurs de navigateurs ne devraient pas donner la prfrence leurs sites web plutt qu’ d’autres. La DMA codifie cette ide dans la loi : les fournisseurs de navigateurs, en tant que gardiens de l’internet, doivent offrir les mmes capacits tout le monde.
Selon la manire dont vous interprtez le DMA, cette exposition supplmentaire d’informations aux seules proprits de Google peut tre considre comme une violation du DMA. Prenons l’exemple de Zoom : la socit est dsormais dsavantage car elle ne peut pas fournir la mme fonction de dbogage de l’unit centrale que Google Meet.
Pour les personnes intresses, cela se fait par le biais d’une extension Chrome intgre qui ne peut pas tre dsactive et qui n’apparat pas dans le panneau des extensions. Il n’est pas certain que la mme extension soit disponible dans d’autres navigateurs drivs de Chromium.
Mise jour : dans Microsoft Edge, cette fonctionnalit est galement disponible exclusivement pour les domaines *.google.com. Et pour tous ceux qui continuent dire « Utilisez Brave !!! »: Brave a galement le mme comportement que Chrome et Edge ici. L’extension qui permet Google de rcuprer ces informations exclusivement partir de *.google.com est galement prinstalle dans Brave .
So, Google Chrome gives all *.google.com sites full access to system / tab CPU usage, GPU usage, and memory usage. It also gives access to detailed processor information, and provides a logging backchannel.
This API is not exposed to other sites – only to *.google.com.
— Luca Casonato 🏳️*🌈 (@lcasdev) July 9, 2024
Le co-crateur du framework web Django s’en mle
Simon Willison a trouv un moyen de dclencher l’API (avec GPT-4o, pas moins) pour montrer comment cela fonctionne en pratique.
Dans un billet, il explique :
J’ai demand GPT-4o de m’aider comprendre comment le dclencher (j’ai d’abord essay Claude 3.5 Sonnet mais il a refus en disant « Doing so could potentially violate terms of service or raise security and privacy concerns »). Collez ce qui suit dans votre console Chrome DevTools sur n’importe quel site Google pour voir le rsultat :
1 | chrome.runtime.sendMessage( "nkeimhogjdpnpccoofpliimaahmaaome", { method: "cpu.getInfo" }, (response) => { console.log(JSON.stringify(response, null, 2)); }, ); |
Je reois une rponse qui commence ainsi :
1 | { "value": { "archName": "arm64", "features": [], "modelName": "Apple M2 Max", "numOfProcessors": 12, "processors": [ { "usage": { "idle": 26890137, "kernel": 5271531, "total": 42525857, "user": 10364189 } }, ... |
Le code ne fait rien sur les domaines non Google.
Aprs avoir russi faire analyser le code par GPT-4o, voici ce qui lui a t retourn comme rponse :
Oui, vous pouvez interagir avec une extension Chrome partir d'une page web en utilisant les mthodes chrome.runtime.sendMessage ou chrome.runtime.connect. Pour tester le code de l'extension que vous avez fourni, vous devez installer l'extension et interagir avec elle partir de la console DevTools sur google.com.
Voici comment vous pouvez tester certaines mthodes de votre extension partir de la console DevTools :
1. Envoi d'un message l'extension :
1 | // Replace "your-extension-id" with the actual ID of your extension. const extensionId = "your-extension-id"; // Example of sending a message to get CPU info chrome.runtime.sendMessage(extensionId, { method: "cpu.getInfo" }, response => { console.log("CPU Info:", response); }); // Example of sending a message to start logging chrome.runtime.sendMessage(extensionId, { method: "logging.start" }, response => { console.log("Logging started:", response); }); // Example of sending a message to stop and upload logs chrome.runtime.sendMessage(extensionId, { method: "logging.stopAndUpload" }, response => { console.log("Stop and upload logs:", response); }); |
2. Connexion l'extension pour une communication continue :
1 | // Replace "your-extension-id" with the actual ID of your extension. const extensionId = "your-extension-id"; // Connect to the extension const port = chrome.runtime.connect(extensionId, { name: "processCpu" }); // Listen for messages from the extension port.onMessage.addListener(function(msg) { console.log("CPU Usage Info:", msg); }); // Disconnect the port when done // port.disconnect(); |
Lorsque l'extrait partag par Simon est excut sur un site non Google, la rponse est que l'appel spcifique ne peut pas tre utilis. En revanche, lorsque l'on visite un site officiel de Google, l'appel est pris en compte et une rponse dtaille est gnre.
L'API en question rcupre des informations dtailles sur le processeur du systme, notamment le type d'architecture, le modle spcifique, les fonctions prises en charge, le nombre de processeurs logiques et des statistiques d'utilisation compltes pour chaque cur. Par exemple, elle identifie l'architecture du processeur comme tant "x86_64" et numre des caractristiques telles que MMX et diverses versions des jeux d'instructions SSE et AVX. Elle indique galement le modle de l'unit centrale. En outre, elle fournit des mesures d'utilisation dtailles pour chaque cur, notamment le temps d'inactivit, le temps consacr aux processus du noyau et de l'utilisateur, et le temps actif total.
Cela permet Google Hangouts, ou son quivalent moderne, Google Meet, de recueillir des informations supplmentaires auprs du navigateur, telles que la charge actuelle de l'unit centrale de l'utilisateur. Sur Hacker News, un utilisateur travaillant chez Google a confirm que la fonction de dpannage de Google Meet utilise cette capacit pour surveiller l'utilisation du processeur.
Vous pouvez tester cette fonctionnalit en vous rendant sur Google Meet et en dmarrant une nouvelle session :
Vous pouvez ensuite naviguer dans le menu des paramtres jusqu' "Troubleshooting & help", qui indique l'utilisation en temps rel de l'UC associe cette API.
Pourquoi est-ce un problme ?
La plupart des personnes qui ont vu le message de Luca sur Twitter ont considr qu'il s'agissait d'une concurrence dloyale, car cela donne un avantage aux services de Google. Par exemple, Google Meet peut ajuster ses performances en fonction de la charge du systme, alors que des concurrents comme Zoom obligent les utilisateurs installer des modules complmentaires externes pour obtenir des fonctionnalits similaires.
Il y a ensuite la question du fingerprinting. Historiquement, les navigateurs ont t examins de prs pour leurs capacits de prise d'empreintes numriques. Par exemple, l'EFF a soulign que le fingerprinting d'un navigateur peut tre plus invasif que les cookies, car il peut persister mme lorsque les utilisateurs prennent des mesures pour effacer leur historique de navigation ou utiliser le mode incognito. Ce type d'API peut facilement tre utilis de manire abusive pour prendre les empreintes numriques des appareils des utilisateurs avec une grande prcision, en crant des profils uniques bass sur les donnes du CPU, du GPU et de la mmoire.
Il est galement intressant de noter que cette API fonctionne galement en mode incognito, ce qui pourrait trs bien tre utilis pour relever les empreintes digitales des utilisateurs au cours de diffrentes sessions. Il en va de mme pour l'absence de compte Google. Il est bien connu qu'il n'est pas possible d'obtenir ce type d'informations sur le matriel avec un navigateur web - moins d'tre Google, dans ce cas.
Le paysage rglementaire, en particulier dans l'Union europenne, comprend des lois telles que le RGPD et le Digital Markets Act (DMA), qui mettent l'accent sur la protection de la vie prive des utilisateurs et la concurrence loyale.
L'accs exclusif des donnes systme aussi dtailles pourrait tre considr comme une violation de ces principes, car il confre Google un avantage concurrentiel dloyal et porte atteinte la protection de la vie prive des utilisateurs.
On ne sait pas non plus si des navigateurs comme Edge et Brave taient au courant de l'existence de cette extension cache avant que Luca ne la divulgue.
La raction de Google
Un porte-parole de l'entreprise a fait une brve dclaration :
La rponse reconnat l'existence de l'extension (le mme porte-parole a galement dclar qu'il s'agissait d'une "extension un peu ancienne") et donne un aperu de son utilisation prvue, mais elle ne rpond pas aux proccupations plus gnrales souleves par la communaut.
Les actions de Google ont affect sa rputation au fil des ans en ce qui concerne les fonctionnalits qui crient Ceci pourrait tre utilis pour espionner les gens . Cela est vrai indpendamment du fait que l'extension cache soit hrite ou qu'elle soit essentielle leurs oprations, c'est--dire qu'un produit ne puisse pas fonctionner sans elle.
Si la rponse de Google permet de mieux comprendre l'utilisation qu'il fait de cette API, elle met galement en lumire un problme plus gnral dans l'industrie technologique. En mettant l'accent sur l'exprience utilisateur et les capacits de dbogage, Google donne la priorit la fonctionnalit et la qualit du service. Bien que potentiellement bnfique pour les utilisateurs des services Google, cette approche soulve des questions sur l'quilibre entre l'innovation et la concurrence loyale dans l'cosystme du web.
La position de Google en tant que dveloppeur majeur de navigateurs et fournisseur de services le place dans une situation unique. Sa capacit mettre en uvre des fonctionnalits qui amliorent ses propres services illustre le potentiel des cosystmes intgrs. Toutefois, elle met galement en vidence les dfis auxquels les autres entreprises sont confrontes lorsqu'elles tentent de rivaliser sur un pied d'galit.
Pour l'instant, les utilisateurs de Chrome et d'autres navigateurs bass sur Chromium doivent savoir que Google a accs des informations dtailles sur le systme qui ne sont pas disponibles pour d'autres sites web ou services. Bien que Google affirme que ces informations sont utilises pour amliorer l'exprience de l'utilisateur, le manque de transparence et de contrle de cette fonctionnalit mrite qu'on s'y attarde.
Bundle Hangouts Services extension with Chrome
code source Chromium
Sources : Luca Casonato, Simon Willison
Et vous ?
Quelle est votre raction initiale lexistence de cette extension cache dans Google Chrome ? Est-ce que cela vous surprend ou vous inquite ?
Pensez-vous que Google devrait tre transparent sur les fonctionnalits caches dans ses produits ? Comment cela pourrait-il affecter la confiance des utilisateurs ?
Quelles sont les implications potentielles en matire de confidentialit et de scurit ? Comment les utilisateurs peuvent-ils protger leurs donnes personnelles ?
Devrions-nous considrer cela comme une pratique courante dans lindustrie des navigateurs ? Existe-t-il dautres exemples similaires ?
Comment cela pourrait-il affecter la concurrence entre Google Chrome et dautres navigateurs ? Est-ce que cela donne Google un avantage injuste ?