commit | e1a868923c2daf9a7ed3b9300f5e18ca295bf0e8 | [log] [tgz] |
---|---|---|
author | Jorge Lucangeli Obes <[email protected]> | Mon Jun 10 16:17:03 2019 -0400 |
committer | Treehugger Robot <[email protected]> | Tue Jun 18 19:14:15 2019 +0000 |
tree | 552698063e77964bec2db6785a1d2fb4f6a82658 | |
parent | 87ec5cddd130ebedcf8992261f1127b1efe6d952 [diff] |
Add scaffolding to support SECCOMP_RET_LOG. This CL adds some scaffolding to support SECCOMP_RET_LOG. It replaces individual logging options in syscall_filter.h with a filter options struct. Going forward, we'll have the following combinations: * If tsync is not requested and logging is not requested, kill with SECCOMP_RET_KILL. * If tsync is requested and logging is not requested, kill with SECCOMP_RET_TRAP. * If logging is requested and SECCOMP_RET_LOG is not available, use existing logging mechanism (which implies blocking with RET_TRAP). * If logging is requested and SECCOMP_RET_LOG is available, use SECCOMP_RET_LOG. Feature detection is done by reading $ cat /proc/sys/kernel/seccomp/actions_avail kill_process kill_thread trap errno trace log allow Note that there is a slight change: before, while we didn't officially support -L in production settings, it wasn't completely unsafe to do so. SECCOMP_RET_LOG, on the other hand, is completely unsafe so it should be properly compile-time restricted to debug builds. The next CL will implement the above. A follow up CL after the next one will introduce SECCOMP_RET_KILL_PROCESS. Bug: chromium:934859 Test: Existing unit tests. Change-Id: I83c1c0adbc983f2be39003d55b0314761e8de657
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