925 | 9 | 269 |
下载次数 | 被引频次 | 阅读次数 |
区块链技术已经进入了以智能合约为标志的区块链2.0时代,频发的智能合约安全问题给区块链生态带来了严重的损失。通过对比不同的智能合约漏洞检测方法与检测工具存在的安全漏洞问题,总结出13种常见漏洞检测项。通过讨论5种主流的智能合约漏洞检测方法与相应的漏洞检测工具,对比总结5种漏洞检测工具针对13种漏洞检测项的检测情况。对比分析3种漏洞检测工具对于200个测试合约的检测结果,得出模糊测试检测方法简单高效并且不会产生误报。最后,针对检测结果展望智能合约漏洞检测技术的未来研究方向,并给出针对现有漏洞检测方法的改进思路,从而利于提高智能合约漏洞检测效率。
Abstract:Blockchain has entered the blockchain 2.0 era marked by smart contracts.However,frequent security issues of smart contracts cause serious losses to blockchain ecology.By comparing the security vulnerabilities of different smart contract vulnerability detection methods and detection tools,thirteen vulnerability detection items are summarised.By discussing the mainstream of smart contract vulnerability detection method and the corresponding detection tools,detections of 13 vulnerability detection items by 5 vulnerability detection tools are compared and summarized.The detection results of 3 vulnerability detection tools for 200 test contracts is verified and the detection results show that the fuzzing detection method is simple and efficient without producing false positives.Based on the experimental results,the future prospective research and the improvement strategies of existing vulnerability detection methods are proposed to improve the efficiency of smart contract vulnerability detection.
[1] 翟社平,段宏宇,李兆兆,等.区块链技术:应用及问题[J].西安邮电大学学报,2018,23(1):1-13.DOI:10.13682/j.issn.2095-6533.2018.01.001.
[2] DAI P.Analysis of the DAO exploit[EB/OL].[2020-06-18].https://hackingdistributed.com/2016/06/18/analysis-of-the-dao-exploit/.
[3] PALS.The parity wallet hack explained[EB/OL].[2020-06-18].https://blog.openzeppelin.com/on-the-parity-wallet-multisig-hack405a8c12e8f7/.
[4] BEC走向归零SMT项目现安全漏洞交易所相继停止ERC20代币充值[EB/OL].[2020-06-18].https://www.bitool.cn/articles-2fcdd-22.html.
[5] NCC Group.Decentralized application securit-y project top 10 of 2018[EB/OL].[2020-06-18].https://www.Dasp.co/index.html.
[6] CSDN Research and Development Technology.Formal verification is a sharp weapon for smart contracts safety[EB/OL].[2020-06-18].https://blog.csdn.net/CDLianan/article/details/80665163.
[7] LUU L,CHU D H,OLICKEL H.Making smart contracts smarter[C]//Proceedings of the 2016 ACM SIGSAC Conference on Computer and Communications Security.New York:ACM,2016:254-269.DOI:10.1145/2976749.2978309.
[8] FEIST J,GRIECO G,GROCE A.Slither:A static analysis framework for smart contracts[C]//Proceedings of the 2019 IEEE/ACM 2nd International Workshop on E-merging Trends in Software Engineering for Blockchain.Montreal:IEEE,2019:8-15.DOI:10.1109/WETSEB.2019.00008.
[9] MUELLER B,HONIG J,PARASARAM N,et al.ConsenSys/mythril[EB/OL].[2020-06-18].https://github.com/ConsenSys/mythril.
[10] NGUYEN T D,PHAM H L,SUN J,et al.sFuzz:An efficient adaptive fuzzer for solidity smart contracts[C]//Proceedings of the ACM/IEEE 42nd International Conference on Software Engineering.Seoul:ACM,2020:778-788.DOI:10.1145/3377811.3380334.
[11] SZABO N.Formalizing and securing relationships on public networks[J].First Monday,1997,2(9):1-21.DOI:10.5210/fm.v2i9.548.
[12] 马昂,潘晓,吴雷,等.区块链技术基础及应用研究综述[J].信息安全研究,2017,3(11):968-983.DOI:10.3969/j.issn.2096-1057.2017.11.003.
[13] BUTERIN V.Ethereum:A next-generation smartcontract and decentralized applicationplatform[EB/OL].[2020-06-18].https://bitcoinmagazine.com/articles/ethereum-next-generation-cryptocurrency-decentralized-application-platform-139052-8211/.
[14] WOOD G.Ethereum:A secure decentralised generalised transaction ledger[J].Ethereum proje-ctyellow paper,2014,151(2014):1-32.
[15] DINHTT A,WANG J,CHEN G,et al.BLOCK-BENCH:A framework for analyzing private blockchains[C]//Proceedings of the 2017 ACM International Conference on Management of Data.New York:ACM,2017:1085-1100.DOI:10.1145/3035918.3064033.
[16] JEFFREY W,PETER S,MARTIN H,et al.EVM opcode[EB/OL].[2020-06-18].https://github.com/ethereum/go-ethereum/blob/master/core/vm/jump table.go.
[17] SAVELYEV A.Contract law 2.0:Smart contracts as the beginning of the end of classic contract law[J].Information & Communications Technology Law,2017,26(2):116-134.DOI:10.1080/13600834.2017.1301036.
[18] MUELLER B,HONIG J,PARASARAM N.Smart contract weakness classification and test-cases[EB/OL].[2020-06-18].https://swcr-egistry.io/.
[19] Introduction to smart contracts[EB/OL].[2020-06-18].https://solidity.readthedocs.io/en/latest/introduction-to-smart-contracts.html#d-elegatecall-callcode-and-libraries.
[20] FEY G.Assessing system vulnerability using formal verification techniques[C]//Proceedings of the 2011 International Conference on Mathematical and Engineering Methods in Computer Science.Berlin:Springer,2011:47-56.DOI:10.1007/978-3-642-25929-6_4.
[21] ARIAS L,SPAGNUOLO F,GIORDANOF.Openzeppelin[EB/OL].[2020-06-18].https://github.com/OpenZeppelin/openzeppelin-Solidity.
[22] JIANG B,LIU Y,CHAN W K.Contract Fuzzer:Fuzzing smart contracts for vulnerability detection[C]//Proceedings of the 33rd IEEE ACM International Conference on Automated Software Engineering.New York:ASE,2018:259-269.DOI:10.1145/3238147.3238177.
[23] RAHIMIAN R,ESKANDARI S.Resolving the multiple withdrawal attack on ERC20 tokens[C]//Proceedings of the 2019 IEEE European Symposiumon Security and Privacy Workshops.Stockholm:IEEE,2019:320-329.
[24] ATZEI N,BARTOLETTI M,CIMOLI T.A survey of attacks on ethereum smart contracts[C]//Proceedings of the 2017 International Conference on Principles of Security and Trust.Berlin:Springer,2017:164-186.DOI:10.1007/978-3-662-54455-6_8.
[25] 胡凯,白晓敏,高灵超,等.智能合约的形式化验证方法[J].信息安全研究,2016,2(12):1080-1089.DOI:10.3969/j.issn.2096-1057.2016.12.003.
[26] 郭建,韩俊刚.SOC的形式化验证方法[J].西安邮电大学学报,2005,10(3):79-82.DOI:10.3969/j.issn.1007-3264.2005.03.021.
[27] MeshSec[EB/OL].[2020-06-18].https://sec.filoop.com/flow.html.
[28] 用形式化验证的方式构建安全的智能合约和区块链生态系统[EB/OL].[2020-06-18].http://www.xiaomaojia.com/project/1399.html.
[29] BHARGAVAN K,SWAMY N,ZANELLA B.Formal verification of smart contracts:Shortpaper[C]//Proceedings of the 2016 Assocation forcomputing Machinery Workshop.New York:ACM,2016:91-96.DOI:10.1145/2993600.2993611.
[30] YANG X,YANG Z,SUN H Y,et al.Formal verification for ethereum smart contract using coq[J].International Journal of Information and Communication Engineering,2018,12(6):125-130.
[31] MARCHE C,MELQUIOND G,FILLIATRE J C,et al.AdaCore/why3 [EB/OL].[2020-06-18].https://github.com/AdaCore/why3.
[32] 牛伟纳,丁雪峰,刘智.基于符号执行的二进制代码漏洞发现[J].计算机科学,2013,40(10):119-121.DOI:10.3969/j.issn.1002-137X.2013.10.024.
[33] GODEFROID P,KLARLUND N,SEN K.DART:Directedautomated random testing[C]//Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation.Chicago:ACM,2005:213-223.DOI:10.1145/1065010.1065036.
[34] SEN K,MARINOV D,AGHA G.CUTE:A concolic unit testing engine for C[J].ACM SIGSOFT Software Engineering Notes,2005,30(5):263-272.DOI:10.1145/1095430.1081750.
[35] 赵伟,张问银,王九如,等.基于符号执行的智能合约漏洞检测方案[J].计算机应用,2020,40(4):947-953.DOI:10.11772/j.issn.1001-9081.2019111919.
[36] NIKOLIC I,KOLLURI A,SERGEY I,et al.Finding the greedy,prodigal,and suicidal contracts at scale[C]//Proceedings of the 34th Annual Computer Security Applications Conference.New York:ACM,2018:653-663.DOI:10.1145/3274694.3274743.
[37] CHANG J,GAO B,XIAO H,et al.sCompile:Critical path identification and analysis for smart contracts [EB/OL].[2020-06-18].http://arxiv.org/abs/1808.00624.
[38] TSANKOV P,DAN A,COHEN D.Securify:Practical security analysis of smart contracts[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.New York:ACM,2018:67-82.DOI:10.1145/3243734.3243780.
[39] 付梦琳,吴礼发,洪征,等.智能合约安全漏洞挖掘技术研究[J].计算机应用,2019,39(7):1959-1966.DOI:10.11772 /j.issn.1001-9081.2019010082.
[40] NEWSOME J,SONG D X.Dynamic taint analysis for automatic detection,Analysis and signaturen generation of exploits on commodity software[C]//Proceedings of the 12th Annual Network and Distributed System Security Symposium.[S.l.]:NDSS.2005:3-4.
[41] 许航,赵世斌,朱俊虎,等.灰盒模糊测试自适应技术研究[J].计算机工程与应用,2019,55(14):87-97.DOI:10.3778/j.issn.1002-8331.1806-0002.
[42] BEKRAR S,BEKRAR C,GROZ R.Finding software vulnerabilities by smart fuzzing[C]//Proceedings of the 2011 Fourth IEEE International Conference on Software Testing,Verification and Validation.Berlin:IEEE,2011:427-430.DOI:10.1109/ICST.2011.48.
[43] KLEES G,RUEF A,COOPER B,et al.Evaluating fuzz testing[C]//Proceedings of the 2018 ACM SIGSAC Conference on Computer and Communications Security.Toronto:ACM,2018:2123-2138.DOI:10.1145/3243734.3243804.
[44] MCMINN P.Search-based software test data generation:A survey[J].Software testing,Verifica-tion and reliability,2004,14(2):105-156.
[45] HARMAN M,MCMINN P.A theoretical and empirical study of search-based testing:Local,global and hybrid search[J].IEEE Transactions on Software Engineering,2009,36(2):226-247.DOI:10.1109/TSE.2009.71.
[46] CACHIN C.Architecture of the hyperledger blockchain fabric [EB/OL].[2020-06-18].https://www.innovation4.cn/library/r44511.
[47] A collection of risks and vulnerabilities in ERC20 token contracts[EB/OL].[2020-06-18].https://github.com/sec-bit/awesome-buggy-erc20-tokens/blob/master/ERC20_token_issue_list.md.
基本信息:
DOI:10.13682/j.issn.2095-6533.2020.05.001
中图分类号:TP311.13;TP309
引用信息:
[1]孙家泽,余盼盼,王小银,等.智能合约漏洞检测技术研究综述[J].西安邮电大学学报,2020,25(05):1-9+32.DOI:10.13682/j.issn.2095-6533.2020.05.001.
基金信息:
陕西省重点研发计划项目(2020GY-010);; 西安市科技计划项目(2019218114GXRC017CG018-GXYD17.10)