Table des matières
Canaux latéraux secrets
La contention de port devient portable : canaux latéraux de contention de port dans les navigateurs Web
Les attaques microarchitecturales ont été largement explorées ces dernières années. Ils peuvent avoir un impact important sur la sécurité en permettant aux attaquants de contourner l’isolation du système. Cependant, pour monter une telle attaque, l'attaquant doit exécuter du code sur la machine de la victime, ce qui constitue une condition essentielle dans les systèmes actuels, où les utilisateurs se méfient de plus en plus du code inconnu.
Notre attaque montre le canal secret le plus rapide du navigateur, brisant ainsi le modèle d'isolation au cœur du modèle de sécurité des navigateurs modernes. Grâce à ce canal secret, un attaquant peut échanger des cookies avec d'autres onglets ou divulguer des informations secrètes.
Article complet - https://hal.inria.fr/hal-03708833/document
Ces optimisations peuvent divulguer des informations sensibles. Un utilisateur malveillant peut exploiter les différences de temps de calcul pour récupérer des informations secrètes. Ces canaux latéraux microarchitecturaux peuvent cibler de nombreux composants matériels différents, mais la plupart d’entre eux partagent deux prérequis majeurs :
- Un minuteur haute résolution pour détecter les subtiles différences de synchronisation causées par les optimisations. De manière générale, ces attaques nécessitent une résolution de quelques nanosecondes.
- Exécution de code malveillant sur la machine de la victime, afin d'utiliser son matériel.
Contre-mesures
Des contre-mesures pour cette vulnérabilité pourraient potentiellement être mises en œuvre à trois niveaux différents :
- Niveau matériel — à la base, la contention de port exploite le partage des ports CPU entre une victime et un attaquant, en s'appuyant fortement sur l'HyperThreading. Certaines parties ont choisi de le désactiver totalement, mais cela entraîne un coût élevé en termes de performances, entraînant une dégradation des performances de 15 %. Des recherches ont proposé des solutions alternatives, principalement basées sur la mise en œuvre de l'HyperThreading mais sur le partitionnement des ressources afin qu'elles ne soient pas partagées.
- Niveau système d'exploitation — au niveau du système d'exploitation/du logiciel, certains ont suggéré un code indépendant du port, c'est-à-dire que l'utilisation du port ne diffère pas en fonction d'un secret. Cependant, cela nécessite de réécrire tout le code préexistant et de former tous les développeurs de logiciels. Le planificateur pourrait également être conscient des attaques SMT et, par exemple, permettre à des opérations hautement sensibles de s'exécuter sur des cœurs physiques différents de ceux des autres calculs.
- Niveau navigateur — après la publication d'attaques microarchitecturales précédentes dans le bac à sable JavaScript, plusieurs contre-mesures ont été mises en œuvre. Une solution populaire consiste à supprimer l’accès aux minuteries haute résolution. Cependant, nous avons vu que ce n'est pas une tâche facile, car des minuteries auxiliaires peuvent toujours être construites. Les fournisseurs de navigateurs ont également essayé d'ajouter davantage d'isolation, principalement au niveau des processus, mais cela n'a que peu ou pas d'impact sur les attaques par contention de port. Les fournisseurs de navigateurs affirment qu'étant donné le niveau élevé d'abstraction des navigateurs, les mesures d'atténuation au niveau du navigateur ne sont pas viables et entraînent des coûts trop élevés pour de faibles résultats.