linux_dsm_epyc7002/tools/testing/selftests
Tyler Hicks e66a399779 seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW
Add a new filter flag, SECCOMP_FILTER_FLAG_LOG, that enables logging for
all actions except for SECCOMP_RET_ALLOW for the given filter.

SECCOMP_RET_KILL actions are always logged, when "kill" is in the
actions_logged sysctl, and SECCOMP_RET_ALLOW actions are never logged,
regardless of this flag.

This flag can be used to create noisy filters that result in all
non-allowed actions to be logged. A process may have one noisy filter,
which is loaded with this flag, as well as a quiet filter that's not
loaded with this flag. This allows for the actions in a set of filters
to be selectively conveyed to the admin.

Since a system could have a large number of allocated seccomp_filter
structs, struct packing was taken in consideration. On 64 bit x86, the
new log member takes up one byte of an existing four byte hole in the
struct. On 32 bit x86, the new log member creates a new four byte hole
(unavoidable) and consumes one of those bytes.

Unfortunately, the tests added for SECCOMP_FILTER_FLAG_LOG are not
capable of inspecting the audit log to verify that the actions taken in
the filter were logged.

With this patch, the logic for deciding if an action will be logged is:

if action == RET_ALLOW:
  do not log
else if action == RET_KILL && RET_KILL in actions_logged:
  log
else if filter-requests-logging && action in actions_logged:
  log
else if audit_enabled && process-is-being-audited:
  log
else:
  do not log

Signed-off-by: Tyler Hicks <tyhicks@canonical.com>
Signed-off-by: Kees Cook <keescook@chromium.org>
2017-08-14 13:46:46 -07:00
..
bpf bpf: more tests for mixed signed and unsigned bounds checks 2017-07-20 15:20:27 -07:00
breakpoints selftests: breakpoints: breakpoint_test_arm64: convert test to use TAP13 2017-06-30 16:16:17 -06:00
capabilities selftests/capabilities: Fix the test_execve test 2017-06-30 10:06:24 -06:00
cpu-hotplug
cpufreq selftests: create cpufreq kconfig fragments 2017-04-27 08:42:18 -06:00
drivers/gpu drm/i915: Provide a hook for selftests 2017-02-13 20:45:21 +00:00
efivarfs selftests: remove duplicated all and clean target 2017-01-05 13:41:35 -07:00
exec selftests: enable O and KBUILD_OUTPUT 2017-01-05 13:42:22 -07:00
filesystems selftests: move dnotify_test from Documentation/filesystems 2016-09-20 09:09:00 -06:00
firmware driver core patches for 4.11-rc1 2017-02-22 11:44:32 -08:00
ftrace A few more minor updates: 2017-07-13 13:17:19 -07:00
futex selftests: futex: print testcase-name and PASS/FAIL/ERROR status 2017-06-07 10:07:21 -06:00
gpio selftests: gpio: fix clean target to remove all generated files and dirs 2017-04-25 09:49:50 -06:00
ia64 selftests: move ia64 tests from Documentation/ia64 2016-09-20 09:58:12 -06:00
intel_pstate selftests: intel_pstate: add .gitignore 2017-06-30 10:06:24 -06:00
ipc selftests: ipc add missing generated file to .gitignore 2017-01-11 09:51:03 -07:00
kcmp selftests: enable O and KBUILD_OUTPUT 2017-01-05 13:42:22 -07:00
kmod kmod: throttle kmod thread limit 2017-07-14 15:05:13 -07:00
lib selftests: lib: Skip tests on missing test modules 2017-06-23 09:41:53 -06:00
locking locking/ww_mutex: Add ww_mutex to tools/testing/selftests 2017-01-14 11:37:17 +01:00
media_tests selftests: media_tests add a new video device test 2016-07-26 09:59:30 -06:00
membarrier selftests: membarrier: use ksft_* var arg msg api 2017-06-30 16:16:23 -06:00
memfd selftest/memfd/Makefile: Fix build error 2017-06-23 13:35:00 -06:00
memory-hotplug selftests: fix memory-hotplug test 2017-06-30 10:06:23 -06:00
mount selftests: add default rules for c source file 2017-01-05 13:42:01 -07:00
mqueue selftests: remove duplicated all and clean target 2017-01-05 13:41:35 -07:00
net selftest/net/Makefile: Specify output with $(OUTPUT) 2017-06-23 13:35:15 -06:00
networking/timestamping selftests: Move networking/timestamping from Documentation 2016-09-20 09:59:50 -06:00
nsfs selftests: remove duplicated all and clean target 2017-01-05 13:41:35 -07:00
ntb NTB: ntb_test: add parameter for doorbell bitmask 2017-07-06 11:30:06 -04:00
powerpc selftests/powerpc: context_switch use private futexes with threads 2017-06-05 16:55:01 +10:00
prctl selftests: move prctl tests from Documentation/prctl 2016-09-20 09:09:09 -06:00
pstore selftests: add EXTRA_CLEAN for clean target 2017-01-05 13:42:17 -07:00
ptp selftests: move ptp tests from Documentation/ptp 2016-09-20 09:54:38 -06:00
ptrace selftests: remove duplicated all and clean target 2017-01-05 13:41:35 -07:00
rcutorture rcu: Remove RCU CPU stall warnings from Tiny RCU 2017-06-08 18:52:45 -07:00
seccomp seccomp: Filter flag to log all actions except SECCOMP_RET_ALLOW 2017-08-14 13:46:46 -07:00
sigaltstack tools/testing/selftests/sigaltstack/sas.c: improve output of sigaltstack testcase 2017-02-27 18:43:45 -08:00
size kselftest: convert get_size to use stricter TAP13 format 2017-06-14 18:23:27 -06:00
splice selftests: splice: override clean in lib.mk to fix warnings 2017-04-27 08:05:04 -06:00
static_keys
sync selftests: sync: Skip the test if kernel support is not found 2017-06-07 10:07:21 -06:00
sysctl test_sysctl: test against int proc_dointvec() array support 2017-07-12 16:26:00 -07:00
tc-testing selftests: Introduce tc testsuite 2017-06-20 13:15:10 -04:00
timers RTC for 4.13 2017-07-13 12:15:06 -07:00
user
vDSO selftests: move vDSO tests from Documentation/vDSO 2016-09-20 09:58:04 -06:00
vm selftests/vm: Fix test for virtual address range mapping for arm64 2017-06-07 10:07:21 -06:00
watchdog selftests: watchdog: accept multiple params on command line 2017-05-02 10:48:24 -06:00
x86 linux-kselftest-4.12-rc1 2017-05-08 20:43:30 -07:00
zram selftests: add EXTRA_CLEAN for clean target 2017-01-05 13:42:17 -07:00
.gitignore selftests: add gpio generated files to .gitignore 2017-04-25 09:49:38 -06:00
gen_kselftest_tar.sh
kselftest_harness.h Documentation/dev-tools: Add kselftest_harness documentation 2017-06-07 10:07:22 -06:00
kselftest_install.sh
kselftest.h kselftest: add ksft_print_msg() function to output general information 2017-06-30 16:15:04 -06:00
lib.mk selftests: lib.mk: define CLEAN macro to allow Makefiles to override clean 2017-04-25 09:46:45 -06:00
Makefile selftests/Makefile: Add missed PHONY targets 2017-04-21 11:24:58 -06:00