【喜报】研究成果被国际顶级会议 IEEE S&P 2027 录用

所见即所得:网页资源中的密钥泄露检测与测量

近日,奇安信技术研究院与清华大学合作完成的论文《What I See Is What You Leak: Detection and Measurement of Browser-Visible Secrets in the Wild》被 2027 IEEE Symposium on Security and Privacy(IEEE S&P 2027)录用。论文作者依次为周嘉炜、应凌云、张子东和谷雅聪;其中应凌云为通讯作者。

网站的密钥,有时就暴露在一次普通的网页访问之中。原本只应留在服务端的凭证,可能随着前端代码一同发布;为浏览器端调用设计的 API 密钥,也可能因缺少必要的使用限制而成为可被滥用的入口。从地图服务、云平台到 AI 应用,这些散落在公开资源中的密钥,可能让网站面临服务盗用、额度消耗乃至敏感数据泄露的风险。然而,真实 Web 生态中密钥泄露的规模、分布与影响,仍缺少系统测量。在密钥识别层面,现有扫描工具主要面向源代码,面对经过压缩的网页脚本,既可能因变量名等线索消失而漏检,也容易将 SDK 标识符、构建哈希误判为密钥。在资源收集层面,没有被页面引用的构建产物又容易被常规爬虫遗漏。

为此,团队针对网页资源收集与密钥识别中的难点,设计开发了 KeySifter。通过分析 10 类主流 Web 框架的构建方式,团队将常规资源爬取与定向探测相结合,把收集范围从页面加载的资源拓展至没有被网页引用的“影子资源”。在密钥检测方面,KeySifter 结合规则扫描与 JavaScript 调用位置回溯,找出压缩代码中的密钥,再借助风险模式知识库过滤形似密钥的普通字符串。评估结果显示,KeySifter 达到 93.6% 的精确率和 81.7% 的召回率。

团队从 Tranco 排名前 100 万的网站中抽样了 65,000 个域名,共分析 8,393,191 个文件,识别出 1,244 个密钥泄露问题,涉及 1,437 个域名。测量发现,样本中排名 1 万至 10 万的网站泄露率最高;18.3% 的泄露来自没有被任何已渲染页面引用的影子资源,仅沿网页链接爬取会漏掉这部分风险。

研究还发现,设计上可公开的 API 密钥同样需要使用限制。在分析的 2,684 个暴露的 API 密钥中,1,010 个(37.6%)至少可在一项服务上不受限制地调用;其中 137 个可以访问 Vision、Gemini 等高价值服务。

围绕研究发现的服务端密钥意外泄露、公开密钥配置不当等问题,团队开展了负责任披露。截至目前,已有 55 起案例得到确认或修复,包括一家网站位列 Tranco 全球前 200 的消费电子厂商,以及一家网站位列前 3,000 的旅游平台。

KeySifter 已开源,项目地址:https://github.com/XingTuLab/KeySifter