CN113254939A - 基于多注意力机制和自适应学习的智能合约漏洞检测方法 - Google Patents
基于多注意力机制和自适应学习的智能合约漏洞检测方法 Download PDFInfo
- Publication number
- CN113254939A CN113254939A CN202110551311.7A CN202110551311A CN113254939A CN 113254939 A CN113254939 A CN 113254939A CN 202110551311 A CN202110551311 A CN 202110551311A CN 113254939 A CN113254939 A CN 113254939A
- Authority
- CN
- China
- Prior art keywords
- feature
- intelligent contract
- module
- channel
- function
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 31
- 238000013135 deep learning Methods 0.000 claims abstract description 17
- 230000007246 mechanism Effects 0.000 claims abstract description 17
- 230000006870 function Effects 0.000 claims description 43
- 238000000034 method Methods 0.000 claims description 21
- 239000013598 vector Substances 0.000 claims description 19
- 238000012549 training Methods 0.000 claims description 18
- 238000013528 artificial neural network Methods 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 16
- 230000004913 activation Effects 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 238000012360 testing method Methods 0.000 claims description 11
- 230000003044 adaptive effect Effects 0.000 claims description 7
- 230000009467 reduction Effects 0.000 claims description 7
- 230000009193 crawling Effects 0.000 claims description 3
- 230000005284 excitation Effects 0.000 claims description 3
- 238000001125 extrusion Methods 0.000 claims description 3
- 238000005457 optimization Methods 0.000 claims description 3
- 230000009466 transformation Effects 0.000 claims description 3
- 238000007634 remodeling Methods 0.000 claims description 2
- 230000001131 transforming effect Effects 0.000 claims 1
- 238000013145 classification model Methods 0.000 abstract description 4
- 230000006399 behavior Effects 0.000 abstract description 3
- 238000005065 mining Methods 0.000 abstract 1
- 238000012550 audit Methods 0.000 description 7
- 238000010586 diagram Methods 0.000 description 4
- 238000012795 verification Methods 0.000 description 4
- 230000000694 effects Effects 0.000 description 3
- 230000002159 abnormal effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 230000035945 sensitivity Effects 0.000 description 2
- 206010000117 Abnormal behaviour Diseases 0.000 description 1
- 238000007476 Maximum Likelihood Methods 0.000 description 1
- 238000010276 construction Methods 0.000 description 1
- 238000007418 data mining Methods 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000004806 packaging method and process Methods 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/24—Classification techniques
- G06F18/241—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Bioinformatics & Computational Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开一种基于多注意力机制和自适应学习的智能合约漏洞检测方法,首先通过抽取智能合约交易行为的多维度原始特征构建数据集,其次提出一种深度学习多注意机制自适应权重模型AdaNet用以学习原始特征的重要性并挖掘不同特征间的关联关系;基于以上模型,针对智能合约漏洞领域样本正负样本不均衡问题通过最小化类AUC损失以获得比传统分类模型更强的泛化性能。
Description
技术领域
本发明属于网络安全技术领域,具体涉及一种基于多注意力机制和自适应学习的智能合约漏洞检测方法。
背景技术
智能合约,是一种以信息化的方式传播、验证或者执行合同的计算机协议。它在1995年由尼克萨博提出的概念。在智能合约中,所有规则公开透明,合约内的规则以及数据对外部可见,所有交易公开可见,不会存在任何虚假或者隐藏的交易,也就是说智能合约具有公开透明、不可篡改等特点。智能合约允许开发人员使用具有图灵完备性的脚本语言,例如Solidity,开发相关的应用,这些应用本质上就是智能合约的表现形式。智能合约虽然极大的扩展了区块链的应用场景与现实意义,但是,智能合约的本身是一段程序,例如运行于以太坊虚拟机中,近年来针对智能合约的攻击导致的安全事件时有发生,如果这些异常交易行为如果能及时发现并做出响应,将能极大程度避免或降低经济损失。
目前智能合约的异常检测有两种手段,分别是分工审计和自动化审计。随着智能合约数目的日益增长,人工审计费力耗时效率低下,显然不匹配当前背景下的智能合约漏洞检测;而自动化审计有三种,分别是基于特征的代码匹配、基于形式化验证的自动化审计以及基于符号执行和符号抽象的自动化审计,基于特征的代码匹配能快速响应新漏洞,而基于形式化验证的自动化审计以及基于符号执行和符号抽象的自动化审计可以有效的降低智能合约漏洞检测的误报率和漏报率。
尽管上述的自动化审计方法有智能合约异常检测中取得了一定的效果,但是在以下几个方面仍有待进一步完善:(1)智能合约中的函数和特征变化性比较多,特征不稳定,这造成特征码的定位难度加大,特征码的有效性降低;(2)基于形式化验证的审计方法自动化程度低,需要技术人员二次校验;(3)分析方法复杂繁琐需要比较长的分析时间,并且智能合约功能的正确性无法验证;(4)误报率较高。
随着深度学习技术的逐渐成熟,基于深度学习实现的目标检测、图像识别技术已经广泛应用于机器人导航、智能视频监控、工业检测、航空航天等诸多领域。这得益于深度学习可以自动提取鲁棒性强的特征,并且可以端到端的解决任务,将深度学习用于检测智能合约异常任务,可以有效提取高层次有效的特征,而且接口封装程度高,只需将智能合约的字节码文件作为神经网络的输入,经网络计算获得网络预测结果,实验发现用深度学习去检测智能合约漏洞,具有更低的误报率。
然而,智能合约的特征过于庞大,导致训练的成本高,耗时久,此外,智能合约构建的数据集往往是良性样本远远多于恶意样本,也就是说无漏洞的样本数(良性)多于有漏洞的样本数(恶意),而普通的深度学习方法采用的是交叉熵损失函数来训练,导致训练出的模型漏报率较高。
发明内容
发明目的:本发明的目的在于解决现有技术中存在的不足,提供一种基于多注意力机制和自适应学习的智能合约漏洞检测方法,本发明从加速模型训练和降低漏报率两个角度切入,该检测方法兼具轻量级和低漏报率的功能。
技术方案:本发明的一种基于多注意力机制和自适应学习的智能合约漏洞检测方法,包括以下步骤:
步骤S1、爬取与智能合约交易相关记录并构建样本集,该样本集为正负样本不均衡数据集;
步骤S2、提取数据样本集中的原始特征并构建特征矩阵如下:
X=(x1,x2,...,xN)∈RM×N
其中,M是指统计出来的特征数目,即数据集的原始特征维度,N表示样本的数量;1≤i≤N,1≤j≤M;记xi(特征矩阵第i个列向量)为第i个特征向量,fj为第j个特征;
若智能合约特征向量xi存在特征fj所表征的现象,则xij对应的值为1,否则值为0;
以80%,20%的比例划分特征矩阵X,得到训练集特征矩阵与测试集特征矩阵,以下简称训练集与测试集;
步骤S3、构建深度神经网络AdaNet
步骤S3.1、构建DSE模块,将步骤S2中获得的高维度智能合约特征有序放入多个通道中,用于加速深度学习网络的训练和提取多样化特征;
步骤S3.2、构建MA模块,MA模块具有三条不同感受野的通道,同时配备不同的注意力机制模块,用于提取不同维度的特征;
步骤S3.3、构建AdaLoss损失函数,自适应平衡正负样本的损失,并结合反向传播算法训练网络;
步骤S4、将步骤S2构建的样本集放入由步骤S3组成的深度神经网络AdaNet,进行端到端的学习,通过AdaNet的学习,提炼出深层次高语义的特征,智能合约异常检测模型来进行智能合约异常检测;
步骤S5、在测试阶段,将步骤S2中产生的测试集输入到步骤S4中训练完成的智能合约异常检测模型,并给出预测结果。进一步地,所述的基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:所述步骤S2中原始特征包括代码层漏洞特征和虚拟机层漏洞特征;
其中,智能合约代码层漏洞特征包括危险的delegate call、可重入漏洞、算数上/下溢、默认函数类型以及外部调用的返回值;
虚拟机层漏洞特征包括Tx.Origin漏洞、短地址攻击。
进一步地,所述步骤S3.1中构建DSE模块的具体过程如下:
步骤S3.1.1、降维
使用一个全连接层,将特征数为M的原始特征xi降维至大小为k的新特征yi,且新特征yi中的每一个单元yij,1≤j≤k都含有所有原始特征的信息;
步骤S3.1.2、计算每个特征的重要性
将新特征y输入到双层的全连接层,第一层全连接层采用的激活函数是RectifiedLinear Unit(ReLU),目的是增加网络的非线性和使网络具有稀疏性,第二层全连接层采用的激活函数是sigmoid,由于其输出范围是0~1,可以用于表征每一个特征的重要性,此处将其输出值设为p;
步骤S3.1.3、将步骤S3.1.1得到的新特征yi和步骤S3.1.2得到的输出值p相乘,得到新特征向量z,然后将通道数为1的特征向量z重塑成多通道的特征向量z',其中z的形状为(N,k,1),而z'的形状为(N,l,t),k,l,t均为人为可选择的超参数,选择时需满足k=1×t、l<<t以及1<l;重塑过程为:将z的维度变换为z'的维度。重塑过程只涉及张量维度变换,不涉及其它任何算术运算。
然后将新特征向量z'作为深度学习网络的输入。
进一步地,所述步骤S3.2构建MA模块的具体过程如下:
步骤S3.2.1、构建MA模块第一通道,即整体感知通道
假设输入的特征为xi经过空洞卷积计算后的特征为yi,最后经过注意力公式计算得到特征为z',和MA模块其他两层的输出一起作为下一层神经网络的输入特征;
步骤S3.2.2、构建MA模块的第二通道:局部感知通道
采用多个小卷积核连续卷积的方式进行特征的提取;假设卷积核的大小为p,堆叠q个这样的卷积核,最终的感受野rf大小为:
rf=p+(q-1)×(p-1)
根据第一通道中的感受野大小来堆叠若干个小卷积核从而达到和第一通道一样的感受野;
设卷积运算为f(),输入特征为x,卷积后的结果为y,则有如下公式:
y=f(f(...f(x)...))
此处引入通道注意力机制,即通过反向传播来学习每一个通道特征的重要性;此处注意力计算需依次进行挤压和激励;
最后将激励后的结果s与卷积后的结果yi进行乘法运算得到输出z2,与MA模块的其他通路输出一起作为下一层网络结构的输入特征;
步骤S3.2.3、构建MA模块的第三通道,即降维通道
通过进行卷积核为1×1的卷积计算并进行ReLU激活,即z3=δ(xi);
步骤S3.2..4、融合
将MA模块前三条通道的输出结果z1,z2,z3相加并进行一次ReLU激活,即o=δ(z1+z2+z3),δ()是ReLU激活函数,将o作为下一个MA模块的输入特征,如此堆叠多个MA模块。
进一步地,所述步骤S3.1.1的详细过程如下:
采用空洞卷积生成下一级的特征,空洞卷积的感受野rf大小计算如下:
rf=a+(a-1)×(d-1)
此处,a是原来的卷积核大小,d为空洞卷积模块的超参数;
然后通过非局部均值注意力机制对特征进行注意力计算,进而得到符合智能合约的特征;
使用非局部均值注意力机制计算时需要使用两个函数:f函数和g函数;
g函数是一个线性转化公式,具体是
g(xj)=Wgxj
其中Wg是需要学习的权重矩阵;
f函数是计算特征xi和xj的相似度,即
将f函数和g函数整合并归一化后得到的公式如下:
进一步地,所述步骤S3.1.2中通过挤压操作将特征图转为特征值:
进一步地,所述步骤S3.3构建AdaLoss损失函数的详细过程如下:
步骤S3.3.1、计算整个样本中正负样本的权重
假设正样本的数量为m,负样本的数量为n,那正样本的权重为α=n/(n+m),负样本的权重为β=m/(n+m),其中α+β=1;
步骤S3.3.2、利用步骤S S3.3.1计算出的权重来计算加权交叉熵,公式如下:
L=-αylogy'-β(1-y)log(1-y')
其中y'是神经网络的输出值,而y是样本的标签,即真实值;
步骤S3.3.3、优化AUC
在不平衡问题中,AUC是评定模型好坏的重要指标,然而AUC是不可微的,因此无法直接参与反向传播,也就是说直接优化AUC通常是一个NP难问题,但是可以根据Wilcoxon-Mann-Whitney系数来对AUC做极大似然估计。通过最小化WMW系数的损失值达到优化AUC的目的,具体的优化公式如下:
其中y'm_i是神经网络中正类的输出值,y'n_j是负类的输出值,γ和p则是网络的超参数,γ∈(0,1),p>1;
步骤S3.3.4、合并损失函数
将步骤S3.3.2获得加权交叉熵和步骤S3.3.3获得的WMW损失值加和,另外在WMW前面加一个w权重更佳,即合并后的损失函数如下:
将新的损失函数(AdaLoss损失函数)代替原始的二分类交叉熵损失函数进行模型训练,而新的损失函数具有更低的假阴性,更高的AUC,适用于不平衡任务优化的场景。
通过反向传播训练好的AdaNet输出的概率值经过转换即为最后的输出结果。
有益效果:本发明首先通过挖掘与智能合约交易相关数据,其次基于深度学习提出一种多注意机制自适应权重用以降低原始特征中冗余特征的影响并自动学习稠密的、具有语义信息的样本特征,并且本发明提出了全新的损失函数AdaLoss,解决了业界内不平衡问题中低AUC得分的缺陷。
与现有技术相比,本发明具有以下优点:
(1)更强的特征选择能力:本发明降低了深度学习中冗余特征对模型训练效果起到的副作用,并且通过多注意力机制实现了对重要特征的捕捉,使得模型具有更鲁棒的性能。
(2)不均衡样本集中仍可获得强泛化性能:传统分类模型在智能合约漏洞检测过程依赖于训练集中的数据分布,本发明解决了传统分类模型在异常行为出现初期已知样本缺乏的情况下其检测的准确率和AUC等指标较低的问题。
附图说明
图1为实施例的整体流程示意图;
图2为实施例中抽取原始特征形成特征向量的示意图;
图3为实施例中构建DSE模块示意图;
图4为实施例中构建MA模块示意图;图5为实施例中构建AdaLoss损失函数的示意图。
具体实施方式
下面对本发明技术方案进行详细说明,但是本发明的保护范围不局限于所述实施例。
本发明包括以下三个部分:
(1)原始数据集构建;
(2)构建深度神经网络AdaNet,并进行模型训练,其中深度神经网AdaNet包含三个步骤:
①DSE模块,将繁多的智能合约特征有序放入多个通道中,用于加速深度学习网络的训练;②MA模块,该模块有三条不同感受野的通道,同时配备不同的注意力机制模块,用于提取不同维度的特征;③AdaLoss损失函数,自适应平衡正负样本的损失,经过反向传播有效的训练网络;
(3)测试模型。
如图1所示,本实施例的基于多注意力机制和自适应学习的智能合约漏洞检测方法,包括以下步骤:
步骤S1、爬取与智能合约交易相关记录构建样本集,样本集为正负样本不均衡数据集;
步骤S2、提取数据样本集中的原始特征并构建特征矩阵如下:
X=(x1,x2,...,xN)∈RM×N
其中,M是指统计出来的特征数目,即数据集的原始特征维度,N表示样本的数量;1≤i≤N,1≤j≤M;记xi(特征矩阵第i个列向量)为第i个特征向量,fj为第j个特征;
若智能合约特征向量xi存在特征fj所表征的现象,则xij对应的值为1,否则值为0;
以80%,20%的比例划分特征矩阵X,得到训练集特征矩阵与测试集特征矩阵,以下简称训练集与测试集。
步骤S3、构建深度神经网络AdaNet,如图3至图5所示;
步骤S3.1、构建DSE模块,将步骤S2中获得的高维度智能合约特征有序放入多个通道中,进而加速深度学习网络的训练和提取多样化特征;
步骤S3.2、构建MA模块,MA模块具有三条不同感受野的通道,同时使用不同的注意力机制模块来提取不同维度的特征;
步骤S3.3、构建AdaLoss损失函数,来自适应平衡正负样本的损失,并结合反向传播算法训练网络;
步骤S4、将步骤S2构建的样本集放入由步骤S3组成的深度神经网络AdaNet,进行端到端的学习,通过深度神经网络AdaNet的学习,得到智能合约异常检测模型;
步骤S5、在测试阶段,将步骤S2中产生的测试集输入到步骤S4中训练完成的智能合约异常检测模型,并给出预测结果。
为评估本发明在网络交易行为检测时的有效性,本实施例引入的相关评估标准分别:精度(Precision),准确率(Accuracy),召回率(Recall),灵敏度(Sensitivity),F-measure分别定义如下:
其中,TP(true Positive):真正例,是被分类器正确分类的正样本;TN(TrueNegative):真负例,是指被分类器正确分类的负样本;FP(False Positive):指被错误地标记为正样本的负样本;FN(False Negative):被错误地标记为负样本的正样本。
综上所述,本发明首先获取原始特征,然后使用one-hot编码构成特征向量文件;其次提出一种对冗余特征具有选择性的深度学习多注意机制自适应权重模型AdaNet,将其用于对数据集的数据挖掘;基于以上模型,提出AdaLoss损失函数,以获得比单传统分类模型更强的泛化性能,尤其是在正负样本不均衡的情况下。
Claims (7)
1.一种基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:包括以下步骤:
步骤S1、爬取与智能合约交易相关记录并构建样本集,该样本集为正负样本不均衡数据集;
步骤S2、提取数据样本集中的原始特征并构建特征矩阵如下:
X=(x1,x2,...,xN)∈RM×N
其中,M是指统计出来的特征数目,即数据集的原始特征维度,N表示样本的数量;1≤i≤N,1≤j≤M;记xi为第i个特征向量,fj为第j个特征;
若智能合约特征向量xi存在特征fj所表征的现象,则xij对应的值为1,否则值为0;
步骤S3、构建深度神经网络AdaNet
步骤S3.1、构建DSE模块,将步骤S2中获得的所有高维度智能合约特征向量有序放入多个通道中,进而加速深度学习网络的训练和提取多样化特征;
步骤S3.2、构建MA模块,MA模块具有三条不同感受野的通道,同时使用不同的注意力机制模块来提取不同维度的特征;
步骤S3.3、构建AdaLoss损失函数来自适应平衡正负样本的损失,并结合反向传播算法训练网络;
步骤S4、将步骤S2构建的样本集放入由步骤S3组成的深度神经网络AdaNet,进行端到端的学习,通过深度神经网络AdaNet的学习,得到智能合约异常检测模型;
步骤S5、在测试阶段,将步骤S2中产生的测试集输入到步骤S4中训练完成的智能合约异常检测模型,并给出预测结果。
2.根据权利要求1所述的基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:所述步骤S2中原始特征包括代码层漏洞特征和虚拟机层漏洞特征;
其中,智能合约代码层漏洞特征包括危险的delegate call、可重入漏洞、算数上/下溢、默认函数类型以及外部调用的返回值;
虚拟机层漏洞特征包括Tx.Origin漏洞、短地址攻击。
3.根据权利要求1所述的基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:所述步骤S3.1中构建DSE模块的具体过程如下:
步骤S3.1.1、降维
使用一个全连接层,将特征数为M的原始特征xi降维至大小为k的新特征yi,且新特征yi中的每一个单元yij,1≤j≤k都含有所有原始特征的信息;
步骤S3.1.2、计算每个特征的重要性
将新特征yi输入到双层的全连接层,第一层全连接层采用激活函数ReLU,第二层全连接层采用激活函数sigmoid,由于其输出范围是0~1,此处将其输出值设为p;
步骤S3.1.3、将步骤S3.1.1得到的新特征yi和步骤S3.1.2得到的输出值p相乘,得到新特征向量z,然后将通道数为1的特征向量z重塑成多通道的特征向量z',其中z的形状为(N,k,1),而z'的形状为(N,l,t),k,l,t均为人为可选择的超参数,选择时需满足k=1×t、l<<t以及1<l;重塑过程为:将z的维度变换为z'的维度;
然后将新特征向量z'作为深度学习网络的输入。
4.根据权利要求1所述的基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:所述步骤S3.2构建MA模块的具体过程如下:
步骤S3.2.1、构建MA模块第一通道,即整体感知通道
假设输入的特征为xi经过空洞卷积计算后的特征为yi,最后经过注意力公式计算得到特征为z',和MA模块其他两层的输出一起作为下一层神经网络的输入特征;
步骤S3.2.2、构建MA模块的第二通道:局部感知通道
采用多个小卷积核连续卷积的方式进行特征的提取;假设卷积核的大小为p,堆叠q个这样的卷积核,最终的感受野rf大小为:
rf=p+(q-1)×(p-1)
根据第一通道中的感受野大小来堆叠若干个小卷积核从而达到和第一通道一样的感受野;
设卷积运算为f(),输入特征为x,卷积后的结果为y,则有如下公式:
y=f(f(...f(x)...))
此处引入通道注意力机制,即通过反向传播来学习每一个通道特征的重要性;此处注意力计算需依次进行挤压和激励;
最后将激励后的结果s与卷积后的结果yi进行乘法运算得到输出z2,与MA模块的其他通路输出一起作为下一层网络结构的输入特征;
步骤S3.2.3、构建MA模块的第三通道,即降维通道
通过进行卷积核为1×1的卷积计算并进行ReLU激活,即z3=δ(xi);
步骤S3.2..4、融合
将MA模块前三条通道的输出结果z1,z2,z3相加并进行一次ReLU激活,即o=δ(z1+z2+z3),δ()是ReLU激活函数,将o作为下一个MA模块的输入特征,如此堆叠多个MA模块。
5.根据权利要求4所述的基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:所述步骤S3.1.1的详细过程如下:
采用空洞卷积生成下一级的特征,空洞卷积的感受野rf大小计算如下:
rf=p+(p-1)×(d-1)
此处,p是原来的卷积核大小,d为空洞卷积模块的超参数;
然后通过非局部均值注意力机制对特征进行注意力计算,进而得到符合智能合约的特征;
使用非局部均值注意力机制计算时需要使用两个函数:f函数和g函数;
g函数是一个线性转化公式,具体是
g(xj)=Wgxj
其中Wg是需要学习的权重矩阵;
f函数是计算特征xi和xj的相似度,即
将f函数和g函数整合并归一化后得到的公式如下:
7.根据权利要求1所述的基于多注意力机制和自适应学习的智能合约漏洞检测方法,其特征在于:所述步骤S3.3构建AdaLoss损失函数的详细过程如下:
步骤S3.3.1、计算整个样本中正负样本的权重
假设正样本的数量为m,负样本的数量为n,那正样本的权重为α=n/(n+m),负样本的权重为β=m/(n+m),其中α+β=1;
步骤S3.3.2、利用步骤S3.3.1计算出的权重来计算加权交叉熵,公式如下:
L=-αylogy'-β(1-y)log(1-y')
其中y'是神经网络的输出值,而y是样本的标签,即真实值;
步骤S3.3.3、优化AUC
使用最小化WMW系数的损失值来优化AUC,具体优化公式如下:
其中y'm_i是神经网络中正类的输出值,y'n_j是负类的输出值,γ和p则是网络的超参数
步骤S3.3.4、合并损失函数
将步骤S3.3.2获得加权交叉熵和步骤S3.3.3获得的WMW损失值加和,同时在WMW前面加一个w权重,即合并后的损失函数如下:
最终通过反向传播训练好的AdaNet输出的概率值经过转换即为最后的输出结果。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110551311.7A CN113254939B (zh) | 2021-05-20 | 2021-05-20 | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110551311.7A CN113254939B (zh) | 2021-05-20 | 2021-05-20 | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113254939A true CN113254939A (zh) | 2021-08-13 |
CN113254939B CN113254939B (zh) | 2024-04-19 |
Family
ID=77182972
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110551311.7A Active CN113254939B (zh) | 2021-05-20 | 2021-05-20 | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113254939B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958767A (zh) * | 2023-07-14 | 2023-10-27 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285740A1 (en) * | 2017-04-03 | 2018-10-04 | Royal Bank Of Canada | Systems and methods for malicious code detection |
CN111340493A (zh) * | 2020-03-04 | 2020-06-26 | 江苏大学 | 一种多维度分布式异常交易行为检测方法 |
CN112035842A (zh) * | 2020-08-17 | 2020-12-04 | 杭州云象网络技术有限公司 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
CN112182585A (zh) * | 2020-09-29 | 2021-01-05 | 湖南大学 | 源代码漏洞检测方法、系统及存储介质 |
-
2021
- 2021-05-20 CN CN202110551311.7A patent/CN113254939B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20180285740A1 (en) * | 2017-04-03 | 2018-10-04 | Royal Bank Of Canada | Systems and methods for malicious code detection |
CN111340493A (zh) * | 2020-03-04 | 2020-06-26 | 江苏大学 | 一种多维度分布式异常交易行为检测方法 |
CN112035842A (zh) * | 2020-08-17 | 2020-12-04 | 杭州云象网络技术有限公司 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
CN112182585A (zh) * | 2020-09-29 | 2021-01-05 | 湖南大学 | 源代码漏洞检测方法、系统及存储介质 |
Non-Patent Citations (2)
Title |
---|
J. F. FERREIRA, 等: "Smartbugs: A framework to analyze solidity smart contracts", PROCEEDINGS OF THE 35TH IEEE/ACM INTERNATIONAL CONFERENCE ON AUTOMATED SOFTWARE ENGINEERING, pages 1349 - 1352 * |
X. YU等: "Deescvhunter: A deep learning-based framework for smart contract vulnerability detection", 2021 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN), pages 1 - 8 * |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116958767A (zh) * | 2023-07-14 | 2023-10-27 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
CN116958767B (zh) * | 2023-07-14 | 2024-04-30 | 江苏大学 | 基于多模态技术的智能合约安全分析方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN113254939B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113806746B (zh) | 基于改进cnn网络的恶意代码检测方法 | |
CN112541532B (zh) | 基于密集连接结构的目标检测方法 | |
CN113743675B (zh) | 一种云服务QoS深度学习预测模型的构建方法和系统 | |
CN113595998A (zh) | 基于Bi-LSTM的电网信息系统漏洞攻击检测方法及装置 | |
CN115811440B (zh) | 一种基于网络态势感知的实时流量检测方法 | |
CN113326187A (zh) | 数据驱动的内存泄漏智能化检测方法及系统 | |
CN116633601A (zh) | 一种基于网络流量态势感知的检测方法 | |
CN114611115A (zh) | 一种基于混合图神经网络的软件源码漏洞检测方法 | |
CN115344863A (zh) | 一种基于图神经网络的恶意软件快速检测方法 | |
CN116150757A (zh) | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 | |
CN116451567A (zh) | 一种瓦斯负压抽采管道泄漏评估及智能处置方法 | |
CN116304853A (zh) | 一种极限学习机与特征提取相结合的数据分类方法及系统 | |
CN116432184A (zh) | 基于语义分析和双向编码表征的恶意软件检测方法 | |
CN113609488B (zh) | 基于自监督学习及多通道超图神经网络的漏洞检测方法与系统 | |
CN113254939A (zh) | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 | |
CN111898134B (zh) | 基于LSTM和BiLSTM的智能合约漏洞检测方法和装置 | |
CN117725592A (zh) | 一种基于有向图注意力网络的智能合约漏洞检测方法 | |
CN109508544B (zh) | 一种基于mlp的入侵检测方法 | |
CN116467720A (zh) | 一种基于图神经网络的智能合约漏洞检测方法及电子设备 | |
CN115962428A (zh) | 一种燃气管网泄漏实时在线智能可解释性监测溯源方法 | |
CN115758388A (zh) | 一种基于低维字节码特征的智能合约的漏洞检测方法 | |
CN115600211A (zh) | 基于CNN-BiLSTM多标签分类的智能合约未知漏洞检测方法 | |
US11657282B2 (en) | Efficient inferencing with fast pointwise convolution | |
Li et al. | On Testing and Evaluation of Artificial Intelligence Models | |
CN117556425B (zh) | 基于图神经网络的智能合约漏洞检测方法、系统和设备 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |