Remix.run Logo
Microsoft open-sources LiteBox, a security-focused library OS(github.com)
129 points by aktau 2 hours ago | 56 comments
ementally 14 minutes ago | parent | next [-]

Copilot

https://github.com/microsoft/litebox/blob/main/.github/copil...

pjmlp 2 minutes ago | parent [-]

To be expected, given how many organisations now require employees to use AI if they want to meet their OKRs, especially all that sell AI tools.

aktau 2 hours ago | parent | prev | next [-]

From the GitHub page:

LiteBox is a sandboxing library OS that drastically cuts down the interface to the host, thereby reducing attack surface. It focuses on easy interop of various "North" shims and "South" platforms. LiteBox is designed for usage in both kernel and non-kernel scenarios.

LiteBox exposes a Rust-y nix/rustix-inspired "North" interface when it is provided a Platform interface at its "South". These interfaces allow for a wide variety of use-cases, easily allowing for connection between any of the North--South pairs.

Example use cases include:

  - Running unmodified Linux programs on Windows
  - Sandboxing Linux applications on Linux
  - Run programs on top of SEV SNP
  - Running OP-TEE programs on Linux
  - Running on LVBS
aktau 2 hours ago | parent [-]

More links with discussion:

Reddit discussion: https://www.reddit.com/r/linux/comments/1qw4r71/microsofts_n...

Project lead James Morris announcing it on social.kernel.org: https://social.kernel.org/notice/B2xBkzWsBX0NerohSC

xjamesmorris 32 minutes ago | parent [-]

FYI, I am not the project lead for Litebox. It is led by Microsoft Research.

CasualSuperman an hour ago | parent | prev | next [-]

With how buggy their flagship OS has become, why would I trust anything else they release to be better? Or even if it does work well now, why should I expect it to stay that way? Microsoft has burned through all possible goodwill at this point, at least for me.

autoexec 2 minutes ago | parent | next [-]

Microsoft doesn't have a very good track record with security or privacy. Maybe it works, but yeah you'll probably get screwed over at some point.

Still, the fact that it's open source is a good thing. People can now take that code and make something better (ripping out the AI for example) or just use bits and pieces for their own totally unrelated projects. I can't see that as anything but a win. I have no problem giving shitty companies credit where its due and they've done a good thing here.

rafram an hour ago | parent | prev | next [-]

This isn't supposed to replace Windows, and it isn't a GUI desktop operating system at all. I doubt anyone working on this has anything to do with the modern Windows desktop UX.

hudo an hour ago | parent | prev [-]

UI of Windows is buggy and inconsistent. Kernel and low level stuff are actually very stable and good.

joe_mamba an hour ago | parent [-]

>Kernel and low level stuff are actually very stable and good.

This. A while ago a build of Win 11 was shared/leaked that was tailored for the Chinese government called "Windows G" and it had all the ads, games, telemetry, anti-malware and other bullshit removed and it flew on 4GB RAM. So Microsoft CAN DO IT, if they actually want to, they just don't want to for users.

You can get something similar yourself at home running all the debloat tools out there but since they're not officially supported, either you'll break future windows updates, or the future windows updates will break your setup, so it's not worth it.

TkTech an hour ago | parent [-]

Is this not just Windows LTSB/LTSC? Which has been a thing forever.

joe_mamba an hour ago | parent [-]

Maybe, could also be that for a 9 figure government contract they'll provide a custom LTSC branch just for you with only the features you want.

gdevenyi an hour ago | parent | prev | next [-]

What is a 'library OS'?

bri3d 33 minutes ago | parent | next [-]

It's a library that is linked to in place of an operating system - so whatever interface the OS provided (syscalls+ioctls, SMC methods, etc.) ends up linked / compiled into the application directly, and the "external interface" of the application becomes something different.

This is how most unikernels work; the "OS" is linked directly into the application's address space and the "external interface" becomes either hardware access or hypercalls.

Wine is also arguably a form of "library OS," for example (although it goes deeper than the most strict definition by also re-implementing a lot of the userland libraries).

So for example with this project, you could take a Linux application's codebase, recompile it linked to LiteBox, and run it on SEV-SNP. Or take an OP-TEE TA, link it to LiteBox, and run it on Linux.

The notable thing here is that it tries to cut the interface in the middle down to an intermediate representation that's supposed to be sandbox-able - ie, instead of auditing and limiting hundreds of POSIX syscalls like you might with a traditional kernel capabilities system, you're supposed to be able to control access to just a few primitives that they're condensed down to in the middle.

kccqzy a few seconds ago | parent [-]

[delayed]

charles_f 42 minutes ago | parent | prev | next [-]

I think that's an OS in the form of a library, like Wine for example. From what I get from the description it allows you to run programs on your real OS and make it see a cut down API to your actual system to reduce the attack surface.

zamadatix 43 minutes ago | parent | prev [-]

https://en.wikipedia.org/wiki/Operating_system#Library

cbondurant an hour ago | parent | prev | next [-]

at first I thought library OS might have meant an OS meant for use at a library.

Honestly far less interesting to know I was wrong.

KPGv2 20 minutes ago | parent [-]

yeah, same here, I was like "wow what an interesting side to their business, a whole operating system intended to serve public and academic libraries!"

throwoutway 24 minutes ago | parent | prev | next [-]

No mention of starting with a design specification & then tied to formal verification the whole way?

It sounds interesting and a step forward (never heard of library Os itll now), but why won't this run into hundreds of the same security bugs that plague Windows if it's not spec'd and verified?

anon291 20 minutes ago | parent [-]

People seem to believe writing things in rust means it's correct.

loufe an hour ago | parent | prev | next [-]

The lack of integrated sandboxing in windows compared to android/iphone is still frankly unacceptable. I've become increasingly paranoid about running any application on Windows (not that your average linux distro is even remotely better) and yet Apple and Google seem to be far, far ahead in user permissions (especially with GrapheneOS, god bless that team) and isolation of processes.

Consumers and businesses deserve better. It's crazy to me that in 2026 Notepad++ being compromised means as much potential damage as it does, still.

digiown an hour ago | parent [-]

The sandboxing on mobile platforms puts the OS vendor in a special position to enforce a monopoly on apps and features. Apple enforces it aggressively, while Google only reluctantly so far. It also prevents the user from exerting full control of the system. Apple does it by locking things down directly, while Google punishes you for owning your devices with attestation.

There has to be a better way. I think Linux's flatpak is a reasonable approach here, although the execution might be rather poor. I want a basic set of trusted tool that I can do anything with, and run less trusted tools like GUI programs in sandboxes with limited filesystem access.

wat10000 42 minutes ago | parent [-]

Those are policy decisions not really connected to the sandboxing technology. They control what sort of signing the system will accept and make it so that it only runs things they approve, and they only approve things that are sandboxed a certain way. The exact same sandboxing could be used with a system where an admin user can decide what gets to run and what kind of sandboxing is required for each thing.

kvuj 2 hours ago | parent | prev | next [-]

The cargo.lock file is 2200+ lines long. Did they spend a reasonable amount of time auditing these dependencies?

CodesInChaos an hour ago | parent | next [-]

That's 238 dependencies (counting multiple versions of the same crate).

* Many of them are part of families of crates maintained by the same people (e.g. rust-crypto, windows, rand or regex).

* Most of them are popular crates I'm familiar with.

* Several are only needed to support old compiler versions and can be removed once the MSRV is raised

So it's not as bad as it looks at first glance.

shikon7 an hour ago | parent | prev | next [-]

What would be a reasonable amount of time to audit the dependencies?

kvuj an hour ago | parent [-]

I would let them decide based on their security policy.

If Microsoft states that they don't have any for a project like this, I would be wary of taking it too seriously.

Andrex an hour ago | parent | prev | next [-]

They ran it through Copilot which gave it the all-clear.

TheSilva an hour ago | parent [-]

Wow, very fun comment! Upvote AI bad!

RoyTyrell 19 minutes ago | parent [-]

Nope, that's a very fair poke at MS. They've gone so far into AI adoption that it's become absurd.

- They have VPs posting on Linkedin about rewriting existing code using AI and adhering to arbitrary metrics of a x% rewrite and laying off y% of engineers that used to work on it.

- Renaming one of their major flagship product lines (MS Office) to (MS Copilot Apps 365).

- Forcing AI features on users despite not wanting it, and overriding OS configuration that should turn it off.

- Executives publicly shaming the general public for not wanting "all the AI all the time".

adolph an hour ago | parent | prev | next [-]

  grep 'name = ' ms-litebox-Cargo.lock | wc -l
     238
edit:

  grep 'name = ' ms-litebox-Cargo.lock | sort -u | wc -l
     221
dizhn an hour ago | parent [-]

I've always done 'sort | uniq'. Never bothered to check for the the unique flag to sort. Although 'uniq -c' is quite nice to have.

       -c, --count
              prefix lines by the number of occurrences
adolph an hour ago | parent [-]

Yeah, to see the packages with multiple versions:

  grep 'name = ' ms-litebox-Cargo.lock | sort | uniq -c | grep -v '1 name' | sort -n
Package windows-sys has the highest number of versions included, 3: 0.59.0, 0.60.2, and 0.61.2.

Edit: Also, beware of the unsorted uniq count:

  cat <<EOF | uniq -c
  > a
  > a
  > b
  > a
  > a
  > EOF
   2 a
   1 b
   2 a
dundarious an hour ago | parent [-]

grey -v '1 name' excludes 11, 21, etc., but I take your point.

jrm4 an hour ago | parent | prev [-]

Given, you know, Microsoft, I'd demand proof even if they said they did.

tombert an hour ago | parent | prev | next [-]

I’m not sure I understand what a library OS is; can someone here elaborate?

greatgib 40 minutes ago | parent | next [-]

My understanding of this is that it is a sandbox. Providing a common interface like if it was an OS for the program to run inside, but avoiding the program to use the OS directly.

What is unclear is if it uses its own common ABI or if you use the one of the host os. I don't know why but from the project description I have a little bit of feeling that this is another vibe coded project.

wrs 28 minutes ago | parent | prev [-]

A library OS is an OS that is linked directly to your program instead of being a separate program accessed through a syscall to kernel mode. About the same as a “unikernel”, but a more recent term.

Basically it lets your program run directly on a hypervisor VM, though this one will also run as a Linux/Windows/BSD process.

ho_schi 7 minutes ago | parent | prev | next [-]

Another layer (ouch) to abstract away Windows (ouch * ouch).

Use Linux or BSD and ignore that approach for Vendor Lock-in* into their “library OS”.

burnermore an hour ago | parent | prev | next [-]

Baaah! Microsoft, security-focused in a single sentence!

ukuina an hour ago | parent | prev | next [-]

No deployment instructions?

sscarduzio an hour ago | parent | prev | next [-]

Can it replace Wine to run Windows apps on Linux?

marklar423 an hour ago | parent | next [-]

IIUC, if you have the source you can recompile said Windows app with LiteBox to statically link in the Windows OS kernel dependencies, so it'll run on any compatible processor regardless of OS (since it won't be making syscalls anymore). It's a unikernel basically.

That's the theory, but I don't know how far LiteBox is along to supporting that workflow.

johannes1234321 24 minutes ago | parent | prev [-]

They say

> It focuses on easy interop of various "North" shims and "South" platforms.

For replacing wine on Linux the "North" would be kernel32 API or similar, the "South" would be Linux sys all API.

However this is meant as a library, thus require linking the Windows program to it and eine is more than the system interface, it has all the GUI parts etc of win32 API

hypfer an hour ago | parent | prev | next [-]

"We did not find any viable commercial use for it, but maybe you will."

anon291 an hour ago | parent | prev | next [-]

A library os to me would typically mean it's aimed at hosting a single user program on bare hardware. I don't see that here, but maybe I'm just confused

bri3d 21 minutes ago | parent | next [-]

It's both; it's aimed at hosting a single user program on another userspace, but also seems to have its own kernel as well?

The "North" part seems to be what I think you'd traditionally think of as a library OS, and then the "South" part seems to be shims to use various userlands and TEEs as the host (rather than the bare hardware in your example).

I'm really confused by the complete lack of documentation and examples, though. https://github.com/microsoft/litebox/pull/491 seems like it would get closer; it looks like it's a test harness that would compile TAs to run on qemu.

richardlblair an hour ago | parent | prev [-]

The reddit conversation seems to allude to you being correct.

bendover690 31 minutes ago | parent | prev | next [-]

Cool

PunchyHamster an hour ago | parent | prev | next [-]

What % of it is vibe-coded in copilot ?

RoyTyrell an hour ago | parent [-]

Just assume the only thing a human did was name write the initial prompt.

portly 43 minutes ago | parent [-]

I read this type of (sour) comment more and more on this forum. To me it reads very cynical and I wonder what the author is trying to say with this. Are you perhaps negatively impacted by automatic coding?

RoyTyrell 13 minutes ago | parent | next [-]

Nope, not at all.

I read your comment as ignorant to AI's capabilities and their negative outcomes with relying on vibe coding.

The implication is that MS is forcing AI adoption on users at a point of absurd recklessness, and that they should not be trusted - especially not blindly trusted.

Perhaps the reason you're seeing comments similar to my original comment more frequently is because actual software engineers whom know the capabilities of AI and how much of a bad decision it is to assume it's as good as a competent engineer. Many engineers have had years of experience working with management, whom while have legit concerns about the capabilities of software as they are ultimately responsible for it and the financials, see them turning to vibe coding and relying on it. Non technical folks think software is kinda easy to do, and because LLMs can generate code that it just proves their assumptions.

blibble 26 minutes ago | parent | prev [-]

we are ALL negatively impacted by generative excrement

I have to use Windows at my day job

and my god, I'd prefer Windows 3.1

R_Spaghetti 21 minutes ago | parent | prev [-]

I'm not sure whether Microsoft, the makers of Windows 95 (after which I stopped taking them seriously), are the sharpest tool in the box when it comes to security.