Zola Bridges de Google pour le jeu de compilateurs LLVM, un patch mettant en œuvre la protection SESES (Suppression des Effets Secondaires de l'Exécution Spéculative), qui aide à bloquer les attaques contre le mécanisme d'exécution spéculative dans les CPU Intel, semblables à . La méthode de protection est réalisée au niveau du compilateur et repose sur l'ajout par le compilateur, lors de la génération du code machine, d'instructions , qui sont insérées avant chaque instruction de lecture ou d'écriture en mémoire, ainsi qu'avant la première instruction de branchement dans un groupe d'instructions terminant un bloc.
L'instruction LFENCE attend la fixation de toutes les opérations de lecture en mémoire précédentes et interdit l'exécution anticipée des instructions suivantes après LFENCE, jusqu'à ce que la fixation soit terminée. L'utilisation de LFENCE entraîne une baisse significative des performances, c'est pourquoi il est proposé de l'appliquer dans des cas extrêmes pour un code particulièrement critique. En plus de la protection complète, le patch propose trois options permettant de désactiver sélectivement certains niveaux de protection pour réduire l'impact négatif sur les performances.
Lors des tests effectués, l'application de la protection SESES pour le paquet BoringSSL a entraîné une réduction du nombre d'opérations exécutées par la bibliothèque par seconde de 14 fois — les performances de la version protégée de la bibliothèque se sont en moyenne élevées à seulement 7,1 % des performances de la version non protégée (variabilité selon le test de 4 % à 23 %).
Pour comparaison, auparavant pour GNU Assembler, le mécanisme réalisant le remplacement de LFENCE après chaque opération de chargement en mémoire et avant certaines instructions de branchement a montré une réduction des performances d'environ 5 fois (22 % par rapport au code sans protection). La méthode de protection a également et été développée par les ingénieurs d'Intel, mais les résultats des tests de performance pour celle-ci n'ont pas encore été publiés. À l'origine, les chercheurs qui ont identifié l'attaque LVI avaient prévu une réduction des performances lors de l'application de la protection complète de 2 à 19 fois.
Source : opennet.ru
