Un code JS malveillant peut espionner les onglets d'autres navigateurs pour identifier les sites Web que vous visitez,
Même Tor n'est pas épargné

Le , par Bill Fassinou, Chroniqueur Actualités
Il est possible qu'un code JavaScript malveillant dans un onglet de navigateur Web espionne d'autres onglets ouverts pour déterminer les sites Web que vous visitez. Les chercheurs de l'Université Ben Gourion du Néguev en Israël, de l'Université d'Adélaïde en Australie et de l'Université Princeton aux États-Unis ont réussi une attaque par empreinte digitale de site Web basée sur le cache du processeur qui utilise JavaScript pour collecter des données afin d'identifier les sites Web visités. « L'attaque que nous avons démontrée compromet les données personnelles des utilisateurs : en découvrant les sites Web auxquels l'utilisateur accède, elle peut enseigner à l'attaquant des choses telles que l'orientation sexuelle de l'utilisateur, ses convictions religieuses, ses opinions politiques, son état de santé, etc. », ont déclaré Yossi Oren (de l'université Ben Gourion en Israël) et Yuval Yarom (de l'université d'Adélaïde en Australie).

La technique intitulé « empreinte digitale de site Web robuste via le canal d’occupation du cache » est décrite dans un document récemment distribué par ArXiv, une archive de prépublications électroniques d'articles scientifiques dans les domaines de la physique, l'astrophysique, des mathématiques, de l'informatique, des sciences non linéaires et de la biologie quantitative. Les chercheurs ont démontré comment contourner les défenses de protection de la vie privée récemment introduites et soumet même le navigateur Tor à un suivi. Les informations collectées peuvent être utilisées pour cibler des publicités en fonction de vos centres d'intérêt ou pour déterminer le type de contenu dans lequel vous vous trouvez et le rassembler en toute sécurité pour le consulter ultérieurement.


« Dans ce travail, nous étudions ces attaques selon un modèle d'attaque différent, dans lequel l'adversaire est capable d'exécuter une petite quantité de code sans privilège sur l'ordinateur de l'utilisateur cible. Sous ce modèle, l'attaquant peut monter des attaques sur les canaux auxiliaires du cache, qui exploitent les effets de conflit sur le cache du processeur, afin d'identifier le site Web sur lequel le navigateur est consulté », peut-on lire dans leur article publié. « Les attaques par empreinte digitale sur les sites Web, qui utilisent l'analyse statistique du trafic réseau pour compromettre la confidentialité des utilisateurs, se sont révélées efficaces même si le trafic est envoyé sur des réseaux préservant l'anonymat tels que Tor. Le modèle d'attaque classique utilisé pour évaluer les attaques par empreinte digitale sur les sites Web suppose un adversaire sur le chemin, capable d'observer tout le trafic voyageant entre l'ordinateur de l'utilisateur et le réseau Tor », précisent les chercheurs.

En tout état de cause, l'attaque pourrait avoir de graves conséquences pour les utilisateurs de Tor convaincus que leurs visites sur Internet peuvent être tenues secrètes. Une attaque par canal auxiliaire (une attaque informatique qui, sans remettre en cause la robustesse théorique des méthodes et procédures de sécurité, recherche et exploite des failles dans leur implémentation, logicielle ou matérielle) implique l'observation d'une partie d'un système informatique pour collecter des mesures pouvant être utilisées pour déduire des informations autrement privilégiées. Les vulnérabilités Spectre, Meltdown et Foreshadow révélées cette année pourraient toutes être exploitées via des techniques d’attaque par canal auxiliaire.

Oren et Yarom ont expliqué que leur approche fonctionnait à un niveau plus fondamental que Spectre. « Cela fonctionne à des endroits où Spectre ne peut pas fonctionner (par exemple, au-delà des limites du processus) et où les correctifs de processeur conçus pour protéger Spectre ne peuvent pas l'arrêter. D'autre part, l'attaque Spectre est capable de récupérer des informations à une résolution beaucoup plus élevée que notre attaque », ont-ils déclaré. « Spécifiquement, nous utilisons des techniques d'apprentissage automatique pour classer les traces d'activité du cache. Contrairement aux travaux antérieurs, qui tentent d'identifier les conflits de cache, notre travail mesure l'occupation globale du cache de dernier niveau. Nous montrons que notre approche permet d'obtenir une précision de classification élevée dans les modèles du monde ouvert et du monde fermé », expliquent les chercheurs.

L'un des moyens utilisés pour atténuer ces attaques consiste à limiter l'accès aux timers de haute précision grâce auxquels les données des canaux auxiliaires peuvent être collectées. Rappelons qu'en début de cette année, Luke Wagner, un ingénieur de Mozilla confirmait que c'était possible d'exploiter les vulnérabilités (Meltdown et Spectre) pour accéder à des informations sensibles. Un rapport du Microsoft Vulnerability Research avait appuyé le propos de Wagner. L’exploitation desdites failles ouvre la voie à une violation plus aisée de la protection Same-Origin Policy dont les navigateurs sont équipés. En d’autres termes, un script JavaScript malicieux chargé sur une page peut extirper des cookies d’authentification ou autres mots de passe d’une autre plus facilement. Pire, les données privées du navigateur lui-même sont à la merci du code malicieux, d’après ce que rapporte l’équipe sécurité de la firme de Redmond.

Microsoft avait, par le biais de Windows Update, déployé la mise à jour KB4056890 pour les utilisateurs du navigateur Edge au sein de la Fall Creators Update en date du 3 janvier dernier. Pour ce qui est de Mozilla, une version mise à jour de Firefox Quantum (la 57.0.4) était désormais disponible. Les vulnérabilités dont il est question reposent sur la capacité du logiciel malveillant à abuser de la temporisation du cache des données des processeurs. Elles reposent sur l’aptitude à effectuer des mesures précises du temps. Pour ces raisons, Firefox et Edge sont sevrés du tampon de données binaires SharedArrayBuffer. Parallèlement, la méthode JavaScript performance.now() voit sa résolution passer de 5 à 20 microsecondes. Quant à Google Chrome, la version 63 intègre le mécanisme de protection Strict Site Isolation. D’après la firme, son activation permet d’assigner à chaque site Web un espace d’adressage distinct. Il était prévu que l’entreprise s’aligne avec les mesures actuellement adoptées par ses concurrents dans le cadre de cette release.

Par contre, Oren et Yarom déclarent que leurs travaux montrent que les efforts déployés pour se défendre contre les attaques par canaux auxiliaires en réduisant l'accès au chronométrage de précision ont été vains. « Dans ce travail, nous montrons que toute cette approche est vaine - nous n'avons simplement pas besoin de minuteries haute résolution pour attaquer. De même, certaines approches de protection contre Spectre séparent les sites en plusieurs processus. Nous montrons que cela n'est pas suffisant. Nous montrons que nous pouvons espionner à partir d'un onglet de navigateur sur un autre et même à partir d'un navigateur sur d'autres navigateurs exécutés sur l'ordinateur », ont-ils déclaré. Selon eux, ce qu’il faut retenir, c’est que tout ce qui n’est pas exécuté à un moment donné dans le navigateur pose un risque pour la confidentialité : si vous ouvrez un deuxième onglet, le JavaScript qu’il contient peut filtrer l’autre. Désactiver complètement JavaScript supprimera l'attaque, mais également de nombreux sites Web, qui dépendent du fonctionnement de JS. Les chercheurs disent que la virtualisation devrait être considérée comme une fonctionnalité plus pratique qu'une fonctionnalité de sécurité.

Source : Résultat de la recherche

Et vous ?

Qu'en pensez-vous ?
Quelles solutions suggérez-vous contre cette attaque ?

Voir aussi

Vulnérabilités Meltdown et Spectre : état des lieux des navigateurs Chrome, Mozilla et Edge face au vecteur d'exploitation JavaScript

Sept nouvelles variantes de Meltdown et Spectre ont été découvertes par des chercheurs en sécurité Intel ne se montre pas inquiet

Bogues critiques touchant les CPU modernes : Google a informé Intel depuis des mois et confirmé qu'ils affectent plus Intel et ARM qu'AMD

Firefox 58 officiellement disponible avec des gains de performance la version Android embarque le support des applications Web progressives et FLAC


Vous avez aimé cette actualité ? Alors partagez-la avec vos amis en cliquant sur les boutons ci-dessous :


 Poster une réponse Signaler un problème

Avatar de sixpi sixpi - Membre à l'essai https://www.developpez.com
le 22/11/2018 à 16:47
Vive NoScript !
Avatar de zecreator zecreator - Membre chevronné https://www.developpez.com
le 23/11/2018 à 7:35
Envisager le net sans JS est juste impossible. Désactiver JS revient à ne plus aller sur Internet. Chaque langage est un moyen d'espionnage. JS pas plus que les autres.
Avatar de sixpi sixpi - Membre à l'essai https://www.developpez.com
le 23/11/2018 à 9:51
Désactiver JS revient à ne plus aller sur Internet
Internet, carrément ! Les mails, le SIP, telnet, ssh, les jeux vidéos… n'utilisent pas JS…

De plus, une grande part du web reste encore "accessible" sans JS. Certes de moins en moins. Mais perso, je navigue avec NoScript et j'active au cas par cas.

Certes ça demande un effort supplémentaire, mais ça évite ça :



(en passant, les articles du site en question sont lisible sans JS ! donc c'est pas impossible)

EDIT: pour ceux qui ne connaissent pas NoScript, l'image correspond à l'ensemble des scripts bloqués (ou non) de la page web courante (Ça fait du monde ! j'avoue j'ai délibérément choisi un site d'information que je sais friant des JS*de tracking. En effet, les articles que vous lisez en dise long sur vous, et les sites d'informations ne se prive pas pour partager votre navigation sur leur site).
Avatar de zecreator zecreator - Membre chevronné https://www.developpez.com
le 24/11/2018 à 13:39
Je dis juste qu'un site internet sns JS est juste aussi intéressant qu'un 3615 sur Minitel. C'est figé, sans dynamisme et sans aucune valeur ajoutée. Je ne parlais pas des autres aspect du réseau, comme le FTP, etc... Qui, à mon avis, ne doivent pas être mieux sécurisés qu'une page Web.
Avatar de zecreator zecreator - Membre chevronné https://www.developpez.com
le 24/11/2018 à 13:41
Dans un monde où l'arme absolue des lobbyistes c'est le Big Data, vous êtes encore prêts à croire que vos connexions, quelles qu'elles soient, ne sont pas espionnées. Naïfs que vous êtes...
Avatar de Steinvikel Steinvikel - Membre éclairé https://www.developpez.com
le 26/11/2018 à 14:58
Citation Envoyé par zecreator Voir le message
Envisager le net sans JS est juste impossible. Désactiver JS (...) est juste aussi intéressant qu'un 3615 sur Minitel. C'est figé, sans dynamisme et sans aucune valeur ajoutée. Je ne parlais pas des autres aspect du réseau, comme le FTP, etc... Qui, à mon avis, ne doivent pas être mieux sécurisés qu'une page Web.
Perso, beaucoup de site utilisent du JS pour des choses propres à leur fonctionnement interne, et également beacoup pour de la modulation de contenu visuel... les site où l'on ne peut plus cliquer sur des boutons, des liens, etc. parce que JS est évincé, je m'en passe volontier, et ça concerne de plus en plus de sites qui proposent un usage "statique", tel que de la lecture de news, des wikis.
Le web c'est avant tout de l'échange de données et des hyperliens, le reste c'est du bonus... on voit peu d'attaques qui utilisent HTML ou CSS, il y en a plus avec php, encore plus avec JS, CGI... et c'est directement lié à ce que l'interpréteur autorise à faire sur la machine de l'utilisateur sans son consentement, un comportement sur lequel l'utilisateur lambda n'a aucun accès de réglage.
oh, wait ... il y a des extensions pour ça ! C'est triste qu'il faille un programme suplémentaire pour ça... ça me fait penser aux réglages sur Windows, si tu sais pas ce qu'est une invite de commande, ou regedit, tu dois passer par un soft.

Citation Envoyé par sixpi Voir le message
(...) perso, je navigue avec NoScript et j'active au cas par cas.
Certes ça demande un effort supplémentaire, (...)

EDIT: pour ceux qui ne connaissent pas NoScript, l'image correspond à l'ensemble des scripts bloqués (ou non) de la page web courante (Ça fait du monde ! j'avoue j'ai délibérément choisi un site d'information que je sais friant des JS*de tracking. En effet, les articles que vous lisez en dise long sur vous, et les sites d'informations ne se prive pas pour partager votre navigation sur leur site).
Il y a également un autre outil qui a fait ses preuves : uBlock Origin (uBO), et uMatrix (uM) tout deux sous GNU GPLv3, par Raymond Hill.
Le premier s'occupe des blocages statiques, le deuxième des blocages dynamiques (script etc.).
uBlock Origin peut bloquer les script indépendamment des URLs (Host Names), uMatrix sécurise toute les requêtes entrantes et sortantes, les exécutions de code, ainsi que les chargements d'éléments spécifiques (ex: pixel de pistage).
Si tu autorises les vidéos intégrés youtube sur une page à travers uMatrix, alors uBlock Origin s'assurera (en tant que filtre statique) que le script de tracking des pubs de youtube restera bien bloqué.

Par exemple :
uBO redirige les scripts en provenance de googletagservices.com vers une version locale neutre, ce qui préserve d'un bon paquet de pages inopérantes (googletagservices.com n'est pas bloqué par "EasyPrivacy" en raison de la forte probabilité de pages inopérantes).
Mais si uMatrix bloque le script en provenance de googletagservices.com, alors uBO ne sera pas capable de rediriger vers une version locale neutre, parce que le blocage a la priorité sur la redirection dans les API WebExtensions. C'est ce détail (en rouge) qui rend parfois difficile la personnalisation des politiques de filtrage aux profanes.

De plus uBO-scope, du même auteur, sert de complément informatif, mais non nécessaire (inutile selon moi, un gadget). Et uBO-Extra, également du même auteur, contourne les paramètres de vie privé du navigateur (mais n'est pas développé pour firefox actuellement, car jugé non nécessaire pour ce navigateur).

edit : la seule fonction de plus que j'aprécierais, ce serait de pouvoir (sur uBO comme sur NoScript) filtrer en fonction des onglets, de ne pas faire une autorisation globale, d'une exception que j'utilise sur un seul onglet.
Avatar de sixpi sixpi - Membre à l'essai https://www.developpez.com
le 27/11/2018 à 11:59
edit : la seule fonction de plus que j'aprécierais, ce serait de pouvoir (sur uBO comme sur NoScript) filtrer en fonction des onglets, de ne pas faire une autorisation globale, d'une exception que j'utilise sur un seul onglet.
+1
Avatar de zecreator zecreator - Membre chevronné https://www.developpez.com
le 27/11/2018 à 18:50
Après, je ne comprends pas la violence que l'on fait à JS. JS n'est pas en cause, ce sont les développeurs qu'il faut blâmer. Est-ce que le fabricant de perceuse va être responsable si l'un de ses clients a utilisé son produit pour transpercer la tête de son voisin ? Aurait-il put mettre une sécurité contre cette pratique ? Non, elle n'est pas prévue pas ça, mais ne l'empêche pas...

Après, JS a ses failles, comme n'importe lequel des environnements techniques, mais pas plus que d'autres systèmes. Il me semble que Flash a bien vécu avant d'être considéré comme un "malware" par la communauté.

Et je pense que si on regarde de très prêt certains Frameworks ou CMS (PHP ou C++), on devrait aussi avoir beaucoup de critiques à donner...

Franchement, je ne peux pas concevoir de naviguer sur des sites qui utilisent des technos des années 90. Même du CSS3 ne me suffirtait pas. J'attends de mon navigateur qu'il me donne du WebGL, du dynamisme.

Sinon, autant revenir à l'époque de FrontPage.
Avatar de Steinvikel Steinvikel - Membre éclairé https://www.developpez.com
le 28/11/2018 à 16:00
De ce que je constate, le dynamisme est aujourd'hui principalement utilisé pour l'esthétisme.
Faire un menu déroulant en CSS, en PHP, ou en JavaScript... donne au final le même rendu, mais le faire en CSS permet de se prémunir de nombre de dérive possible.

Si je reprend l'exemple de ta perceuse, ça équivaudrait à faire appel à un prestataire pour installer un luminaire à l'extérieur de sa baraque. Et la dérive serait que durant son travail, il lui serait permis (au sens de capable) de pénétrer dans la maison, et qu'il utilise alors non plus sa perceuse, mais carrément son perforateur, et pour autre chose, à l'intérieur de chez moi. Que se soit pour un crime ou non, il n'avait pas le droit de faire autre chose que ce pourquoi il était venu. Quand on fait appel à un langage, il vient avec ses outils, on choisi pas ce qu'il a dans les mains. Et le problème principal de JS c'est pas le langage en lui-même, c'est la politique inaccessible du navigateur, qui en gros, ouvre toute les porte de la maison sauf celle du coffre fort et du garage... après on s'étonne que parfois ya du grabuge.
Quand on laisse une parti de chez soi exposé à du passage d'étrangers, on laisse pas un oeuf doré sur la table basse ...encore faut-il savoir que cette zone de la maison est sujet à du passage de personnes extérieures. D'où le rejet de la faute au navigateur (un problème de cloisonnement ?).

C'est le principal problème des faille de sécurité : faire en sorte que le client demande de faire quelque chose avec un tiers (un langage donné) pour que ce dernier se retrouve dans une situation lui permettant outrepasser ses permissions, et devenir capable d'actes non souhaité par le client.

Je ne connais aucuns langage qui est exempt de "comportement indéterminé" sur la totalité de la définition de son langage. Et pourtant les principales failles viennent de leurs non gestion, manque de rigueur, oubli, non anticipation, mauvaise conception... des failles qui parfois proviennent même d'éléments à caractères "déterminés" (ex: overflow).
Permettant ainsi :
1) dénis de service
2) overflow
3) exécution de code
4) augmentation de privilège
5) du bypass
6) XSS
6') traversée de repertoires
6'') récolte d'information
7) corruption mémoire
etc.

PS: c'est pas parce qu'on arrête une pratique qu'on perd 200 ans de progrès et de QI.
Quand on sait que quelque chose est inadapté, ou dangereux, on s'abstient simplement de l'utiliser, et on redouble d'effort pour lui trouver un remplaçant, une évolution.
Avatar de zecreator zecreator - Membre chevronné https://www.developpez.com
le 28/11/2018 à 18:46
Citation Envoyé par Steinvikel Voir le message
De ce que je constate, le dynamisme est aujourd'hui principalement utilisé pour l'esthétisme.
Faire un menu déroulant en CSS, en PHP, ou en JavaScript... donne au final le même rendu, mais le faire en CSS permet de se prémunir de nombre de dérive possible.
Heu, les nombreux de jeux 3D multi-joueurs qui tournent sur le net, pas sûr qu'ils tournent uniquement à base de CSS3 et medias queries. A vérifier. Après, si on s'en tient à faire du clique sur des image ou des rubriques, alors oui HTML et CSS suffisent. Mais bonjour tristesse.

Citation Envoyé par Steinvikel Voir le message
Quand on laisse une parti de chez soi exposé à du passage d'étrangers, on laisse pas un oeuf doré sur la table basse ...encore faut-il savoir que cette zone de la maison est sujet à du passage de personnes extérieures. D'où le rejet de la faute au navigateur (un problème de cloisonnement ?).

C'est le principal problème des faille de sécurité : faire en sorte que le client demande de faire quelque chose avec un tiers (un langage donné) pour que ce dernier se retrouve dans une situation lui permettant outrepasser ses permissions, et devenir capable d'actes non souhaité par le client.
Il faut discipliner les gens, les sensibiliser au problème. Le premier pare-feu, c'est l'utilisateur. S'il clique sur des liens qu'il ne connait pas, ou autorise un site à faire certaines actions parce que sinon il peut pas télécharger une appli windows crackée, c'est son problème. Aucun outil ne peut assurer à 100% la sécurité de nos données. C'est un mythe. Et le jour où un mec réussi, on lui mettra un contrat sur le dos, et son outil sera scellé dans un coffre fort et jeté au fond de la mer.

Citation Envoyé par Steinvikel Voir le message
Je ne connais aucuns langage qui est exempt de "comportement indéterminé" sur la totalité de la définition de son langage. Et pourtant les principales failles viennent de leurs non gestion, manque de rigueur, oubli, non anticipation, mauvaise conception... des failles qui parfois proviennent même d'éléments à caractères "déterminés" (ex: overflow).
Permettant ainsi :
1) dénis de service
2) overflow
3) exécution de code
4) augmentation de privilège
5) du bypass
6) XSS
6') traversée de repertoires
6'') récolte d'information
7) corruption mémoire
etc.
Haaa mais j'arrête pas de le dire. On a plus de développeurs qui réfléchissent à ce qu'ils codent. On a des exécutants qui doivent tenir des délais scandaleux avec des budgets à la ramasse, travaillant sur un projet qu'ils ne maîtrisent pas, supervisé par des chefs de projet qui comprennent rien à la technique. La première faille à réparer, elle est là.

Citation Envoyé par Steinvikel Voir le message
PS: c'est pas parce qu'on arrête une pratique qu'on perd 200 ans de progrès et de QI.
Quand on sait que quelque chose est inadapté, ou dangereux, on s'abstient simplement de l'utiliser, et on redouble d'effort pour lui trouver un remplaçant, une évolution.
Remplacer JS ? Quand je vois le nombre de dev JS, et le faible % qui sont passés à TypeScript (très bonne chose en passant), je me dit que le JS a encore au moins 30 ans de très bonne vie devant lui... Faudra faire avec, ou trouver une autre façon de concevoir l'internet.
Contacter le responsable de la rubrique Accueil