WIZ 研究团队最近发现,一个过度配置的 SAS 令牌已在 GitHub 上暴露了近三年。该令牌允许访问 38 TB 的海量私人数据。此Azure 存储包含其他机密,例如隐藏在两名 Microsoft 员工的磁盘备份中的 SSH 私钥。这一发现强调了强大的数据安全措施的重要性。
发生了什么?
WIZ Research 最近披露了 2023 年 6 月 23 日在微软 AI GitHub 存储库中发现的一起数据泄露事件。
管理 GitHub 的研究人员通过 SAS 令牌使用 Azure 存储共享功能来访问开源 AI 训练数据桶。
该令牌配置错误,导致可以访问该帐户的整个云存储而不是预期的存储桶。
该存储包含 38TB 的数据,包括两个员工工作站的磁盘备份,其中包含机密、私钥、密码以及 30000 多条内部 Microsoft Teams 消息。
SAS(共享访问签名)是用于共享 Azure 存储资源的签名 URL。它们配置了对客户端如何访问数据的细粒度控制:公开哪些资源(完整帐户、容器或文件选择)、具有哪些权限以及多长时间。
在向 Microsoft 披露该事件后,SAS 令牌失效。从第一次提交到 GitHub(2020 年 7 月 20 日)到撤销,已经过去了近三年的时间。请参阅 Wiz Research 团队提供的时间表:
2020 年 7 月 20 日– SAS 代币首次提交至 GitHub;到期日为 2021 年 10 月 5 日
2021 年 10 月 6 日– SAS 令牌到期日期更新为 2051 年 10 月 6 日
2023 年 6 月 22 日– Wiz Research 发现问题并向 MSRC 报告
2023 年 6 月 24 日– SAS 令牌被 Microsoft 无效
2023 年 7 月 7 日– GitHub 上的 SAS 令牌被替换
2023 年 8 月 16 日– Microsoft 完成潜在影响的内部调查
2023 年 9 月 18 日– 公开披露
然而,正如 WIZ 研究团队所强调的那样,共享访问签名 (SAS) 存在配置错误。
数据暴露
该令牌允许任何人访问额外的 38TB 数据,包括密钥、个人密码等敏感数据,以及来自数百名 Microsoft 员工的 30,000 多条 Microsoft Teams 内部消息。
以下是 Wiz 团队恢复的一些最敏感数据的摘录:
正如研究人员所强调的,这可能允许攻击者将恶意代码注入到存储 blob 中,然后这些代码可以在信任微软声誉的用户(大概是人工智能研究人员)每次下载时自动执行,这可能会导致供应链攻击。
安全风险
研究人员表示,Account SAS 代币(例如他们研究中提出的代币)存在很高的安全风险。这是因为这些令牌是高度宽松、寿命长的令牌,可以逃脱管理员的监控范围。
当用户生成新令牌时,它会由浏览器签名,并且不会触发任何 Azure 事件。要撤销令牌,管理员需要轮换签名帐户密钥,从而立即撤销所有其他令牌。
具有讽刺意味的是,微软产品功能(Azure SAS 令牌)的安全风险引发了微软研究团队的事件,微软存储服务威胁矩阵的第二版最近提到了这一风险。
秘密蔓延
这个例子完美地强调了组织内部秘密蔓延的普遍问题,即使是那些拥有先进安全措施的组织也是如此。有趣的是,它强调了人工智能研究团队或任何数据团队如何独立创建可能危及组织的代币。这些令牌可以巧妙地避开旨在保护环境的安全措施。
缓解策略
对于 Azure 存储用户:
1. 避免帐户 Sas 令牌
由于缺乏监控,此功能成为您周边的安全漏洞。外部共享数据的更好方法是使用具有存储访问策略的服务 SAS 。此功能将 SAS 令牌绑定到策略,提供集中管理令牌策略的能力。
不过,如果您不需要使用此 Azure 存储共享功能,最好只需禁用您拥有的每个帐户的 SAS 访问权限。
2. 启用 Azure 存储分析
可以通过每个存储帐户的存储分析日志监控活动 SAS 令牌的使用情况。Azure Metrics允许监控经过 SAS 身份验证的请求,并识别已通过 SAS 令牌访问的存储帐户,有效期最长为 93 天。
对全部:
1. 审核您的 GitHub 周边是否存在敏感凭证
GitHub 拥有约 9000 万个开发者帐户、3 亿个托管存储库和 400 万个活跃组织(其中包括 90% 的财富 100 强公司),其攻击面比表面上看起来要大得多。
去年,GitGuardian 在公共存储库上发现了 1000 万个泄露的机密,比前一年增长了 67%。
作为任何组织安全边界的一部分,必须对 GitHub 进行主动监控。平台上涉及凭证泄露的事件继续对大公司造成大规模的数据泄露,而微软保护壳中的这个安全漏洞不免让我们想起一年前的丰田数据泄露事件。
2022 年 10 月 7 日,日本汽车制造商丰田透露,他们意外暴露了近 5 年来允许访问公共 GitHub 存储库中的客户数据的凭证。该代码于 2017 年 12 月至 2022 年 9 月期间公开。
如果您的公司有开发团队,那么您公司的一些机密(API 密钥、令牌、密码)很可能最终会出现在公共GitHub上。因此,强烈建议将审核 GitHub 攻击面作为攻击面管理计划的一部分。
每个组织,无论规模大小,都需要做好应对各种新出现风险的准备。这些风险通常源于对当今现代企业中广泛的软件操作监控不足。在这种情况下,人工智能研究团队无意中创建并暴露了一个配置错误的云存储共享链接,绕过了安全护栏。
但是有多少其他部门(支持、销售、运营或营销)会发现自己处于类似的情况呢?对软件、数据和数字服务的日益依赖加剧了全球范围内的网络风险。
打击机密信息的传播及其相关风险需要重新评估安全团队的监督和治理能力。
更多详情:38TB of data accidentally exposed by Microsoft AI researchers | Wiz Blog