Hacking

Un code JavaScript suffit pour savoir quels sites web vous visitez

Des chercheurs ont montré que l’on pouvait espionner la navigation d’un Internaute en observant l’utilisation de la mémoire cache. A l’heure actuelle, il n’existe aucun moyen pour parer ce type d’attaque.

 

 

Mesure du temps d’accès au cache

Comment est-ce possible ? Le code JavaScript développé par les chercheurs alloue un espace mémoire au niveau de la mémoire cache, puis mesure le temps d’accès à cet espace. Lorsque l’utilisateur charge un site web, la composition de la mémoire cache est modifiée, ce qui impacte le temps d’accès. Et il se trouve que ce changement permet de caractériser l’identité du site avec un haut niveau de probabilité.

Pour réaliser cette attaque, les chercheurs ont d’abord récolté les empreintes de milliers de sites différents. Chaque empreinte peut être représentée graphiquement sous la forme d’un « memorygram » qui affiche les accès au cache de la mémoire. Plus les traces sont foncées, plus le temps d’accès est élevé. On remarque que les graphiques sont très différents d’un site à l’autre.

 

 

Ces données ont été injectées dans des algorithmes d’apprentissage automatique pour créer un détecteur. Celui-ci a ensuite été testé sur différentes configurations informatiques, tant au niveau du système (Linux, Windows, macOS) que du navigateur (Firefox, Chrome, Safari, Tor). Résultat : l’identification des sites s’est faite avec taux de réussite de 70 à 90 % pour les navigateurs classiques. Elle n’est que de 45 à 60 % sur Tor car ce navigateur bride la fréquence d’accès à la mémoire cache (un accès tous les 100 ms contre au moins 2 ms pour les autres navigateurs).

Certains objecteront que les empreintes dépendent forcément du type de mémoire cache sous-jacente, ce que l’attaquant n’est pas censé connaître. Mais les chercheurs ont également montré qu’il était possible de développer un JavaScript permettant de détecter cette caractéristique matérielle au préalable.

Un risque pour le cloud computing

L’avantage d’une telle attaque est qu’elle contourne toutes les protections qui existent actuellement au niveau des navigateurs. Même si chaque page tourne dans un bac à sable différent, elle fonctionne quand même. Elle est également indépendante du trafic réseau. Chiffrer les échanges, les faire passer par une multitude de proxy ou leur injecter du bruit pour camoufler les volumes de trafic ne change rien. Le détecteur fonctionnera toujours aussi bien. A noter que cette attaque impacte également les environnements d’exécution partagés, tel que le cloud. Il suffit que la base matérielle soit la même.

Quelle solution peut-on alors envisager ? Les chercheurs en préconisent deux :  partitionner la mémoire cache pour séparer les activités sensibles des autres ; ou introduire du bruit dans l’activité de la mémoire cache. Dans les deux cas, il est probable que cela impactera les performances de l’ordinateur.

Comment here

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.

fr_FRFrench
en_USEnglish fr_FRFrench