SmartBugs: a framework to analyze solidity smart contracts

Proceedings of the 35th IEEE/ACM International Conference on Automated Software Engineering, Tool track (ASE'20)

J. F. FerreiraP. CruzT. DurieuxR. Abreu 

PDFDOISource code

Abstract

Over the last few years, there has been substantial research on automated analysis, testing, and debugging of Ethereum smart contracts. However, it is not trivial to compare and reproduce that research. To address this, we present SmartBugs, an extensible and easy-to-use execution framework that simplifies the execution of analysis tools on smart contracts written in Solidity, the primary language used in Ethereum. SmartBugs is currently distributed with support for 10 tools and two datasets of Solidity contracts. The first dataset can be used to evaluate the precision of analysis tools, as it contains 143 annotated vulnerable contracts with 208 tagged vulnerabilities. The second dataset contains 47,518 unique contracts collected through Etherscan. We discuss how SmartBugs supported the largest experimental setup to date both in the number of tools and in execution time. Moreover, we show how it enables easy integration and comparison of analysis tools by presenting a new extension to the tool SmartCheck that improves substantially the detection of vulnerabilities related to the DASP10 categories Bad Randomness, Time Manipulation, and Access Control (identified vulnerabilities increased from 11% to 24%).

@inproceedings{smartbugs,
author = {Jo{\~{a}}o F. Ferreira and
Pedro Cruz and
Thomas Durieux and
Rui Abreu},
title = {SmartBugs: {A} Framework to Analyze Solidity Smart Contracts},
booktitle = {35th {IEEE/ACM} International Conference on Automated Software Engineering,
{ASE} 2020, Melbourne, Australia, September 21-25, 2020},
pages = {1349--1352},
publisher = {{IEEE}},
year = {2020},
url = { https://doi.org/10.1145/3324884.3415298 },
doi = {10.1145/3324884.3415298},
timestamp = {Tue, 13 Apr 2021 13:32:36 +0200},
biburl = { https://dblp.org/rec/conf/kbse/FerreiraCDA20.bib },
bibsource = {dblp computer science bibliography,  https://dblp.org }
}
Last Updated: 28/07/2021