跳转到: 导航, 搜索

OSSN/OSSN-0057


针对 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

联系方式 / 参考文献