Seccomp sandbox

The seccomp sandbox developed for Chromium could be used for Plash and has the potential to solve these problems:

Down sides:

Changes involved

The current seccomp sandbox is suitable for programs that partially distrust themselves. It allows them to drop authority by entering sandbox mode some time after startup. (This is similar to the model adopted in FreeBSD-Capsicum.) The startup code, which loads libraries and opens files, is unsandboxed. This is not Plash's model, however. We want to sandbox the glibc dynamic loader's startup too.

This means the seccomp sandbox has to be the first thing that runs. It cannot depend on glibc. It has to load ld.so, and it has to support the syscalls that ld.so executes on startup. It cannot patch an already-loaded ld.so and libc.so. It cannot really identify when libc.so is loaded, so we must ensure that ld.so and libc.so are pre-patched.

We will have two new components, both of which can be sandboxed:

Tasks

Seccomp sandbox maintenance:

Changes for Plash/seccomp:

Infrastructure:

For later:

SeccompSandbox (last edited 2010-04-29 16:43:03 by MarkSeaborn)