FreeWavm:Goplus 针对 WebAssembly 虚拟机漏洞挖掘的最新研究成果,已获 ISSTA 2025 全文正式录用

近期,Goplus针对WebAssembly虚拟机漏洞挖掘的最新研究成果获ISSTA2025全文正式录用!

ISSTA作为软件工程领域的四大顶级会议之一,同时也是中国计算机学会(CCF)认定的软件工程领域的A类国际学术会议,专注于收录全球科研机构和科技企业在软件工程、软件测试领域的最新前沿进展。

1.问题定义

WebAssembly运行时是执行WebAssembly代码的基础架构,被广泛用作Web浏览器和区块链系统的执行引擎。例如,以太坊2.0和Polkadot已采用WebAssembly运行时作为智能合约的执行环境,以提高其效率和安全性。尽管WebAssembly运行时越来越流行,但它们也带来了新的攻击面。WebAssembly运行时中的缺陷和瑕疵可能会导致意外行为、错误结果甚至严重的安全后果,尤其是对于依赖于编译成WebAssembly字节码的智能合约的区块链平台而言。

2.区块链智能合约虚拟机模糊测试框架

面向WebAssembly虚拟机漏洞挖掘,本文设计了一个基于解析树突变和快照引导的WebAssembly虚拟机模糊测试框架FreeWavm。

FreeWavm由四个关键组件组成。

(1)为了捕获WebAssembly代码的结构化特征,制定了一个WebAssembly模块解析器,将WebAssembly字节码转换为解析树结构。

(2)然后,设计了一个结构感知的变异模块,为WebAssembly运行时生成有意义的测试输入。这涉及采用定制的节点优先级策略从解析树中过滤出有趣的节点,然后对这些节点执行特定的变异。

(3)为了确保变异测试输入的完整性,提出了一种自动修复机制来纠正变异的解析树。这保证了模块解析器可以成功解析新生成的测试输入,从而确保连续变异的有效性。

(4)构建了一个快照池来维护未完成的解析树结构,这些解析树结构要么触发崩溃,要么覆盖目标运行时中的新执行路径,从而允许先前的知识用于后续的变异,从而增加发现WebAssembly运行时中深层漏洞的概率。

FreeWavm的总体架构

对多个WebAssembly虚拟机进行了广泛的实验。FreeWavm已成功发现69个新的漏洞,其中24个被分配了CVE。相比之下,FreeWavm在实现的代码覆盖率和24小时运行期间触发的漏洞数量方面均优于其他同类产品。