约17.3万亿行微软内部数据,曾通过一个登录令牌的疏忽向攻击者敞开大门。安全研究员Faav在9月25日发表的文章中披露,微软某内部分析服务从不校验登录令牌的签名,这意味着任何人都能伪造管理员身份、提交未授权的SQL查询——而无需任何真实凭证。横跨多个微软数据集的17.3万亿个存储行,理论上都在射程之内,规模大到难以直观想象。
Faav不是无名之辈。一年多前,15岁的他发表了《潜入微软任何一栋大楼》,在安全圈崭露头角,年少成名的标签一直贴到现在。这次他格外谨慎:只用表结构描述、元数据和受限的样本行来评估影响范围,并在一开头就声明两点——描述的危害是假设性的,“攻击者本可以做到”而非已经发生;他从未触碰任何客户数据或个人身份信息。发现漏洞的是他,万幸不是别人。
一个缺失的签名检查就足以打开所有大门
漏洞的原理简单到令人不安。登录令牌通常由服务端签发签名,服务每次都要验签确认“这张票真是我开的”。涉事的分析服务跳过了这一步,于是Faav自己“开”了一张管理员的票,服务照单全收。有了管理员身份,表描述和元数据足以让他摸清17.3万亿行数据的版图:哪些库、哪些表、什么结构,一览无余,而这一切只需要“没人验签”这一个前提。
颇具戏剧性的是发表过程。Faav在文中坦言,微软对这篇文章拥有编辑控制权,删减了部分章节和图表,重塑了影响的表述方式。微软随后发表声明,感谢他的提交与协调披露“帮助我们更好地保护客户”,并表示珍视漏洞赏金计划框架下的安全研究,期待继续合作。体面收场,但删减本身也成了故事的一部分,读者看到的已是协商后的版本。
假设性危害与真实教训之间只差一次运气
Faav反复强调“假设性”三个字,但这恰恰是最吓人的部分:一个签名检查的缺失,就能让内部分析服务变成通往17万亿行数据的直通车,而这类基础失误往往藏在最不起眼的角落。攻击者不需要0day,不需要社工,只需要发现“没人验签”这个事实。运气这次站在防守方这边,下一次未必。
对防御方来说,教训是老生常谈:身份校验的每一环都不能省,再内部的服务也不能默认可信。对行业来说,这类故事的价值在于提醒——最值钱的漏洞常常不在密码学前沿,而在“以为有人做了”的工程假设里。微软表示已据此加固服务,赏金计划的合作还在继续,而Faav的下一篇披露,值得蹲一个收藏。