Recent years have seen smart contracts are getting increasingly popular in building trustworthy decentralized applications. Previous research has proposed static and dynamic techniques to detect vulnerabilities in smart contracts. These tools check vulnerable contracts against several predefined rules. However, the emerging new vulnerable types and programming skills to prevent possible vulnerabilities emerging lead to a large number of false positive and false negative reports of tools. To address this, we propose Vulpedia, which mines expressive vulnerability signatures from contracts. Vulpedia is based on the relaxed assumption that the owner of contract is not malicious. Specifically, we extract structural program features from vulnerable and benign contracts as vulnerability signatures, and construct a systematic detection method based on detection rules composed of vulnerability signatures. Compared with the rules defined by state-of-the-arts, our approach can extract more expressive rules to achieve better completeness (i.e., detection recall) and soundness (i.e., precision). We further evaluate Vulpedia with four baselines (i.e., Slither, Securify, SmartCheck and Oyente) on the testing dataset consisting of 17,770 contracts. The experiment results show that Vulpedia achieves best performance of precision on 4 types of vulnerabilities and leading recall on 3 types of vulnerabilities meanwhile exhibiting the great efficiency performance.
翻译:近些年来,智能合同在建立可信赖的分散应用软件方面越来越受欢迎。以前的研究已经提出了发现智能合同脆弱性的静态和动态技术。这些工具根据若干预先确定的规则检查脆弱的合同。然而,新出现的新的脆弱类型和编程技能,以防止可能出现的脆弱性出现,导致大量虚假的正面和假的负面工具报告。为了解决这个问题,我们提出了Vulfedia,即从合同中埋设显脆弱性的标志。Vulfedia是基于一个宽松的假设,即合同所有人不是恶意的。具体地说,我们从脆弱和良性合同中提取结构方案特征,作为脆弱性标志,并根据脆弱性标志构成的探测规则构建一个系统的探测方法。与最新技术界定的规则相比,我们的方法可以提取更明确的规则,以便实现更好的完整性(即探测)和正确性(即精确性),我们进一步用四个基准(即斯利特尔、安全性、智能化和奥伊特朗特)对Vulfedia进行了评估。我们从17,770个合同的测试数据集中提取了结构特征特征,并建立了一种系统检测方法。实验结果表明,Vulationedia develoption laphild laus laus las laus lax lax lagild laus 4 spress spress spress spress spress spress 4 4 lagilate spress press press prilate spress press press press 4 prilate spress pressional) 4 pressional) 最佳表现最佳脆弱性和最佳性表现最佳脆弱性和最佳性。