跳转到: 导航, 搜索

OSSN/1098582

选择 LXC 作为 Nova 虚拟化驱动程序可能导致数据泄露

总结

当选择 LXC 作为 Nova 的“虚拟化驱动程序”时,它无法提供与虚拟机监控程序相同的隔离级别。尝试将 LXC 作为虚拟机监控程序的替代品可能会导致租户之间的数据暴露。

受影响的服务 / 软件

Nova, LXC, Libvirt, “虚拟化驱动程序”

讨论

OpenStack 暴露的 Libvirt LXC 功能建立在内核命名空间和 cgroup 技术之上。在 Linux 3.8 之前,内核中没有对独立用户命名空间的支持。因此,无法使用 DAC(自主访问控制)安全地隔离容器与彼此或主机环境。例如,它们可以通过修改 cgroup 设置来逃脱资源限制,或者通过 proc 和 sysfs 文件系统中的各种文件攻击主机。使用 MAC(强制访问控制)技术(如 SELinux 或 AppArmour)可以缓解这些问题,但编写允许在 OpenStack 下使用 LXC 运行完整操作系统安装的 MAC 策略是不切实际的。

虽然初始用户命名空间支持已合并到 Linux 3.8 中,但它尚未完成,也没有成熟到足以被认为安全。目前正在进行工作以完成内核命名空间支持并增强 libvirt LXC 以利用它。

建议的操作

OSSG 建议,任何在需要任何级别隔离的环境中部署 Nova 的人,都应使用虚拟机监控程序,例如 Xen、KVM、VMware 或 Hyper-V。

LXC 安全性依赖于一种称为 DAC(自主访问控制)的系统,该系统目前无法提供对客户机的强隔离。正在努力改进 DAC,但目前尚未准备好用于生产环境。

OSSG 不建议使用 LXC 来强制客户机的安全隔离,即使应用了适当的 AppArmour 策略也是如此。

联系方式 / 参考文献