YASA:在蚂蚁集团实现无缝扩展的多语言混合 taint 分析
软件工程
2026-04-03 v2 密码学与安全
编程语言
摘要
现代企业日益采用多样化的技术堆栈,涉及多种编程语言,这对静态应用安全测试(SAST)提出了重大挑战。现有 taint 分析工具主要为单一语言设计,需要随语言多样性增长而大量投入工程 effort。虽然像 CodeQL、Joern 和 WALA 等多语言工具试图解决这些挑战,但在中间表示设计、分析精度和可扩展性方面存在局限,难以在蚂蚁集团大规模工业应用中实现有效扩展。为填补这一差距,我们提出了 YASA(Yet Another Static Analyzer),即为工业级部署而设计的统一多语言静态 taint 分析框架。具体而言,YASA 引入了统一抽象语法树(UAST),提供跨多种编程语言的统一抽象。基于 UAST,YASA 执行点到点分析和 taint 传播,利用统一语义模型来管理语言无关的 construct,同时融入语言特定语义模型以处理其他独特语言特性。与行业标准基准上的 6 个单语言和 2 个多语言静态分析器相比,YASA 在 Java、JavaScript、Python 和 Go 上均一致优于所有基线。在蚂蚁集团的实际部署中,YASA 分析了跨 7.3K 个内部应用的 1.1 亿行代码,识别出 314 条先前未知的 taint 路径,其中 92 条被确认为 0-day 漏洞。所有漏洞均得到负责任的报告,76 条已被内部开发团队修复,证明了 YASA 在保障大规模工业软件系统安全方面的实际有效性。
引用
@article{arxiv.2601.17390,
title = {YASA: Scalable Multi-Language Taint Analysis on the Unified AST at Ant Group},
author = {Yayi Wang and Shenao Wang and Jian Zhao and Shaosen Shi and Ting Li and Yan Cheng and Lizhong Bian and Kan Yu and Yanjie Zhao and Haoyu Wang},
journal= {arXiv preprint arXiv:2601.17390},
year = {2026}
}