语境
在我的“追求”中让 LXC 在 Raspbian 上运行我可能被迫禁用加载安全计算容器启动时的配置,通过将其注释掉/usr/share/lxc/config/debian.common.conf
:
# Blacklist some syscalls which are not safe in privileged
# containers
# lxc.seccomp = /usr/share/lxc/config/common.seccomp
仅作为 (atm)比容器启动(否则会引发错误)..
在某种程度上,关闭与容器化/沙箱密切相关的基本安全设置违背了 LXC 的目的。从安全/稳定性的角度来看,我非常希望在运行 LXC 容器时将大多数系统调用列入黑名单(如 LXC 默认值所示/usr/share/lxc/config/common.seccomp
):
2
blacklist
[all]
kexec_load errno 1
open_by_handle_at errno 1
init_module errno 1
finit_module errno 1
delete_module errno 1
问题
不“加载 LXC 容器的 seccomp 规则”产量:
- 重要的* 安全问题?
- 任何其他技术的(应用或稳定性)问题?
*假设我是唯一一个使用“mother”系统及其 LXC 容器的人(否则就很明显了..)
答案1
那么,seccomp 规则会阻止容器修改主机内核。如果没有它们,容器中的 UID 0 可以使用 kexec(如果它甚至适用于 Raspbian,我不确定)来加载新内核(显然不是启动它)和insmod
/rmmod
加载/卸载模块以及其他这些系统调用没有正确考虑用户名称空间。
这是否是一个重要的安全问题取决于您 - 您只需要记住,现在容器中的 UID 0 可以有效地成为容器外部的 UID 0,即 root 可以通过加载精心设计的模块来逃离容器例如。