MPro:结合静态与符号分析的可扩展智能合约测试
密码学与安全
2020-12-15 v3
摘要
智能合约是可执行程序,能够在多方之间构建可编程的信任机制而无需可信第三方。过去几年中,研究者已开发若干安全扫描器。然而,这些分析器许多要么可扩展性差,要么即便可扩展也会产生大量误报。当漏洞仅在经历与待测合约函数的一系列交互后才被触发时,此问题更为严重。深度-n漏洞指的是需要调用特定n个函数序列才能触发的漏洞。深度-n漏洞由现有自动化分析器检测十分耗时,因为可在智能合约上执行的函数序列存在组合爆炸。在本文中,我们提出一种通过结合符号执行与数据依赖分析来高效且可扩展地分析深度-n漏洞的技术。将符号分析与静态分析结合的一个显著优势是,其可扩展性远优于单独符号分析,且不存在静态分析工具典型的误报问题。我们已在名为MPro的工具中实现了我们的技术,这是一个基于现有符号分析工具Mythril-Classic与静态分析工具Slither的可扩展自动化智能合约分析器。我们在MPro上分析了随机选取的100个智能合约,评估显示MPro检测深度-n漏洞比Mythril-Classic快约n倍,同时保留了Mythril-Classic的全部检测能力。
引用
@article{arxiv.1911.00570,
title = {MPro: Combining Static and Symbolic Analysis for Scalable Testing of Smart Contract},
author = {William Zhang and Sebastian Banescu and Leonardo Passos and Steven Stewart and Vijay Ganesh},
journal= {arXiv preprint arXiv:1911.00570},
year = {2020}
}