Lors du 49e Symposium international sur la Microarchitecture (IEEE/ACM) qui s’est tenu du 15 au 19 octobre à Taipei, trois chercheurs de l'Université de New York (à Binghamton) et de l'Université de Californie (à Riverside) ont présenté une technique permettant de contourner de manière fiable la technologie ASLR (Address Space Layout Randomization) anti-exploit caractéristique des processeurs Haswell d'Intel sur laquelle s’appuient les principaux systèmes d'exploitation. La distribution aléatoire de l'espace d'adressage ou ASL est un mécanisme de sécurité qui consiste à inscrire de façon aléatoire certaines données de configuration dans la mémoire virtuelle, de sorte que les attaquants ne savent pas où se trouvent les éléments de base pour injecter leur exploit. L’ASLR est utilisé pour prévenir les problèmes de corruption de mémoire, par débordement de tas ou de pile, par l'exécution de code arbitraire, qui diffèrent des plantages. Pour exploiter ce type de vulnérabilité, les pirates doivent injecter le code malveillant à un endroit de la mémoire où seront exécutés en temps normal un processus cible ou le noyau de l’OS lui-même.

Dans leur document, les trois chercheurs expliquent que l’adresse de destination du branchement ou branch target buffer (BTB), un mécanisme de mise en cache utilisée par l’unité de prédiction du branchement de la CPU, peut être utilisée pour identifier les adresses ASLR en déclenchant des collisions BTB entre différents processus ou entre des processus et le noyau. Le mécanisme de prédiction de branchement est utilisé dans les derniers processeurs pour optimiser les performances. « Les magasins BTB ciblent les adresses d’instructions de branchement récemment exécutées, et il devient possible d’identifier ces adresses directement en consultant la BTB et de récupérer les instructions au niveau de la cible pour le cycle suivant », expliquent les chercheurs. « Étant donné que le BTB est partagé par plusieurs applications qui exécutent le même noyau, les fuites d'informations d'une application à une autre par le canal BTB secondaire sont possibles ».

Des solutions d'atténuation proposées par les chercheurs

Pour démontrer le détournement de la protection ASLR, les chercheurs ont utilisé un ordinateur équipé d'un processeur Intel Haswell exécutant la version 4.5 de Linux récent. Avec leur technique d’attaque, ils ont réussi à récupérer de façon fiable le noyau ASLR en utilisant des collisions BTB. Le tout en 60 millisecondes environ. Dans leur document, les chercheurs proposent aussi des logiciels et des solutions d’atténuation basées sur le hardware capables d’empêcher les attaques BTB secondaires ou de renforcer les implémentations ASLR actuelles. Aujourd’hui, les pirates utilisent d'autres méthodes pour contourner la protection ASLR, mais ils doivent généralement trouver d'autres vulnérabilités permettant des fuites de mémoire et les combiner avec la faille initiale de corruption de mémoire. Ces dernières années, les éditeurs ont amélioré la sécurité des logiciels, et pour réussir la majorité des attaques par exécution de codes à distance, les pirates doivent aujourd’hui combiner plusieurs exploits. Intel n'a pas répondu à une demande de commentaires de notre confrère d’IDG NS.