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.
Pour surfer de manière anonyme sur la Toile, utiliser le navigateur Tor est un bon début, mais ce n’est pas forcément suffisant. Il est également judicieux de fermer tous les autres navigateurs éventuellement ouverts, car ces derniers pourraient révéler vos pérégrinations. Un groupe de chercheurs en sécurité vient en effet de découvrir qu’il était possible de surveiller la navigation web d’un utilisateur en observant l’utilisation de la mémoire cache de l’ordinateur depuis un simple code JavaScript. En d’autres termes, il suffit d’ouvrir un site hébergeant un tel code malveillant pour que cet onglet de navigation soit capable d’espionner tous les autres onglets qui tournent sur la même machine, qu’ils appartiennent au même navigateur ou non. Et y compris ceux du navigateur Tor.
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.