Docker 和 LXC 提出的概念,从安全的角度来看,似乎是朝着正确的方向迈出了一步。害怕 MySQL 零日漏洞?在 Docker 容器中运行它,它不会对主机操作系统造成损坏。
但是,它绝对不是灵丹妙药。需要做些什么来保护 Docker 和 LXC 容器?攻击模型是什么,如何保护和缓解它们?
Docker 和 LXC 提出的概念,从安全的角度来看,似乎是朝着正确的方向迈出了一步。害怕 MySQL 零日漏洞?在 Docker 容器中运行它,它不会对主机操作系统造成损坏。
但是,它绝对不是灵丹妙药。需要做些什么来保护 Docker 和 LXC 容器?攻击模型是什么,如何保护和缓解它们?
Docker 和 LXC 是一个很棒的概念;将潜在易受攻击的应用程序与系统的其余部分隔离,以限制它们在出现问题时可能造成的损害。
它们不是灵丹妙药,主要是由于 Linux 本身设计的限制,即 root 是 root,即使在 chroot 中也是如此。 http://www.bpfh.net/simes/computing/chroot-break.html
有一些方法可以堵住 LXC 和 docker 尚未覆盖的漏洞。最流行的方法是将它们与 selinux 等强制访问控制结合使用。 http://mattoncloud.org/2012/07/16/are-lxc-containers-enough/
确实与您保护其他任何东西的方式相同。LXC 没有添加任何新东西,它只是使用 cgroups 来增加任务之间的隔离。而 Docker 只是 LXC 自动化的。
保护您的服务器,就像您始终保护您的服务器一样。进程隔离、仅在必要时提供特权、使软件保持最新、日志管理、监控……您已经听说过的一切。
事实是,默认情况下 docker 容器非常安全,尤其是当您在容器内以“非特权”用户身份运行进程时。要添加额外的安全层,您可以启用 AppArmor、SELinux、GRSEC 或其他强化系统。 https://www.emspace.com.au/hardening-docker-containers/