OSSN/OSSN-0057
< OSSN
针对 Glance 服务的 DoS 攻击可能导致中断或破坏
总结
典型的 Glance 工作流程允许经过身份验证的用户创建镜像,并在单独的步骤中上传镜像内容。恶意用户可以利用这一点,用零大小的镜像条目泛滥 Glance 数据库。
受影响的服务 / 软件
Glance, Icehouse, Juno, Kilo, Liberty
讨论
Glance 默认允许经过身份验证的用户创建零大小的镜像。这些镜像不会消耗存储后端上的资源,也不会受到大小限制,但会占用数据库空间。
恶意用户可能会通过无休止的“image-create”请求耗尽数据库资源。
建议的操作
对于当前的稳定 OpenStack 版本,用户可以通过使用速率限制代理来覆盖对 Glance API 的访问来规避此漏洞。速率限制是一种常见的防止 DoS 和暴力破解攻击的机制。对 API 请求进行速率限制可以在一定程度上延迟攻击的影响,但不能完全阻止攻击。
例如,如果您使用的是 Repose 等代理,请按照以下步骤启用速率限制功能
https://repose.atlassian.net/wiki/display/REPOSE/Rate+Limiting+Filter
另一种缓解此问题的方法是在您部署的 Glance policy.json 文件中,将镜像创建限制为受信任的管理员。
"add_image": "role:admin",
另一种预防措施是监控日志以识别过多的镜像创建请求。以下是 glance-api.log 中的一个示例日志消息(单行,换行):
DEBUG glance.registry.client.v1.api [req-da1cafc0-f41f-4587-a484-672ba7f3546e admin 8b04efc28055428c940505838314f262 - - -] Adding image metadata... add_image_metadata /usr/lib/python2.7/dist-packages/glance/registry/client/v1/api.py:161
联系方式 / 参考文献
- 作者:Eric Brown, VMware
- 此 OSSN:https://wiki.openstack.org/wiki/OSSN/OSSN-0057
- 原始 LaunchPad Bug:https://bugs.launchpad.net/ossn/+bug/1401170
- OpenStack Security ML:openstack-security@lists.openstack.org
- OpenStack Security Group:https://launchpad.net/~openstack-ossg