分享

仅因一个配置错误,微软意外泄露 38TB 内部数据!


多达 38TB 的微软内部数据遭泄露,起因竟只是一个小小的配置错误?——确实如此,你没看错。
本周云安全初创公司 Wiz Research 发布了一则公告:微软 AI 研究团队在 GitHub 上发布大量开源培训数据时,意外暴露了 38TB 的额外私人数据,其中还有两名员工工作站的磁盘备份,包括了机密信息、私钥、密码和超过 30000 条内部 Microsoft Teams 消息。
而这一切的源头,仅是一个配置错误的共享访问签名(SAS)令牌。
640.jpg

01
38TB 内部数据遭泄露!
据 Wiz 介绍,微软这场规模庞大的数据泄露,早在 2020 年 7 月就存在了,只是在今年 6 月才被 Wiz 发现。
作为 Wiz 研究团队工作的一部分,他们会查找云托管数据意外暴露的情况,在互联网上扫描配置错误的存储容器。在此过程中,今年 6 月 Wiz 发现了一个属于微软 AI 研究部门的 GitHub 存储库。
这个 GitHub 存储库提供了用于图像识别的开源代码和 AI 模型,并引导开发者前往微软云存储系统 Azure Storage 的 URL,来下载相关代码和开源模型:
640.jpg
乍看之下,这个 URL 没有任何问题,但 Wiz 却发现:该 URL 中包含了一个访问范围过于宽松的共享访问签名(SAS)令牌,被错误配置为授予整个 Azure 存储账户的权限——也就是说,点击该链接的人不仅可以访问开源模型,更可以共享该 Azure 存储账户中的全部数据!
根据 Wiz 扫描显示,该 Azure 存储账户包含 38TB 的额外数据,其中包括微软员工的个人电脑备份。这些备份包含敏感的个人数据,包括微软服务的密码、密钥以及来自 359 名微软员工的 30000 多条内部 Microsoft Teams 消息。
640.jpg
在计算机备份中找到的一小部分敏感文件样本
640.jpg
两名微软员工之间经过编辑的团队对话

02
“权限过大”的 SAS 令牌
说了这么久,那 SAS 令牌到底是什么呢?具体来说,共有 3 种类型的 SAS 令牌:账户 SAS、服务 SAS 和用户授权 SAS。而此次用于微软存储库中的,正是账户 SAS 令牌。
在 Azure 中,SAS 令牌是一个经过签名的 URL,可授予对 Azure 存储数据的访问权限,其访问范围和到期时间都可以由用户自定义:
  • 权限可以选择“只读”和“完全控制”,范围可以是单个文件、容器或整个存储账户;
  • 到期时间也完全可定制,用户可以创建永不过期的访问令牌。

生成帐户 SAS 令牌的过程很简单,用户只需配置令牌的范围、权限和到期日期,即可生成令牌。在后台,浏览器会从 Azure 下载账户密钥,并用密钥签署生成的令牌——整个过程在客户端完成,既不是 Azure 发起的事件,生成的令牌也不是 Azure 对象。
640.jpg
但也正因如此,一旦用户创建了一个权限过高且还没过期的 SAS 令牌时,管理员就很难发现。
例如,2020 年 7 月 20 日微软 AI 开发人员首次将 SAS 令牌提交到 GitHub 存储库,并把权限到期日设为 2021 年 10 月 5 日;到了 2021 年 10 月 6 日,又把 SAS 令牌到期日更新为 2051 年 10 月 6 日。
从时间上来看,微软的这个 SAS 令牌没什么问题;但从权限范围和级别来看,其风险就很大了:不仅可以访问存储账户中的全部数据,该 SAS 令牌还被错误配置为“完全控制”权限而非“只读”权限。
这意味着,所有人不仅可以查看存储账户中的所有文件,都能随时删除、替换并向其中注入恶意内容。
对于这个隐患,Wiz 联想到了最初这个 GitHub 存储库的目的:提供用于图像识别的开源代码和 AI 模型。Wiz 分析称,存储库让用户从 SAS 链接下载模型数据文件,并将其输入脚本,该文件格式为 ckpt,是 TensorFlow 库生成的一种格式,它使用 Python 的 pickle 格式化器进行格式化,而这种格式化器在设计上很容易执行任意代码。
对此,Wiz 提出了一种假设:“也就是说,攻击者可以将恶意代码注入该存储账户中的所有 AI 模型,而每个信任微软 GitHub 存储库的用户都会因此受到感染。”

03
组织 AI 研究时,注意安全检查和保护措施
基于这种担忧,Wiz 在 6 月 22 日就与微软分享了调查结果,两天后也就是 6 月 24 日,微软就撤销了该 SAS 令牌。到了 7 月 7 日,微软将新的 SAS 令牌上传至 GitHub,并于 8 月 16 日完成了对潜在影响的内部调查。
不过值得注意的是,Wiz 指出这个存储帐户似乎并没有直接暴露给公众:“事实上,这是一个私人存储账户。”
表面上看,微软开发人员使用了一种名为“SAS 令牌”的 Azure 机制,允许创建一个可共享的链接,授予对 Azure 存储账户数据的访问权限。但 Wiz 表示:在检查时,该存储账户看起来仍然是完全私有的。
对于这个问题,微软安全响应中心也强调:“没有客户数据因此暴露,也没有其他内部服务因这个问题而面临风险。”微软表示,根据 Wiz 的研究结果,它已经扩展了 GitHub 的秘密扫描服务,该服务可以监控所有公开源代码的更改,以防明文暴露凭证和其他机密,包括任何可能具有过度许可权限或过期的 SAS 令牌。
尽管此次事件并未造成严重后果,但 Wiz 依旧认为,这件事提醒了工程师们,在组织 AI 研究时,必须充分考虑到所需的安全措施——毕竟像微软这样的科技巨头,也会因为一个错误配置导致大规模的数据泄露:
“随着数据科学家和工程师竞相将新的 AI 解决方案投入生产,他们处理的海量数据需要额外的安全检查和保护措施。由于许多开发团队需要处理海量数据、与同行共享数据或在公共开源项目上合作,像微软这样的案例越来越难以监控和避免。”
参考链接:
https://www.wiz.io/blog/38-terabytes-of-private-data-accidentally-exposed-by-microsoft-ai-researchers#introduction-and-microsoft-findings-2
https://techcrunch.com/2023/09/18/microsoft-ai-researchers-accidentally-exposed-terabytes-of-internal-sensitive-data/


版权说明:论坛帖子主题均由合作第三方提供并上传,若内容存在侵权,请进行举报

没找到任何评论,期待你打破沉寂

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

联系在线客服