Un ingénieur de Google a proposé une protection logicielle des processeurs contre les attaques LVI

Il y a quelque temps, on a découvert une nouvelle vulnérabilité dans l'architecture spéculative des processeurs Intel, appelée Injection de valeur de charge (LVI). Intel a sa propre opinion sur les dangers du LVI et des recommandations pour l'atténuer. Votre propre version de protection contre de telles attaques proposé ingénieur chez Google. Mais pour la sécurité, vous devrez payer en réduisant les performances du processeur de 7 % en moyenne.

Un ingénieur de Google a proposé une protection logicielle des processeurs contre les attaques LVI

Nous avons noté plus haut que le danger du LVI ne réside pas dans le mécanisme spécifique découvert par les chercheurs, mais dans le principe même de l'attaque par canal secondaire du LVI, qui a été démontré pour la première fois. Ainsi, une nouvelle direction a été ouverte pour des menaces que personne n'avait soupçonnées auparavant (du moins, cela n'a pas été discuté dans l'espace public). La valeur du développement du spécialiste de Google, Zola Bridges, réside donc dans le fait que son correctif atténue le danger de nouvelles attaques, même inconnues, basées sur le principe LVI.

Auparavant dans GNU Project Assembler (Assembleur GNU) des modifications ont été apportées pour réduire le risque de vulnérabilité LVI. Ces changements consistaient à ajouter consignes barrières LFENCE, qui établissait une séquence stricte entre les accès mémoire avant et après la barrière. Le test du correctif sur l'un des processeurs Intel de la génération Kaby Lake a montré une diminution des performances allant jusqu'à 22 %.

Le développeur de Google a proposé son correctif avec l'ajout d'instructions LFENCE à l'ensemble du compilateur LLVM, et a appelé la protection SESES (Speculative Execution Side Effect Suppression). L'option de protection qu'il a proposée atténue à la fois les menaces LVI et d'autres similaires, par exemple Spectre V1/V4. L'implémentation SESES permet au compilateur d'ajouter des instructions LFENCE aux emplacements appropriés lors de la génération du code machine. Par exemple, insérez-les avant chaque instruction de lecture de la mémoire ou d'écriture en mémoire.

Les instructions LFENCE empêchent la préemption de toutes les instructions suivantes jusqu'à ce que les lectures de mémoire précédentes soient terminées. Évidemment, cela affecte les performances des processeurs. Le chercheur a constaté qu'en moyenne, la protection SESES réduisait de 7,1 % la vitesse d'exécution des tâches utilisant la bibliothèque protégée. La fourchette de réduction de productivité dans ce cas variait de 4 à 23 %. Les prévisions initiales des chercheurs étaient plus pessimistes, évoquant une réduction des performances jusqu'à 19 fois.



Source: 3dnews.ru

Ajouter un commentaire