OSSN/OSSN-0019
Cinder SSH 连接池默认将自动接受 SSH 主机签名
总结
在 OpenStack Juno 之前的版本中,Cinder 驱动程序用于控制 SAN 主机的 SSH 连接池将默认自动接受 SSH 主机指纹。这可能允许通过冒充合法的存储主机来进行中间人攻击。
受影响的服务 / 软件
Cinder, Icehouse, Havana, Grizzly, Folsom
讨论
用于控制 SAN 硬件的 Cinder 驱动程序通过 SSH 与存储主机通信。为了方便这些驱动程序的创建,Cinder 提供了一种实用机制来管理池化的 SSH 连接。该连接池使用一种策略,在首次连接时会默默接受任何未知主机的 SSH 指纹。但是,它没有正确维护已知主机列表,因此无论呈现什么 SSH 指纹,都允许连接到主机。这会影响所有使用该实用程序构建的驱动程序。截至撰写本文时,这些驱动程序包括,但不限于
- Solaris ISCSI 驱动程序
- HP LeftHand SAN ISCSI 驱动程序
- 华为 OceanStor T 系列和 Dorado 系列存储阵列
- Dell EqualLogic 存储
- IBM Storwize SVC
如果恶意攻击者在存储网络上存在切入点,他们可能会破坏 Cinder 和 SAN 主机之间的网络通信。如果攻击者设法冒充存储主机,Cinder 将默默接受新呈现的虚假主机的指纹并允许连接。这种行为构成典型的中间人攻击,可能会拦截和操纵与存储主机的通信,可能泄露登录凭据。
如果可以获取登录凭据,则可以直接与合法的存储主机交互。这可能导致 Cinder 卷被访问或修改,从而将受损的代码和数据导出到其他服务。
可以通过首先连接到存储主机,然后重新生成该主机本地 SSH 详细信息来检测此缺陷的存在。即使 SSH 指纹已更改,Cinder 仍然允许连接到该主机。这是默认配置。
建议的操作
部署者应注意 Cinder 驱动程序和 SAN 主机之间的 SSH 接口,并采取适当措施来保护存储网络。这些措施可以包括物理网络隔离或在网络上放置入侵检测系统。IDS 应检测 ARP 表中毒、DHCP 欺骗或 DNS 伪造等攻击,这些攻击可用于冒充 SAN 主机并实施中间人攻击。
联系方式 / 参考文献
- 作者:Tim Kelsey, HP
- 此 OSSN: https://wiki.openstack.org/wiki/OSSN/OSSN-0019
- 原始 LaunchPad Bug: https://bugs.launchpad.net/cinder/+bug/1320056
- OpenStack Security ML:openstack-security@lists.openstack.org
- OpenStack Security Group:https://launchpad.net/~openstack-ossg