我怎样才能找到所有必须列入 seccomp 白名单的系统调用?
How can I find all syscalls that have to be whitelisted for seccomp?
我有一个现有程序,我想使用 seccomp (v2) 对其进行沙盒处理。
如何找到我需要为该程序允许的 seccomp 规则?
我已经尝试为 strace -xfc a.out
打印的所有系统调用添加 seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(…), 0)
,但显然这还不够,因为当我 [=20] 时我仍然得到 "SIGSYS, Bad system call" =] 带有 seccomp 的程序。
可能最可靠的方法是将您的 seccomp 过滤器切换为 return SECCOMP_RET_TRAP
("send catchable SIGSYS
on error") 而不是 SECCOMP_RET_KILL
("kill the process with an uncatchable SIGSYS
"),然后从信号处理程序打印 siginfo_t
,然后自杀。
我有一个现有程序,我想使用 seccomp (v2) 对其进行沙盒处理。
如何找到我需要为该程序允许的 seccomp 规则?
我已经尝试为 strace -xfc a.out
打印的所有系统调用添加 seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(…), 0)
,但显然这还不够,因为当我 [=20] 时我仍然得到 "SIGSYS, Bad system call" =] 带有 seccomp 的程序。
可能最可靠的方法是将您的 seccomp 过滤器切换为 return SECCOMP_RET_TRAP
("send catchable SIGSYS
on error") 而不是 SECCOMP_RET_KILL
("kill the process with an uncatchable SIGSYS
"),然后从信号处理程序打印 siginfo_t
,然后自杀。