YASA(Yet Another Static Analyzer )是一个开源的静态程序分析项目。其核心是定义了一种多语言通用的中间表达——统一抽象语法树(Unified Abstract Syntax Tree,简称UAST),基于UAST实现了一套高精度的静态程序分析框架。用户可通过编写检查器(Checker)的方式,灵活实现诸如AST查询、数据流分析、函数调用图分析等多种程序分析任务,并通过SDK/自研统一声明式查询语言UQL/MCP等方式对外开放能力。
YASA官网:cybersec.antgroup.com/station
YASA v0.3.0版本主要变更如下:
2026-01-01 ~ 2026-04-09
YASA-UAST
New Features
- 三层继承类型系统(BaseType → Type → DetailedType),提升跨语言类型分析准确性
- 统一可变参数表示(parameterKind),解决 Python
*args、Java...等无法统一的问题 - 从 Spec 自动生成 Python AST 类型,新增节点只改 Spec 即可
Bug Fixes
- Java: 修复嵌套注解解析、保留数组大小表达式
- Python: 支持泛型基类
Generic[T]、复杂类型注解 - Go: 自定义类型改用 ScopedType 、清理 Position 冗余字段
YASA-Engine
New Features
- 新增 Tornado 和 Beego 框架污点分析,扩大 Web 框架覆盖面
- 新增 Java Stream API 内建函数,解决链式调用污点断链问题
Refactoring
- 符号值树重构为符号表结构,支持低成本分层拷贝
- Value 类型体系重建:将原来的单一大类拆分为 ValueBase、ValueRef、ExprValue 等职责清晰的小模块,降低内存占用,提升污点传播追踪精度
- Parser 拆分为三层(parser / parser-core / parser-worker),支持多进程并行解析,解决内存不释放问题
- 四语言 Analyzer(Java/Python/JS/Go)统一适配新 Value 体系
Bug Fixes
- Python: 修复块级语句误创建作用域导致变量查找失败
致 谢
感谢本周期贡献者:
@alipaydeshui、@Antjiufo、@Arielwyy、@CrackTC、@CyanM0un、@jiachunpeng、@KinomotoMio、@RacerZ-fighting、@Ris-1kd、@sapbenben、@ShenaoW、@zzz123456789-dev (排名不分先后,按照字母顺序排序)
欢迎关注【开放式安全基础设施】公众号,与上千名技术精英交流技术干货&程序分析
点击了解【开放式统一多语言程序分析产品YASA】