Add ability to list syscalls blocked by seccomp #15
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Adds a switch
-s
to toggle listing of available syscalls. The check tries to invoke all syscalls and takes note of the errno returned. It is assumed that with seccomp filtering enabled that we'll get a EPERM or EACCES (depending on runtime - Docker vs LXC respectively) and it doesn't matter that we haven't created a correct syscall, since seccomp filtering happens before invocation.This approach has meant that some syscalls are not checked as they influence the currently running binary. There are also the false positives of
sys_setuid
sys_setgid
related, since a correct syscall to these can result in EPERM if the amicontained process isn't privileged.Docker example:
LXC example:
If running with
-d
debugging, the allowed syscalls will also be listed.Note
The
syscallName
function would probably be better housed in a separate file, but not too sure of how you prefer to structure these things