【技术实现步骤摘要】
一种基于机器学习的智能合约安全漏洞检测方法
本专利技术涉及网络空间安全
,尤其涉及一种基于机器学习的智能合约安全漏洞检测方法。
技术介绍
以太坊是除比特币之外最为成熟的公有链,随着在全球范围内不断的发展和成熟,目前已成为业界底层区块链的首选开发平台。以太坊中可以支持图灵完备的智能合约,突破了比特币对区块链应用的限制,让人们对区块链的认识不再局限于数字货币,将应用领域通过智能合约的形式进一步拓展到各行各业,比如区块链分布式应用DApp。由于区块链自身机制问题、生态安全和使用者安全所导致经济损失达到数十亿美元,而由于智能合约安全漏洞造成的损失占比最高,达到41.8%。随着区块链的经济价值不断升高,促使不法分子利用各种攻击手段获取更多敏感数据,“盗窃”、“勒索”、“挖矿”等,借着区块链概念和技术,使区块链安全形势变得更加复杂。据网络安全公司Besec的调查数据显示,近年总计有价值约数十亿美元的数字加密货币被盗,并且在全球范围内因区块链安全事件损失金额还在不断攀升。种种盗窃“丑闻”,把市值高达1万亿美元的数字加密货币市场推向了 ...
【技术保护点】
1.一种基于机器学习的智能合约安全漏洞检测方法,其特征在于,所述的安全漏洞检测方法包括以下步骤:/nS1、在网络上收集Solidity智能合约代码和Java/C++代码构成机器学习的基本数据集,在基本数据集中选取Solidity编译版本高于指定版本号和代码内容重复率低于重复阈值的合约,作为机器学习样本集;/nS2、通过智能合约漏洞检测器为样本集数据确定漏洞标签,基于Solidity智能合约漏洞检测工具来生成漏洞标签数据,并统计样本集中各漏洞标签的Solidity智能合约样本数量;/nS3、以样本集中Solidity智能合约标签样本数量为依据进行分支处理,针对大于或等于预定的 ...
【技术特征摘要】
1.一种基于机器学习的智能合约安全漏洞检测方法,其特征在于,所述的安全漏洞检测方法包括以下步骤:
S1、在网络上收集Solidity智能合约代码和Java/C++代码构成机器学习的基本数据集,在基本数据集中选取Solidity编译版本高于指定版本号和代码内容重复率低于重复阈值的合约,作为机器学习样本集;
S2、通过智能合约漏洞检测器为样本集数据确定漏洞标签,基于Solidity智能合约漏洞检测工具来生成漏洞标签数据,并统计样本集中各漏洞标签的Solidity智能合约样本数量;
S3、以样本集中Solidity智能合约标签样本数量为依据进行分支处理,针对大于或等于预定的比较阈值threshold的多数据标签,采用随机森林算法构建检测模型;针对小于预定的比较阈值threshold的数据标签,则通过java/C++的漏洞模型进行迁移学习构建检测模型;
S4、通过构建的检测模型对将要进行检测的智能合约进行智能合约安全漏洞检测,得到该智能合约中存在的安全漏洞信息。
2.根据权利要求1所述的一种基于机器学习的智能合约安全漏洞检测方法,其特征在于,所述的步骤S1过程如下:
S11、利用爬虫脚本从以太坊智能合约平台收集Solidity智能合约代码,同时从开源社区收集Java/C++代码;
S12、将Solidity智能合约代码转化为XML文本,直接获取Solidity的编译版本,然后将转化后的XML文本进行内部代码片段比较,计算出代码片段相同的占比,得到内容重复率;
S13、在基本数据集中选取Solidity编译版本高于指定版本号和代码内容重复率低于重复阈值的合约,作为机器学习样本集。
3.根据权利要求2所述的一种基于机器学习的智能合约安全漏洞检测方法,其特征在于,所述的步骤S13中,选取Solidity编译版本高于4.14和代码内容重复率低于30%的合约,作为机器学习样本集。
4.根据权利要求1所述的一种基于机器学习的智能合约安全漏洞检测方法,其特征在于,所述的步骤S2过程如下:
S21、使用一种或多种Solidity智能合约漏洞检测工具,输入为样本集中的Solidity智能合约代码,输出结果为多个漏洞标签;
S22、将不同的检测工具的检测结果进行汇总,只有同一个漏洞标签在不同的检查结果中出现的频率等于或高于50%时,对该标签进行记录,生成该Solidity智能合约漏洞标签;
S23、统计样本集中各漏洞标签的Solidity智能合约样本数量。
...
【专利技术属性】
技术研发人员:翁健,陈新凯,李明,袁浩宸,张斌,卢贺贤,
申请(专利权)人:暨南大学,
类型:发明
国别省市:广东;44
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。