多达 38TB 的微软内部数据遭泄露,起因竟只是一个小小的配置错误?——确实如此,你没看错。 本周云安全初创公司 Wiz Research 发布了一则公告:微软 AI 研究团队在 GitHub 上发布大量开源培训数据时,意外暴露了 38TB 的额外私人数据,其中还有两名员工工作站的磁盘备份,包括了机密信息、私钥、密码和超过 30000 条内部 Microsoft Teams 消息。 而这一切的源头,仅是一个配置错误的共享访问签名(SAS)令牌。
01 38TB 内部数据遭泄露! 据 Wiz 介绍,微软这场规模庞大的数据泄露,早在 2020 年 7 月就存在了,只是在今年 6 月才被 Wiz 发现。 作为 Wiz 研究团队工作的一部分,他们会查找云托管数据意外暴露的情况,在互联网上扫描配置错误的存储容器。在此过程中,今年 6 月 Wiz 发现了一个属于微软 AI 研究部门的 GitHub 存储库。 这个 GitHub 存储库提供了用于图像识别的开源代码和 AI 模型,并引导开发者前往微软云存储系统 Azure Storage 的 URL,来下载相关代码和开源模型: 乍看之下,这个 URL 没有任何问题,但 Wiz 却发现:该 URL 中包含了一个访问范围过于宽松的共享访问签名(SAS)令牌,被错误配置为授予整个 Azure 存储账户的权限——也就是说,点击该链接的人不仅可以访问开源模型,更可以共享该 Azure 存储账户中的全部数据! 根据 Wiz 扫描显示,该 Azure 存储账户包含 38TB 的额外数据,其中包括微软员工的个人电脑备份。这些备份包含敏感的个人数据,包括微软服务的密码、密钥以及来自 359 名微软员工的 30000 多条内部 Microsoft Teams 消息。 在计算机备份中找到的一小部分敏感文件样本
两名微软员工之间经过编辑的团队对话
02 “权限过大”的 SAS 令牌 说了这么久,那 SAS 令牌到底是什么呢?具体来说,共有 3 种类型的 SAS 令牌:账户 SAS、服务 SAS 和用户授权 SAS。而此次用于微软存储库中的,正是账户 SAS 令牌。 在 Azure 中,SAS 令牌是一个经过签名的 URL,可授予对 Azure 存储数据的访问权限,其访问范围和到期时间都可以由用户自定义: 生成帐户 SAS 令牌的过程很简单,用户只需配置令牌的范围、权限和到期日期,即可生成令牌。在后台,浏览器会从 Azure 下载账户密钥,并用密钥签署生成的令牌——整个过程在客户端完成,既不是 Azure 发起的事件,生成的令牌也不是 Azure 对象。 但也正因如此,一旦用户创建了一个权限过高且还没过期的 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/
|