OSSN/OSSN-0062
已撤销的身份令牌的潜在重用
总结
身份服务颁发的授权令牌可以被撤销,旨在立即使该令牌对未来使用无效。在使用 PKI 或 PKIZ 令牌提供程序时,攻击者有可能操纵已撤销令牌的内容,使其仍然被认为是有效的。如果攻击者截获了已撤销的令牌,这可能允许未经授权访问云资源。
受影响的服务 / 软件
Keystone, Icehouse, Juno, Kilo, Liberty
讨论
令牌撤销在 OpenStack 中用于使令牌进一步失效。在某些情况下,例如用户退出 Dashboard 时,此令牌撤销会自动发生。如果另一方获得了已撤销的令牌,则不应再能够使用它在云中执行任何操作。不幸的是,在使用 PKI 或 PKIZ 令牌提供程序时并非如此。
当验证 PKI 或 PKIZ 令牌时,身份服务会通过搜索整个令牌来检查其是否被撤销。攻击者有可能操纵被截获的 PKI 或 PKIZ 令牌中未受到密码保护的部分,这将导致撤销检查错误地认为该令牌有效。
建议的操作
我们建议不要使用 PKI 或 PKIZ 令牌提供程序。PKI 和 PKIZ 令牌提供程序与 UUID 或 Fernet 等其他令牌提供程序相比,没有提供任何显著的优势。
如果您正在使用 PKI 或 PKIZ 令牌提供程序,建议切换到使用另一个受支持的令牌提供程序,例如 UUID 提供程序。此问题可能在身份服务中 PKI 和 PKIZ 令牌提供程序的未来更新中得到修复。
要检查您正在使用的令牌提供程序,您必须查看身份服务的 'keystone.conf' 文件。下面提供了一个示例
[token] #provider = keystone.token.providers.pki.Provider #provider = keystone.token.providers.pkiz.Provider provider = keystone.token.providers.uuid.Provider
在身份服务的 Liberty 版本中,令牌提供程序配置与以前的 OpenStack 版本不同。下面提供了一个来自 Liberty 版本的示例
[token] #provider = pki #provider = pkiz provider = uuid
这些配置片段正在使用 UUID 令牌提供程序。如果您正在使用这些示例中注释掉的任何设置,您的云容易受到此问题的影响,您应该切换到不同的令牌提供程序。
联系方式 / 参考文献
- 作者:Nathan Kinder, Red Hat
- 此 OSSN:https://wiki.openstack.org/wiki/OSSN/OSSN-0062
- 原始 LaunchPad Bug:https://bugs.launchpad.net/keystone/+bug/1490804
- OpenStack Security ML:openstack-security@lists.openstack.org
- OpenStack Security Group:https://launchpad.net/~openstack-ossg
- CVE:CVE-2015-7546