CN117272312A - 一种基于强化学习的可解释性智能合约漏洞检测及定位方法 - Google Patents
一种基于强化学习的可解释性智能合约漏洞检测及定位方法 Download PDFInfo
- Publication number
- CN117272312A CN117272312A CN202311113916.3A CN202311113916A CN117272312A CN 117272312 A CN117272312 A CN 117272312A CN 202311113916 A CN202311113916 A CN 202311113916A CN 117272312 A CN117272312 A CN 117272312A
- Authority
- CN
- China
- Prior art keywords
- graph
- contract
- vulnerability
- sub
- neural network
- 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.)
- Pending
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 62
- 238000000034 method Methods 0.000 title claims abstract description 53
- 230000002787 reinforcement Effects 0.000 title claims abstract description 36
- 230000006870 function Effects 0.000 claims description 33
- 238000013528 artificial neural network Methods 0.000 claims description 23
- 239000011159 matrix material Substances 0.000 claims description 17
- 230000009471 action Effects 0.000 claims description 11
- 230000008569 process Effects 0.000 claims description 11
- 238000013145 classification model Methods 0.000 claims description 9
- 238000012549 training Methods 0.000 claims description 7
- 230000002776 aggregation Effects 0.000 claims description 6
- 238000004220 aggregation Methods 0.000 claims description 6
- 230000008859 change Effects 0.000 claims description 6
- 230000004927 fusion Effects 0.000 claims description 6
- 239000012634 fragment Substances 0.000 claims description 5
- 239000013598 vector Substances 0.000 claims description 4
- 230000007246 mechanism Effects 0.000 claims description 3
- 125000004122 cyclic group Chemical group 0.000 claims description 2
- 238000005516 engineering process Methods 0.000 abstract description 12
- 238000013135 deep learning Methods 0.000 abstract description 5
- 238000003062 neural network model Methods 0.000 abstract description 4
- 238000010586 diagram Methods 0.000 abstract description 3
- 239000003795 chemical substances by application Substances 0.000 description 5
- 238000011161 development Methods 0.000 description 5
- 238000012512 characterization method Methods 0.000 description 2
- 230000004807 localization Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000008439 repair process Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- RAFGELQLHMBRHD-VFYVRILKSA-N Bixin Natural products COC(=O)C=CC(=C/C=C/C(=C/C=C/C=C(C)/C=C/C=C(C)/C=C/C(=O)O)/C)C RAFGELQLHMBRHD-VFYVRILKSA-N 0.000 description 1
- RAFGELQLHMBRHD-UHFFFAOYSA-N alpha-Fuc-(1-2)-beta-Gal-(1-3)-(beta-GlcNAc-(1-6))-GalNAc-ol Natural products COC(=O)C=CC(C)=CC=CC(C)=CC=CC=C(C)C=CC=C(C)C=CC(O)=O RAFGELQLHMBRHD-UHFFFAOYSA-N 0.000 description 1
- 238000004458 analytical method Methods 0.000 description 1
- 239000001670 anatto Substances 0.000 description 1
- 235000012665 annatto Nutrition 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- RAFGELQLHMBRHD-SLEZCNMESA-N bixin Chemical compound COC(=O)\C=C\C(\C)=C/C=C/C(/C)=C/C=C/C=C(\C)/C=C/C=C(\C)/C=C/C(O)=O RAFGELQLHMBRHD-SLEZCNMESA-N 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 238000012804 iterative process Methods 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000007500 overflow downdraw method Methods 0.000 description 1
- 238000000638 solvent extraction Methods 0.000 description 1
- 238000013068 supply chain management Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
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/24—Classification techniques
-
- 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/042—Knowledge-based neural networks; Logical representations of neural 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/092—Reinforcement learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Computer Security & Cryptography (AREA)
- Evolutionary Computation (AREA)
- Life Sciences & Earth Sciences (AREA)
- Artificial Intelligence (AREA)
- Computer Hardware Design (AREA)
- Biomedical Technology (AREA)
- Health & Medical Sciences (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Mathematical Physics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Computational Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种基于强化学习的可解释性智能合约漏洞检测及定位方法,应用于区块链监管,为了解决部署到区块链上的智能合约存在安全漏洞的问题。本发明首先根据智能合约源码生成合约图,基于图神经网络模型挖掘合约图特征进行漏洞分类,并基于强化学习提取出对分类结果影响最大的子图。本发明通过深度学习技术挖掘智能源码图中的特征,在智能合约被部署在区块链之前,检测合约源码中是否存在安全漏洞,保障了智能合约的安全性。同时,通过强化学习技术,能够实现对造成合约漏洞的关键子图提取,从而定位出与漏洞有关的代码部分,为智能合约漏洞检测提供可解释性的风险代码片段定位结果。
Description
技术领域
本发明属于区块链领域,更为具体地讲,涉及一种基于强化学习的可解释性智能合约漏洞检测及定位方法。
背景技术
智能合约作为区块链技术的核心创新之一,已在不同领域取得了显著发展。这种自动执行的计算代码不仅能够确保交易的可靠性和透明性,还为去中心化应用提供了广泛的可能性。然而,随着其应用范围的扩大,智能合约所潜在的安全隐患也日益凸显,这促使智能合约漏洞检测成为至关重要的领域。过去几年中,智能合约已经在金融、供应链管理、数字藏品等多个领域崭露头角。在金融领域,去中心化金融(DeFi)成为智能合约应用的一个引人注目的方向。DeFi通过智能合约实现了去中心化的金融服务,如借贷、交易等,消除了传统金融体系中繁琐的中介环节,提供了更高效、更开放的金融生态。另外,数字藏品领域也因智能合约而焕发新的生机。智能合约使得数字藏品的拥有权和交易可以更容易、更安全地进行,从而推动了数字艺术品、虚拟土地等领域的创新和发展。然而,尽管智能合约的发展带来了许多机遇,但也面临一些挑战。智能合约编写的复杂性使其容易受到漏洞和错误的影响,可能导致资金损失和安全问题。因此,智能合约的安全性和可靠性成为当前亟需解决的问题。针对这一挑战,智能合约漏洞检测技术应运而生。通过对智能合约代码进行全面的审查和分析,可以及早发现潜在漏洞,从而避免可能的风险。随着区块链技术的不断演进,智能合约的发展将继续受到关注,并在不同领域推动更多创新的应用。
在现有的技术中,有许多关于区块链上智能合约漏洞检测的研究,比如Huang,Jianjun,et al."Precise Dynamic Symbolic Execution for Nonuniform Data Accessin Smart Contracts."IEEE Transactions on Computers 71.7(2021):1551-1563.考虑到了智能合约中存在多种寻址模型的问题,为解决智能合约中非统一数据访问的问题,提出了一种Dynamic symbolic execution(DSE)方法,并实现了一个整数溢出漏洞检测器和一个多事务漏洞检测器;Li,Bixin,Zhenyu Pan,and Tianyuan Hu."Redefender:detecting reentrancy vulnerabilities in smart contracts automatically."IEEETransactions on Reliability 71.2(2022):984-999.提出了一种基于模糊测试的智能合约漏洞检测工具ReDefender,通过生成fuzzing输入数据来执行智能合约,通过分析其执行日志来判断智能合约中是否漏洞;Wu,Hongjun,et al."Peculiar:Smart contractvulnerability detection based on crucial data flow graph and pre-trainingtechniques."2021IEEE 32nd International Symposium on Software ReliabilityEngineering(ISSRE).IEEE,2021.则是提出使用深度学习的方法,基于自然语言处理预训练技术,通过提取智能合约中关键数据流图的特征,实现漏洞检测。然而,上述方案存在以下问题:
(1)缺乏多分类漏洞检测结果。已有研究工作的漏洞检测结果多为二分类,即只能判断智能合约是否存在漏洞,无法细分具体存在哪种漏洞。
(2)缺乏细粒度漏洞定位结果。已有研究工作多数只考虑实现漏洞检测结果,无法提供具体存在漏洞的代码片段定位结果。
(3)检测结果可解释性差。已有的基于深度学习的方法,由于使用的模型大多是黑盒,很难提供具有可解释性的漏洞检测结果。
发明内容
本发明所要解决的技术问题是,提供一种能保证保证智能合约代码安全性和区块链运行可靠性的智能合约漏洞检测及定位方法。
本发明为解决上述技术问题所采用的技术方案是,一种基于强化学习的可解释性智能合约漏洞检测及定位方法,基于图神经网络模型挖掘合约图特征进行漏洞分类,并基于强化学习提取出对分类结果影响最大的子图,从而实现对智能合约的多分类漏洞检测结果,并能定位出具体存在漏洞的函数代码片段,保障了智能合约的代码安全性与区块链的运行可靠性。
具体包括以下步骤:
(1)首先从以太坊中收集智能合约数据集,数据集包括智能合约源代码以及对应的漏洞类型;然后将智能合约源代码转换为合约图,其中合约图中的节点为源代码中的变量,合约图中的边为源代码中的调用关系;再由合约图和对应的漏洞种类得到数据集其中,/>i={1,2,…,N}代表第i个合约图Gi对应的漏洞种类,yi={0,1,2,…,C},yi=0表示合约图Gi不存在漏洞,否则代表合约图Gi存在的漏洞种类,C代表漏洞总类数,N代表数据集中的合约图数量;
(2)以合约图中的各函数的代码片段为基准划分子图;每个函数的代码片段对应一个子图,得到每个合约图对应的子图集合{g1,g2,…,gj,…,gM},其中,M代表子图的数量;将各子图输入图神经网络中,图神经网络先得到子图中的节点特征表示,第j个子图gj的节点表示为H(gj),j={1,2,…,M};再对子图中的节点特征表示H(gj)进行加权融合后得到子图的特征表示rj;最后对各子图的特征表示rj进行加权融合后得到合约图的特征表示ci, 表示子图权重矩阵Wsubgraph的第j行,是可训练参数;
(3)图神经网络的漏洞多分类模型将合约图的特征表示ci经全连接层从而实现对合约图的多分类漏洞检测,输出多分类的合约图漏洞检测结果;
(4)根据训练好的图神经网络得到各子图权重矩阵,定义每个子图的重要程度imj:按照子图的重要程度对合约图漏洞检测结果的权重系数从高到低排序,选择前m个子图,这前m个子图对应的函数为可能存在漏洞的代码片段;
其中,图神经网络在训练过程中,子图权重矩阵Wsubgraph将不断更新,最终得到每个子图对漏洞检测结果的重要性分数;然后,固定漏洞多分类模型的模型参数,基于强化学习选取前个子图融合进行漏洞检测,/>表示向上取整,k为取值范围为(0-1)的比例值,是可训练参数;当m+1个子图的漏洞检测准确率相较于前m个子图的漏洞检测准确率变化小于预设的迭代阈值时,则停止强化学习迭代过程。
本发明公开一种基于强化学习的可解释性智能合约漏洞检测及定位方法,应用于区块链监管领域,为了解决部署到区块链上的智能合约存在安全漏洞的问题。本发明基于强化学习技术工作,首先根据智能合约源码生成合约图,基于图神经网络模型挖掘合约图特征进行漏洞分类,并基于强化学习提取出对分类结果影响最大的子图。本发明通过深度学习技术挖掘智能源码图中的特征,在智能合约被部署在区块链之前,检测合约源码中是否存在安全漏洞,保障了智能合约的安全性。同时,通过强化学习技术,能够实现对造成合约漏洞的关键子图提取,从而定位出与漏洞有关的代码部分,为智能合约漏洞检测提供可解释性的风险代码片段定位结果。
本发明的有益效果是:
(1)多分类检测。本发明提出的漏洞检测及定位模型能够输出多分类漏洞检测结果,实现同时对多种漏洞类型进行检测,并输出相应检测结果,提升漏洞检测效率。
(2)细粒度定位。本发明提出的漏洞检测及定位模型能够输出对漏洞检测影响最大的前m个子图,这些子图对应的函数片段就是最可能存在漏洞的代码片段,从而实现细粒度的漏洞定位。
(3)可解释结果。本发明提出的漏洞检测及定位模型基于强化学习的方法,通过设置奖励参数,不断迭代强化学习智能体的选择,从而实现具有可解释性的漏洞定位,并为漏洞检测结果提供佐证。
附图说明
图1是本发明实施例提供的场景示意图。
图2是实施例的流程图。
具体实施方式
下面结合附图对本发明的具体实施方式进行描述,以便本领域的技术人员更好地理解本发明。需要特别提醒注意的是,在以下的描述中,当已知功能和设计的详细描述也许会淡化本发明的主要内容时,这些描述在这里将被忽略。
如图1所示,实施例应用的区块链场景为:在基于智能合约的区块链应用中,安全性始终是一项关键关注点。开发团队在设计和编写合约代码后,会进行漏洞检测和修复,以捕捉并解决潜在的漏洞,确保合约的可靠性和稳定性。只有在经过严格的漏洞检测并确认没有问题后,合约才会被部署到区块链网络上,以确保用户的资金和交易数据安全。这种安全优先的开发方法有助于建立用户信任,推动区块链技术在关键领域的可持续应用。
本发明考虑了以下多个影响智能合约部署效率的因素:
首先是智能合约的代码中存在的多种类型的漏洞,包括但不限于重入攻击、整数溢出、权限控制问题等。因此,需要开发能够实现多分类漏洞检测的模型,快速识别出合约中的各种潜在漏洞模式。
其次是智能合约通常具有相当复杂的代码结构,由于合约代码篇幅长,开发人员在发现漏洞时可能需要花费大量时间来定位问题所在。为了帮助开发人员更快地修复漏洞,需要提供精准的漏洞定位结果。
最后是漏洞检测模型通常会产生一些检测结果,但这些结果往往需要开发人员能够理解和信服。仅仅告知某个合约存在某种漏洞并不足够,开发人员需要了解为什么模型分类为这种漏洞,以及它是如何检测到的。因此,漏洞检测模型需要提供可解释性的结果。
基于以上几点,本发明设计了一种基于强化学习的可解释性智能合约漏洞检测及定位方法,应用于区块链监管领域,为了解决部署到区块链上的智能合约存在安全漏洞的问题。本发明基于强化学习技术工作,首先根据智能合约源码生成合约图,基于图神经网络模型挖掘合约图特征进行漏洞分类,并基于强化学习提取出对分类结果影响最大的子图。本发明通过深度学习技术挖掘智能源码图中的特征,在智能合约被部署在区块链之前,检测合约源码中是否存在安全漏洞,保障了智能合约的安全性。同时,通过强化学习技术,能够实现对造成合约漏洞的关键子图提取,从而定位出与漏洞有关的代码部分,为智能合约漏洞检测提供可解释性的风险代码片段定位结果。
下面结合图2,对本发明一种基于强化学习的可解释性智能合约漏洞检测及定位方法进行详细说明,具体包括以下步骤:
(1)首先从以太坊中收集智能合约数据集,数据集包括智能合约源代码,以及每个合约对应的漏洞类型。然后将智能合约源代码转换为合约图,其中节点由源代码中的变量组成,边由源代码中的调用关系组成。将构建好的每个合约图表示为G=(V,X,A),其中V={v1,v2,…,vn}代表合约图的节点集合,代表节点特征,/>代表邻接矩阵。合约图中的节点初始特征由word2vec算法得到,n代表节点的数量,d代表节点特征的维度。由此,可以得到数据集/>其中,/>i={1,2,…,N}代表合约图Gi对应的漏洞种类,yi={0,1,2,…,C},yi=0表示合约图Gi不存在漏洞,否则代表合约图Gi存在的漏洞种类,C代表漏洞种类的数量,N代表数据集中的样本数量。
(2)子图划分
以合约图中的每个函数所包含的代码片段为基准划分子图。每个函数对应一个子图,该子图包含该函数中的变量及调用关系。由此可以得到每个合约图对应的子图集合{g1,g2,…,gj,…,gM},其中,M代表子图的数量。每个子图中的节点数量限制为s,基于图神经网络,得到每个子图中的节点特征矩阵表示为H(gj)由下式得到:
H(gj)=f(gj)={hj|vj∈V(gj)}
其中,vj,j={1,2,…,s}表示子图gi中的每个节点,hj代表每个节点对应的隐向量,f(·)表示图神经网络的消息传播机制,具体如下式所示:
其中,U(·)代表图神经网络的状态更新函数,AGG(·)代表图神经网络的消息聚合函数,hj'表示节点vj的邻接节点vj'的隐向量,上标l表示当前聚合状态,上标l+1表示下一个聚合状态
(3)构建子图特征表示
通过步骤(2)获得子图中的节点特征表示H(gj)后,基于加权融合的方法得到子图的特征表示rj,节点权重矩阵定义为Wnode,则子图表征计算如下:
其中,节点权重矩阵是可训练参数,T为转置。
(4)构建合约图特征表示
同理,通过步骤(3)获得合约图中的每个子图的特征表示rj后,依然基于加权融合的方式计算得到合约图的特征表示ci,权重矩阵定义为Wsubgraph,则合约图表征计算如下:
其中,sub(Gi)表示第i个合约图的所有子图集合,子图权重矩阵是可训练参数,/>表示该矩阵的第j行。
(5)合约漏洞多分类检测
通过步骤(4)得到合约图的特征表示后,再经过神经网络的全连接层,实现对合约图的多分类漏洞检测,漏洞多分类模型的交叉熵损失函数定义为:
其中,C表示漏洞种类的数量,y表示该样本真实的漏洞种类,y′表示模型输出的分类结果;yi,c表示第i个合约图对应第c个漏洞种类的真实结果,y′i,c表示图神经网络输出的第i个合约图对应第c个漏洞种类的出现漏洞的概率,即多分类的智能合约漏洞检测结果。
(6)子图选择
为确定对漏洞分类结果影响最大的前m个子图,实现对漏洞函数片段的定位,本发明基于强化学习的方法选择top-m子图。首先,根据各子图的权重矩阵定义每个子图的重要程度{imj|gj∈G}:
即按照子图对合约图漏洞检测结果的权重系数从高到低排序,再基于强化学习方法选择出最重要的前m个子图,那么这前m个子图对应的函数就是最有可能存在漏洞的代码片段。
(7)强化学习流程
在合约图进行漏洞多分类的模型训练过程中,权重矩阵Wsubgraph将不断更新,最终得到每个子图对漏洞检测结果的重要性分数。然后,固定漏洞多分类模型的模型参数,基于强化学习选取前个子图融合进行漏洞检测,当前m+1个子图的漏洞检测准确率相较于前m个子图的漏洞检测准确率变化不大时,则停止强化学习迭代过程。此时,认为该m个子图是对漏洞结果影响最大的代码片段,从而实现对合约图的漏洞函数代码片段定位。本发明使用强化学习方法来找到比例k值的最优解,将该马尔可夫决策过程建模为智能体(Agent)采取行动(Action)从而改变自己的状态(State),获得奖励(Reward),不断与环境(Environment)发生交互的循环过程。
State:每轮循环e的状态se定义为,将智能合约中的前个子图拼接进行漏洞检测,其中,M个子图按重要程度imi进行排序,/>表示向上取整。
Action:强化学习智能体根据奖励来采取每轮循环e的行动ae。定义ae为在当前k值的基础上加上或减去调节值Δk∈[0,1],
Reward:本方法根据漏洞检测的准确率结果为每个行动ae定义奖励函数reward(se,ae)。根据当前状态se中准确率accuracye和上一状态se-1中准确率accuracye-1的变化关系,奖励函数reward(se,ae)会有以下三种情况的取值:若accuracye>accuracye-1,则奖励函数取值+1;若accuracye=accuracye-1,则奖励函数取值0;若accuracye<accuracye-1,则奖励函数取值-1。
Terminal。强化学习的终止条件定义为:当m值在连续5轮循环中的取值不变时,强化学习算法会终止。这意味着强化学习已经达到了优化阈值。
本小节使用Q-learning方法来学习该马尔可夫决策过程。Q-learning是一种非策略强化学习算法,旨在找到给定当前状态的最佳行动,它符合贝尔曼的最优性公式。该方法采用ε-greedy搜索策略,这意味着强化学习智能体通过随机选择概率ε的操作来探索新状态,而不是根据最大未来奖励选择行动。
尽管上面对本发明说明性的具体实施方式进行了描述,以便于本技术领域的技术人员理解本发明,但应该清楚,本发明不限于具体实施方式的范围,对本技术领域的普通技术人员来讲,只要各种变化在所附的权利要求限定和确定的本发明的精神和范围内,这些变化是显而易见的,一切利用本发明构思的发明创造均在保护之列。
Claims (6)
1.一种基于强化学习的可解释性智能合约漏洞检测及定位方法,其特征在于,包括以下步骤:
(1)首先从以太坊中收集智能合约数据集,数据集包括智能合约源代码以及对应的漏洞类型;然后将智能合约源代码转换为合约图,其中合约图中的节点为源代码中的变量,合约图中的边为源代码中的调用关系;再由合约图和对应的漏洞种类得到数据集其中,/> 代表第i个合约图Gi对应的漏洞种类,yi={0,1,2,…,C},yi=0表示合约图Gi不存在漏洞,否则代表合约图Gi存在的漏洞种类,C代表漏洞总类数,N代表数据集中的合约图数量;
(2)以合约图中的各函数的代码片段为基准划分子图;每个函数的代码片段对应一个子图,得到每个合约图对应的子图集合{g1,g2,…,gj,…,gM},其中,M代表子图的数量;将各子图输入图神经网络中,图神经网络先得到子图中的节点特征表示,第j个子图gj的节点表示为H(gj),j={1,2,…,M};再对子图中的节点特征表示H(gj)进行加权融合后得到子图的特征表示rj;最后对各子图的特征表示rj进行加权融合后得到合约图的特征表示ci, 表示子图权重矩阵Wsubgraph的第j行,是可训练参数;
(3)图神经网络的漏洞多分类模型将合约图的特征表示ci经全连接层从而实现对合约图的多分类漏洞检测,输出多分类的合约图漏洞检测结果;
(4)根据训练好的图神经网络得到各子图权重矩阵,定义每个子图的重要程度imj:按照子图的重要程度对合约图漏洞检测结果的权重系数从高到低排序,选择前m个子图,这前m个子图对应的函数为可能存在漏洞的代码片段;
其中,图神经网络在训练过程中,子图权重矩阵Wsubgraph将不断更新,最终得到每个子图对漏洞检测结果的重要性分数;然后,固定漏洞多分类模型的模型参数,基于强化学习选取前个子图融合进行漏洞检测,/>表示向上取整,k为取值范围为(0-1]的比例值,是可训练参数;当m+1个子图的漏洞检测准确率相较于前m个子图的漏洞检测准确率变化小于预设的迭代阈值时,则停止强化学习迭代过程。
2.如权利要求1所述方法,其特征在于,步骤(1)中每个合约图表示为G=(V,X,A),其中V代表合约图的节点集合,X代表节点特征,A代表邻接矩阵;合约图中的节点特征由节点对应的源代码通过word2vec编码得到。
3.如权利要求1所述方法,其特征在于,步骤(2)中取得合约图特征表示的具体方法为:
图神经网络对子图中的节点特征表示H(gj)进行加权融合后得到子图的特征表示rj具体为:Wnode为图神经网络中的节点权重矩阵,是可训练参数;T为转置。
4.如权利要求3所述方法,其特征在于,节点特征表示H(gj)通过图神经网络的消息传播机制f(·)得到:H(gi)=f(gi)={hj};hj表示子图gj中每一个节点vj的隐向量,hj在训练过程中的更新方式为:其中,U(·)代表图神经网络的状态更新函数,AGG(·)代表图神经网络的消息聚合函数,hj'表示节点vj的邻接节点vj'的隐向量,上标l表示当前聚合状态,上标l+1表示下一个聚合状态。
5.如权利要求1所述方法,其特征在于,图神经网络中的漏洞多分类模型在训练过程中使用的交叉熵损失函数LCE为:
其中,yi,c表示第i个合约图对应第c个漏洞种类的真实结果,y′i,c表示图神经网络输出的第i个合约图对应第c个漏洞种类的出现漏洞的概率,即多分类的智能合约漏洞检测结果。
6.如权利要求1所述方法,其特征在于,漏洞多分类模型的强化学习采用马尔可夫决策,马尔可夫决策为漏洞多分类模型通过不断采取行动从而改变状态获得奖励的循环过程;
所述状态为:每轮循环e的状态se设置为,将智能合约中的前个子图拼接进行漏洞检测;
所述行动为:根据奖励来采取每轮循环e的行动ae;设置ae为在当前k的基础上加上或减去一个调节值Δk,
所述奖励为:根据漏洞检测的准确率结果为每个行动ae设置奖励函数reward(se,ae);根据当前状态se中准确率accuracye和上一状态se-1中准确率accuracye-1的变化关系,奖励函数reward(se,ae)会有以下三种情况的取值:若accuracye>accuracye-1,则奖励函数取值+1;若accuracye=accuracye-1,则奖励函数取值0;若accuracye<accuracye-1,则奖励函数取值-1;
马尔可夫决策的循环终止条件为:当m值在连续5轮循环中的取值不变时。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311113916.3A CN117272312A (zh) | 2023-08-31 | 2023-08-31 | 一种基于强化学习的可解释性智能合约漏洞检测及定位方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311113916.3A CN117272312A (zh) | 2023-08-31 | 2023-08-31 | 一种基于强化学习的可解释性智能合约漏洞检测及定位方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117272312A true CN117272312A (zh) | 2023-12-22 |
Family
ID=89215076
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311113916.3A Pending CN117272312A (zh) | 2023-08-31 | 2023-08-31 | 一种基于强化学习的可解释性智能合约漏洞检测及定位方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117272312A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117852092A (zh) * | 2024-02-23 | 2024-04-09 | 广州钜慧信息科技有限公司 | 基于区块链的数据安全保护方法及*** |
-
2023
- 2023-08-31 CN CN202311113916.3A patent/CN117272312A/zh active Pending
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN117852092A (zh) * | 2024-02-23 | 2024-04-09 | 广州钜慧信息科技有限公司 | 基于区块链的数据安全保护方法及*** |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Schnake et al. | Higher-order explanations of graph neural networks via relevant walks | |
Amer et al. | A dynamic Windows malware detection and prediction method based on contextual understanding of API call sequence | |
CN108647520B (zh) | 一种基于脆弱性学习的智能模糊测试方法与*** | |
JP7439242B2 (ja) | 機械学習モデルの視覚的作成及び監視 | |
CN117272312A (zh) | 一种基于强化学习的可解释性智能合约漏洞检测及定位方法 | |
CN113836009B (zh) | 一种基于强化学习的智能合约模糊测试方法及*** | |
Bartocci et al. | Survey on mining signal temporal logic specifications | |
Naeem et al. | Scalable mutation testing using predictive analysis of deep learning model | |
Zekany et al. | CrystalBall: Statically analyzing runtime behavior via deep sequence learning | |
Rangineni et al. | An examination of machine learning in the process of data integration | |
CN114385512B (zh) | 软件源代码缺陷检测方法及装置 | |
CN115098857A (zh) | 一种可视化恶意软件的分类方法及装置 | |
Xu et al. | Ofei: A semi-black-box android adversarial sample attack framework against dlaas | |
Saheb Nasagh et al. | A fuzzy genetic automatic refactoring approach to improve software maintainability and flexibility | |
Tian et al. | Enhancing vulnerability detection via AST decomposition and neural sub-tree encoding | |
CN116702157B (zh) | 一种基于神经网络的智能合约漏洞检测方法 | |
Do Xuan et al. | A novel approach for software vulnerability detection based on intelligent cognitive computing | |
CN113904844A (zh) | 基于跨模态教师-学生网络的智能合约漏洞检测方法 | |
Boutaib et al. | Uncertainty-wise software anti-patterns detection: a possibilistic evolutionary machine learning approach | |
CN115935367A (zh) | 一种基于图神经网络的源代码漏洞静态检测及定位方法 | |
Şahin | The role of vulnerable software metrics on software maintainability prediction | |
Kang et al. | A method framework for identifying digital resource clusters in software ecosystems | |
Prashanthi et al. | Software Defect Prediction Survey Introducing Innovations with Multiple Techniques | |
Li et al. | Transfer Learning for Security: Challenges and Future Directions | |
Rahman | Droidmln: a Markov logic network approach to detect android malware |
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 |