-
Notifications
You must be signed in to change notification settings - Fork 21
Projects
This is a list of possible Capsicum-related development projects; where possible, there's an indication of where/when the idea came up (CC=conference call, ML=mailing list).
-
Go language bindings [CC:2016-07-08]
-
Create a portable libcapsicum, to provide a standard API but with functionality stubbed out when the underlying platform doesn't support it; this allows application code to get the best that the platform has to offer without portability concerns. [CC:2016-04-29]
- On FreeBSD, capability mode and file capabilities would be effective.
- On vanilla Linux, most of capability mode could be implemented as a seccomp-bpf filter, but capabilities would be stubbed out.
- On Capsicum-patched Linux, capability mode and file capabilities would work.
- On OS X, capability mode might be implementable using OS X sandbox features.
-
Create library/wrapper function for iterating over a list of files, invoking a sub-process on a file descriptor for each. [ML:2016-04-29]
-
Add debugging option to make it easier to find rights mismatches [CC:2015-07-20]
- For example, if
CAPSICUM_DEBUG=1in the environment then generate a log and/or signal on rights check failure.
- For example, if
-
Examine
ioctl()operations that have direct analogues with other system calls, and make sure rights needed are in sync:-
FIOCLEX/FIONCLEX==fcntl(fd, F_SETFD, FD_CLOEXEC) -
FIONBIO==fcntl(fd, F_SETFL, O_NONBLOCK) -
FIOQSIZE==CAP_FSTAT? -
FIOASYNC== just CAP_IOCTL + ioctl-cmd -
FS_IOC_FIEMAP==CAP_FSTAT|CAP_FSTATFS? -
FIGETBSZ==CAP_FSTATFS? -
FIFREEZE/FITHAW==CAP_FSCK|CAP_FSTATFS? -
FICLONE[RANGE]== src:CAP_READ|CAP_SEEK|CAP_FSTAT, dst:CAP_WRITE|CAP_SEEK|CAP_FSTAT? -
FIDEDUPRANGE== src:CAP_READ|CAP_SEEK|CAP_FSTAT, dst:CAP_WRITE|CAP_SEEK|CAP_FSTAT?
-
-
[Linux] Get Capsicum changes for Chromium working [CC:2015-11-02]
-
Enhance Capsicum test suite to allow better Jenkins integration, including configured
XFAILresults on platforms with known problems [CC:2015-10-16] -
[FreeBSD] Implement some sort of rights inheritance for
accept()andsctp_peeloff(). [ML:2014-01-23, CC:2015-10-16]- Discussion remains ongoing about whether should simply be the parent FD's rights, or something more sophisticated
- FreeBSD bug 201052 is related
-
[FreeBSD] Get
pdwait4(), or some functional equivalent implemented [ML:2015-05-08, CC:2015-05-18] -
[FreeBSD] Add
PD_CLOEXECoption forpdfork()[ML:2015-05-08] -
Deal with stale pid values returned from
pdgetpid(2)[ML:2015-05-08] -
More work on running dynamically linked binaries under capability mode, building on Jon's changes with
LD_LIBRARY_PATH_FDS[CC:2015-05-11] -
Build wrapper to allow unmodified binaries to run in Capsicum sandbox [CC:2015-05-18, Jon Anderson]
- Pre-open files from command-line / config
- Intercept subsequent open calls (by libc interposition) and return pre-opened FDs
- cf. Plash/Shill
-
Quantize the attack surface reduction of Capsicum vs other sandboxes (e.g. Chrome's seccomp-bpf sandbox on Linux) [CC:2015-05-11]
-
Create a better API for getting a socket, and more generally for translating a name to an FD [CC:2015-10-30]
-
Add rights protection for some filesystem-related system calls that aren't currently protected [CC:2015-11-13]
-
fdatasync(probablyCAP_FSYNC) -
readlinkat(probably a newCAP_READLINKATright) -
[posix_]fallocate(TBD, but probablyCAP_PWRITEfor the basic functionality, plus other rights for the extra flags that are available on Linux -
[posix_]fadvise(TBD)
-