跳转到: 导航, 搜索

OSSN/OSSN-0014

多个 Cinder 驱动设置了不安全的文件权限

总结

多个 Cinder 卷驱动为各种文件和目录设置了不安全的文件权限。这些权限使得任何能够访问 Cinder 主机的用户以及在其上运行的任何进程都可以读取和写入这些文件。这使得用户块存储数据面临潜在的泄露、损坏或破坏风险。

受影响的服务 / 软件

Cinder, Folsom, Grizzly, Havana, Icehouse

讨论

多个 Cinder 驱动设置了允许“组”和“其他”用户进行读写访问的文件权限。受影响的驱动包括

  • GPFS
  • GlusterFS
  • Huawei
  • NetApp/NFS
  • Nexenta
  • NFS
  • Scality


本质上,用户卷对所有能够访问 Cinder 主机的用户开放。在主机上运行的守护进程也能够访问受影响的用户卷。宽松的文件权限可能被利用来泄露、修改、损坏或破坏用户卷数据。

Icehouse 及更早版本的所有 Cinder 版本都存在漏洞,只有一个例外:使用 Icehouse GPFS 驱动的系统。

此问题由 SUSE 的 Dirk Mueller 报告。

建议的操作

Icehouse 版本的 GPFS 驱动程序修复了文件权限问题,并且尽可能以非 root 模式执行 shell 命令。不幸的是,将 GPFS 驱动程序的修复程序回移植到更早的 OpenStack 版本是不切实际的。预计其他受影响的驱动程序将在 OpenStack Juno 版本中得到修复。

仅仅修改文件权限并不能缓解此问题,因为受影响的几个驱动程序当前需要宽松的文件权限才能正常工作。此外,无法统一将文件操作限制为非 root 用户,因为通常情况下,文件可能在一个主机上使用一个 uid 创建,但在另一个主机上使用不同的 uid 挂载。

您可以通过在 Cinder 主机上执行以下命令来检查正在使用的驱动程序

 > grep "^volume_driver" /etc/cinder/cinder.conf

您应该将上述命令的结果与“讨论”部分中已知的易受攻击的驱动程序列表进行比较,以查看您是否受到影响。如果您正在运行 Icehouse 版本的 Cinder 并且 GPFS 驱动程序是唯一使用的驱动程序,则您的 Cinder 系统不会受到此问题的影响。

在您的系统很可能存在漏洞的情况下,您应该尽可能地限制对 Cinder 主机的访问。您还应该探索替代方案,例如应用强制访问控制策略(SELinux、AppArmor 等)或使用 NFS uid squashing 来控制对文件的访问,以最大限度地减少可能的暴露。

联系方式 / 参考文献