Les coûts en performance des correctifs de sécurité pour Spectre devraient diminuer sensiblement dans une future version de Windows 10

Alors que Intel a d’abord tenté de nier, puis de minimiser, l’impact sur les performances des correctifs de sécurité des micrologiciels et des systèmes d’exploitation pour la famille de vulnérabilité de sécurité Spectre et Meltdown, il s’est avéré significatif dans bien des cas, des ordinateurs portables aux serveurs.

Jeudi, dans un tweet, un membre de l’équipe de développement du noyau de Microsoft, indique que dans la version en développement 19H1 de Windows 10 – la toute nouvelle version disponible, ou bientôt disponible, Windows 10 October 2018 Update, a le numéro de version 1809 – l’impact de la réduction des risques de Spectre v2 sera réduit à presque rien dans la plupart des scénarios:

Pour cela, Microsoft combine deux optimisations : une « optimisation d’import » et retpoline.

Retpoline est l’abbréviation de Return Trampoline, ou trampoline de retour. Il s’agit d’une boucle infinie qui n’est en fait jamais exécutée, mais qui empêche le processeur de spéculer sur la cible d’un saut indirect en mémoire.

Presque tous les processeurs modernes, pas seulement ceux de Intel ou ceux qui sont compatibles avec les jeux d’instruction x86 ou x64, utilisent l’exécution spéculative pour gagner en performance.

Malheureusement, les impacts sur la sécurité n’ont pas été analysés avec suffisamment d’attention, et des bogues de sécurité sont apparus. Ils sont presque impossibles à anéantir, tant que les concepteurs de processeurs refuseront de faire marche arrière.

Pour simplifier, quand un programme prend une direction en fonction d’un résultat, un processeur moderne calcule les résultats les plus probables, et commence à exécuter le code résultant en parallèle pour prendre de l’avance.

Quand le résultat final est disponible, le processeur annule les chemins de code qu’il était en train d’exécuter à l’avance, pour ne garder que celui qui convient.

Le bogue consiste dans le fait que les autorisations ne sont pas respectées pendant les exécutions spéculatives. De plus, si les branches mortes sont abandonnées, le cache du processeur n’est pas nettoyé.

Il est possible pour un logiciel malveillant d’utiliser des instructions de branche indirecte afin de forcer l’exécution spéculative d’un code arbitraire.

Et l’attaquant peut exploiter le cache pour lire toute une partie arbitraire de la mémoire de la victime, et récupérer des informations sensibles.

Retpoline est l’option d’atténuation – et non d’anéantissement, même si l’on s’en approche – de ce type de risques, choisie par Linux.

Toutes les personnes qui ont constaté une baisse sensible des performances depuis l’installation des correctifs de sécurité pour Spectre et Meltdown dans Windows, ou bien une augmentation de l’utilisation du processeur, se réjouiront de la future version 19xx de Windows 10, où leur impact aura quasiment disparu.