Il ressemble à FineIBT comme combinant le meilleur de la technologie d’application du flux de contrôle d’Intel et de l’intégrité du flux de contrôle, une implémentation alternative améliorée de l’intégrité du flux de contrôle (CFI) pourrait être prête pour la ligne principale avec le prochain cycle Linux 6.2.

La prise en charge de FineIBT a été ajoutée à la branche x86/core de TIP où les modifications du noyau x86 résident normalement jusqu’à ce qu’elles soient soumises dans le cadre de la fenêtre de fusion du prochain cycle du noyau. Compte tenu du timing et de l’absence de problèmes soulevés avec FineIBT, maintenant qu’il a atteint TIP x86/core, il est susceptible d’être ensuite soumis pour la fenêtre de fusion Linux 6.2 en décembre.

Les ingénieurs d’Intel ont travaillé sur ce code”Fine Indirect Branch Tracking”. Comme expliqué dans le correctif :

Mettez en œuvre un schéma CFI alternatif qui fusionne à la fois la nature à grain fin de kCFI, mais tire également pleinement parti du CFI matériel à grain grossier fourni par IBT.

Pour contraster :

kCFI est un schéma CFI purement logiciel et repose sur la capacité de lire du texte-en particulier l’instruction * avant * le symbole cible, et effectue la validation du hachage * avant * de faire le appel (sinon le flux de contrôle est déjà compromis).

FineIBT est un schéma hybride logiciel et matériel ; en s’assurant que chaque cible de branche commence par une validation de hachage, il est possible de placer la validation de hachage après la branche. Cela présente plusieurs avantages :

o le chargement (de hachage) est évité ; pas de mémo; aucune exigence de réception.

o L’état IBT WAIT-FOR-ENDBR est un arrêt de spéculation ; en plaçant la validation de hachage dans l’instruction immédiate après la cible de branche, il y a une fenêtre de spéculation minimale et l’ensemble est une défense viable contre SpectreBHB.

o Kees se sent obligé de mentionner qu’il est légèrement plus vulnérable lorsque l’attaquant peut écrire du code.

Évidemment, ce correctif s’appuie sur kCFI, mais il s’appuie également sur le rembourrage des correctifs de suivi de la profondeur des appels. Il utilise ce rembourrage pour placer la validation de hachage pendant que les sites d’appel sont réécrits pour modifier la cible indirecte à 16 octets devant la cible d’origine, frappant ainsi ce nouveau préambule.

Notamment, aucun matériel n’a besoin du suivi de la profondeur des appels (Skylake) et prend en charge IBT (Tigerlake et versions ultérieures).

L’option de configuration pour cette fonctionnalité du noyau est sous”FINEIBT”.

Categories: IT Info