代码之家  ›  专栏  ›  技术社区  ›  Kornel

我如何才能找到所有必须为seccomp白名单的系统调用?

  •  0
  • Kornel  · 技术社区  · 8 年前

    我有一个现有的程序,我想使用seccomp(v2)沙盒。

    我如何才能找到我需要为程序考虑哪些seccomp规则?


    我试着补充 seccomp_rule_add(ctx, SCMP_ACT_ALLOW, SCMP_SYS(…), 0) 用于打印的所有系统调用 strace -xfc a.out 但显然这还不够,因为当我用seccomp运行程序时,仍然会收到“sigsys,bad system call”。

    1 回复  |  直到 8 年前
        1
  •  1
  •   o11c    8 年前

    可能最可靠的方法是切换seccomp过滤器返回 SECCOMP_RET_TRAP (“发送可捕获的” SIGSYS 而不是 SECCOMP_RET_KILL (用不可更改的方法终止进程) 信号系统 “),然后打印 siginfo_t 从信号处理程序,然后自杀。