16 岁少年用 AI 挖出微软漏洞,17 万亿行数据失守

16 岁少年用 AI 挖出微软漏洞,17 万亿行数据失守

9 月 25 日,一名化名为 Faav 的 16 岁安全研究员在其个人博客披露:他发现微软内部分析平台 Titan 存在身份验证漏洞,可借此以管理员身份访问包含约 2.5 万条员工数据记录的内部数据库,并能查询总量达 17.3 万亿条的数据记录。微软随后向其颁发 5000 美元(约合 3.36 万元人民币)漏洞赏金。

一台 AI 机器人开启的猎杀

Faav 自 15 岁起参与漏洞赏金项目,并自行开发了名为 Antares 的人工智能机器人。2026 年 8 月 25 日,Antares 发现了 Titan 的一个公开应用程序接口,该接口提示需要连接 VPN(虚拟专用网络)。Faav 随后让 Antares 枚举相关子域名,定位到一个位于 Azure 云环境中的主机,并找到对应的 Swagger/OpenAPI 文件。这份文件列出了 4 个应用程序接口路由,其中 3 个要求 Azure Active Directory 身份验证,但名为”/v2/Query”的第 4 个接口没有这一要求,且支持直接提交 SQL 查询。

为弄清数据库结构,Faav 通过 Wayback Machine 互联网档案库找到 2023 年 Titan 登录页的快照,从中获取到 Apache Superset 配置文件——该文件描述了数据库结构,共包含 56 个数据表定义。

卡在”签名形同虚设”上

接下来的 10 天里,Antares 逐一试探 Titan 的 JWT(JSON Web Token,一种常用的身份认证令牌)验证流程:先是租户不匹配,再是受众不匹配,然后是应用白名单拒绝,最终抵达用户查询环节。Faav 发现,”/v2/Query”接口虽然要求 JWT 身份验证,但服务器似乎从未校验令牌的数字签名。

JWT 由头部、载荷与签名三部分组成,签名本应证明前两部分来自可信来源且未被篡改。Faav 据此伪造了一枚算法标识为”none”、签名段为空的登录令牌,将用户主体名称改为”admin”后,成功以管理员身份执行 SQL。Titan 将这个本地用户名解析为拥有完整管理员权限的用户 ID 1。

17.3 万亿行的估算

9 月 5 日凌晨,Faav 确认可访问 Titan 平台的数据库。查询显示,其元数据包含约 25000 个账户与邮箱记录、17990 个员工邮箱记录、15001 个员工组织记录,以及 355 个数据库配置、20979 个虚拟数据集 SQL 定义、24569 个仪表盘和 425891 个图表。他还在数据库中发现了与 Bing 分析相关的一组数据源。

通过汇总多个数据表中的记录数量,Faav 估算自己可访问的数据规模达到 17,333,335,124,315 条(约 17.3 万亿行)。他调侃称,在凌晨 2 点看到这个数字时,为避免吵醒父母,还不得不克制住喊出来的冲动。

值得注意的是,Faav 并未大规模提取数据,仅将测试限制在元数据目录(约 25000 个应用账户、17990 个员工邮箱记录),并以两行样本确认了对一个独立 Bing 分析数据集的访问,而非批量查询。

微软的响应与启示

确认漏洞后,Faav 撰写报告并向微软安全响应中心(MSRC)提交。9 月 6 日至 8 日,微软要求他停止测试并提供 IP 地址,以确认没有超出安全研究范围的活动;9 月 9 日,该应用程序接口即被锁定;9 月 17 日,微软向其颁发 5000 美元赏金;9 月 22 日,双方会面讨论漏洞并协调披露。

微软在声明中表示:”我们感谢有机会调查 Faav 报告的发现。其提交和协调漏洞披露帮助我们更好地保护客户,强化了服务。”Faav 则称,微软在博客发布前对文章进行了编辑控制,删减了部分内容并调整了影响描述。

这起事件也凸显了人工智能辅助安全研究的双刃剑效应:Faav 坦言,单靠 Antares 或单靠他自己都无法突破这道认证,”是它的坚持,加上人的一次直觉,才促成了这次发现”。对开发者的核心警示则是:应用程序必须密码学校验 JWT 签名,并避免将攻击者可控的声明直接映射到特权账户,否则再严密的”门卫”也只会核对名字、从不查看证件。