Harvey:一种面向智能合约的灰盒模糊测试器
软件工程
2019-05-17 v1 密码学与安全
摘要
我们提出 Harvey,一种面向智能合约的工业级灰盒模糊测试器,智能合约是管理区块链上账户的程序。灰盒模糊测试是一种轻量级的测试生成方法,能有效检测缺陷与安全漏洞。然而,灰盒模糊测试器随机变异程序输入以探索新路径;这使得覆盖受狭窄检查保护的代码具有挑战性,此类检查仅由极少数输入值满足。此外,大多数现实世界智能合约在其生命周期中经历许多不同状态,例如拍卖中的每次出价。为探索这些状态从而检测深层漏洞,灰盒模糊测试器需生成合约交易序列,例如通过创建来自多个用户的出价,同时使搜索空间与测试套件保持可处理。在本经验论文中,我们解释 Harvey 如何利用两种关键模糊测试技术缓解上述挑战,并提炼主要经验教训。首先,Harvey 以预测更可能覆盖新路径或揭示智能合约中漏洞的新输入之方法扩展标准灰盒模糊测试。其次,它以针对性且需求驱动的方式模糊测试交易序列。我们已在 27 个现实合约上评估我们的方法。实验表明,底层技术显著提升 Harvey 在实现高覆盖率与检测漏洞上的有效性,多数情况下快数个数量级;它们也揭示关于合约代码的新见解。
引用
@article{arxiv.1905.06944,
title = {Harvey: A Greybox Fuzzer for Smart Contracts},
author = {Valentin Wüstholz and Maria Christakis},
journal= {arXiv preprint arXiv:1905.06944},
year = {2019}
}
备注
arXiv admin note: substantial text overlap with arXiv:1807.07875