OSSN/1098582
< OSSN
选择 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 策略也是如此。
联系方式 / 参考文献
- 作者:Robert Clark, HP
- Nova : https://docs.openstack.org/developer/nova/
- LXC : http://lxc.sourceforge.net/
- Libvirt : http://libvirt.org/
- KVM : http://www.linux-kvm.org/page/Main_Page
- Xen: http://xen.org/products/xenhyp.html
- LXC DAC : https://wiki.ubuntu.com/UserNamespace
- LXC LibVirt 讨论 : https://www.berrange.com/posts/2011/09/27/getting-started-with-lxc-using-libvirt/