Contribution à la sécurité des systèmes d'exploitation et des microprocesseurs
Institution:
Paris 11Disciplines:
Directors:
Abstract EN:
Most of the time, operating systems use hardware components specification as an input for the definition and the formalisation of their security model. Therefore, an operating system will only be able to enforce its own security policy if the specifications of the hardware components that are involved are correct and reliable. In this document, we show how structural weaknesses of hardware components should be considered as threats to operating systems that rely on such components. We will mostly focus on PC computers using x86 or x86-64 processors and give precise examples of such weaknesses. For instance, we will show how it is possible for an attacker with limited privileges on a target machine to circumvent operating systems mandatory security functions or to achieve something that is against the global security policy using only atomic actions that can rightfully be considered legitimate in the operating system security policy. For example, we will show how it is possible for an attacker to use weaknesses in the transition model between operating modes of x86 processors to get to run code with privileges equivalent to those of the operating system kernel without the kernel actually noticing it. Also, we show how the very fact that some mechanisms are implemented in motherboard chipsets can threaten the reliability and efficiency of processors-related memory protection functions, and how it is possible for an attacker to use such weaknesses as a means for privilege escalation over a target system.
Abstract FR:
Pour établir leurs modèles de fonctionnement et de sécurité, les systèmes d’exploitation modernes s’appuient sur les spécifications des composants matériels qu’ils utilisent. La capacité d’un système d’exploitation à faire respecter sa politique de sécurité repose donc, entre autres, sur la fiabilité et la correction des spécifications des composants matériels sous-jacents. Dans ce document, nous montrons, exemples concrets à l’appui, comment des faiblesses architecturales des composants matériels des ordinateurs de type PC mettant en œuvre des processeurs x86 et x86-64 peuvent mettre en danger la sécurité des systèmes d’exploitation qui les utilisent. Nous montrons en particulier que ces faiblesses se traduisent par la possibilité, pour un attaquant capable d’exécuter du code sur une machine cible, d’obtenir la réalisation d’une action contraire à la politique de sécurité en vigueur, comme le contournement d’un mécanisme de sécurité impératif, en n’effectuant que des actions atomiques légitimes du point de vue de la politique de sécurité d’un système d’exploitation et en ne mettant en œuvre que des fonctionnalités documentées de ce dernier. Par exemple, nous montrons qu’il est possible pour un attaquant d’utiliser des faiblesses dans les mécanismes de transition entre les modes de fonctionnement d’un processeur x86 pour obtenir l’exécution de code avec des privilèges équivalents à ceux du système d’exploitation à l’insu complet de ce dernier. Nous montrons en outre comment la présence de certaines fonctionnalités dans les chipsets des cartes mères peut remettre en question l’efficacité des mécanismes de cloisonnement mémoire des processeurs.