Des chercheurs de l'Université technique de Graz (Autriche) des informations sur une nouvelle méthode d'attaque par canaux auxiliaires (), permettant d'extraire des informations confidentielles d'autres processus, du système d'exploitation, des machines virtuelles et des enclaves sécurisées (TEE, Trusted Execution Environment). Le problème concerne uniquement les processeurs Intel. Des composants pour bloquer le problème dans la mise à jour d'hier .
Le problème appartient à la classe MDS (Microarchitectural Data Sampling) et est une version améliorée de en mai, l'attaque ZombieLoad. ZombieLoad 2.0, tout comme d'autres attaques de la classe MDS, repose sur l'utilisation de techniques d'analyse par canaux auxiliaires sur des données dans des structures microarchitecturales (par exemple, dans des tampons de remplissage (Line Fill Buffer) et de stockage (Store Buffer), où des données utilisées lors des opérations Load et Store sont temporairement conservées).
La nouvelle variante de l'attaque ZombieLoad sur une fuite qui se produit lors de l'activation du mécanisme d'interruption asynchrone des opérations (TAA, TSX Asynchronous Abort), mis en œuvre dans l'extension TSX (Transactional Synchronization Extensions), qui fournit des outils pour travailler avec une mémoire transactionnelle, permettant d'améliorer la performance des applications multithread grâce à l'exception dynamique des opérations de synchronisation non nécessaires (des transactions atomiques qui peuvent être soit acceptées, soit annulées sont prises en charge). En cas d'interruption, les opérations effectuées avec la région mémoire transactionnelle sont annulées.
L'interruption de la transaction est effectuée de manière asynchrone, et pendant ce temps d'autres threads peuvent accéder au cache, qui est également utilisé dans la région de mémoire transactionnelle rejetée. Du début à la fin réelle de l'interruption asynchrone de la transaction, des situations où le processeur peut lire des données des buffers internes microarchitecturaux et les transmettre à une opération exécutée de manière spéculative ne sont pas exclues. Ensuite, un conflit sera identifié et l'opération spéculative sera rejetée, mais les données resteront dans le cache et pourront être récupérées en utilisant des méthodes de récupération de cache par canaux auxiliaires.
L'attaque consiste à ouvrir des transactions TSX et à créer des conditions pour leur interruption asynchrone, pendant laquelle des conditions de fuite de contenu des buffers internes, spéculativement remplis avec des données provenant des opérations de lecture en mémoire exécutées sur le même cœur du CPU, se produisent. La fuite est limitée au cœur physique actuel du CPU (sur lequel le code de l'attaquant s'exécute), mais comme les buffers microarchitecturaux sont partagés entre différents threads en mode Hyper-Threading, il est possible qu'une fuite des opérations mémoire exécutées dans d'autres threads CPU se produise.
Attaque certains modèles de processeurs Intel Core de 8e, 9e et 10e génération, ainsi que l'Intel Pentium Gold, l'Intel Celeron 5000, l'Intel Xeon E, l'Intel Xeon W et la deuxième génération d'Intel Xeon Scalable. Les nouveaux processeurs Intel basés sur l'architecture microarchitecturale Cascade Lake présentée en avril, initialement non vulnérables aux attaques RIDL et Fallout, sont également concernés par l'attaque. En plus de Zombieload 2.0, les chercheurs ont également identifié la possibilité de contourner les méthodes de défense précédemment proposées contre les attaques MDS, basées sur l'instruction VERW pour nettoyer le contenu des buffers microarchitecturaux au moment du retour de l'espace noyau à l'espace utilisateur ou lors du transfert de contrôle à un système invité.
Dans le rapport d'Intel, il est affirmé que dans des systèmes avec une charge de travail hétérogène, la possibilité de mener l'attaque est compliquée, car la fuite des structures microarchitecturales englobe toute l'activité dans le système et l'attaquant ne peut pas influencer la source des données extraites, c'est-à-dire qu'il peut uniquement accumuler les informations qui remontent en conséquence de la fuite et tenter d'identifier parmi ces données des informations utiles, sans possibilité de intercepter délibérément les données liées à des adresses mémoire spécifiques. Cependant, les chercheurs ont publié , fonctionnant sous Linux et Windows, et la possibilité d'appliquer l'attaque pour déterminer le hachage du mot de passe de l'utilisateur root a également été démontrée.
de mener l'attaque depuis un système invité pour accumuler des données qui figurent dans les opérations d'autres systèmes invités, de l'environnement hôte, de l'hyperviseur et des enclaves Intel SGX.

Des correctifs pour bloquer la vulnérabilité ont été intégrés dans la base de code du noyau Linux et font partie des versions . Des mises à jour avec le noyau et le microcode ont également déjà été publiées pour les principales distributions (, , , , , ). Un problème a été identifié en avril et le correctif a été coordonné par Intel avec les développeurs de systèmes d'exploitation.
La méthode la plus simple pour bloquer Zombieload 2.0 consiste à désactiver la prise en charge de TSX dans le CPU. La correction proposée pour le noyau Linux inclut plusieurs options de protection. La première option propose le paramètre « tsx=on/off/auto », permettant de gérer l'activation de l'extension TSX dans le CPU (la valeur auto désactive TSX uniquement pour les CPU vulnérables). La deuxième option de protection est activée par le paramètre « tsx_async_abort=off/full/full,nosmt » et repose sur le nettoyage des buffers microarchitecturels lors du changement de contexte (le drapeau nosmt désactive en outre SMT/Hyper-Threads). Pour vérifier la vulnérabilité du système, un paramètre est prévu dans sysfs : « /sys/devices/system/cpu/vulnerabilities/tsx_async_abort ».
De plus, dans le microcode une autre () dans les processeurs Intel, qui est également bloquée dans le dernier noyau Linux. La vulnérabilité permet à un attaquant non privilégié d'initier un déni de service, provoquant un gel du système dans un état « Machine Check Error ».
L'attaque peut également depuis un système invité.
Source : opennet.ru
