SolAnalyser: A Framework for Analysing and Testing Smart Contracts

Sefa Akça, A. Rajan, Chao Peng
{"title":"SolAnalyser: A Framework for Analysing and Testing Smart Contracts","authors":"Sefa Akça, A. Rajan, Chao Peng","doi":"10.1109/APSEC48747.2019.00071","DOIUrl":null,"url":null,"abstract":"Executing, verifying and enforcing credible transactions on permissionless blockchains is done using smart contracts. A key challenge with smart contracts is ensuring their correctness and security. To address this challenge, we present a fully automated technique, SolAnalyser, for vulnerability detection over Solidity smart contracts that uses both static and dynamic analysis. Analysis techniques in the literature rely on static analysis with a high rate of false positives or lack support for vulnerabilities like out of gas, unchecked send, timestamp dependency. Our tool, SolAnalyser, supports automated detection of 8 different vulnerability types that currently lack wide support in existing tools, and can easily be extended to support other types. We also implemented a fault seeding tool that injects different types of vulnerabilities in smart contracts. We use the mutated contracts for assessing the effectiveness of different analysis tools. Our experiment uses 1838 real contracts from which we generate 12866 mutated contracts by artificially seeding 8 different vulnerability types. We evaluate the effectiveness of our technique in revealing the seeded vulnerabilities and compare against five existing popular analysis tools - Oyente, Securify, Maian, SmartCheck and Mythril. This is the first large scale evaluation of existing tools that compares their effectiveness by running them on a common set of contracts. We find that our technique outperforms all five existing tools in supporting detection of all 8 vulnerability types and in achieving higher precision and recall rate. SolAnalyser was also faster in analysing the different vulnerabilities than any of the existing tools in our experiment.","PeriodicalId":325642,"journal":{"name":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","volume":"30 1","pages":"0"},"PeriodicalIF":0.0000,"publicationDate":"2019-12-01","publicationTypes":"Journal Article","fieldsOfStudy":null,"isOpenAccess":false,"openAccessPdf":"","citationCount":"30","resultStr":null,"platform":"Semanticscholar","paperid":null,"PeriodicalName":"2019 26th Asia-Pacific Software Engineering Conference (APSEC)","FirstCategoryId":"1085","ListUrlMain":"https://doi.org/10.1109/APSEC48747.2019.00071","RegionNum":0,"RegionCategory":null,"ArticlePicture":[],"TitleCN":null,"AbstractTextCN":null,"PMCID":null,"EPubDate":"","PubModel":"","JCR":"","JCRName":"","Score":null,"Total":0}
引用次数: 30

Abstract

Executing, verifying and enforcing credible transactions on permissionless blockchains is done using smart contracts. A key challenge with smart contracts is ensuring their correctness and security. To address this challenge, we present a fully automated technique, SolAnalyser, for vulnerability detection over Solidity smart contracts that uses both static and dynamic analysis. Analysis techniques in the literature rely on static analysis with a high rate of false positives or lack support for vulnerabilities like out of gas, unchecked send, timestamp dependency. Our tool, SolAnalyser, supports automated detection of 8 different vulnerability types that currently lack wide support in existing tools, and can easily be extended to support other types. We also implemented a fault seeding tool that injects different types of vulnerabilities in smart contracts. We use the mutated contracts for assessing the effectiveness of different analysis tools. Our experiment uses 1838 real contracts from which we generate 12866 mutated contracts by artificially seeding 8 different vulnerability types. We evaluate the effectiveness of our technique in revealing the seeded vulnerabilities and compare against five existing popular analysis tools - Oyente, Securify, Maian, SmartCheck and Mythril. This is the first large scale evaluation of existing tools that compares their effectiveness by running them on a common set of contracts. We find that our technique outperforms all five existing tools in supporting detection of all 8 vulnerability types and in achieving higher precision and recall rate. SolAnalyser was also faster in analysing the different vulnerabilities than any of the existing tools in our experiment.
查看原文
分享 分享
微信好友 朋友圈 QQ好友 复制链接
本刊更多论文
SolAnalyser:一个分析和测试智能合约的框架
在无许可区块链上执行、验证和执行可信交易是使用智能合约完成的。智能合约的一个关键挑战是确保它们的正确性和安全性。为了应对这一挑战,我们提出了一种全自动技术,SolAnalyser,用于Solidity智能合约的漏洞检测,该技术使用静态和动态分析。文献中的分析技术依赖于静态分析,具有很高的误报率,或者缺乏对耗尽气体、未检查发送、时间戳依赖等漏洞的支持。我们的工具SolAnalyser支持自动检测目前在现有工具中缺乏广泛支持的8种不同的漏洞类型,并且可以很容易地扩展以支持其他类型。我们还实现了一个故障播种工具,在智能合约中注入不同类型的漏洞。我们使用突变契约来评估不同分析工具的有效性。我们的实验使用了1838个真实合约,通过人工播种8种不同的漏洞类型,我们从中生成了12866个变异合约。我们评估了我们的技术在揭示种子漏洞方面的有效性,并与五种现有的流行分析工具(Oyente、Securify、Maian、SmartCheck和Mythril)进行了比较。这是对现有工具的第一次大规模评估,通过在一组公共契约上运行它们来比较它们的有效性。我们发现我们的技术在支持所有8种漏洞类型的检测方面优于所有现有的五种工具,并且实现了更高的精度和召回率。SolAnalyser在分析不同漏洞方面也比我们实验中的任何现有工具都要快。
本文章由计算机程序翻译,如有差异,请以英文原文为准。
求助全文
约1分钟内获得全文 去求助
来源期刊
自引率
0.00%
发文量
0
期刊最新文献
Detecting Duplicate Questions in Stack Overflow via Deep Learning Approaches An Algebraic Approach to Modeling and Verifying Policy-Driven Smart Devices in IoT Systems Integrating Static Program Analysis Tools for Verifying Cautions of Microcontroller How Compact Will My System Be? A Fully-Automated Way to Calculate LoC Reduced by Clone Refactoring Neural Comment Generation for Source Code with Auxiliary Code Classification Task
×
引用
GB/T 7714-2015
复制
MLA
复制
APA
复制
导出至
BibTeX EndNote RefMan NoteFirst NoteExpress
×
×
提示
您的信息不完整,为了账户安全,请先补充。
现在去补充
×
提示
您因"违规操作"
具体请查看互助需知
我知道了
×
提示
现在去查看 取消
×
提示
确定
0
微信
客服QQ
Book学术公众号 扫码关注我们
反馈
×
意见反馈
请填写您的意见或建议
请填写您的手机或邮箱
已复制链接
已复制链接
快去分享给好友吧!
我知道了
×
扫码分享
扫码分享
Book学术官方微信
Book学术文献互助
Book学术文献互助群
群 号:481959085
Book学术
文献互助 智能选刊 最新文献 互助须知 联系我们:info@booksci.cn
Book学术提供免费学术资源搜索服务,方便国内外学者检索中英文文献。致力于提供最便捷和优质的服务体验。
Copyright © 2023 Book学术 All rights reserved.
ghs 京公网安备 11010802042870号 京ICP备2023020795号-1