在 docker 中启用 ptrace 有什么风险?

信息安全 码头工人
2021-08-18 23:28:55

各种问题的解决方案(例如,此处此处)建议在运行需要运行调试器或模糊器的容器时启用 SYS_PTRACE 鉴于默认情况下未启用该功能,因此授予它必须存在一些安全隐患——官方文档给出了一个模糊的“可能会泄露主机上的大量信息”。大概这意味着它可能允许有关主机的信息泄露容器的运行时环境——但是什么信息呢?还有其他安全隐患吗?

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 和更早版本仍然存在)不应该有这个问题。