Microsoft test LiteBox om Linux op Windows uit te voeren zonder een virtuele machine

Microsoft heeft LiteBox uitgebracht, een experimenteel open-source project geschreven in Rust dat een alternatieve manier onderzoekt om Linux-toepassingen uit te voeren binnen geïsoleerde omgevingen. In plaats van op een volledige virtuele machine te vertrouwen, maakt LiteBox gebruik van het library OS-model, dat de benodigde besturingssysteemfuncties voor de applicatie integreert en de blootgestelde interface met het host-systeem beperkt.

De kernpunten van LiteBox in 30 seconden

  • LiteBox is een library OS gericht op veiligheid, ontwikkeld in Rust.
  • Het kan worden gebruikt om Linux-programma’s zonder wijziging op Windows uit te voeren en om Linux-applicaties te isoleren.
  • Het ontwerp vermindert de interface tussen applicatie en host-systeem, waardoor het aanvaloppervlak afneemt.
  • Het project onderzoekt gebruiksscenario’s met AMD SEV-SNP en andere omgevingen voor uitvoering.
  • Het is vrijgegeven onder de MIT-licentie, maar de API’s kunnen nog wijzigen omdat het project zich in ontwikkeling bevindt.

LiteBox presenteert een andere benadering dan traditionele virtualisatie. In plaats van een volledig Linux-besturingssysteem naast de applicatie te draaien, biedt het project de applicatie de systeeminterfaces die nodig zijn binnen een geïsoleerde omgeving.

Microsoft beschrijft het repository als een sandboxing library OS, gericht op het aanzienlijk verkleinen van de interface met het host-systeem. Het doel is het verminderen van het aanvaloppervlak en het faciliteren van communicatie tussen verschillende componenten via een architectuur die is verdeeld in ‘North’-interfaces en ‘South’-platforms.

Het ontwikkeltraject in Rust biedt een interface vergelijkbaar met nix, geïnspireerd op de bibliotheken nix en rustix, gekoppeld aan een Platform-implementatie onderaan de stack. Deze scheiding maakt het mogelijk om verschillende interfaces en platforms te combineren afhankelijk van de use-case.

Een andere benadering dan WSL en conventionele virtualisatie

De aanpak is vooral interessant in vergelijking met Windows Subsystem for Linux (WSL). WSL maakt het mogelijk Linux-applicaties te draaien binnen Windows, maar zijn architectuur wijkt af van die van een library OS.

LiteBox streeft ernaar de applicatie te laten draaien op de interfaces die door zijn eigen compacte besturingssysteem worden aangeboden, in plaats van afhankelijk te zijn van een compleet Linux-systeem voor elke workload.

Dat betekent niet dat LiteBox eenvoudigweg een lichtere versie van WSL is. Het zijn verschillende architecturen, en Microsoft presenteert LiteBox niet als vervanging van WSL.

Het belangrijkste verschil ligt in waar de functies van het besturingssysteem zich bevinden. In een library OS worden sommige functies geïntegreerd in de omgeving van de applicatie. De applicatie heeft toegang tot een interface waarmee bepaald wordt welke operaties daadwerkelijk de onderliggende platformlaag bereiken.

Dit kan het aantal componenten dat aan het host-systeem wordt blootgesteld verminderen. Voor een veiligheid-georiënteerde tool is die reductie net zo belangrijk als de mogelijkheid om de applicatie uit te voeren.

Het doel is dat de beveiligingsrand wordt bepaald door een kleinere interface. Hoe kleiner de oppervlakte die de workload beweegt en verbindt met het host-systeem, des te minder componenten er in het aanvalmodel hoeven te worden opgenomen.

Rust en een architectuur voor diverse omgevingen

Een van de kernkwaliteiten van LiteBox is dat Microsoft het niet alleen voor Windows heeft ontworpen.

Het repository noemt meerdere gebruiksscenario’s, zoals het zonder modificaties uitvoeren van Linux-programma’s op Windows, het isoleren van Linux-applicaties op Linux, en het draaien van programma’s op AMD SEV-SNP. Ook worden scenario’s met OP-TEE op Linux en systemen gebaseerd op LVBS overwogen.

AMD SEV-SNP, Secure Encrypted Virtualization-Secure Nested Paging, is een technologie gericht op het beschermen van virtuele machines tegen toegang vanuit het host-omgeving. De opname hiervan in LiteBox toont dat het project niet beperkt is tot compatibiliteit tussen Linux en Windows.

De architectuur probeert te differentiëren tussen wat een applicatie hoeft te zien en hoe deze daadwerkelijk wordt geleverd op elk platform.

De scheiding tussen ‘North’- en ‘South’-interfaces speelt hier een centrale rol. De bovenste API volgt een Unix-achtige stijl, terwijl de onderste connectie maakt met specifieke platformen.

Deze aanpak kan hergebruik van het uitvoeromgeving mogelijk maken terwijl de wijze van uitvoering per platform wordt aangepast. Voor een evoluerend project zoals dit, is deze flexibiliteit een belangrijke ontwerpwaarde.

De ware uitdaging: Linux-compatibiliteit

De meest complexe uitdaging is niet alleen het opstarten van een applicatie, maar ook het voldoen aan de verwachtingen van Linux-applicaties. Ze verwachten bepaalde semantiek, systeemoproepen, processen, signalen, bestanden en primitieve functies die voor hun werking essentieel zijn.

Een library OS moet die interfaces bieden en vertalen naar de onderliggende infrastructuur waarop het draait.

Het uitvoeren van Linux-programma’s zonder modificatie betekent niet automatisch dat elke Linux-app correct werkt. De mate van compatibiliteit hangt af van de functies die LiteBox implementeert en de specifieke omgeving.

Microsoft benadrukt dat LiteBox nog in ontwikkeling is, en dat APIs en interfaces kunnen veranderen terwijl het project zich verder ontwikkelt. Voor gebruik op lange termijn wordt een stabiele versie aanbevolen.

Deze onzekerheid plaatst LiteBox meer in de sfeer van een onderzoeks- en experimenteerplatform dan van een productieklare component.

Een bouwsteen voor geïsoleerde workloads

LiteBox wekt ook interesse door de combinatie van compatibiliteit en isolatie. Microsoft ziet het niet louter als middel om Linux-software op Windows te draaien, maar ook als een manier om omgevingen te creëren waarin een applicatie een beperkte, gecontroleerde interface krijgt en het host-systeem beschermd blijft.

In dat model is isolatie niet enkel afhankelijk van het gebruik van een volledige virtuele machine. De architectuur beperkt wat de applicatie kan zien en welke operaties door de laag overlopen naar de lagere platformlaag.

Dat kan vooral waardevol zijn in scenario’s met hoge beveiligingsvereisten of waar het draaien van code van derden een risico vormt. Microsoft noemt expliciet sandboxing van Linux-applicaties en het draaien binnen vertrouwelijke computing-omgevingen.

De MIT-licentie bevordert ook dat ontwikkelaars en onderzoekers het broncode kunnen bestuderen en experimenteren met het ontwerp. Doch, het project biedt nog geen garanties op het gebied van interface-stabiliteit.

LiteBox vertegenwoordigt voorlopig een technologische aanpak van Microsoft die zich richt op een nieuw model voor isolatie en compatibiliteit. Het open karakter, het gebruik van Rust en de scheiding tussen applicatie-interface en platform vormen de kern van de visie.

De boodschap is duidelijk: het doel is dat een applicatie een groter deel van zijn omgeving kan meenemen, terwijl de blootstelling aan het host-systeem tegelijkertijd wordt beperkt.

Veelgestelde vragen

Wat is Microsoft LiteBox?

LiteBox is een library OS gericht op veiligheid dat het mogelijk maakt om geïsoleerde omgevingen te creëren voor het uitvoeren van programma’s en het verbinden van verschillende systeeminterfaces met diverse platforms.

Kan LiteBox Linux-applicaties op Windows uitvoeren?

Ja. Het repository noemt expliciet het uitvoeren van Linux-programma’s zonder modificatie op Windows als een toepassingsgebied.

Vervangt LiteBox WSL?

Het repository presenteert LiteBox niet als vervanging voor WSL. Het is een project met een andere architectuur, gebaseerd op het library OS-model, gericht op het verkleinen van de interface met het host-systeem.

Is LiteBox klaar voor gebruik in productie?

Het project is nog in ontwikkeling, en Microsoft waarschuwt dat API’s en interfaces kunnen veranderen. Voor langdurige stabiliteit wordt aangeraden te wachten op een stabiele versie.

Scroll naar boven