CN111488582A - 一种基于图神经网络的智能合约重入性漏洞检测的方法 - Google Patents

一种基于图神经网络的智能合约重入性漏洞检测的方法 Download PDF

Info

Publication number
CN111488582A
CN111488582A CN202010251125.7A CN202010251125A CN111488582A CN 111488582 A CN111488582 A CN 111488582A CN 202010251125 A CN202010251125 A CN 202010251125A CN 111488582 A CN111488582 A CN 111488582A
Authority
CN
China
Prior art keywords
node
intelligent contract
neural network
graph
nodes
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
Application number
CN202010251125.7A
Other languages
English (en)
Other versions
CN111488582B (zh
Inventor
黄步添
俞之贝
刘成永
苑振霞
焦颖颖
罗春凤
黄媛媛
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hangzhou Yunxiang Network Technology Co Ltd
Original Assignee
Hangzhou Yunxiang Network Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Hangzhou Yunxiang Network Technology Co Ltd filed Critical Hangzhou Yunxiang Network Technology Co Ltd
Priority to CN202010251125.7A priority Critical patent/CN111488582B/zh
Publication of CN111488582A publication Critical patent/CN111488582A/zh
Application granted granted Critical
Publication of CN111488582B publication Critical patent/CN111488582B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/55Detecting local intrusion or implementing counter-measures
    • G06F21/56Computer malware detection or handling, e.g. anti-virus arrangements
    • G06F21/562Static detection
    • G06F21/563Static detection by source code analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Virology (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于图神经网络的智能合约重入性漏洞检测的方法,其通过优化后的图神经网络训练、学习实现了智能合约重入性漏洞检测,具体包括:收集智能合约源码数据集;由智能合约源码抽取构建对应图结构模型;对图结构进行标准化处理;构建时间消息流的图神经网络;输入标准化的智能合约图结构数据集,训练智能合约重入性漏洞检测模型,通过模型实现智能合约重入性漏洞检测。本发明将静态源码转化为有时间顺序的消息流图结构,通过训练模型可自动输出重入性和非重入性标签,提高了漏洞检测的准确率,为智能合约漏洞检测提供了新的方法思路,具有很好的实用价值。

Description

一种基于图神经网络的智能合约重入性漏洞检测的方法
技术领域
本发明属于区块链智能合约安全漏洞检测技术领域,具体涉及一种基于图神经网络的智能合约重入性漏洞检测的方法。
背景技术
智能合约是区块链的核心技术之一,是多方参与场景中的共识规则,更是智能合约是价值传递的中枢。之所以区块链出现以后安全问题变得前所未有的重要,是因为智能合约实现的是一种价值传递,区块链上的每一个数字都是价值,每个漏洞导致的数字变化,其背后就是巨额的价值损失。
2016年6月The DAO安全漏洞,导致5000万美元的损失;2017年7月Parity多签名钱包两次安全漏洞,分别导致3000万美元、1.52亿美元的损失。2018年4月BEC代币被盗事件,由于一行代码的安全漏洞引发其9亿美元市值几乎归零。近年来,由于智能合约安全问题造成大量财务损失,智能合约漏洞检测已引起广泛关注。现有智能合约漏洞检测的方法依靠专家手动定义的严格规则(或模拟),是劳动密集型且不可扩展的。更重要的是,专家制定的规则容易出错,同时容易被攻击者攻破。重入性漏洞是最常见的智能合约漏洞之一,并且对这种漏洞准确识别存在一定的难度。尽管提出了检测智能合约中各种漏洞的方法,但仍然缺乏深入探究特定领域的可重入性漏洞并进行深入研究。
发明内容
本发明基于上述背景和现有技术所存在的问题,拟设计一种基于图神经网络的智能合约重入性漏洞检测的方法,其通过对智能合约源码进行抽图、标准化处理得到包含智能合约源码特征的标准化图结构模型,标准化图结构模型作为输入数据传入图神经网络训练、学习得到检测智能合约源码重入性漏洞的模型,实现了智能合约重入性漏洞检测,本发明提高检测的效率和正确率,以便对大量的智能合约进行快速筛选、检测。
为了实现本发明的这些目的和优点,提供了一种基于图神经网络的智能合约重入性漏洞检测的方法,通过对智能合约源码进行抽图、标准化处理得到包含源码特征的标准化图结构模型,所述标准化图结构模型作为输入传入优化后的图神经网络训练、学习得到检测智能合约源码重入性漏洞检测的模型,实现了智能合约重入性漏洞检测,所述基于图神经网络的智能合约重入性漏洞检测的方法具体包括如下步骤:(1)收集智能合约源码数据集;(2)由智能合约源码数据集抽取构建图结构模型;(3)对所述图结构模型进行标准化处理;(4)构建时间消息流的图神经网络,将标准化处理后的图结构模型作为输入数据传入图神经网络;(5)由图神经网络训练、学习得到检测模型,并使用所述的检测模型检测智能合约重入性漏洞。
优选的是,整合智能合约源码数据集是对当前编写智能合约使用最多的solidity语言和C语言。
优选的是,所述步骤(2)使用自动抽图工具把智能合约源码转变为图结构模型,具体抽取步骤包括:(a)智能合约源码的预处理,删除智能合约源码中所有非ASCII码字符和注释,然后,将所有调用都展开到非内置函数,使所述智能合约源码转换为一段顺序代码,同时,对所述顺序代码贴标签,即重入性和非重入性两种标签;(b)构建节点结构,根据不同程序中元素的重要性不同,从所述顺序代码中提取三类节点:核心节点、普通节点、fallback节点;(c)构建边结构,根据节点间在时间上的彼此关系,构造四种类型的边,即控制流、数据流、正向边、fallback边;(d)特征提取,提取节点和边的特征。由智能合约源码构建图结构模型,其中在对智能合约源码进行图结构抽取时,利用图结构自动抽取工具对源码进行抽取;删除智能合约源码中所有非ASCII码字符和注释,然后,将所有调用都展开到非内置函数,使所述源代码转换为一段顺序代码,同时,对源码贴标签,即重入性和非重入性两种标签;根据不同程序中元素的重要性不同,从所述顺序代码中提取三类节点:核心节点、普通节点、fallback节点。
进一步地,所述步骤(b)包括:节点模型的构造,对call.value进行直接或间接调用的节点为核心节点;其中,withdraw函数包括一个call.value的直接调用,若函数直接或通过调用链调用withdraw函数,将其定义为间接withdraw函数;直接调用源程序S中的call.value,为核心节点,定义其类型为C;对于节点调用withdraw函数或间接调用withdraw函数,节点构造为核心节点,并定义该节点的类型分别为W和I,即共构造三种核心节点,C、W和I;普通节点为用于建模关键变量,用户余额、奖励标志为普通节点,定义类型为N;fallback节点,定义类型为F,可以激发攻击者合同中的fallback函数,fallback函数可以与被测函数交互。
以call.value的调用(汇款操作)为检测重入漏洞的关键,根据节点对call.value的直接或间接调用定义节点为核心节点。
进一步地,所述步骤(c)还包括:边模型的构造,根据节点间在时间上的彼此关系,构造四种类型的边结构,即控制流、数据流、正向边、fallback边;控制流,为条件语句或安全性句柄语句的控件语义;数据流,用于跟踪变量的用法,涉及对变量的访问、修改;正向边,用于描述功能代码中的自然顺序关系,正向边线连接两个相邻的顺序节点;fallback边,用于显示地建模中智能合约的fallback机制,构造两个fallback边以激发被测函数与攻击合约之间潜在的相互作用,第一个fallback边从第一个call.value调用连接到fallback节点,而第二个边从fallback节点指向被测函数。
进一步地,所述步骤(d)还包括:提取模型中节点和边的特征,其中,边的特征提取为元组(Order,Vstart,Vend,Type),其中Order表示其时间顺序,Vstart和Vend表示其起始节点和结束节点,Type代表边缘类型;核心节点的特征由(ID,AccFlag,Caller,Type)组成,其中ID表示同一类型节点内的标识符,AccFlag,为函数访问限制标识,函数指定为受限访问(AccFlag='LimitedACC')或无限制访问(AccFlag=“NoLimited”),Caller表示调用的调用者地址,并且Type代表边类型;普通节点和fallback节点的功能由ID和Type组成。
优选的是,所述步骤(3)为使用图结构模型自动标准化工具对智能合约图结构模型进行标准化处理,得到最终训练使用的标准化图结构模型,具体标准化包括:通过消融处理将普通节点特征融合到最近核心节点,所述普通节点的连接边保留,所述连接边的开始或结束节点移到相应的核心节点;其中,具有多个最近核心节点的普通节点,其特征被融合到所有所述最近核心节点,fallback节点被视为普通节点;其中,标准化后的图结构模型核心节点特征包括:(i)自特征,即核心节点本身特征;(ii)内特征,即临近普通节点融合到核心节点,由普通节点指向核心节点的特征;(iii)外特征,即临近普通节点融合到核心节点,由核心节点向外引向普通节点的特征。
优选的是,所述步骤(4)具体包括:构建一种时间消息流图神经网络,标准化图结构传递给图神经网络特征是带有时间顺序的变量信息流,设计的图神经网络为两个阶段,即消息流阶段和读出阶段;消息流阶段,图神经网络按照其时间顺序依次沿边缘传递信息;读出阶段,图神经网络遍历标准化图结构的所有边后,图神经网络汇总标准化图结构中所有节点的最终状态,并在读出阶段为整个图结构计算一个标签。
优选的是,所述步骤(5)具体包括:整合的智能合约源码数据集通过贴标签、抽图处理、标准化处理得到智能合约函数的标准化图结构,以智能合约函数的标准化图结构作为神经网络的输入,并输出标签
Figure BDA0002435529290000051
来指示智能合约源码是否具有重入性漏洞错误。
优选的是,一种全新的基于图神经网络的时间消息流神经网络(简称为TMF),以智能合约的标准化图结构G为输入,输出标签
Figure BDA0002435529290000052
指示智能合约是否存在重入性错误;为了计算G的最终标签
Figure BDA0002435529290000053
TMF有两个阶段,消息流阶段和读出阶段。
形式上,图结构G={V,E},其中节点集V由所有核心节点组成,而边缘集E包含所有具有时间顺序的边缘,表示E={e1,e2,...eN},然后,ek的边缘特征提取为ek=(k,Vsk,Vek,tk),其中k是边缘的时间顺序,Vsk和Vek分别表示ek的开始和结束节点,tk表示边类型。
消息流阶段,消息沿边传递,每个时间点沿一个边,在时间点为0时,每个节点根据其特征初始化其隐藏状态
Figure BDA0002435529290000054
在时间为k时,信息流通过时间边结构ek,并更新它结束节点的隐藏状态;令hsk为ek的起始节点的隐藏状态,然后,根据hsk和ek的边缘类型tk计算消息mk
Figure BDA0002435529290000055
mk=Wkxk+bk
其中,⊕表示级联运算,矩阵Wk和偏差矢量b是神经网络参数;原始消息xk包含来自ek本身和ek起始节点的信息,然后将其转换为使用Wk和b嵌入的矢量;收到消息后,ek的结束节点通过聚合来自传入的信息来更新其隐藏状态;hek根据一下内容进行更新:
Figure BDA0002435529290000061
Figure BDA0002435529290000062
其中,U,Z,R是矩阵,而b1和b2是偏差矢量。
读出阶段,在成功遍历G中的所有边之后,TMF通过读取所有节点的最终隐藏状态来计算G的标签,令
Figure BDA0002435529290000063
为第i个节点的最终隐藏状态,我们可以生成预测标签
Figure BDA0002435529290000064
其中f是映射函数,例如神经网络,|V|表示核心节点的数量。
本发明至少包括以下有益效果:
(1)提出一种全新的时间信息流图神经网络,提高了智能合约重入性漏洞检测的准确率;
(2)本发明针对智能合约编写使用最多的solidity语言和C语言,并针对多种情形的漏洞检测,提高了智能合约漏洞检测方法的实用性;
(3)将智能合约源码转换为包含时间、消息流特征的图结构模型,为智能合约重入性漏洞检测提供了新的思路,也为计算机安全检测方法提供借鉴。
本发明的其它优点、目标和特征将部分通过下面的说明体现,部分还将通过对本发明的研究和实践而为本领域的技术人员所理解。
附图说明
图1为本发明基于图神经网络的智能合约重入性漏洞检测方法的流程图。
图2为本发明智能合约源码抽取图结构、标准化处理的过程示意图。
具体实施方式
为了清晰地阐述本发明,使本发明实施例的目的、技术方案和优点更加清楚,下面结合了本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,以令本领域技术人员参照说明书文字能够据以实施。下面将附图结合具体实施方式对本发明的技术加以详细说明。
本发明基于图神经网络的智能合约重入性漏洞检测方法,主要以图神经网络为基础提出一种全新的时间消息流神经网络,对智能合约抽取的标准化图进行训练、学习,生成检测智能合约重入性漏洞检测的识别模型,其过程如图1流程图所示。
首先,收集、汇总智能合约数据集对智能合约源码贴标签,即标注智能合约源码有重入性漏洞错误、无重入性漏洞错误;然后,对使用图结构自动抽取工具和图结构标准化工具对智能合约源码进行处理。智能合约源码转化为图神经网络要求的、足够简单的、承载信息特征的图结构,其中处理、转化过程如图2所示。其中,图(a)为由某一智能合约源码,根据程序中元素与call.value的调用关系、与withdraw函数的关系,以及在程序中的作用和意义,程序中元素划分为七个节点,如图2中所示,其中,核心节点三个,根据核心节点类型记作:I1、W1、C1;普通节点三个,记作:N1、N2、N3;fallback节点一个:F。智能合约源码中元素与节点对应关系如表1所示。
根据节点间的时间顺序和逻辑关系该智能合约源码抽取出12条边,边表示为ei,其中,ei表示第i个时间边缘边与节点的关系。如表2所示。
智能合约源码通过图结构自动抽取得到初步的图结构模型如图2中的(b),然后根据标准化的规则对图结构中节点进行消融处理。通过消融处理将普通节点特征融合到最近核心节点,但普通节点的连接边保留,连接边的开始或结束节点移到相应的核心节点。其中,具有多个最近核心节点的普通节点,其特征被融合到到所有所述最近核心节点,Fallback节点被视为普通节点。标准化处理后的图结构模型如图2中(c)所示。
编号 源码节点 节点类型
1 getBonusWithdraw() I<sub>1</sub>
2 Bonus[msg.sender] N<sub>1</sub>
3 Reward[msg.sender] N<sub>2</sub>
4 withdrawAll(msg.sender) W<sub>1</sub>
5 amount N<sub>3</sub>
6 call.value() C<sub>1</sub>
7 Fallback函数 F
8 getBonusWithdraw() I<sub>1</sub>
表1
编号 边(V<sub>start</sub>→V<sub>end</sub>) 边类型
1 e<sub>1</sub>(I<sub>1</sub>→N<sub>1</sub>) 控制流
2 e<sub>2</sub>(N<sub>1</sub>→N<sub>2</sub>) 数据流
3 e<sub>3</sub>(N<sub>2</sub>→N<sub>2</sub>) 数据流
4 e<sub>4</sub>(N<sub>2</sub>→W<sub>1</sub>) 向前
5 e<sub>5</sub>(W<sub>1</sub>→N<sub>2</sub>) 数据流
6 e<sub>6</sub>(N<sub>2</sub>→N<sub>3</sub>) 数据流
7 e<sub>7</sub>(N<sub>3</sub>→N<sub>2</sub>) 向前
8 e<sub>8</sub>(N<sub>2</sub>→N<sub>3</sub>) 数据流
9 e<sub>9</sub>(N<sub>3</sub>→C<sub>1</sub>) 向前
10 e<sub>10</sub>(C<sub>1</sub>→F) Fallback边
11 e<sub>11</sub>(F→I<sub>1</sub>) Fallback边
12 e<sub>12</sub>(C<sub>1</sub>→N<sub>1</sub>) 数据流
表2
最后,将标准化后的所有核心节点特征和边特征传入到优化后的图神经网络(TMF)进行训练,与其他训练集源码共同训练重入性漏洞检测模型。测试集源码数据经过图结构抽取和标准化处理后传入重入性漏洞检测模型,模型将给出输入的智能合约是否存在重入性漏洞。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

Claims (8)

1.一种基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,具体包括如下步骤:
(1)收集智能合约源码数据集;
(2)由智能合约源码数据集抽取构建图结构模型;
(3)对所述图结构模型进行标准化处理;
(4)构建时间消息流的图神经网络,将标准化处理后的图结构模型作为输入数据传入图神经网络;
(5)由图神经网络训练、学习得到检测模型,并使用所述的检测模型检测智能合约重入性漏洞。
2.根据权利要求1所述的基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(2)使用自动抽图工具把智能合约源码转变为图结构模型,具体抽取步骤包括:
(a)智能合约源码的预处理,删除智能合约源码中所有非ASCII码字符和注释,然后,将所有调用都展开到非内置函数,使所述智能合约源码转换为一段顺序代码,同时,对所述顺序代码贴标签,即重入性和非重入性两种标签;
(b)构建节点结构,根据不同程序中元素的重要性不同,从所述顺序代码中提取三类节点:核心节点、普通节点、fallback节点;
(c)构建边结构,根据节点间在时间上的彼此关系,构造四种类型的边,即控制流、数据流、正向边、fallback边;
(d)特征提取,提取节点和边的特征。
3.根据权利要求2所述基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(b)包括:
节点模型的构造,对call.value进行直接或间接调用的节点为核心节点;
其中,withdraw函数包括一个call.value的直接调用,若函数直接或通过调用链调用withdraw函数,将其定义为间接withdraw函数;直接调用源程序S中的call.value,为核心节点,定义其类型为C;对于节点调用withdraw函数或间接调用withdraw函数,节点构造为核心节点,并定义该节点的类型分别为W和I,即共构造三种核心节点,C、W和I;
普通节点为用于建模关键变量,用户余额、奖励标志为普通节点,定义类型为N;
fallback节点,定义类型为F,可以激发攻击者合同中的fallback函数,fallback函数可以与被测函数交互。
4.根据权利要求2所述基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(c)还包括:
边模型的构造,根据节点间在时间上的彼此关系,构造四种类型的边结构,即控制流、数据流、正向边、fallback边;
控制流,为条件语句或安全性句柄语句的控件语义;
数据流,用于跟踪变量的用法,涉及对变量的访问、修改;
正向边,用于描述功能代码中的自然顺序关系,正向边线连接两个相邻的顺序节点;
fallback边,用于显示地建模中智能合约的fallback机制,构造两个fallback边以激发被测函数与攻击合约之间潜在的相互作用,第一个fallback边从第一个call.value调用连接到fallback节点,而第二个边从fallback节点指向被测函数。
5.根据权利要求2所述基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(d)还包括:
提取模型中节点和边的特征,其中,边的特征提取为元组(Order,Vstart,Vend,Type),其中Order表示其时间顺序,Vstart和Vend表示其起始节点和结束节点,Type代表边缘类型;
核心节点的特征由(ID,AccFlag,Caller,Type)组成,其中ID表示同一类型节点内的标识符,AccFlag,为函数访问限制标识,函数指定为受限访问(AccFlag='LimitedACC')或无限制访问(AccFlag=“NoLimited”),Caller表示调用的调用者地址,并且Type代表边类型;
普通节点和fallback节点的功能由ID和Type组成。
6.根据权利要求1所述的基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(3)为使用图结构模型自动标准化工具对智能合约图结构模型进行标准化处理,得到最终训练使用的标准化图结构模型,具体标准化包括:
通过消融处理将普通节点特征融合到最近核心节点,所述普通节点的连接边保留,所述连接边的开始或结束节点移到相应的核心节点;
其中,具有多个最近核心节点的普通节点,其特征被融合到所有所述最近核心节点,fallback节点被视为普通节点;
其中,标准化后的图结构模型核心节点特征包括:
(i)自特征,即核心节点本身特征;
(ii)内特征,即临近普通节点融合到核心节点,由普通节点指向核心节点的特征;
(iii)外特征,即临近普通节点融合到核心节点,由核心节点向外引向普通节点的特征。
7.根据权利要求1所述的基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(4)具体包括:
构建一种时间消息流图神经网络,标准化图结构传递给图神经网络特征是带有时间顺序的变量信息流,设计的图神经网络为两个阶段,即消息流阶段和读出阶段;
消息流阶段,图神经网络按照其时间顺序依次沿边缘传递信息;
读出阶段,图神经网络遍历标准化图结构的所有边后,图神经网络汇总标准化图结构中所有节点的最终状态,并在读出阶段为整个图结构计算一个标签。
8.根据权利要求1所述的基于图神经网络的智能合约重入性漏洞检测的方法,其特征在于,所述步骤(5)具体包括:
整合的智能合约源码数据集通过贴标签、抽图处理、标准化处理得到智能合约函数的标准化图结构,以智能合约函数的标准化图结构作为神经网络的输入,并输出标签
Figure FDA0002435529280000041
来指示智能合约源码是否具有重入性漏洞错误。
CN202010251125.7A 2020-04-01 2020-04-01 一种基于图神经网络的智能合约重入性漏洞检测的方法 Active CN111488582B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010251125.7A CN111488582B (zh) 2020-04-01 2020-04-01 一种基于图神经网络的智能合约重入性漏洞检测的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010251125.7A CN111488582B (zh) 2020-04-01 2020-04-01 一种基于图神经网络的智能合约重入性漏洞检测的方法

Publications (2)

Publication Number Publication Date
CN111488582A true CN111488582A (zh) 2020-08-04
CN111488582B CN111488582B (zh) 2023-09-29

Family

ID=71812579

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010251125.7A Active CN111488582B (zh) 2020-04-01 2020-04-01 一种基于图神经网络的智能合约重入性漏洞检测的方法

Country Status (1)

Country Link
CN (1) CN111488582B (zh)

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035842A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于编码解码器的智能合约漏洞检测可解释性方法
CN112035841A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于专家规则与序列化建模的智能合约漏洞检测方法
CN112286575A (zh) * 2020-10-20 2021-01-29 杭州云象网络技术有限公司 基于图匹配模型的智能合约相似度检测方法及***
CN112699375A (zh) * 2020-12-30 2021-04-23 杭州趣链科技有限公司 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法
CN112749389A (zh) * 2020-12-29 2021-05-04 华南师范大学 一种检测智能合约破坏敏感数据漏洞的检测方法及装置
CN113051574A (zh) * 2021-03-11 2021-06-29 哈尔滨工程大学 一种智能合约二进制代码的漏洞检测方法
CN113312058A (zh) * 2021-06-22 2021-08-27 哈尔滨工程大学 一种智能合约二进制函数的相似性分析方法
CN113360915A (zh) * 2021-06-09 2021-09-07 扬州大学 基于源代码图表示学习的智能合约多漏洞检测方法及***
CN113449303A (zh) * 2021-06-28 2021-09-28 杭州云象网络技术有限公司 基于教师-学生网络模型的智能合约漏洞检测方法和***
CN113626826A (zh) * 2021-07-29 2021-11-09 西安电子科技大学 智能合约安全检测方法、***、设备、终端及应用
CN115659176A (zh) * 2022-10-14 2023-01-31 湖南大学 智能合约漏洞检测模型的训练方法及相关设备

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008047351A2 (en) * 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
WO2015012711A1 (en) * 2013-07-23 2015-01-29 Huawei Technologies Co., Ltd Method for constructing a graph-based intermediate representation in a compiler
US20170155514A1 (en) * 2015-12-01 2017-06-01 Intel Corporation Methods and apparatus to provide for efficient and secure software updates
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
CN110018820A (zh) * 2019-04-08 2019-07-16 浙江大学滨海产业技术研究院 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及***
CN110674503A (zh) * 2019-09-24 2020-01-10 杭州云象网络技术有限公司 一种基于图卷积神经网络的智能合约死循环检测方法

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008047351A2 (en) * 2006-10-19 2008-04-24 Checkmarx Ltd. Locating security vulnerabilities in source code
WO2015012711A1 (en) * 2013-07-23 2015-01-29 Huawei Technologies Co., Ltd Method for constructing a graph-based intermediate representation in a compiler
US20170155514A1 (en) * 2015-12-01 2017-06-01 Intel Corporation Methods and apparatus to provide for efficient and secure software updates
US20180247191A1 (en) * 2017-02-03 2018-08-30 Milestone Entertainment Llc Architectures, systems and methods for program defined entertainment state system, decentralized cryptocurrency system and system with segregated secure functions and public functions
CN110018820A (zh) * 2019-04-08 2019-07-16 浙江大学滨海产业技术研究院 一种基于深度强化学习的Graph2Seq自动生成Java代码注释的方法
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及***
CN110674503A (zh) * 2019-09-24 2020-01-10 杭州云象网络技术有限公司 一种基于图卷积神经网络的智能合约死循环检测方法

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112035842A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于编码解码器的智能合约漏洞检测可解释性方法
CN112035841A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于专家规则与序列化建模的智能合约漏洞检测方法
CN112035841B (zh) * 2020-08-17 2024-05-14 杭州云象网络技术有限公司 一种基于专家规则与序列化建模的智能合约漏洞检测方法
CN112035842B (zh) * 2020-08-17 2024-04-19 杭州云象网络技术有限公司 一种基于编码解码器的智能合约漏洞检测可解释性方法
CN112286575A (zh) * 2020-10-20 2021-01-29 杭州云象网络技术有限公司 基于图匹配模型的智能合约相似度检测方法及***
CN112749389B (zh) * 2020-12-29 2023-03-14 华南师范大学 一种检测智能合约破坏敏感数据漏洞的检测方法及装置
CN112749389A (zh) * 2020-12-29 2021-05-04 华南师范大学 一种检测智能合约破坏敏感数据漏洞的检测方法及装置
CN112699375A (zh) * 2020-12-30 2021-04-23 杭州趣链科技有限公司 基于网络嵌入相似性的区块链智能合约安全漏洞检测方法
CN113051574A (zh) * 2021-03-11 2021-06-29 哈尔滨工程大学 一种智能合约二进制代码的漏洞检测方法
CN113360915A (zh) * 2021-06-09 2021-09-07 扬州大学 基于源代码图表示学习的智能合约多漏洞检测方法及***
CN113360915B (zh) * 2021-06-09 2023-09-26 扬州大学 基于源代码图表示学习的智能合约多漏洞检测方法及***
CN113312058A (zh) * 2021-06-22 2021-08-27 哈尔滨工程大学 一种智能合约二进制函数的相似性分析方法
CN113312058B (zh) * 2021-06-22 2022-09-02 哈尔滨工程大学 一种智能合约二进制函数的相似性分析方法
CN113449303A (zh) * 2021-06-28 2021-09-28 杭州云象网络技术有限公司 基于教师-学生网络模型的智能合约漏洞检测方法和***
CN113626826A (zh) * 2021-07-29 2021-11-09 西安电子科技大学 智能合约安全检测方法、***、设备、终端及应用
CN115659176A (zh) * 2022-10-14 2023-01-31 湖南大学 智能合约漏洞检测模型的训练方法及相关设备

Also Published As

Publication number Publication date
CN111488582B (zh) 2023-09-29

Similar Documents

Publication Publication Date Title
CN111488582A (zh) 一种基于图神经网络的智能合约重入性漏洞检测的方法
CN112035842B (zh) 一种基于编码解码器的智能合约漏洞检测可解释性方法
CN109918511B (zh) 一种基于bfs和lpa的知识图谱反欺诈特征提取方法
CN112035841B (zh) 一种基于专家规则与序列化建模的智能合约漏洞检测方法
CN110598070B (zh) 应用类型识别方法及装置、服务器及存储介质
CN110674503B (zh) 一种基于图卷积神经网络的智能合约死循环检测方法
CN110110213A (zh) 挖掘用户职业的方法、装置、计算机可读存储介质和终端设备
CN112381546A (zh) 一种基于时间序列聚类检测异常风险账户的方法
CN116402352A (zh) 一种企业风险预测方法、装置、电子设备及介质
CN113904844B (zh) 基于跨模态教师-学生网络的智能合约漏洞检测方法
CN116541755A (zh) 一种基于时序图表征学习的金融行为模式分析预测方法
CN113312058B (zh) 一种智能合约二进制函数的相似性分析方法
CN114140123A (zh) 一种用于以太坊二层网络交易溯源的方法及***
CN113609866A (zh) 文本标记方法、装置、设备及存储介质
CN115334179B (zh) 一种基于命名实体识别的未知协议逆向解析方法
CN117078259A (zh) 基于图随机神经网络的跨链异常交易检测方法及***
CN116127325A (zh) 基于多属性图的图神经网络业务流程异常检测方法和***
CN113342982B (zh) 融合RoBERTa和外部知识库的企业行业分类方法
CN114862588A (zh) 一种面向区块链交易行为的异常检测方法
CN105868363A (zh) 一种基于模糊逻辑的网页页面正文抽取方法及***
CN112907254A (zh) 欺诈交易识别、模型训练方法、装置、设备及存储介质
CN117195232A (zh) 一种基于改进图卷积神经网络的智能合约漏洞检测方法
CN115907770B (zh) 一种基于时序特征融合的以太坊钓鱼欺诈识别与预警方法
CN116561771A (zh) 基于合约语义图与深广特征融合的智能合约漏洞检测方法
CN117668850A (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