La sécurité par l'isolation : différentes approches

Il est intéressant de considérer les approches sécuritaires possibles avec différents systèmes d'exploitation dans l'espace mobile et au-delà.
Nous avons déjà parlé de Chrome OS, dont le concept de sécurité repose essentiellement sur l’isolation fournie par le navigateur Chrome entre les différentes applications web. Il est intéressant de considérer les approches sécuritaires possibles avec différents systèmes d’exploitation dans l’espace mobile et au-delà.
La sécurisation d’un système d’exploitation passe par la réduction de la Trusted Code Base (TCB), le socle de code exécuté avec le plus haut niveau de privilège (le noyau), afin de diminuer la surface d’attaque, et par la minimisation des privilèges qui ont besoin d’être accordés aux applications pour réduire les points d’entrée de l’attaquant.
Le nouveau système d’exploitation mobile de Microsoft, Windows Phone 7, a été entièrement reconstruit sur la base de ces principes de sécurité. La TCB a été réduite au maximum. Internet Explorer, à la source de tant d’attaques contre les systèmes d’exploitation (OS) de Microsoft, est désormais entièrement hors de la TCB. Le nouveau système mobile de Microsoft est ainsi un des plus sûrs par construction. De plus, il intègre les mécanismes de sécurité introduits dans Windows depuis Vista, tels l’ASLR et l’interdiction d’exécution des zones de données (NX), dont l’objet est de compliquer les exploits de vulnérabilité.
Une approche fournisseur par toujours adéquate
Côté Linux, l’embonpoint du noyau va à l’encontre de la sécurité. L’exemple type de fonction pour laquelle l’exécution en mode privilégié est superflue est bien sûr la couche réseau, entièrement intégrée au noyau et offrant ainsi un champ d’attaque très large. La situation diffère cependant un peu entre l’iOS d’Apple, qui a pris en compte la sécurité, par exemple en utilisant les fonctionnalités ASLR et NX optionnelles dans Linux, et Android, qui reste un désert sécuritaire en termes de système d’exploitation.
L’approche de la sécurité habituellement mise en avant par les fournisseurs de solution de virtualisation consiste en l’isolation de plusieurs systèmes d’exploitation les uns des autres. Elle ne rend pas un OS virtualisé plus sûr : les problèmes de sécurité de ce dernier seront toujours présents pour les applications exécutées en son sein. Il existe cependant une autre démarche, utilisable pour sécuriser un système d’exploitation tel que Linux. La couche de virtualisation de plus bas niveau, appelée hyperviseur, peut être utilisée dans une refonte de l’OS comme le moyen d’externaliser toutes les fonctions habituellement exécutées entièrement en mode privilégié bien que cela ne soit pas justifié. Ainsi fonctionne l’OS Qubes, dérivé de Linux et basé sur la solution de virtualisation Xen. Sa conceptrice, Joanna Rutkowska, en a récemment fait une présentation détaillée à la réunion SSTIC.
Cette approche est sans doute la plus efficace lorsqu’il s’agit de construire un système sécurisé à partir de Linux, et un OS comme Android pourrait s’avérer un lieu d’expérimentation rêvé pour une telle (r)évolution.
Votre opinion