跳转到: 导航, 搜索

OSSN/OSSN-0053


Keystone token泄露可能导致恶意信任创建

总结

Keystone token是OpenStack中身份验证和授权的基础。当服务节点被攻破时,攻击者可能可以访问通过该节点传递的所有token。有了有效的token,攻击者将能够颁发新的token,这些token可能被用于在原始用户和新用户之间创建信任关系。

受影响的服务 / 软件

Keystone, Grizzly, Havana, Icehouse, Juno, Kilo

讨论

如果服务节点被攻破,攻击者现在可以访问通过该节点传递的每一个token。默认情况下,Keystone token可以被交换为另一个token,并且对新token的范围没有限制。借助信任API,这些token可以被用于在原始用户和新用户之间委派角色。

信任关系允许用户设置长期授权,允许另一个用户代表他们执行操作。虽然通过信任关系创建的token在功能上受到限制,但这些限制仅限于更改密码或创建新token等操作。这将授予攻击者访问原始用户在其项目中的所有可用操作以及通过信任关系委派的角色。

除了此处描述的方法之外,被攻破的token还可能被滥用。本说明记录了基于通过拦截的token创建的信任关系可能获得的不受预期访问权限的一种潜在漏洞路径。

这种行为是Keystone / OpenStack中使用的bearer token模型的固有特性。

建议的操作

根据给定环境的粒度和可接受的风险等级,建议采取以下步骤来降低暴露风险

1. 监控和审计您环境中的信任关系创建事件。Keystone会在信任关系创建和删除时发出通知,这些通知可以通过系统日志访问,或者如果已配置,可以通过CADF数据/安全/信任资源扩展访问。

2. 为用户提供无法创建信任关系/委派权限/分配新角色的Keystone角色。这将限制攻击向量,使其仅限于直接攻破Keystone或中间人捕获具有创建信任关系/委派/分配角色的授权的单独token。

3. 保留默认的token生存期为1小时。许多工作负载需要一个token用于整个工作负载,并且需要超过一小时,因此安装程序已将token生存期增加回旧值24小时 - 从而增加了暴露于此问题的风险。

联系方式 / 参考文献