YASA:打造多语言统一程序分析引擎

4 阅读2分钟

开放式统一多语言程序分析产品YASA(Yet Another Static Analyzer )是一个开源的静态程序分析项目。

其核心是定义了一种多语言通用的中间表达——统一抽象语法树(Unified Abstract Syntax Tree,简称UAST),基于UAST实现了一套高精度的静态程序分析框架。用户可通过编写检查器(Checker)的方式,灵活实现诸如AST查询、数据流分析、函数调用图分析等多种程序分析任务,并通过SDK/声明式查询语言QL/MCP等方式对外开放能力。

作为诞生于安全团队的开源项目,YASA也以Checker的形式内置了安全领域最重要的污点分析能力,用于安全漏洞的检测。YASA致力于构建开放、统一、高效、准确的程序分析产品,为企业级代码安全和质量保障提供有力的技术支撑。

YASA已在2025年正式开源(Apache License 2.0)!欢迎开源爱好者参与共建,共同推进程序分析技术发展。(点击观看YASA开源发布视频

YASA技术优势

新语言支持成本低

YASA直接基于UAST进行建模分析,当适配新语言时,将其解析到UAST后,即可使用通用层分析器的分析能力,支持新语言的包结构后,即已支持新语言的分析。

语言特性分布

分析精度高、可衡量、多语言统一

· YASA基于统一多语言符号解释能力,在静态代码分析分析上具有高精度、可扩展的技术优势。针对静态分析领域中的域敏感、上下文敏感、对象敏感、路径敏感、流敏感天然具备较好的支持能力。

· 在YASA研发的过程中,使用xAST对YASA-Engine的能力进行评测与验证,达到'能力可衡量'的效果。我们对比了YASA以及其他开源程序分析工具在xAST评价体系上的表现:

YASA基于xAST的测评结果

让程序分析更开放、易用、友好

· 统一声明式规则查询语言UQL,兼容codeql语法,并业界首创多语言统一的QL规则库,使程序分析更易用。

YASA-UQL

· YASA-MCP (大模型友好)

YASA-MCP

资源链接

YASA官网:cybersec.antgroup.com/station

YASA-Engine地址:github.com/antgroup/YA…

YASA-UAST地址:github.com/antgroup/YA…

欢迎关注【开放式安全基础设施】公众号,与上千名技术精英交流技术干货&程序分析

原文链接:mp.weixin.qq.com/s/X3XnDrziM…