各种问题的解决方案(例如,此处和此处)建议在运行需要运行调试器或模糊器的容器时启用 SYS_PTRACE 。鉴于默认情况下未启用该功能,因此授予它必须存在一些安全隐患——官方文档给出了一个模糊的“可能会泄露主机上的大量信息”。大概这意味着它可能允许有关主机的信息泄露到容器的运行时环境——但是什么信息呢?还有其他安全隐患吗?
在 docker 中启用 ptrace 有什么风险?
信息安全
码头工人
2021-08-18 23:28:55
1个回答
在这个白皮书中有一些关于这个主题的很好的细节。
本质上的问题是,允许 ptrace 将允许包含的进程绕过任何 seccomp 过滤器,从而允许进行危险的系统调用。引用文件
CAP_SYS_PTRACE: The ability to useptrace(2)and recently introduced cross memory
attach syscalls such as process_vm_readv(2)andprocess_vm_writev(2).
If this capability is granted and the ptrace(2) syscall itself is not blocked by a seccomp
filter(as discussed more in Section 8.3 on page74),
this will allow an attacker to bypass other seccomp restrictions.
更新- 正如@forest 的评论中所提到的,上述仅适用于 4.8 之前的内核版本,因此现代 Linux(可能除了 RHEL/CENTOS 7 和更早版本仍然存在)不应该有这个问题。