一句话:提出 echidna-parade,基于 Echidna 自动多样化配置并进行多核智能合约模糊测试,提升效果并缩短时间。
Echidna 是广泛用于 Ethereum Virtual Machine(EVM)兼容区块链智能合约的模糊测试器,通过生成交易序列来测试合约。然而 Echidna 本质上是单线程工具,多个 Echidna 进程只能通过共享交易序列语料通信;同时其配置选项繁多,不同智能合约、故障目标或覆盖目标往往需要不同的非默认配置。本文提出 echidna-parade,一个以 Echidna 为底层引擎的按键式多核模糊测试工具,可自动实现配置的多样化。该工具通过共享语料协调多个进程,并利用多种测试配置的多样性提升测试能力。评估表明,即使不使用多核,echidna-parade 也能因配置多样化而提升 Echidna 的模糊测试效果;使用多核时,则能在更短时间内获得显著优于 Echidna 的结果。
Echidna is a widely used fuzzer for Ethereum Virtual Machine (EVM) compatible blockchain smart contracts that generates transaction sequences of calls to smart contracts. While Echidna is an essentially single-threaded tool, it is possible for multiple Echidna processes to communicate by use of a shared transaction sequence corpus. Echidna provides a very large variety of configuration options, since each smart contract may be best-tested by a non-default configuration, and different faults or coverage targets within a single contract may also have differing ideal configurations. This paper presents echidna-parade, a tool that provides pushbutton multicore fuzzing using Echidna as an underlying fuzzing engine, and automatically provides sophisticated diversification of configurations. Even without using multiple cores, echidna-parade can improve the effectiveness of fuzzing with Echidna, due to the advantages provided by multiple types of test configuration diversity. Using echidna-parade with multiple cores can produce significantly better results than Echidna, in less time.
DOI 原文 ·
@inproceedings{paperbot6658,
title = {echidna-parade: a tool for diverse multicore smart contract fuzzing},
author = {Alex Groce and Gustavo Grieco},
booktitle = {ISSTA},
year = {2021},
doi = {10.1145/3460319.3469076}
}