【问题标题】:About the seccomp of container关于容器的seccomp
【发布时间】:2019-01-08 09:10:38
【问题描述】:

我想在不知道 Seccomp 配置文件的情况下获取正在运行的容器的可用系统调用列表。我怎样才能实现它?

【问题讨论】:

  • 在容器中尝试capsh --print
  • @mviereck:呃,capsh 不只是关于能力吗? Caps 与 seccomp 配置文件有很大不同...
  • 是的,该功能与 Seccomp 不同。我想知道的是Seccomp列表。

标签: docker containers seccomp


【解决方案1】:

docker inspect 应该转储用于运行容器的SecurityOpt(s)。由于 seccomp 配置文件是通过 security-opt 命令行参数应用的,因此活动配置文件应列在启动容器时提供的任何参数中。

根据配置文件名称,您可以将其转换为实际应用的系统调用白名单/黑名单。

【讨论】:

  • 如果我不附加 seccomp 配置文件并默认让它使用自定义的runc 重新创建一些系统调用怎么办?我需要获取可用的系统调用列表,但重新创建的除外。
  • 我不太明白。如果您不通过任何 seccomp 配置文件,您将使用特定 runc 实现的默认值运行。您可以通过SecurityOpt 字段将是null(根据在线示例输出判断)来识别何时没有传递security-opt 参数。
  • 你听说过纳布拉容器吗?它在 Libos 中集成了近 331 个系统调用,并且在内核中只使用了 9 个独特的系统调用。它也基于 docker,但使用自己的 runc,称为runnc。 331 个系统调用集成在runnc 中。当您运行该容器并检查/var/lib/docker/containers/ID/config 中的配置文件时,您会发现Seccomp:" "null
  • 如果我能得到可用的系统调用列表。然后我可以知道这 9 个独特系统调用的详细信息。
猜你喜欢
  • 2021-10-16
  • 2019-11-27
  • 1970-01-01
  • 2017-06-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多