CN112035842A - 一种基于编码解码器的智能合约漏洞检测可解释性方法 - Google Patents
一种基于编码解码器的智能合约漏洞检测可解释性方法 Download PDFInfo
- Publication number
- CN112035842A CN112035842A CN202010826792.3A CN202010826792A CN112035842A CN 112035842 A CN112035842 A CN 112035842A CN 202010826792 A CN202010826792 A CN 202010826792A CN 112035842 A CN112035842 A CN 112035842A
- Authority
- CN
- China
- Prior art keywords
- intelligent contract
- contract
- graph
- vulnerability detection
- vulnerability
- 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 80
- 238000000034 method Methods 0.000 title claims abstract description 43
- 238000013528 artificial neural network Methods 0.000 claims abstract description 24
- 230000009471 action Effects 0.000 claims abstract description 19
- 238000000605 extraction Methods 0.000 claims abstract description 18
- 230000007246 mechanism Effects 0.000 claims abstract description 17
- 238000010276 construction Methods 0.000 claims abstract description 7
- 239000013598 vector Substances 0.000 claims description 59
- 238000012549 training Methods 0.000 claims description 27
- 230000006870 function Effects 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 12
- 238000010586 diagram Methods 0.000 claims description 9
- 238000002679 ablation Methods 0.000 claims description 8
- 230000004927 fusion Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 8
- 238000004458 analytical method Methods 0.000 claims description 3
- 238000010606 normalization Methods 0.000 claims description 3
- 238000011176 pooling Methods 0.000 claims description 3
- 238000004519 manufacturing process Methods 0.000 claims description 2
- 238000006243 chemical reaction Methods 0.000 claims 1
- 238000003062 neural network model Methods 0.000 abstract description 9
- 238000005516 engineering process Methods 0.000 abstract description 6
- 238000013135 deep learning Methods 0.000 abstract description 5
- 238000013136 deep learning model Methods 0.000 abstract description 2
- RTZKZFJDLAIYFH-UHFFFAOYSA-N Diethyl ether Chemical compound CCOCC RTZKZFJDLAIYFH-UHFFFAOYSA-N 0.000 description 4
- 230000006872 improvement Effects 0.000 description 4
- 239000000243 solution Substances 0.000 description 4
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000000694 effects Effects 0.000 description 2
- 238000013507 mapping Methods 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 238000011298 ablation treatment Methods 0.000 description 1
- 230000004931 aggregating effect Effects 0.000 description 1
- 230000002776 aggregation Effects 0.000 description 1
- 238000004220 aggregation Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 235000000332 black box Nutrition 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 238000010790 dilution Methods 0.000 description 1
- 239000012895 dilution Substances 0.000 description 1
- 230000002143 encouraging effect Effects 0.000 description 1
- 238000002474 experimental method Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 238000012795 verification Methods 0.000 description 1
- 238000012038 vulnerability analysis 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/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/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- 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/049—Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
-
- 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
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Software Systems (AREA)
- General Physics & Mathematics (AREA)
- Artificial Intelligence (AREA)
- Evolutionary Computation (AREA)
- Computing Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Molecular Biology (AREA)
- Biophysics (AREA)
- Computational Linguistics (AREA)
- Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- General Health & Medical Sciences (AREA)
- Computer Security & Cryptography (AREA)
- Computer Hardware Design (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
本发明提出了基于编码解码器的智能合约漏洞检测可解释方法,其通过专家规则抽取方法、合约图构建方法、基于神经网络的特征提取方法以及可解释性模型,实现智能合约漏洞检测以及可解释性。具体包括:提取相应漏洞的专家规则;前馈神经网络提取专家规则特征;智能合约源码转化合约图结构并进行规范化;图神经网络提取合约图特征;构建基于Encoder‑Decoder框架的可解释性模型,引入注意力机制,检测智能合约漏洞并给出作用权重值。相较于现有的智能合约漏洞检测工具,本发明尝试结合了深度学习的神经网络模型技术,进一步的提高了检测结果的准确率;相较于传统深度学习模型的“黑箱”性,该发明提供了一种可解释性方案,展望了智能合约漏洞检测的新方向。
Description
技术领域
本发明属于区块链智能合约安全领域,具体涉及一种基于编码解码器的智能合约漏洞检测可解释性方法。
背景技术
近年来,区块链技术以其去中心化、不可篡改、可追溯性等特点,迅速成为行业关注的焦点之一。智能合约是运行在区块链上的程序片段,以代码的方式定义一套自动执行的合约规则,实现了“代码即法律”的逻辑,极大扩展了智能合约应用的可能性。
截至目前,来自各类区块链平台上的智能合约持有价值超过100亿美元的数字货币。然而,拥有巨额财富的智能合约易遭到恶意攻击者的觊觎,导致智能合约安全问题频发,俨然成为区块链安全的重灾区。例如,2016年“The DAO”合约重入漏洞导致360万以太币被盗;2017年Parity钱包因权限问题导致价值1.5亿美元以太币被冻结;2018年美国BEC代币合约的整数溢出问题导致其9亿美元市值瞬间归零。因此,急需一种高效且准确的智能合约漏洞检测方法,减少或避免有潜在威胁的智能合约。
当前存在的智能合约漏洞检测工具,例如Security,SmartCheck,Oyente等,大多基于形式化验证、模糊测试、符号执行等传统程序分析方法,这些工具主要依赖于有限的专家知识,其检测结果仍存在较高的误报率和漏报率。随着深度学习技术的成熟,研究人员已经尝试通过构建神经网络模型的方式训练智能合约漏洞集,实现相应的智能合约漏洞检测,并且取得了令人鼓舞的效果。然而,基于神经网络模型的方法局限性在于:虽然能够有效检测智能合约漏洞,但由于深度学习黑箱性,无法给出漏洞检测的有效解释和原因。
基于此考虑,一方面可以利用神经网络模型提高智能合约漏洞检测准确度;另一方面可以构建基于编码解码器的可解释性模型,结合注意力机制实现漏洞检测的可解释性。编码解码器赋予机器翻译、语义序列化、自然语言处理等领域新的研究契机,引入注意力机制不仅能为编码解码器模型训练提质增效,还能够为特征序列建立权值和映射,让输入特征与输出结果相呼应,避免模型黑箱性。当前仍然缺少基于深度学习的智能合约漏洞检测可解释性方法,提出一种基于编码解码器的智能合约漏洞检测可解释方法,具有很好的通用性和实用价值。
发明内容
针对上述现有技术存在的问题,为了解决智能合约漏洞检测与可解释性问题,本发明提出了一种基于编码解码器的智能合约漏洞检测可解释性方法。该方法包含专家规则提取、合约图构建与规范化、漏洞检测与可解释性三个关键阶段,通过训练前馈神经网络模型、图神经网络模型以及可解释性模型,一方面提高智能合约漏洞检测准确度,另一方面给出漏洞检测结果的解释说明。
一种基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,通过构建基于编码解码器的可解释性模型实现智能合约漏洞检测及可解释性说明,该方法具体包括如下步骤:
收集并制作智能合约源码数据集,利用开源漏洞检测工具以及人工审计方式标注智能合约漏洞;
对智能合约源码数据集进行分析,利用自动提取工具提取智能合约漏洞的专家规则;
构建前馈神经网络提取合约漏洞专家规则特征Pr;
利用智能合约自动化抽图工具,将智能合约源码数据集转换为对应的智能合约图形式;
利用智能合约图节点消融工具,对智能合约图进行消融处理,使不同合约图规范化成统一结构;
构建图神经网络提取规范化后智能合约图特征Gr;
构建基于编码解码器的可解释性模型,引入注意力机制,将专家规则特征Pr与智能合约图特征Gr输入可解释性模型进行训练;
可解释性模型训练完成后,输入智能合约测试集进行检测,输出漏洞检测结果、特征向量以及特征向量作用权重值。
进一步地,所述收集并制作智能合约源码数据集,利用开源漏洞检测工具以及人工审计方式标注智能合约漏洞具体为:基于漏洞类型最多、使用范围最广的以太坊智能合约,从以太坊官网上收集智能合约源码,制作智能合约数据集,利用开源漏洞检测工具以及人工审计方式,标注智能合约相应漏洞。
进一步地,所述对智能合约源码数据集进行分析,利用自动提取工具提取智能合约漏洞的专家规则具体为:智能合约不同漏洞对应的专家规则不一样,每个漏洞对应的专家规则可能有多个,利用专家规则抽取工具自动提取后,使用one-hot编码形式化表示漏洞所有专家规则,定义digit变量标记该专家规则是否存在,存在为“1”,不存在为“0”。
进一步地,所述构建前馈神经网络提取专家规则特征具体为:构建前馈神经网络,将智能合约漏洞对应的专家规则one-hot编码输入到前馈神经网络中进行训练,提取出高语义表达的专家规则特征Pr。
进一步地,所述利用智能合约自动化抽图工具,将智能合约源码数据集转换为对应的智能合约图形式具体为:定位导致智能合约漏洞的关键函数与代码段,根据智能合约中不同函数和代码的关键程度不同,对应合约图节点和有向边扮演的角色也不同,利用自动化抽图工具抽取核心节点、辅助节点、Fallback节点及有向时序边,将智能合约数据集源码转化为相应的智能合约图;具体节点分类定义如下:
核心节点:表示在智能合约漏洞检测中起关键作用的函数调用,用C1,C2,…,Cn表示;
辅助节点:表示在智能合约漏洞检测中起辅助作用的关键变量,用N1,N2,...,Nn表示;
Fallback节点:表示对智能合约中的Fallback函数进行建模,Fallback函数是智能合约特有机制,也是造成很多合约漏洞的源头,用F表示;
有向时序边:表示节点之间丰富的语义依赖关系,将合约图中有向时序边细分为控制流边、数据流边、前向边和Fallback边。
进一步地,所述利用智能合约图节点消融工具,对智能合约图进行消融处理,使不同合约图规范化成统一结构具体为:一方面合约图中核心节点起着更加关键的作用,另一方面不同的智能合约产生的合约图结构不同,阻碍了图神经网络的训练;因此,利用智能合约图节点消融工具对合约图进行节点特征消融,每个核心节点的特征融合其相关联的辅助节点特征,对多个同类辅助节点进行消融,将多个同类辅助节点特征N1,N2,...,Nt融合到一个节点上,表示为N0。
进一步地,所述构建图神经网络提取规范化合约图特征具体为:构建一种基于有向边的时序信息传播图神经网络,将规范化合约图节点特征与有向边特征输入到图神经网络中进行训练,提取出智能合约图特征Gr。
进一步地,所述构建基于编码解码器的可解释性模型,引入注意力机制,将专家规则特征Pr与智能合约图特征Gr输入可解释性模型进行训练具体为:
所述编码解码器基于Encoder-Decoder框架,Encoder阶段将输入的高维特征向量映射到低维语义向量中,Decoder阶段将所述低维语义向量还原为初始维度,注意力机制分配输入向量各部分作用权重值;所述基于编码解码器的可解释模型具体包括:
Encoder阶段:将专家规则特征Pr与合约图特征Gr相继输入卷积层、池化层、融合层得到融合特征Xr,经过多个全连接层后构建分支;一条分支将融合特征Xr输入到Decoder阶段,另一分支将融合特征Xr输入sigmoid分类层后输出漏洞检测结果;
Decoder阶段:引入注意力机制注意所有特征向量,分别输出专家规则特征Pr和合约图特征Gr的作用权重值,解释合约漏洞检测过程中起主要作用的是专家规则还是合约图特征,同时将所有特征向量还原为初始维度的向量,新还原的特征向量将作为新一轮编码解码过程的输入。
进一步地,所述可解释性模型训练完成后,输入智能合约测试集进行检测,输出漏洞检测结果、特征向量以及特征向量作用权重值具体为:
利用Decoder阶段还原的特征向量进行迭代训练,提高可解释性模型的拟合度以及各种特征作用权重的准确度;可解释性模型训练完成后,输入测试集进行漏洞检测,输出漏洞检测结果、特征向量以及特征向量作用权重值:
(i)漏洞检测结果:输出结果为“1”,则该合约存在漏洞;输出结果为“0”,则该合约无漏洞;
(ii)特征向量:输入可解释性模型的所有特征经过编码解码后还原出新的特征向量,作为新一轮迭代训练的输入值;
(iii)特征向量作用权重值:利用注意力机制,输出所有特征向量的作用权重,通过权重值对各种影响因素进行分析,给出智能合约漏洞解释性说明。
本发明结合专家规则与智能合约图技术,提出了一种基于编码解码器的智能合约漏洞检测可解释性方法。通过训练前馈神经网络模型、图神经网络模型以及可解释性模型,实现对智能合约漏洞自动检测以及可解释性分析,为智能合约漏洞的改进提供针对性的解决方案,不仅具有良好的通用性和实用价值,而且具有很好的借鉴意义。具体有益技术效果和创新性主要表现在以下几个方面:
本发明提出针对不同智能合约漏洞的专家规则,丰富了漏洞检测的特征,提高检测的准确程度;
本发明提出智能合约源码转换为合约图的方法,利用图神经网络进行模型训练和特征提取,探索了图表示方法在智能合约漏洞检测问题上的可能性;
本发明利用Encoder-Decoder框架,引入注意力机制构建可解释性漏洞检测模型,在编码-解码迭代训练过程中输出各种影响因素的权重值,为构建一种可解释性的检测方法提供了新思路。
附图说明
图1为本发明智能合约漏洞检测可解释性方法的流程示意图。
图2为本发明智能合约自动化抽图与特征融合示意图。
图3为本发明可解释性模型训练示意图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
1.本发明基于编码解码器的智能合约漏洞检测可解释方法,利用开源漏洞检测工具、专家规则抽取工具、自动化抽图工具、前馈神经网络、图神经网络等工具实现专家规则以及智能合约图特征的训练与提取;通过构建基于编码解码器的可解释性模型,引入注意力机制实现智能合约漏洞检测与可解释性分析,其过程如图1流程图所示。
2.本实施例以重入漏洞为例,提取相应的专家规则以及特征。
(2-1)智能合约重入漏洞专家规则具体如下:
CallValueInvocation规则:检查合约是否存在call.value函数调用;
BalanceDeduction规则:检查用户余额是否在call.value函数调用后执行“余额减操作”;
EnoughBalance规则:检查用户余额是否有足够的金额支持转账(即账户余额大于转账金额)。
使用one-hot编码将各个专家规则形式化,定义digit变量表示该专家规则是否存在,存在为“1”,不存在为“0”,最终得到3个4维向量,专家规则形式化表示如表1所示:
表1
(2-2)构建前馈神经网络(NFD),将专家规则one-hot编码输入到NFD中进行训练,提取出高语义表达的专家规则特征Pr。
3.本实施例以重入漏洞分析为例,抽取相应的智能合约图以及提取特征,如图2所示,具体实现过程如下:
(3-1)利用智能合约自动化抽图工具,将非结构化的智能合约源码转换为合约图结构;其中,图2(a)表示漏洞合约的核心代码,图2(b)表示从代码中提取的合约图,图2(c)为节点消融后的规范化合约图,具体实施步骤如下:
(3-1-1)关键函数调用call.value函数、withdrawFunds函数、withDraw函数分别建模为核心节点C1、C2、C3;关键变量Funds、balance、amount分别建模为辅助节点N1、N2、N3;Fallback函数建模为Fallback节点F,具体对应关系如表2所示:
关键函数与变量 | 节点类型 |
call.value | C<sub>1</sub> |
withdrawFunds | C<sub>2</sub> |
withDraw | C<sub>3</sub> |
Funds | N<sub>1</sub> |
balance | N<sub>2</sub> |
amount | N<sub>3</sub> |
Fallback | F |
表2
(3-1-2)由于图节点不是孤立的,而是以时间顺序紧密相连;为了捕获节点之间丰富的语义依赖关系,构建四种类型的有向边:
控制流边:捕获具有条件控制的代码(如if、for、assert、require语句);
数据流边:捕获变量访问或修改的代码;
前向边:表示代码中自然顺序关系,保留源代码序列逻辑;
Fallback边:模拟Fallback函数与攻击函数之间的潜在交互关系,
边与边类型之间的对应关系如表3所示:
边(V<sub>start</sub>→V<sub>end</sub>) | 边类型 | 边(V<sub>start</sub>→V<sub>end</sub>) | 边类型 |
e<sub>1</sub>(C<sub>2</sub>→N<sub>1</sub>) | 控制流边 | e<sub>7</sub>(N<sub>3</sub>→N<sub>2</sub>) | 前向边 |
e<sub>2</sub>(N<sub>1</sub>→N<sub>2</sub>) | 数据流边 | e<sub>8</sub>(N<sub>2</sub>→N<sub>3</sub>) | 数据流边 |
e<sub>3</sub>(N<sub>2</sub>→N<sub>2</sub>) | 数据流边 | e<sub>9</sub>(N<sub>3</sub>→C<sub>1</sub>) | 前向边 |
e<sub>4</sub>(N<sub>2</sub>→C<sub>3</sub>) | 前向边 | e<sub>10</sub>(C<sub>1</sub>→F) | Fallback边 |
e<sub>5</sub>(C<sub>3</sub>→N<sub>2</sub>) | 数据流边 | e<sub>11</sub>(F→C<sub>2</sub>) | Fallback边 |
e<sub>6</sub>(N<sub>2</sub>→N<sub>3</sub>) | 数据流边 | e<sub>12</sub>(C<sub>1</sub>→N<sub>1</sub>) | 数据流边 |
表3
(3-1-3)利用图节点消融工具,将合约图中辅助节点的特征融合到与其邻近的核心节点上,所有辅助节点特征融合到N0,形成规范化合约图;
核心节点Ci的特征由三部分组成:核心节点自身特征;沿有向边输入的辅助节点特征,即指向Ci的辅助节点Ni的特征;沿有向边输出的辅助节点特征,即Ci指向辅助节点Ni的特征。
(3-2)将(3-1-3)生成的规范化合约图输入时序传播图神经网络模型(TMP),提取智能合约图特征,具体过程如下:
信息传播阶段:TMP模型按照时间顺序沿有向边依次传递信息,每一时间点沿一条边;在第0时刻,节点Ci的特征初始化隐藏状态为在第k时刻,消息通过第k条边ek,节点Ci通过聚合传入的信息更新隐藏状态hek;
特征输出阶段:遍历合约图中的所有有向边之后,TMP模型通过读取所有节点的最终隐藏状态提取合约图的特征,最终T时刻的节点隐藏状态与原始隐藏状态之间的差异提供了漏洞检测任务需要的有效信息,利用聚合函数将合约图中所有节点的最终状态融合,输出合约图特征Gr。
4.构建基于编码解码器的可解释性模型,实现重入漏洞检测以及可解释性说明,如图3所示,具体过程如下:
(4-1)所述编码解码器基于Encoder-Decoder框架,为了增强向量间的语义联系,同时避免输入向量维度过大造成维度灾难,Encoder阶段将输入的高维特征向量(合约图特征Cr与专家规则特征Pr)映射到低维语义向量中,引入注意力机制注意所有特征向量,分配各部分的作用权重值;Decoder阶段以Encoder阶段生成的低维语义向量作为输入进行“解码”,还原低维语义向量为初始维度;同时所述低维语义向量的维度在“编码”过程中确定,选择合适的维度建立分支,避免维度过低造成特征向量所含关键信息丢失或被稀释。
(4-2)所述基于编码解码器的可解释性模型具体包括如下两个阶段:
Encoder阶段:合约图特征Gr与专家规则特征Pr各自通过卷积层、池化层、融合层得到高维的融合特征向量Xr={x1,x2,x3,…,xt},将融合向量相继输入多个全连接层并构建分支;一条分支将融合特征Xr输入sigmoid分类层后输出漏洞检测结果,另一分支将融合特征Xr输入到Decoder阶段。
Decoder阶段:引入Attention机制注意所有特征向量,分别输出专家规则特征Pr和合约图特征Gr的作用权重值,解释合约漏洞检测过程中起主要作用的是专家规则还是合约图特征;同时将所有特征向量还原为初始维度的向量{y1,y2,y3,…,yt},该特征向量作为新一轮Encoder-Decoder的输入。
(4-3)利用Decoder阶段还原的特征向量进行迭代训练,提高可解释性模型的拟合度以及各种特征作用权重的准确度;可解释性模型训练完成后,输入测试集进行漏洞检测,模型输入结果具体如下:
(i)漏洞检测结果:输出结果为“1”,合约存在漏洞;输出结果为“0”,合约无漏洞;
(ii)特征向量:输入可解释性模型的所有特征经过编码解码后还原出新的特征向量,作为新一轮迭代训练的输入值;
(iii)特征作用权重值:利用注意力机制,输出所有特征向量的作用权重,通过权重值对各种影响因素进行分析,给出智能合约漏洞检测的解释说明。
与现有技术相比,基于编码解码器的可解释性模型与深度学习技术相结合,一方面提高了智能合约漏洞检测准确度,另一方面解决了传统深度学习模型的“黑箱性”,给出漏洞检测结果的有效解释说明;模型提出“专家规则”的概念,针对性解决不同漏洞的检测问题;经过对比实验表明,图表示方法在处理智能合约源码数据集时,能够更准确的定位关键代码段;同时,相较于普通框架,编码解码器模型中包含Encoder-Decoder框架的多个隐含层,模型的高复杂度进一步提高了检测精度,更加准确的输出各种影响因素的权重值,给出智能合约漏洞的关键解释性说明。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。
Claims (8)
1.一种基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,通过构建基于编码解码器的可解释性模型实现智能合约漏洞检测及可解释性说明,该方法具体包括如下步骤:
收集并制作智能合约源码数据集,利用开源漏洞检测工具以及人工审计方式标注智能合约漏洞;
对智能合约源码数据集进行分析,利用自动提取工具提取智能合约漏洞的专家规则;
构建前馈神经网络提取合约漏洞专家规则特征Pr;
利用智能合约自动化抽图工具,将智能合约源码数据集转换为对应的智能合约图形式;
利用智能合约图节点消融工具,对智能合约图进行消融处理,使不同合约图规范化成统一结构;
构建图神经网络提取规范化后智能合约图特征Gr;
构建基于编码解码器的可解释性模型,引入注意力机制,将专家规则特征Pr与智能合约图特征Gr输入可解释性模型进行训练;
可解释性模型训练完成后,输入智能合约测试集进行检测,输出漏洞检测结果、特征向量以及特征向量作用权重值。
2.根据权利要求1所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述对智能合约源码数据集进行分析,利用自动提取工具提取智能合约漏洞的专家规则具体为:
漏洞对应与专家规则相互对应,每个漏洞对应的专家规则至少有一个,利用专家规则抽取工具自动提取后,使用one-hot编码形式化表示所有专家规则,定义digit变量标记该专家规则是否存在,存在为“1”,不存在为“0”。
3.根据权利要求1所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述构建前馈神经网络提取专家规则特征具体为:
构建前馈神经网络,将智能合约漏洞对应的专家规则one-hot编码输入到前馈神经网络中进行训练,提取出高语义表达的专家规则特征Pr。
4.根据权利要求1所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述利用智能合约自动化抽图工具,将智能合约源码数据集转换为对应的智能合约图形式具体为:
定位导致智能合约漏洞的关键函数与代码段,根据智能合约中不同函数和代码的关键程度不同,对应合约图节点和有向边扮演的角色也不同,利用自动化抽图工具抽取核心节点、辅助节点、Fallback节点及有向时序边,将智能合约数据集源码转化为相应的智能合约图。
5.根据权利要求1所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述利用智能合约图节点消融工具,对智能合约图进行消融处理,使不同合约图规范化成统一结构具体为:
每个核心节点的特征融合其相关联的辅助节点特征;对多个同类辅助节点进行消融,将多个同类的辅助特征融合到同一个节点上。
6.根据权利要求1所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述构建图神经网络提取规范化合约图特征具体为:
构建基于有向边的时序信息传播图神经网络,将规范化合约图节点特征与有向边特征输入到图神经网络中进行训练,提取出智能合约图特征Gr。
7.根据权利要求1所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述构建基于编码解码器的可解释性模型,引入注意力机制,将专家规则特征rr与智能合约图特征Gr输入可解释性模型进行训练具体为:
所述编码解码器基于Encoder-Decoder框架,Encoder阶段将输入的高维特征向量映射到低维语义向量中,Decoder阶段将所述低维语义向量还原为初始维度,注意力机制分配输入向量各部分作用权重值;所述基于编码解码器的可解释模型具体包括:
Encoder阶段:将专家规则特征Pr与合约图特征Gr相继输入卷积层、池化层、融合层得到融合特征Xr,经过多个全连接层后构建分支;一条分支将融合特征Xr输入到Decoder阶段,另一分支将融合特征Xr输入sigmoid分类层后输出漏洞检测结果;
Decoder阶段:引入注意力机制注意所有特征向量,分别输出专家规则特征Pr和合约图特征Gr的作用权重值,解释合约漏洞检测过程中起主要作用的是专家规则还是合约图特征,同时将所有特征向量还原为初始维度的向量,新还原的特征向量将作为新一轮编码解码过程的输入。
8.根据权利要求7所述的基于编码解码器的智能合约漏洞检测可解释性方法,其特征在于,所述可解释性模型训练完成后,输入智能合约测试集进行检测,输出漏洞检测结果、特征向量以及特征向量作用权重值,具体为:
利用Decoder阶段还原的特征向量进行迭代训练,提高可解释性模型的拟合度以及各种特征作用权重的准确度;可解释性模型训练完成后,输入测试集进行漏洞检测,输出漏洞检测结果、特征向量以及特征向量作用权重值;
(i)漏洞检测结果:输出结果为“1”,则该合约存在漏洞;输出结果为“0”,则该合约无漏洞;
(ii)特征向量:输入可解释性模型的所有特征经过编码解码后还原出新的特征向量,作为新一轮迭代训练的输入值;
(iii)特征向量作用权重值:利用注意力机制,输出所有特征向量的作用权重,通过权重值对各种影响因素进行分析,给出智能合约漏洞解释性说明。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010826792.3A CN112035842B (zh) | 2020-08-17 | 2020-08-17 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010826792.3A CN112035842B (zh) | 2020-08-17 | 2020-08-17 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112035842A true CN112035842A (zh) | 2020-12-04 |
CN112035842B CN112035842B (zh) | 2024-04-19 |
Family
ID=73577375
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010826792.3A Active CN112035842B (zh) | 2020-08-17 | 2020-08-17 | 一种基于编码解码器的智能合约漏洞检测可解释性方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112035842B (zh) |
Cited By (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113127933A (zh) * | 2021-03-22 | 2021-07-16 | 西北大学 | 一种基于图匹配网络的智能合约庞氏骗局检测方法及系统 |
CN113157385A (zh) * | 2021-02-08 | 2021-07-23 | 北京航空航天大学 | 一种基于图神经网络的智能合约漏洞自动化检测方法 |
CN113254939A (zh) * | 2021-05-20 | 2021-08-13 | 江苏大学 | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 |
CN113312058A (zh) * | 2021-06-22 | 2021-08-27 | 哈尔滨工程大学 | 一种智能合约二进制函数的相似性分析方法 |
CN113326050A (zh) * | 2021-07-07 | 2021-08-31 | 浙江工商大学 | 基于神经网络与动态模糊测试结合的智能合约漏洞检测方法 |
CN113449303A (zh) * | 2021-06-28 | 2021-09-28 | 杭州云象网络技术有限公司 | 基于教师-学生网络模型的智能合约漏洞检测方法和系统 |
CN113626826A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 智能合约安全检测方法、系统、设备、终端及应用 |
CN113626827A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 一种智能合约漏洞检测方法、系统、设备、介质、终端 |
CN113904844A (zh) * | 2021-10-08 | 2022-01-07 | 浙江工商大学 | 基于跨模态教师-学生网络的智能合约漏洞检测方法 |
CN113918952A (zh) * | 2021-08-31 | 2022-01-11 | 暨南大学 | C或c++代码漏洞检测方法、系统、计算机及存储介质 |
CN114297665A (zh) * | 2021-12-31 | 2022-04-08 | 杭州趣链科技有限公司 | 基于深度学习的智能合约漏洞检测方法和装置 |
CN114707154A (zh) * | 2022-04-06 | 2022-07-05 | 广东技术师范大学 | 一种基于序列模型的智能合约可重入漏洞检测方法及系统 |
CN115033883A (zh) * | 2022-04-27 | 2022-09-09 | 浙江大学 | 一种基于策略型Fuzzer的智能合约漏洞检测方法及系统 |
CN115357904A (zh) * | 2022-07-29 | 2022-11-18 | 南京航空航天大学 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
CN115828248A (zh) * | 2023-02-17 | 2023-03-21 | 杭州未名信科科技有限公司 | 基于可解释性深度学习的恶意代码检测方法及装置 |
CN115879868A (zh) * | 2022-09-09 | 2023-03-31 | 南京审计大学 | 一种专家系统与深度学习相融合的智能合约安全审计方法 |
CN116578989A (zh) * | 2023-05-23 | 2023-08-11 | 海南大学 | 基于深度预训练神经网络的智能合约漏洞检测系统及方法 |
CN117972732A (zh) * | 2024-04-02 | 2024-05-03 | 南京信息工程大学 | 基于多特征融合的智能合约漏洞检测方法及系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190236598A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
CN110659494A (zh) * | 2019-09-27 | 2020-01-07 | 重庆邮电大学 | 一种可扩展的智能合约漏洞检测方法 |
CN111435923A (zh) * | 2019-01-13 | 2020-07-21 | 强力物联网投资组合2016有限公司 | 用于监测和管理工业环境的方法、系统、套件及设备 |
CN111488582A (zh) * | 2020-04-01 | 2020-08-04 | 杭州云象网络技术有限公司 | 一种基于图神经网络的智能合约重入性漏洞检测的方法 |
-
2020
- 2020-08-17 CN CN202010826792.3A patent/CN112035842B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20190236598A1 (en) * | 2018-01-31 | 2019-08-01 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing machine learning models for smart contracts using distributed ledger technologies in a cloud based computing environment |
CN111435923A (zh) * | 2019-01-13 | 2020-07-21 | 强力物联网投资组合2016有限公司 | 用于监测和管理工业环境的方法、系统、套件及设备 |
CN110659494A (zh) * | 2019-09-27 | 2020-01-07 | 重庆邮电大学 | 一种可扩展的智能合约漏洞检测方法 |
CN111488582A (zh) * | 2020-04-01 | 2020-08-04 | 杭州云象网络技术有限公司 | 一种基于图神经网络的智能合约重入性漏洞检测的方法 |
Cited By (30)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113157385A (zh) * | 2021-02-08 | 2021-07-23 | 北京航空航天大学 | 一种基于图神经网络的智能合约漏洞自动化检测方法 |
CN113157385B (zh) * | 2021-02-08 | 2024-09-24 | 北京航空航天大学 | 一种基于图神经网络的智能合约漏洞自动化检测方法 |
CN113127933A (zh) * | 2021-03-22 | 2021-07-16 | 西北大学 | 一种基于图匹配网络的智能合约庞氏骗局检测方法及系统 |
CN113127933B (zh) * | 2021-03-22 | 2023-04-07 | 西北大学 | 一种基于图匹配网络的智能合约庞氏骗局检测方法及系统 |
CN113254939A (zh) * | 2021-05-20 | 2021-08-13 | 江苏大学 | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 |
CN113254939B (zh) * | 2021-05-20 | 2024-04-19 | 江苏大学 | 基于多注意力机制和自适应学习的智能合约漏洞检测方法 |
CN113312058B (zh) * | 2021-06-22 | 2022-09-02 | 哈尔滨工程大学 | 一种智能合约二进制函数的相似性分析方法 |
CN113312058A (zh) * | 2021-06-22 | 2021-08-27 | 哈尔滨工程大学 | 一种智能合约二进制函数的相似性分析方法 |
CN113449303A (zh) * | 2021-06-28 | 2021-09-28 | 杭州云象网络技术有限公司 | 基于教师-学生网络模型的智能合约漏洞检测方法和系统 |
CN113326050A (zh) * | 2021-07-07 | 2021-08-31 | 浙江工商大学 | 基于神经网络与动态模糊测试结合的智能合约漏洞检测方法 |
CN113326050B (zh) * | 2021-07-07 | 2023-10-17 | 浙江工商大学 | 基于神经网络与动态模糊测试结合的智能合约漏洞检测方法 |
CN113626827A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 一种智能合约漏洞检测方法、系统、设备、介质、终端 |
CN113626826A (zh) * | 2021-07-29 | 2021-11-09 | 西安电子科技大学 | 智能合约安全检测方法、系统、设备、终端及应用 |
CN113918952A (zh) * | 2021-08-31 | 2022-01-11 | 暨南大学 | C或c++代码漏洞检测方法、系统、计算机及存储介质 |
CN113904844B (zh) * | 2021-10-08 | 2023-09-12 | 浙江工商大学 | 基于跨模态教师-学生网络的智能合约漏洞检测方法 |
CN113904844A (zh) * | 2021-10-08 | 2022-01-07 | 浙江工商大学 | 基于跨模态教师-学生网络的智能合约漏洞检测方法 |
CN114297665A (zh) * | 2021-12-31 | 2022-04-08 | 杭州趣链科技有限公司 | 基于深度学习的智能合约漏洞检测方法和装置 |
CN114707154B (zh) * | 2022-04-06 | 2022-11-25 | 广东技术师范大学 | 一种基于序列模型的智能合约可重入漏洞检测方法及系统 |
CN114707154A (zh) * | 2022-04-06 | 2022-07-05 | 广东技术师范大学 | 一种基于序列模型的智能合约可重入漏洞检测方法及系统 |
CN115033883A (zh) * | 2022-04-27 | 2022-09-09 | 浙江大学 | 一种基于策略型Fuzzer的智能合约漏洞检测方法及系统 |
CN115357904A (zh) * | 2022-07-29 | 2022-11-18 | 南京航空航天大学 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
CN115357904B (zh) * | 2022-07-29 | 2024-04-02 | 南京航空航天大学 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
CN115879868B (zh) * | 2022-09-09 | 2023-07-21 | 南京审计大学 | 一种专家系统与深度学习相融合的智能合约安全审计方法 |
CN115879868A (zh) * | 2022-09-09 | 2023-03-31 | 南京审计大学 | 一种专家系统与深度学习相融合的智能合约安全审计方法 |
CN115828248B (zh) * | 2023-02-17 | 2023-06-20 | 杭州未名信科科技有限公司 | 基于可解释性深度学习的恶意代码检测方法及装置 |
CN115828248A (zh) * | 2023-02-17 | 2023-03-21 | 杭州未名信科科技有限公司 | 基于可解释性深度学习的恶意代码检测方法及装置 |
CN116578989A (zh) * | 2023-05-23 | 2023-08-11 | 海南大学 | 基于深度预训练神经网络的智能合约漏洞检测系统及方法 |
CN116578989B (zh) * | 2023-05-23 | 2024-03-22 | 海南大学 | 基于深度预训练神经网络的智能合约漏洞检测系统及方法 |
CN117972732A (zh) * | 2024-04-02 | 2024-05-03 | 南京信息工程大学 | 基于多特征融合的智能合约漏洞检测方法及系统 |
CN117972732B (zh) * | 2024-04-02 | 2024-06-07 | 南京信息工程大学 | 基于多特征融合的智能合约漏洞检测方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN112035842B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112035842A (zh) | 一种基于编码解码器的智能合约漏洞检测可解释性方法 | |
CN111488582B (zh) | 一种基于图神经网络的智能合约重入性漏洞检测的方法 | |
CN110569033B (zh) | 一种数字化交易类智能合约基础代码生成方法 | |
Jiang et al. | Fake news detection via knowledgeable prompt learning | |
CN110018820A (zh) | 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法 | |
CN112035841B (zh) | 一种基于专家规则与序列化建模的智能合约漏洞检测方法 | |
CN113010209A (zh) | 一种抗编译差异的二进制代码相似性比较技术 | |
CN114547611A (zh) | 一种基于多模态特征的智能合约庞氏骗局检测方法及系统 | |
CN101751385B (zh) | 一种采用层次管道过滤器体系结构的多语言信息抽取方法 | |
CN113904844B (zh) | 基于跨模态教师-学生网络的智能合约漏洞检测方法 | |
CN111914553B (zh) | 一种基于机器学习的金融信息负面主体判定的方法 | |
CN115510236A (zh) | 基于信息融合和数据增强的篇章级事件检测方法 | |
CN112699375A (zh) | 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法 | |
CN117972732B (zh) | 基于多特征融合的智能合约漏洞检测方法及系统 | |
Li et al. | Lexical attention and aspect-oriented graph convolutional networks for aspect-based sentiment analysis | |
Zhang et al. | SVScanner: Detecting smart contract vulnerabilities via deep semantic extraction | |
Huang et al. | Deep Smart Contract Intent Detection | |
Chen et al. | Blockchain and trustworthy systems | |
CN114862588A (zh) | 一种面向区块链交易行为的异常检测方法 | |
CN106844218A (zh) | 一种基于演化切片的演化影响集预测方法 | |
CN113886593A (zh) | 一种利用指代依赖提升关系抽取性能的方法 | |
CN118332360B (zh) | 一种跨区块链交易地址追踪方法、系统、设备及介质 | |
CN117195232A (zh) | 一种基于改进图卷积神经网络的智能合约漏洞检测方法 | |
CN115577361B (zh) | 一种改进的基于图神经网络的PHP Web shell检测方法 | |
CN115037648B (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 |