commit | c3e17727c6ac127b0033ef011cb07c08385f448f | [log] [tgz] |
---|---|---|
author | Luis Hector Chavez <[email protected]> | Tue Oct 16 20:43:12 2018 -0700 |
committer | Luis Hector Chavez <[email protected]> | Sat Nov 03 06:14:58 2018 -0700 |
tree | 59c036ef747d653fdc0c667152c9da14bbfe15cb | |
parent | 466f231f2ac0425317d4f69b60923a25174e1dd3 [diff] |
minijail: Add support for pre-compiled BPF programs This change introduces minijail_set_seccomp_filters() and the --seccomp-bpf-binary CLI flag. This allows loading pre-compiled seccomp-bpf binaries, so that we can use libseccomp or any other optimizer without adding a lot of bloat to minijail. Bug: chromium:856315 Test: ./parse_seccomp_policy --dump=stdin_stdout.bpf \ test/stdin_stdout.policy && \ ./minijail0 --seccomp-bpf-binary=stdin_stdout.bpf \ --preload-library=./libminijailpreload.so -- /bin/ls Change-Id: I87ff9279da40cf9b6576a5db9c8103b2a8fa4dd7
The Minijail homepage and main repo is https://android.googlesource.com/platform/external/minijail/.
There might be other copies floating around, but this is the official one!
Minijail is a sandboxing and containment tool used in Chrome OS and Android. It provides an executable that can be used to launch and sandbox other programs, and a library that can be used by code to sandbox itself.
You're one git clone
away from happiness.
$ git clone https://android.googlesource.com/platform/external/minijail $ cd minijail
Releases are tagged as linux-vXX
: https://android.googlesource.com/platform/external/minijail/+refs
See the HACKING.md document for more details.
See the RELEASE.md document for more details.
We've got a couple of contact points.
The following talk serves as a good introduction to Minijail and how it can be used.
The Chromium OS project has a comprehensive sandboxing document that is largely based on Minijail.
After you play with the simple examples below, you should check that out.
# id uid=0(root) gid=0(root) groups=0(root),128(pkcs11) # minijail0 -u jorgelo -g 5000 /usr/bin/id uid=72178(jorgelo) gid=5000(eng) groups=5000(eng)
# minijail0 -u jorgelo -c 3000 -- /bin/cat /proc/self/status Name: cat ... CapInh: 0000000000003000 CapPrm: 0000000000003000 CapEff: 0000000000003000 CapBnd: 0000000000003000