Qu’est-ce Hertzbleed et qu’est-ce qui le rend si unique ?

L’une des études les plus complexes, mais facile à comprendre, sur l’infosécurité de ces derniers temps.

En juin, des chercheurs de trois universités américaines ont publié un article décrivant une attaque réelle qui abuse du fait que les changements de fréquence du processeur dépendent de la charge qu’il supporte (comportement standard pour les processeurs modernes). La fréquence du processeur est mesurée en hertz, d’où le nom de Hertzbleed, faisant allusion au fait qu’un changement de cette fréquence entraîne une fuite de données.

Cette méthode peut être classée comme une attaque matérielle, c’est-à-dire une attaque qui exploite les vulnérabilités ou autres faiblesses spécifiques du matériel. Il existe de nombreuses attaques de ce type, mais presque toutes nécessitent un accès direct au poste cible ou à une puce spécifique. Mais Hertzbleed peut fonctionner à distance !

Cette étude est d’un grand intérêt et, malgré sa complexité, elle peut être résumée dans des termes simples. Cependant, pour en comprendre au moins les subtilités, il est nécessaire d’avoir quelques connaissances de base. Nous avons donc décidé de faire les deux : de publier une explication simple au sujet de Hertzbleed, et une autre légèrement plus compliquée (mais toujours sans graphiques sophistiqués ni calculs obscurs).

Comme il est désormais habituel, Hertzbleed a son propre site et son propre logo. Le logo reprend l’essence même de la vulnérabilité : la modification de la fréquence du processeur entraîne des fuites. Source

 

L’explication simple

Pour économiser de l’énergie, les processeurs modernes ne maintiennent pas la même fréquence en continu. Au lieu de cela, la fréquence (ainsi que la tension du processeur) s’ajuste automatiquement en fonction de sa charge. Lorsque les tâches sont peu nombreuses, la fréquence peut être très basse (par exemple, 900 MHz au lieu de la fréquence nominale de 3,2 GHz). Si les tâches sont nombreuses, la fréquence d’un ou de tous les cœurs du processeur peut être augmentée au-dessus de la valeur de base. En pratique, la charge (le nombre et la complexité des tâches) n’est pas le seul critère de modification la fréquence. Celle-ci peut par exemple être abaissée si le processeur surchauffe.

Les chercheurs ont réussi à exploiter cette fonctionnalité native pour mesurer l’état du processeur lorsqu’il exécutait un programme de cryptage de données et ainsi voler des informations sensibles. Ils ont trouvé une caractéristique d’un algorithme de cryptage moderne qui  » force  » le processeur à augmenter la fréquence lors du traitement de certaines données. Lorsque la fréquence augmente, les données sont traitées plus rapidement, et l’ordinateur attaqué répond plus vite aux demandes. Les chercheurs ont pu reconstruire la clé secrète de cryptage en mesurant le temps de réponse. Armés de cette clé, ils peuvent théoriquement intercepter et décrypter les données échangées par le système cible, par exemple avec d’autres ordinateurs dans un réseau privé virtuel. Et tout cela sans avoir qu’il n’y ait la moindre chance d’enregistrer le  » vol  » de la clé.

Hertzbleed développe l’idée d’attaques matérielles par le biais de canaux dits secondaires. En même temps, il introduit la possibilité théorique de voler des données à distance en envoyant des requêtes à la victime potentielle via le réseau. Pour l’instant, cela reste un exercice purement théorique dans la recherche de vulnérabilités complexes dans les processeurs modernes. Il est néanmoins tout à fait possible que de telles attaques soient « simplifiées » à l’avenir.

Une légèrement plus compliquée

Les attaques par canal latéral sont réalisées en observant indirectement le fonctionnement d’une seule puce ou d’un ordinateur entier. La méthode classique d’attaque par canal latéral consiste à observer les variations du courant électrique consommé par la puce. Si la puce est en train de chiffrer des données à l’aide d’une clé secrète, par exemple, les variations de la consommation électrique peuvent dans certains cas être utilisées pour reconstruire la clé.

Les canaux latéraux peuvent être logiciels ou matériels. La célèbre étude Spectre utilise un canal latéral de ce type directement dans le processeur, en exploitant des fonctions d’exécution spéculative pour voler des informations sensibles. De plus, il n’est parfois pas nécessaire de brancher un voltmètre à l’ordinateur pour surveiller la consommation d’énergie du processeur car il y en a souvent un intégré. Une attaque liée à Hertzbleed a déjà été développée en utilisant un système de surveillance de la consommation électrique moyenne des processeurs Intel.

Penchons-nous maintenant sur réglage dynamique de la fréquence du processeur. Cela est possible grâce à la technique DVFS, c’est-à-dire la mise à l’échelle dynamique de la tension et de la fréquence. En effet, la tension du processeur, tout comme la fréquence, varie pour assurer des conditions de fonctionnement optimales (faible consommation d’énergie à faible charge, fonctionnement stable à capacité maximale). Les chercheurs décrivent en détail comment ils ont réalisé de nombreuses expériences DVFS sur des processeurs Intel (Intel lui-même appelle cette technologie Turbo Boost). Ils ont chargé le processeur avec une charge négligeable (des calculs arithmétiques de base) et ont observé les modifications de la fréquence. Plusieurs tendances se sont dégagées : pour simplifier au maximum, avec un ensemble de données de calcul, la fréquence du processeur avait tendance à augmenter, mais pas avec un autre. De même, une fréquence accrue entraînait des calculs plus rapides et, par conséquent, un résultat plus rapide.

Examinons un troisième terme technique pertinent pour tout cela : la programmation en temps constant. Ce terme est important pour l’implémentation d’un algorithme de cryptage dans un programme. Supposons que nous ayons un programme qui reçoit une certaine phrase en entrée et qui émet la même phrase, mais cryptée. Nous pouvons saisir des données, mais nous ne connaissons pas la clé secrète de cryptage, que nous essayons de déterminer en observant le temps d’exécution, puisque le temps d’exécution de la fonction dépend des données d’entrée. Cela revient à tenter de pénétrer dans un coffre-fort verrouillé par un code numérique secret qui réagit de manière légèrement différente aux séquences de chiffres presque justes, en donnant des indices de type « froid » et « chaud ». La plupart des programmes qui mettent en œuvre des algorithmes de cryptage comportent un mécanisme de protection destiné à empêcher toute tentative de déterminer la clé de cette manière : c’est le principe même de la programmation en temps constant.

Le résultat le plus important de l’étude de Hertzbleed est que l’ajustement dynamique de la fréquence du processeur brise le principe de la programmation en temps constant, c’est-à-dire l’invariance temporelle dans le cryptage. Les auteurs ont montré comment en profiter. Pour cela, ils ont pris un système doté d’un logiciel de cryptage de données réel et ont introduit une séquence de caractères, que le programme a ensuite essayé de décrypter. Les entrées ont été choisies pour créer les conditions permettant à un attaquant de reconstruire la clé de cryptage. De plus, la clé est extraite par un canal latéral. Cela signifie que la fuite de données se produit en raison d’un changement de la fréquence du processeur et, par conséquent, du temps d’exécution du programme et du temps de réponse à la demande de l’attaquant.

Des conséquences manquantes

Dans notre « explication légèrement plus compliquée » de la méthode Hertzbleed, nous avons couvert environ… 0,05 % des informations réelles présentées par les chercheurs. Il existe d’innombrables autres nuances également pertinentes pour comprendre le fonctionnement. Ils ont notamment utilisé une caractéristique de l’algorithme d’encapsulation des clés SIKE pour créer les conditions permettant de rendre possible la fuite par le biais du temps de réponse ou du changement de fréquence. Cette méthode est similaire à l’attaque Spectre susmentionnée, qui nécessite la création de conditions spéciales dans le logiciel attaqué pour permettre le vol de données importantes. Sur la base des résultats de l’étude, il est impossible de dire sans équivoque si la vulnérabilité se trouve dans le processeur ou dans le programme.

Et il faut mentionner un aspect flagrant de la réalisation : bien que les chercheurs aient démontré une attaque réelle et pratique (et non théorique), ils l’ont réalisée dans des conditions contrôlées. La variation du temps de réponse en fonction des entrées était toujours constante. Qu’en est-il si le processeur exécute simultanément d’autres tâches qui affectent également le temps de réponse et rendent les données plus bruyantes ? Enfin, même dans ces circonstances idéales, la reconstruction de la clé de cryptage (dans deux expériences différentes) a pris 36 heures et 89 heures ! Pendant ce temps, des milliers de requêtes par seconde ont été envoyées au programme de cryptage, ce qui était le seul moyen de s’assurer que toutes les caractéristiques nécessaires au fonctionnement du logiciel et du matériel étaient alignées pour aboutir à la fuite. C’est extrêmement long !

La réaction à cette étude a donc été ambiguë. D’une part, les vulnérabilités ont reçu les identifiants habituels : CVE-2022-23823 pour Intel, et CVE-2022-24436 pour AMD. Il semblerait que le problème se situe, après tout, dans les processeurs. Intel et AMD ont cependant indiqué qu’ils ne prévoyaient pas de publier de mises à jour pour les systèmes concernés (pour Intel, il s’agit des processeurs de la 8e à la 11e génération). En fait, la modification de l’algorithme SIKE a rendu l’attaque démontrée impossible. Microsoft et Cloudflare, qui utilisent SIKE comme l’un des éléments de leurs systèmes de cryptage, ont mis à jour leur propre logiciel.

Néanmoins, l’étude a une importance considérable. Comme Spectre en 2018, ce ne sera pas la dernière attaque de cette classe. Si un exemple de fuite de données par ajustement dynamique de la fréquence du processeur peut être démontré, d’autres suivront certainement. C’est aussi un ensemble de travaux importants pour les spécialistes du cryptage. SIKE est un algorithme plutôt récent, candidat au titre de « solution de cryptographie post-quantique ». Il a été analysé pour sa robustesse contre toute attaque par canal latéral, et s’est avéré assez résistant. Cependant, l’étude de Hertzbleed a montré que de nouvelles options sont apparues.

En somme, comme c’est souvent le cas avec de telles études, cette attaque a été « découverte » mais n’a pas pu être mise en œuvre de manière complète et réussi dans des conditions réelles. Les développeurs de processeurs et de programmes particulièrement sensibles au hacking tireront leurs propres conclusions et apporteront des modifications avant qu’il ne soit possible de réellement voler quelque chose. Mais il y a une petite chance que la prochaine fois, ces chercheurs ou d’autres trouvent quelque chose qui permette aux attaquants d’intercepter le trafic réseau crypté ou de casser le cryptage tout en restant anonyme, par exemple. Avec un peu d’imagination, il est possible d’amplifier le schéma décrit dans cette étude à de telles proportions. Cela reste à prouver, et l’étude de Hertzbleed (et la difficulté que nous avons eue à la décrire en termes simples) montre que ce n’est pas une tâche facile. Pour les vulnérabilités de classe Spectre, aucune avancée de ce type n’a été démontrée depuis plus de quatre ans. Ici aussi, les choses vont probablement continuer à stagner : dans un an environ, un autre rapport sera publié, qui fera légèrement progresser et clarifiera le précédent. C’est un résultat positif. Après tout, nous avons déjà assez de problèmes avec la cybersécurité !

Conseils