LiteBox - l’OS de bibliothèque orienté sécurité que Microsoft a publié en open source
(github.com/microsoft)- OS de bibliothèque orienté sécurité prenant en charge l’exécution en mode noyau comme en mode utilisateur, et fournissant un environnement de sandboxing qui réduit la surface d’attaque en minimisant l’interface avec l’hôte
- Écrit en Rust, avec une interface de haut niveau de style
nixetrustix, et la prise en charge de l’interopérabilité entre diverses plateformes sous-jacentes - Principaux cas d’usage : exécuter des programmes Linux sur Windows, sandboxer des applications Linux, exécuter dans des environnements SEV SNP et OP-TEE, prise en charge de la plateforme LVBS, etc.
- Base expérimentale d’une architecture OS de nouvelle génération centrée sur l’isolation de sécurité, la virtualisation et la minimisation des interfaces système
- Combine du code système sûr basé sur Rust et un modèle d’exécution unifié noyau-utilisateur, ce qui permet des usages en recherche sur la sécurité et en développement de technologies d’isolation cloud
Présentation de LiteBox
- LiteBox est un OS de bibliothèque open source orienté sécurité publié par Microsoft, qui prend en charge l’exécution à la fois en mode noyau et en mode utilisateur
- Son objectif principal est de minimiser l’interface avec l’hôte afin de réduire la surface d’attaque
- Cela permet de mettre en place un environnement d’exécution isolé de type sandbox
- Le système est écrit en Rust et fournit, dans la couche supérieure, une interface de style
nix/rustix- Dans la couche inférieure, il permet une configuration flexible en connectant différentes plateformes (interface
Platform)
- Dans la couche inférieure, il permet une configuration flexible en connectant différentes plateformes (interface
Fonctions principales et cas d’usage
- LiteBox est conçu avec une architecture prenant en charge l’interopérabilité entre plusieurs environnements d’exploitation
- Exécuter des programmes Linux sur Windows
- Sandboxer des applications sous Linux
- Prise en charge d’environnements d’exécution sécurisés basés sur SEV SNP
- Exécuter des programmes OP-TEE sous Linux
- Prise en charge de l’exécution sur la plateforme LVBS
État actuel et licence
- Le projet est actuellement en développement actif et n’a pas encore atteint le stade d’une version stable
- Les API et interfaces pourront évoluer à l’avenir
- Un usage expérimental est possible, mais la prudence s’impose dans les environnements exigeant une stabilité à long terme
- Licence MIT
2 commentaires
Avis sur Hacker News
D’après la page GitHub, LiteBox est un library OS de sandboxing conçu pour réduire la surface d’attaque en minimisant l’interface avec l’hôte
Il a été pensé pour relier une interface « North » basée sur nix/rustix dans le style Rust à différentes plateformes « South »
Parmi les exemples cités, il y a l’exécution de programmes Linux sous Windows, le sandboxing d’apps Linux, ou encore l’exécution au-dessus de SEV SNP, OP-TEE et LVBS
J’ai toujours eu l’impression que WSL2 était une solution de fortune, alors que WSL1 incarnait bien mieux le concept des « personality modules » de Windows NT
Ça ressemble au cas typique où Microsoft reconditionne une idée existante avec un nouveau nom pour lui donner un air d’innovation
En ce moment, l’OS principal de Microsoft est tellement truffé de bugs qu’il est difficile de faire confiance à ses nouveaux projets
L’équipe qui développe ça n’a probablement aucun lien avec l’UX moderne de Windows
Le dépôt LiteBox inclut des fichiers de configuration liés à Copilot
copilot-instructions.md
Ici, c’est simplement rendu explicite via la configuration
Je me demandais ce qu’était exactement un Library OS
Autrement dit, les fonctions de l’OS sont intégrées dans l’espace d’adressage de l’application, et l’interface externe se réduit à l’accès matériel ou aux hypercalls
Les unikernels fonctionnent de cette manière, et même Wine peut, au sens large, être vu comme un Library OS
Par exemple, on peut lier une application Linux à LiteBox pour l’exécuter sur SEV-SNP, ou faire tourner un TA OP-TEE sous Linux
L’idée centrale est qu’au lieu d’auditer des centaines de syscalls POSIX, on simplifie le problème en ne contrôlant qu’un petit nombre d’opérations primitives d’une représentation intermédiaire
Si je devais expliquer à un extraterrestre la différence entre un Library OS et une application classique fondée sur un noyau, j’aurais du mal à le faire tant la distinction est subtile
Au début, je pensais que « Library OS » voulait dire un système d’exploitation pour bibliothèque
Le concept de Library OS m’était inconnu, mais avec les explications ça ressemble beaucoup à un unikernel
Le programme s’exécute directement sur l’hyperviseur sans appel en mode noyau, et LiteBox peut aussi fonctionner comme processus Linux, Windows ou BSD
En revanche, il n’est pas clair s’il utilise sa propre ABI ou celle de l’OS hôte
À lire la description, ça donne aussi légèrement une impression de projet “vibe-coded”
Si Microsoft permettait avec LiteBox d’écrire des pilotes de callout WFP sans signature, ce serait intéressant
Ça tournerait toujours en mode noyau, mais cela pourrait être plus flexible que les NetworkExtensions de MacOS
Je trouve dommage qu’il n’y ait pas de mention d’un processus de développement fondé sur une spécification de conception et sur la vérification formelle
C’est une tentative intéressante, mais sans cette approche il y a un risque de voir réapparaître les failles de sécurité déjà observées à répétition sous Windows
C’est la première fois que j’entends parler du concept de « Library OS », et je me demande si gVisor entre aussi dans cette catégorie
La structure paraît proche, mais je ne sais pas si cela relève exactement de la même famille
J’ai trouvé un projet qui a l’air sympa, pour une fois.