- pause execution for a policy engine or user input
- variable scope permissions independent of what was requested. eg user needs to allow just this request to /test/myfile.txt or grant /test/* in that moment
- add (ideally also remove) capabilities based on dynamic user input or engine decisions without up front configuration
- not need application support, if apps need to support it the moment the harness uses an external tool the model breaks
deno, workerd and maybe a vm/docker solution with an webdav proxy mount and web-proxy are the only environments i am aware of where systems like this could be build at all, even there, with limitations. (Not writing this to sound absolute but to learn about other options I am missing.)
While containers can be useful for reducing privileges, that assumption isn’t safe, remember that the only thing namespaces away is that which supports namespaces and that by themselves, namespaces are not security features.
A super critical part I didn’t see or missed is the importance of changing UID, the last line of [0] will show one reason.
Remember that the container users has elevated privileges unless you the user explicitly drop this privileges.
I applaud the effort at hardening, but containers have mostly been successful because the most popular apps like nginx operate under a traditional cohosting system and take responsibility for privilege dropping.
There are tons of kernel calls, ldpreload tricks etc… that are well known and easily to find with exploration.
Even dropping elevated privileges and setting no new priv, still isn’t a jail.
Without using separate UIDs don’t expect any real separation at all.
[0] https://www.kernel.org/doc/html/latest/admin-guide/namespace...
juancn•1h ago
- Antoine de Saint-Exupéry
grim_io•1h ago
jk