16岁研究员披露微软Titan严重漏洞

16岁研究员披露微软Titan严重漏洞。该缺陷因未验证令牌签名,允许攻击者获取管理员权限并访问约17.3万亿行数据。微软已修复问题,并向其支付5000美元赏金。

16 岁安全研究员 Faav 披露了微软内部分析平台 Titan 的一处严重身份验证漏洞。该缺陷允许攻击者在无需有效凭证的情况下获取管理员权限,执行未经授权的 SQL 查询,并潜在访问包含约 17.3 万亿行数据的分析数据库。

缺失签名验证致权限突破

Titan 是微软位于雷德蒙德总部的内部分析服务,原本仅通过 Web 界面供员工使用。Faav 借助其开发的名为 Antares 的 AI 黑客机器人协助调查,发现可通过 Azure Cloud Services 主机访问 Titan API。核心问题在于 Titan 未对登录令牌的签名进行验证。微软已封锁相关 API,并向 Faav 支付了 5,000 美元漏洞赏金。

突破过程:从作业到凌晨的管理员权限

据 Faav 描述,这一突破发生在经历 10 天身份验证错误之后。他在周五完成学校作业后重新投入研究,最终于周六凌晨 1 点后成功以 Titan 管理员身份执行 SQL 命令。“那是凌晨 2 点,”Faav 在博客中写道,“我想大喊大叫,或者至少大声说出点什么,但我的父母都在睡觉。所以我只是坐在那里盯着 17,333,335,124,315,并再次检查了计算结果。”

应微软要求,Faav 在发布前重写了博客文章,删减了部分章节、数字及影响描述。微软在声明中表示:“我们感谢有机会调查 Faav 报告的问题。他们的提交和协调漏洞披露帮助我们通过加强服务来更好地保护客户。我们重视并赞赏在 Microsoft Bug Bounty Program 条款下进行的安全研究,并期待未来继续与 Faav 合作。”

技术细节:缺失的签名验证

这项研究始于 8 月 25 日,当时 Antares 发现了 Titan 的公开 API。随后 10 天内,Faav 与机器人共同测试了服务的 JSON Web Token (JWT) 身份验证检查及电子邮件格式的用户主体名称 (UPN)。他们发现未签名的令牌可以访问 Titan 的本地用户查找功能,但无法访问识别出的 UPN。

9 月 5 日凌晨,Faav 将未签名令牌的 UPN 从电子邮件格式改为 "admin"。Titan 将其解析为本地用户名,对应拥有管理员角色的本地用户 ID 1,从而允许运行 SQL。关键漏洞在于:Titan 验证了 JWT 的内容(租户、受众、应用 ID、用户),却从未验证签名——而签名通常是身份验证中最核心的环节。

Faav 将此比作一家酒店,每扇门都有门禁读卡器,但任何门卡都能打开任何房间。尽管应用中存在完整的访问控制逻辑,缺失的签名验证使这些防护形同虚设。他建议开发人员或编码代理在构建身份验证时,务必首先确保验证签名。

数据暴露范围

获得管理员权限后,Faav 能够访问 Titan 的平台元数据数据库,并直接查询应用程序表。暴露的元数据包括:

  • 约 25,000 条账户和电子邮件记录
  • 17,990 条员工电子邮件记录
  • 15,001 条员工组织记录
  • 355 个数据库配置
  • 20,979 个虚拟数据集 SQL 定义
  • 24,569 个仪表板、425,891 个图表和 27,347 个数据集定义

Titan 的用户和使用目录还暴露了员工的职位、部门及管理体系结构。研究人员指出,这些信息可能被用于社会工程攻击,但他强调“我从未测试或演示过这一点”。

此外,Faav 还发现了一个 Bing 分析样本,并测试了两行包含搜索信息、标识符和高级位置信息(如国家或州级细节)的数据。他表示,这些位置值不包含精确的用户位置。

在进一步探索中,Faav 测试了来自归档配置的 56 个路由值,发现其中 30 个仍然活跃。每个路由值指向一个后端配置,进而关联至庞大的数据集合,最终触及约 17.3 万亿行的数据规模。

评论 0

0/500

评论需审核后展示,请文明发言

💬
还没有评论,来说两句

相关阅读