EVMFuzz:以太坊虚拟机的差分模糊测试
软件工程
2019-04-09 v2
摘要
以太坊虚拟机(EVM)是智能合约的运行环境,其漏洞可能给以太坊生态带来严重问题。尽管已开发大量技术用于智能合约验证,EVM 的安全问题尚未得到充分研究。本文提出 EVMFuzz,旨在通过差分模糊测试检测 EVM 的漏洞。EVMFuzz 的核心思想是持续为不同 EVM 的执行生成种子合约,以尽可能发现执行结果间的不一致,最终通过输出交叉比对发现漏洞。首先,我们给出内部不一致性指标(如执行的 opcode 序列与消耗的 gas)的评估度量。然后,我们通过一组预定义变异器构造种子合约,并采用动态优先级调度算法指导种子合约选择以最大化不一致性。最后,我们利用不同 EVM 作为交叉比对预言机,避免对执行输出的人工检查。为评估,我们对 36,295 个真实智能合约进行了大规模变异,生成了 253,153 个智能合约。其中 66.2% 表现出差分性能,包括 1,596 个触发 EVM 间输出不一致的变异合约。经人工根因分析,我们在四个广泛使用的 EVM 中发现了 5 个先前未知的安全缺陷,且均已被收录于通用漏洞披露(CVE)数据库。
引用
@article{arxiv.1903.08483,
title = {EVMFuzz: Differential Fuzz Testing of Ethereum Virtual Machine},
author = {Ying Fu and Meng Ren and Fuchen Ma and Yu Jiang and Heyuan Shi and Jiaguang Sun},
journal= {arXiv preprint arXiv:1903.08483},
year = {2019}
}
备注
11 pages, 8 figures