-1

作为我的学士学位论文的一部分,我正在为 TCP 服务开发一个通用蜜罐。

我目前正在使用 Chroot、Linux 命名空间、安全计算和功能来提供某种沙盒。

我的问题是:我有什么需要注意的地方吗?由于我必须在沙箱中挂载/proc,我很好奇它是否会影响主机系统的整体安全性。

(顺便说一句,用户命名空间不是一个选项。)

/* 编辑 */
更清楚一点:我正在使用功能(7)和 libseccomp 来限制对 root 和非 root 用户的系统调用等功能的访问。

但是 /proc 例如 /proc/sys/* 中的文件呢?我应该像 firejail 那样将带有空绑定挂载的文件/目录列入黑名单吗?

4

1 回答 1

1

正如 Yann Droneaud 所说,阅读 systemd-nspawn 的 src 有很大帮助。

我发现以下 /proc 子目录应该绑定安装为只读/不可访问:

/* Make these files inaccessible to container payloads: they potentially leak information about kernel
 * internals or the host's execution environment to the container */
            PROC_INACCESSIBLE("/proc/kallsyms"),
            PROC_INACCESSIBLE("/proc/kcore"),
            PROC_INACCESSIBLE("/proc/keys"),
            PROC_INACCESSIBLE("/proc/sysrq-trigger"),
            PROC_INACCESSIBLE("/proc/timer_list"),

/* Make these directories read-only to container payloads: they show hardware information, and in some
 * cases contain tunables the container really shouldn't have access to. */
            PROC_READ_ONLY("/proc/acpi"),
            PROC_READ_ONLY("/proc/apm"),
            PROC_READ_ONLY("/proc/asound"),
            PROC_READ_ONLY("/proc/bus"),
            PROC_READ_ONLY("/proc/fs"),
            PROC_READ_ONLY("/proc/irq"),
            PROC_READ_ONLY("/proc/scsi"),
于 2018-06-13T13:36:23.510 回答