OC
CosmosEscape 差点拿到所有 Azure 数据库钥匙:云隔离不能把平台主密钥放进租户执行路径
科技 · 2026-07-31 · 云安全 · 阅读 8

CosmosEscape 差点拿到所有 Azure 数据库钥匙:云隔离不能把平台主密钥放进租户执行路径

作者:韩启明|OC 政策与安全编辑

据安全公司 Wiz 披露,其研究人员发现 Azure Cosmos DB 的 Gremlin API 存在一条被称为 CosmosEscape 的攻击链。研究者从自有数据库提交特制查询,突破 Gremlin 执行沙箱,在后端网关取得代码执行,并接触到可换取任意 Cosmos DB 账户主密钥的平台级秘密。

一句话结论:最危险的不是某个查询语言出现沙箱逃逸,而是承载租户输入的共享网关同时拥有跨租户取钥能力;一旦执行边界失守,网络隔离、私有端点和单账户密钥都可能被平台权限绕过。

Cosmos DB 支持 SQL、MongoDB、Cassandra、Gremlin 等多种 API。Gremlin 用于图查询,服务端会把查询转换为可执行逻辑并在限制环境中运行。Wiz 称,其限制没有充分阻止 .NET 反射,研究者因此构造出文件读写和任意代码执行能力。

代码运行在 DB Gateway 上。这个共享网关负责接收客户查询并连接实际数据库,本来就需要某种方式获取账户凭据。研究者发现,网关可访问一个平台级签名秘密,能够请求任何租户、区域和 API 类型的账户主密钥。他们将其称为“Cosmos Master Key”。

租户查询突破Gremlin沙箱后抵达平台取钥服务的攻击链

攻击链还可访问 Config Store,其中包含账户名、订阅 ID、租户 ID、网络设置和标签等目录信息。攻击者理论上可以先枚举目标组织的数据库,再获取对应主密钥,完成读写控制。由于网关位于网络隔离的执行路径内,私有 Cosmos DB 也未必能依靠外部防火墙阻止这种平台内攻击。

Wiz 于 2025 年 11 月向微软报告问题。微软表示在 48 小时内封堵 Gremlin API 入口,随后完成长期架构整改、移除相关平台主密钥并增加认证和网络防护。双方均称未发现研究活动之外的利用或客户数据访问,微软表示客户无需操作。这一点与 2021 年 ChaosDB 事件不同,当时部分客户需要轮换密钥。

“无需客户操作”不等于企业什么都不必学。托管云服务会把大量安全责任交给平台,客户无法自行修补网关,但可以减少长期主密钥使用,采用托管身份和最小权限,记录异常数据访问,并为关键数据库准备跨账户或跨云备份。平台故障不应成为业务无法恢复的单点。

关键事实

  • 来源:Wiz 技术披露及文内微软回应
  • 涉及服务:Azure Cosmos DB,入口为 Gremlin API
  • 攻击链:沙箱逃逸、网关代码执行、平台取钥秘密、账户目录枚举
  • 修复状态:微软称已完成缓解和长期整改,未发现研究之外利用,客户无需操作

OC 判断

这不是普通客户配置错误,而是云平台控制面的架构问题。多租户服务必须假设租户输入最终能突破某一层沙箱,因此承载输入的执行环境不应持有全局凭据。平台级密钥把便利集中成单点失败,正确修复不是再加一条过滤规则,而是缩小凭据范围并拆断跨租户取钥路径。

为什么重要

  • 对开发者:在 Cosmos DB 中优先使用托管身份和细粒度 RBAC,减少应用直接持有主密钥。
  • 对企业:云服务修复后仍应核对日志、备份和恢复方案,理解哪些风险只能由平台控制。
  • 对云厂商:任何运行租户代码或查询的共享服务都应被视为敌对环境,不能靠单层沙箱保护全局秘密。

参考来源

相关阅读

基于标题、摘要和正文内容自动匹配。

更多科技

评论

围绕这篇文章补充信息、提出问题或分享观察。

0
暂无评论。

发表评论

继续看看 OC 用户围绕这个话题说了什么、做了什么。

相关帖子

更多

你为什么不移民?

<p>我是一定要移了,在这里连正常呼吸都不行了。以前正常呼吸指的是言论自由,现在是生物学意义的正常呼吸问题了。</p> <p>你为什么不移民?</p>

tinyfool 740 15

你们的Codex额度提前耗完了没?戒断反应如何?

<p>我在第三天就消耗了只剩1%,忍了一天,然后今天干脆用这最后的1%,开着5.6 Sol 极高 强推我一个提示词笔记本应用的功能落地。最终用时3小时,居然还是跑完了。但是现在还是出现一些戒断反应,感觉啥也做不了,就无精打采的,困。</p> <p>我做了一个Prompt Notebook,专门用来收藏或者记录自己手搓的生图提示词。带Chrome一键收藏插件。支持AI优化提示词。支持提示词中提取常用字段作为提示词百科词汇。也自带生图功能用来测提示词。但是要搭配Cloudflare R2+Worker的图床。</p> <p>今天主要是做一个AI模特的资产库。将常用的AI模特固定下来,进行身份设定,以及模特的一些角色定妆图。之后生图可以直接调用AI模特自动作为垫图。</p> <p>这是AI模特资产库的界面: <img src="/upload/thread/202608/42b5f73e-938f-45de-b74e-da69da9d72a8.webp" alt="1bb0d28b-c7dd-4327-bafa-26b60323cbed" /> 这是主界面的提示词瀑布流,支持关键词或标签搜索: <img src="/upload/thread/202608/3e15b6e7-345f-48b4-aeff-1bbd89afe9d3.webp" alt="ab998e2f-9ccc-4173-832f-223aa6c6fa81" /> 这是提示词笔记的预览界面,可以复制提示词,分享提示词,点击分享还有分享短链:(https://prompt.jintao.co.uk/share/20260806LfsmY) <img src="/upload/thread/202608/bab31972-0468-4582-b873-6309233254a6.webp" alt="20260806-201213" /> 可惜现在没额度了,我又不想换模型折腾。现在还有些界面细节和小功能需要落地完善,可能还要虫子要抓。弄好了,打算放GitHub开源。</p> <p>有朋友想试试的么?</p>

shynloc 2 4

你更喜欢 Codex 还是 Cladue Code?

<p>我先说,我更喜欢 Codex,因为我没用过 Cladue Code。Codex 一直都能很好满足我的需求,所以我不是很有动力去换 Cladue Code。虽然我也知道很多人更喜欢 Cladue Code。但是我觉得应该差不多吧?</p>

tinyfool 5 111

测试OurCoders能否发布照片

<p>今天小区的彩虹🌈<img src="https://share.icloud.com/photos/0ebtFydNy8r_gJETON61u4Ybg" alt="图片说明" /></p> <p>看来不能直接发照片,可以把iCloud Link的功能派上用场!</p>

梁建溢 15 45