Edelweiss - Fotolia
Une vulnérabilité des puces Intel permet de contourner l’ASLR
Des chercheurs ont trouvé un moyen d’exploiter une faille des puces Intel pour contourner les protections offertes par la randomisation de la distribution de l’espace d’adressage.
Des chercheurs ont découvert une dangereuse faille dans les puces Intel qui pourrait permettre de conduire des attaques sur un vaste éventail de plateformes logicielles.
Dmitry Evtyushkin et Dmitry Ponomarev, du département d’informatique de de l’université de l’état de New York à Binghamton, et Nael Abu-Ghazaleh, de celle de Californie à Riverside, ont décrit un moyen de découvrir les zones mémoire où peuvent être chargés des éléments de code, exécutables donc, en s’attaquant à l’unité de prédiction de branchement du processeur. Un exercice de cartographie, en somme, réalisé en « environ 60 ms lorsqu’effectué sur un véritable processeur Haswell exécutant une version récente de Linux », et permettant de contourner la protection offerte par les mécanismes de distribution aléatoire de l’espace d’adressage (ASLR).
Ces mécanismes visent à rendre difficile, sinon impossible, pour un attaquant de savoir où se trouvent des zones de mémoire allouées à des éléments de code exécutables. Il s’agit là d’empêcher l’attaquant d’injecter dans la mémoire vive des éléments malicieux pour forcer le processeur à les exécuter à l’insu de l’utilisateur et des autres protections déployées sur la machine.
La vulnérabilité en question serait liée à la manière dont Intel utilise la mémoire tampon de branchement (Branch Target Buffer, ou BTB) dans ses puces : « les unités de prédiction de branche sont essentielles aux performances dans les processeurs modernes. L’un de leurs principaux composants est la mémoire tampon de branchement ». Celle-ci stocke l’adresse destination du branchement à l’occasion de la dernière exécution, afin de permettre sa réutilisation ultérieure. Mais voilà, « puis que le BTB est partagé par plusieurs applications s’exécutant sur le même cœur, une fuite d’information d’une application à l’autre est possible ».
Nael Abu-Ghazaleh a indiqué à nos confrères de SearchSecurity.com que si des processeurs Intel de la famille Haswell ont été utilisés pour l’étude, « il est probable que d’autres processeurs Intel soient également vulnérables, puisqu’ils s’appuient sur les mêmes principes généraux pour l’unité de prédiction de branchement ». Mais le fait qu’il soit possible de contourner ou non les protections offertes par l’ASLR « dépend de la configuration ».
Dans leur rapport, les chercheurs expliquent que leur attaque « ne nécessite que le contrôle d’un processus » s’exécutant dans l’environnement utilisateur, et « ne s’appuie sur aucune divulgation explicite de la mémoire ». Pour eux, le point clé est ici que des collisions au niveau du BTB « entre deux processus de niveau utilisateur, ou un processus de niveau utilisateur et le noyau, peuvent être créées par l’attaquant de manière contrôlée et robuste ».
Andre Joseph, consultant chez Cigital, se montre toutefois circonspect. Il relève que les chercheurs « présentent des méthodes forçant l’application victime à s’exécuter sur le même cœur que le processus malicieux, mais je ne suis pas sûr de la fiabilité de ces méthodes en pratique ».
De leur côté, les chercheurs estiment que des protections logicielles risquent de n’avoir qu’une portée limitée « parce qu’elles ne seront pas capables de contrôler la manière dont les branchements sont liés aux entrées du BTB ». Elles ne s’attaqueraient donc pas à la source du problème. Pour les chercheurs, le remède est donc à chercher du côté du matériel.
Adapté de l’anglais.