您可以而且通常应该(1)以无根的方式运行docker守护进程(或podman或其他什么)和/或(2)使用用户名称空间重新映射来提高安全性。
您还可以(3)使用无根映像,其中容器不以根用户身份运行任何进程。例如,nginx-unprivileged作为nginx用户而不是root运行。
有时图像没有无根变体,为某些工具X创建无根变体可能需要大量的工作(解决文件权限问题等)。
如果我们已经在使用#1和/或#2,那么图像是否没有根呢?

发布于 2023-05-18 10:52:24
这是一个有趣的问题,我要说的是,答案可能很重要。
无根Docker/Podman等利用“非特权用户名称空间”允许非根用户显示为root用户。当用户是root用户时,即使在用户名称空间中,他们也可以访问一些非root用户无法使用的Linux内核代码页。
这意味着,如果Linux内核中存在需要访问特定代码页的漏洞,那么如果您是根用户,则更容易利用该漏洞。
我已经看到过一些情况,在一般情况下,非特权用户命名空间允许利用(例如CVE-2022-0185),但我不确定是否看到容器中的根会有区别,因此这可能是某种理论上的风险。
https://security.stackexchange.com/questions/270278
复制相似问题