查看原文
科技

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

CSDN 2023-09-21

整理 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

多达 38TB 的微软内部数据遭泄露,起因竟只是一个小小的配置错误?——确实如此,你没看错。

本周云安全初创公司 Wiz Research 发布了一则公告:微软 AI 研究团队在 GitHub 上发布大量开源培训数据时,意外暴露了 38TB 的额外私人数据,其中还有两名员工工作站的磁盘备份,包括了机密信息、私钥、密码和超过 30000 条内部 Microsoft Teams 消息。

而这一切的源头,仅是一个配置错误的共享访问签名(SAS)令牌。

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 消息。

在计算机备份中找到的一小部分敏感文件样本

两名微软员工之间经过编辑的团队对话

 “权限过大”的 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 存储库的用户都会因此受到感染。”

组织 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/

欢迎参与 CSDN 重磅发起的《》,分享您真实的使用体验,更有精美好礼等你拿!

推荐阅读:

大数据+大模型的尽头一定是干掉数据分析师吗?| 近匠

在微软任职近 20 年,Windows、Surface 负责人官宣将离职!

任正非最新讲话曝光:苹果是华为的老师;微软 AI 团队意外泄露 38TB 数据;JDK 21 发布|极客头条

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存