CN113904844A - 基于跨模态教师-学生网络的智能合约漏洞检测方法 - Google Patents

基于跨模态教师-学生网络的智能合约漏洞检测方法 Download PDF

Info

Publication number
CN113904844A
CN113904844A CN202111170949.2A CN202111170949A CN113904844A CN 113904844 A CN113904844 A CN 113904844A CN 202111170949 A CN202111170949 A CN 202111170949A CN 113904844 A CN113904844 A CN 113904844A
Authority
CN
China
Prior art keywords
intelligent contract
network
graph
teacher
semantic
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
CN202111170949.2A
Other languages
English (en)
Other versions
CN113904844B (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.)
Zhejiang Gongshang University
Original Assignee
Zhejiang Gongshang University
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 Zhejiang Gongshang University filed Critical Zhejiang Gongshang University
Priority to CN202111170949.2A priority Critical patent/CN113904844B/zh
Publication of CN113904844A publication Critical patent/CN113904844A/zh
Application granted granted Critical
Publication of CN113904844B publication Critical patent/CN113904844B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1433Vulnerability analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/36Creation of semantic tools, e.g. ontology or thesauri
    • G06F16/367Ontology
    • 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • 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
    • 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/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computer Security & Cryptography (AREA)
  • Computing Systems (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biophysics (AREA)
  • Mathematical Physics (AREA)
  • Molecular Biology (AREA)
  • Evolutionary Computation (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Databases & Information Systems (AREA)
  • Animal Behavior & Ethology (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Bioethics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本发明公开了一种基于跨模态教师‑学生网络的智能合约漏洞检测方法,包括:编译智能合约源码生成相应的字节码,提取源码与字节码两种形式的程序语义图,并进行语义图归一化处理;利用BERT模型提取字节码模态的程序语义图Block级语义信息;构建图消息传递网络从归一化后的语义图中分别提取智能合约源码和字节码的图结构信息,并生成相应的图特征向量;构建教师‑学生网络实现跨模态的互相学习,提高字节码单模态背景下的智能合约检测准确率。本发明方法相较于传统的智能合约漏洞检测工具有更高的准确率,填补了当前基于专家规则和深度学习的智能合约安全漏洞检测方法的空缺,具有良好的实用价值和借鉴意义。

Description

基于跨模态教师-学生网络的智能合约漏洞检测方法
技术领域
本发明属于区块链智能合约安全技术领域,具体涉及一种基于跨模态教师-学生网络的智能合约漏洞检测方法。
背景技术
近年来,区块链技术在各类应用场景中愈演愈烈,智能合约是区块链最重要的应用之一,已经引起了工业界和学术界的广泛关注。由于区块链固有的透明性与分布式等特点,任何人都可以获取部署在区块链上的智能合约,这就意味着恶意攻击者也可以很容易地获取智能合约,并可能利用其潜在的漏洞攫取非法利益。例如,2018年4月,美链BEC代币合约的整数溢出漏洞导致其价值9亿美元的市值瞬间归零;2020年8月,CertiK安全研究团队发现Sushiswap项目的智能合约中存在多个安全漏洞,这些漏洞被恶意攻击者利用,使得其可以在没有被授权的情况下从智能合约中执行取钱等任意操作;2021年8月,跨链桥项目Poly Network遭遇攻击,损失金额超过6亿美金,攻击者通过生成恶意交易并修改keeper签名,从而实现攻击与提币。毫无疑问,智能合约漏洞已然成为区块链安全领域的重大问题,亟待有效的漏洞分析方法在智能合约部署到区块链之前对其进行全面准确的检测与验证。
当前存在的智能合约漏洞检测工具,例如Security、SmartCheck、Oyente等,大多基于形式化验证、符号执行、模糊测试等传统的程序分析方法,依赖于有限的专家知识,其检测结果仍存在较高的误报率和漏报率。近年来,已经存在一些方法探索将深度学习技术应用于智能合约漏洞检测,有效地提高了漏洞检测的准确率,例如使用归一化针对源码进行过滤及分析,接着训练图神经网络进行漏洞检测;再者,还有从神经网络的可解释性出发进行漏洞检测。然而,大多数基于深度学习的方法还停留在源码层面,对智能合约字节码层面的分析仍然处在起步阶段;另一方面,值得指出的是,当前只有少数(约10%)部署在以太坊上的智能合约可以获取到源码,大多数合约是字节码形式,并且由于字节码表达性弱且难以分析。因此,提出一种基于深度学习的智能合约字节码漏洞检测是必要的且迫在眉睫的。
发明内容
鉴于上述,本发明提供了一种基于跨模态教师-学生网络的智能合约漏洞检测方法,其结合教师-学生网络和跨模态信息传递技术,通过单模态学生网络与双模态教师网络之间的相互学习,使得即使在智能合约源码缺乏的情况下,也可以在智能合约字节码模态实现与源码模态效果相近的漏洞检测,从而更高效准确地解决智能合约安全漏洞检测问题。
一种基于跨模态教师-学生网络的智能合约漏洞检测方法,包括如下步骤:
(1)在已有的智能合约源码基准数据集(Ethereum Smart Contract,ESC)上对智能合约不同类型的漏洞进行标注,并将智能合约源码转化为字节码控制流图并提取其邻接矩阵;
(2)提取智能合约的源码语义图,通过归一化处理以及语义边重构后将语义图输入至图消息传递网络中,输出得到智能合约源码层面的图特征向量;
(3)从字节码控制流图中提取节点块数据,将其输入至预训练好的BERT(Bidirectional Encoder Representations from Transformers)模型中以提取智能合约字节码模态的节点块特征向量,进而将节点块特征向量以及控制流边信息输入至图消息传递网络中,输出得到智能合约字节码层面的图特征向量;
(4)构建教师网络和学生网络,两个网络均为一个具有三层过滤器的语义提取器构成,其中教师网络以源码层面和字节码层面的图特征向量作为双模态输入,学生网络仅以字节码层面的图特征向量作为单模态输入;
(5)首先分别计算教师网络与学生网络在源码层面和字节码层面的损失,使教师网络与学生网络能够实现相互学习;然后根据真实的合约漏洞标签,计算教师网络和学生网络相较于真实标签之间的损失;最后综合上述损失对两个网络进行训练,训练完成后即可用于智能合约漏洞检测。
进一步地,所述步骤(1)中针对智能合约源码基准数据集,使用对应版本的Solc编译器对其中的智能合约进行编译,并将生成的字节码进行数据清洗及格式转换;然后部署字节码程序流图提取工具及其依赖库,编写批量生成脚本用以批量提取智能合约的字节码控制流图及其邻接矩阵。
进一步地,所述步骤(2)的具体实现过程如下:
2.1编写语义图结构生成工具,从智能合约源码中提取相应的源码语义图;
2.2根据所提取得到的语义图,将图中的节点分为关键节点和辅助节点,并进行归一化处理,删除辅助节点并将其语义信息特征传递至相邻的关键节点上,同时对删除的辅助节点所涉及到的语义边进行重构,得到归一化后的语义图;
2.3将归一化后的语义图作为图消息传递网络的输入,所述图消息传递网络分为消息传播阶段和读出阶段:
消息传播阶段,网络遵循时序关系依次沿边缘传递信息特征,每条边对应一个时间步,在时间步0,初始化每个节点的隐藏状态;在时间步k,信息特征流经第k个时间边,同时更新该边末端节点的特征向量,k为正整数;
读出阶段,网络连续遍历语义图中的所有语义边后,聚合语义图中所有节点的最终状态,生成智能合约源码层面的图特征向量。
进一步地,所述步骤(3)的具体实现过程如下:
3.1从智能合约的字节码控制流图中提取节点块数据并对数据进行清洗;
3.2对清洗完成后的节点块数据进行贴标,并将数据输入至预训练好的BERT模型中用以对模型进行微调;
3.3待微调完成后,输入新的节点块数据至BERT模型中以生成智能合约字节码模态的节点块特征向量;
3.4对所述节点块特征向量以及字节码控制流图中的边信息进行数据清洗和格式调整后,输入至图消息传递网络,计算输出得到智能合约字节码层面的图特征向量。
进一步地,所述步骤(4)中语义提取器的过滤器大小为1×1,三层过滤器中的卷积核数分别为64、128、256,过滤器由CNN(卷积神经网络)构成,CNN为嵌入的不同元素分配不同的权重,CNN输出之后采用批处理归一化(BN)、校正线性单元(ReLU)以及最大池化(Max-Pooling)进行相关处理,用于突出重要元素并避免过度拟合;教师网络中还加入了全局的平均池化层,经过语义提取器后两种类型(源码层面和字节码层面)的图语义嵌入传递到平均池化层,以生成源码与字节码的语义中间表示,然后通过拼接进行融合,融合后的特征向量经过全连接层和sigmoid激活层,最终输出漏洞检测结果。
进一步地,所述步骤(5)中计算教师网络与学生网络在源码层面和字节码层面的损失,具体计算表达式如下:
Figure BDA0003293130150000041
Figure BDA0003293130150000042
其中:N为智能合约中的函数数量,bi表示第i个函数的字节码,si表示第i个函数的源码,Lb2b为教师网络与学生网络在字节码层面的损失函数,Ls2b为教师网络与学生网络在源码层面的损失函数,
Figure BDA0003293130150000043
为教师网络对应bi输出的特征向量,
Figure BDA0003293130150000044
为学生网络对应bi输出的特征向量,
Figure BDA0003293130150000045
为教师网络对应si输出的特征向量,
Figure BDA0003293130150000046
为学生网络对应si输出的特征向量。
进一步地,所述步骤(5)中计算教师网络和学生网络相较于真实标签之间的损失,具体计算表达式如下:
Figure BDA0003293130150000047
Figure BDA0003293130150000048
其中:
Figure BDA0003293130150000049
Figure BDA00032931301500000410
分别为教师网络和学生网络监督预测的损失函数,yt和ys分别为教师网络和学生网络的预测结果,y为对应的真值标签,BCE()表示二元交叉熵函数。
进一步地,所述步骤(5)中通过下式确定教师网络的损失函数Lt和学生网络的损失函数Ls,进而根据各自的损失函数采用梯度下降法分别对两个网络进行训练;
Figure BDA00032931301500000411
Figure BDA00032931301500000412
本发明通过构建跨模态网络分别提取源码和字节码层面的语义图特征信息,结合教师-学生网络,设计了一种高效准确的智能合约漏洞检测方法,提高了智能合约漏洞检测方面的准确性和有效性,相较于传统智能合约漏洞检测方法,实现了更精准的检测效果,填补了当前基于传统方法检测智能合约安全漏洞的空缺,不仅带来了良好的通用性和实用价值,而且具有很好的借鉴意义。
因此,本发明具有以下有益技术效果:
1.本发明智能合约漏洞检测方法能够实现更全面、多维度、高精确的智能合约分析与漏洞检测。
2.本发明提出的智能合约跨模态信息传递方法,可以在不同的模态中提取特征信息,使得智能合约不同模态的语言信息互补,从而提高了智能合约漏洞检测的准确率。
3.本发明构建的教师-学生网络模型应用于智能合约漏洞检测任务,有效地解决了智能合约源码缺乏情况下的字节码漏洞检测问题,具有很好的拓展性与借鉴意义。
附图说明
图1为本发明使用智能合约字节码控制流图提取工具进行数据预处理的流程示意图。
图2为本发明教师网络源码层面的流程示意图。
图3为本发明BERT模型与图消息传递网络的结构示意图。
图4为本发明跨模态教师-学生网络模型的整体示意图。
具体实施方式
为了更为具体地描述本发明,下面结合附图及具体实施方式对本发明的技术方案进行详细说明。
本发明基于跨模态教师-学生网络的智能合约漏洞检测方法,包括如下步骤:
(1)数据集预处理。
如图1所示,首先使用Solc编译器将智能合约源码编译为相应的字节码形式,实现智能合约字节码控制流图提取工具生成程序控制流图,并分别提取节点信息与边信息;通过对四种不同漏洞(可重入、时间戳依赖、整数溢出和委托调用)的检测任务,评估所提框架与方法的有效性与可行性。对于每种漏洞,随机选择其中80%作为训练集,20%作为测试集,并从accuracy、precision、recall、F1-socre等指标报告评估结果。
(2)源码语义特征提取。
如图2所示,本发明使用语义图捕获源码中丰富的关键变量、控制和数据依赖关系;考虑到一个函数中不同的程序元素对漏洞检测的关键程度不等,分别提取了两种类型节点:关键节点和辅助节点。
首先,关键节点表示了关键调用和变量,这对检测漏洞至关重要。以时间戳依赖漏洞为例,包括:①block.timestamp语句;②block.timestamp分配的变量;③对以block.timestamp为源的随机函数的调用被提取为关键节点。
然后,未提取为关键节点的调用和变量被建模为辅助节点,对检测漏洞起到辅助作用。此外,构造了三类边来构建节点之间的隐式关系,即控制流、数据流和回退边,每条边描述了被测函数可能经过的路径。具体地说,节点的属性由(标识、接受标志、调用者、类型)组成,其中标识表示其标识符,接受标志表示捕获权限,调用者表示调用者标识符,类型表示节点类型。语义边的属性提取为(开始、结束、顺序、类型),其中开始和结束表示开始和结束节点,顺序表示其程序执行序列,类型表示边类型,节点和边的特征用one-hot向量来表示。
(3)字节码语义特征提取。
如图3所示,首先实现并开发了自动化工具提取字节码模态的程序控制流图,由控制流块(即节点)和控制流边组成;接着,使用预训练模型BERT模型处理控制流图(CFG),BERT模型的训练过程如下:
首先,基于两个预训练任务提取程序控制流图的token级和Block级信息。对于Block内的token序列,使用语言评比模型提取token语义信息;对于整个CFG来说,Block的信息不仅与其自身相关,还与它的邻接Block有关。因此,采用邻接块预测提取图中的所有相邻Block,并随机采样几个Block来预测两个块的邻接性。
其次,执行一个针对字节码语言特征的自定义微调任务,针对不同的漏洞类型对预先训练好的BERT模型进行微调。此微调任务可根据所检测漏洞的类别,分别进行独立的判断,并生成独立模型参数,从而根据不同的漏洞类型,捕获不同的漏洞特征。在微调后的BERT模型上,通过计算一个块中所有标记嵌入的平均值来提取CFG的语义嵌入。
(4)教师-学生网络构建。
图4为教师-学生网络的结构,对于源码和字节码语义嵌入处理,教师网络将过滤器大小设置为1×1,过滤器核数为64、128、256的3层,每层由卷积神经网络(CNN)组成,以构建语义提取器,其中CNN层学习为嵌入的不同元素分配不同的权重;由于每条字节码指令的前后之间存在一定的联系,这些也同样体现在图嵌入中,故使用CNN层可以很好捕捉特征的空间局部性。在每个CNN层之后使用批处理归一化(BN)、校正线性单元(ReLU)和最大池化(Max-Pooling),它们用于突出重要元素并避免过度拟合。这两种类型的图语义嵌入都被传递到全局平均池化层,以生成源码和字节码的语义中间表示,然后通过拼接进行融合,融合后的特征向量最终被输入到全连接层和sigmoid激活层,输出漏洞检测的结果。具体实现过程如下:
4.1分别计算教师网络与学生网络在源码层面和字节码层面的特征向量差异程度,并将字节码图嵌入与源码图嵌入进行拼接,使教师网络和学生网络相互学习。计算字节码模态的损失函数如下:
Figure BDA0003293130150000071
其中:bi表示第i个函数的字节码,
Figure BDA0003293130150000072
表示教师网络的特征向量,
Figure BDA0003293130150000073
表示学生网络的特征向量。
跨源码-字节码模态的损失函数如下:
Figure BDA0003293130150000074
4.2根据真实标签,利用交叉熵函数计算教师网络和学生网络相较于真实标签之间的损失,使用梯度下降法对教师网络与学生网络进行训练。分别计算教师和学生网络的自身预测的损失函数如下:
Figure BDA0003293130150000075
Figure BDA0003293130150000076
其中:y表示ground truth,yt和ys分别表示教师网络和学生网络的预测结果,BCE表示二元交叉熵损失函数,
Figure BDA0003293130150000081
Figure BDA0003293130150000082
分别表示教师网络与学生网络的监督预测的损失。
由此,得到整个网络模型的损失函数如下:
Figure BDA0003293130150000083
Figure BDA0003293130150000084
最后,根据accuracy、precision、recall、F1-socre等指标评估智能合约漏洞检测模型的效果。
综上,本发明方法利用教师网络与学生网络间的相互学习,促使学生网络仅以字节码模态(单模态)信息为输入,能够产生接近教师网络的检测效果;其中教师网络以智能合约源码和字节码两种模态(双模态)信息为输入,而学生网络仅以字节码模态为输入,通过提取智能合约不同模态的特征,训练单模态的学生网络模型与双模态的教师网络模型;最终,仅基于字节码模态即可实现准确的智能合约安全漏洞检测。
上述对实施例的描述是为便于本技术领域的普通技术人员能理解和应用本发明。熟悉本领域技术的人员显然可以容易地对上述实施例做出各种修改,并把在此说明的一般原理应用到其他实施例中而不必经过创造性的劳动。因此,本发明不限于上述实施例,本领域技术人员根据本发明的揭示,对于本发明做出的改进和修改都应该在本发明的保护范围之内。

Claims (8)

1.一种基于跨模态教师-学生网络的智能合约漏洞检测方法,包括如下步骤:
(1)在已有的智能合约源码基准数据集上对智能合约不同类型的漏洞进行标注,并将智能合约源码转化为字节码控制流图并提取其邻接矩阵;
(2)提取智能合约的源码语义图,通过归一化处理以及语义边重构后将语义图输入至图消息传递网络中,输出得到智能合约源码层面的图特征向量;
(3)从字节码控制流图中提取节点块数据,将其输入至预训练好的BERT模型中以提取智能合约字节码模态的节点块特征向量,进而将节点块特征向量以及控制流边信息输入至图消息传递网络中,输出得到智能合约字节码层面的图特征向量;
(4)构建教师网络和学生网络,两个网络均为一个具有三层过滤器的语义提取器构成,其中教师网络以源码层面和字节码层面的图特征向量作为双模态输入,学生网络仅以字节码层面的图特征向量作为单模态输入;
(5)首先分别计算教师网络与学生网络在源码层面和字节码层面的损失,使教师网络与学生网络能够实现相互学习;然后根据真实的合约漏洞标签,计算教师网络和学生网络相较于真实标签之间的损失;最后综合上述损失对两个网络进行训练,训练完成后即可用于智能合约漏洞检测。
2.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(1)中针对智能合约源码基准数据集,使用对应版本的Solc编译器对其中的智能合约进行编译,并将生成的字节码进行数据清洗及格式转换;然后部署字节码程序流图提取工具及其依赖库,编写批量生成脚本用以批量提取智能合约的字节码控制流图及其邻接矩阵。
3.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(2)的具体实现过程如下:
2.1编写语义图结构生成工具,从智能合约源码中提取相应的源码语义图;
2.2根据所提取得到的语义图,将图中的节点分为关键节点和辅助节点,并进行归一化处理,删除辅助节点并将其语义信息特征传递至相邻的关键节点上,同时对删除的辅助节点所涉及到的语义边进行重构,得到归一化后的语义图;
2.3将归一化后的语义图作为图消息传递网络的输入,所述图消息传递网络分为消息传播阶段和读出阶段:
消息传播阶段,网络遵循时序关系依次沿边缘传递信息特征,每条边对应一个时间步,在时间步0,初始化每个节点的隐藏状态;在时间步k,信息特征流经第k个时间边,同时更新该边末端节点的特征向量,k为正整数;
读出阶段,网络连续遍历语义图中的所有语义边后,聚合语义图中所有节点的最终状态,生成智能合约源码层面的图特征向量。
4.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(3)的具体实现过程如下:
3.1从智能合约的字节码控制流图中提取节点块数据并对数据进行清洗;
3.2对清洗完成后的节点块数据进行贴标,并将数据输入至预训练好的BERT模型中用以对模型进行微调;
3.3待微调完成后,输入新的节点块数据至BERT模型中以生成智能合约字节码模态的节点块特征向量;
3.4对所述节点块特征向量以及字节码控制流图中的边信息进行数据清洗和格式调整后,输入至图消息传递网络,计算输出得到智能合约字节码层面的图特征向量。
5.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(4)中语义提取器的过滤器大小为1×1,三层过滤器中的卷积核数分别为64、128、256,过滤器由CNN构成,CNN为嵌入的不同元素分配不同的权重,CNN输出之后采用批处理归一化、校正线性单元以及最大池化进行相关处理,用于突出重要元素并避免过度拟合;教师网络中还加入了全局的平均池化层,经过语义提取器后两种类型的图语义嵌入传递到平均池化层,以生成源码与字节码的语义中间表示,然后通过拼接进行融合,融合后的特征向量经过全连接层和sigmoid激活层,最终输出漏洞检测结果。
6.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(5)中计算教师网络与学生网络在源码层面和字节码层面的损失,具体计算表达式如下:
Figure FDA0003293130140000031
Figure FDA0003293130140000032
其中:N为智能合约中的函数数量,bi表示第i个函数的字节码,si表示第i个函数的源码,Lb2b为教师网络与学生网络在字节码层面的损失函数,Ls2b为教师网络与学生网络在源码层面的损失函数,
Figure FDA0003293130140000033
为教师网络对应bi输出的特征向量,
Figure FDA0003293130140000034
为学生网络对应bi输出的特征向量,
Figure FDA0003293130140000035
为教师网络对应si输出的特征向量,
Figure FDA0003293130140000036
为学生网络对应si输出的特征向量。
7.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(5)中计算教师网络和学生网络相较于真实标签之间的损失,具体计算表达式如下:
Figure FDA0003293130140000037
Figure FDA0003293130140000038
其中:
Figure FDA0003293130140000039
Figure FDA00032931301400000310
分别为教师网络和学生网络监督预测的损失函数,yt和ys分别为教师网络和学生网络的预测结果,y为对应的真值标签,BCE()表示二元交叉熵函数。
8.根据权利要求1所述的智能合约漏洞检测方法,其特征在于:所述步骤(5)中通过下式确定教师网络的损失函数Lt和学生网络的损失函数Ls,进而根据各自的损失函数采用梯度下降法分别对两个网络进行训练;
Figure FDA00032931301400000311
Figure FDA00032931301400000312
其中:
Figure FDA00032931301400000313
Figure FDA00032931301400000314
分别为教师网络和学生网络监督预测的损失函数,Lb2b为教师网络与学生网络在字节码层面的损失函数,Ls2b为教师网络与学生网络在源码层面的损失函数。
CN202111170949.2A 2021-10-08 2021-10-08 基于跨模态教师-学生网络的智能合约漏洞检测方法 Active CN113904844B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202111170949.2A CN113904844B (zh) 2021-10-08 2021-10-08 基于跨模态教师-学生网络的智能合约漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202111170949.2A CN113904844B (zh) 2021-10-08 2021-10-08 基于跨模态教师-学生网络的智能合约漏洞检测方法

Publications (2)

Publication Number Publication Date
CN113904844A true CN113904844A (zh) 2022-01-07
CN113904844B CN113904844B (zh) 2023-09-12

Family

ID=79190304

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202111170949.2A Active CN113904844B (zh) 2021-10-08 2021-10-08 基于跨模态教师-学生网络的智能合约漏洞检测方法

Country Status (1)

Country Link
CN (1) CN113904844B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579981A (zh) * 2022-03-10 2022-06-03 北京国腾创新科技有限公司 一种跨域漏洞检测方法、系统、存储介质和电子设备
CN115033896A (zh) * 2022-08-15 2022-09-09 鹏城实验室 以太坊智能合约漏洞检测方法、装置、系统与介质

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及系统
CN111159012A (zh) * 2019-12-10 2020-05-15 中国科学院深圳先进技术研究院 一种基于深度学习的智能合约漏洞检测方法
CN112035842A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于编码解码器的智能合约漏洞检测可解释性方法
US20210056211A1 (en) * 2019-08-23 2021-02-25 Praetorian System and method for automatically detecting a security vulnerability in a source code using a machine learning model
WO2021037196A1 (zh) * 2019-08-28 2021-03-04 杭州趣链科技有限公司 智能合约代码漏洞检测方法、装置、计算机设备和存储介质
WO2021114093A1 (zh) * 2019-12-10 2021-06-17 中国科学院深圳先进技术研究院 一种基于深度学习的智能合约漏洞检测方法
CN112990941A (zh) * 2021-03-10 2021-06-18 武汉大学 一种针对智能合约中庞氏骗局的漏洞检测方法及系统
CN113312268A (zh) * 2021-07-29 2021-08-27 北京航空航天大学 一种智能合约代码相似检测方法
CN113449303A (zh) * 2021-06-28 2021-09-28 杭州云象网络技术有限公司 基于教师-学生网络模型的智能合约漏洞检测方法和系统

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110175454A (zh) * 2019-04-19 2019-08-27 肖银皓 一种基于人工智能的智能合约安全漏洞挖掘方法及系统
US20210056211A1 (en) * 2019-08-23 2021-02-25 Praetorian System and method for automatically detecting a security vulnerability in a source code using a machine learning model
WO2021037196A1 (zh) * 2019-08-28 2021-03-04 杭州趣链科技有限公司 智能合约代码漏洞检测方法、装置、计算机设备和存储介质
CN111159012A (zh) * 2019-12-10 2020-05-15 中国科学院深圳先进技术研究院 一种基于深度学习的智能合约漏洞检测方法
WO2021114093A1 (zh) * 2019-12-10 2021-06-17 中国科学院深圳先进技术研究院 一种基于深度学习的智能合约漏洞检测方法
CN112035842A (zh) * 2020-08-17 2020-12-04 杭州云象网络技术有限公司 一种基于编码解码器的智能合约漏洞检测可解释性方法
CN112990941A (zh) * 2021-03-10 2021-06-18 武汉大学 一种针对智能合约中庞氏骗局的漏洞检测方法及系统
CN113449303A (zh) * 2021-06-28 2021-09-28 杭州云象网络技术有限公司 基于教师-学生网络模型的智能合约漏洞检测方法和系统
CN113312268A (zh) * 2021-07-29 2021-08-27 北京航空航天大学 一种智能合约代码相似检测方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"基于区块链技术的网络安全漏洞检测系统设计", 计算机测量与控制, no. 5 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114579981A (zh) * 2022-03-10 2022-06-03 北京国腾创新科技有限公司 一种跨域漏洞检测方法、系统、存储介质和电子设备
CN115033896A (zh) * 2022-08-15 2022-09-09 鹏城实验室 以太坊智能合约漏洞检测方法、装置、系统与介质
CN115033896B (zh) * 2022-08-15 2022-11-08 鹏城实验室 以太坊智能合约漏洞检测方法、装置、系统与介质

Also Published As

Publication number Publication date
CN113904844B (zh) 2023-09-12

Similar Documents

Publication Publication Date Title
CN109977682A (zh) 一种基于深度学习的区块链智能合约漏洞检测方法及装置
CN106570513A (zh) 大数据网络系统的故障诊断方法和装置
CN111292195A (zh) 风险账户的识别方法及装置
CN113641819B (zh) 基于多任务稀疏共享学习的论辩挖掘系统及方法
Narodytska Formal Analysis of Deep Binarized Neural Networks.
CN113904844B (zh) 基于跨模态教师-学生网络的智能合约漏洞检测方法
CN110162972B (zh) 一种基于语句联合编码深度神经网络的uaf漏洞检测方法
Guo et al. Coverage guided differential adversarial testing of deep learning systems
CN110956309A (zh) 基于crf和lstm的流程活动预测方法
CN115017511A (zh) 一种源代码漏洞检测方法、装置以及存储介质
CN114816997A (zh) 一种基于图神经网络与双向gru特征抽取的缺陷预测方法
CN114547611A (zh) 一种基于多模态特征的智能合约庞氏骗局检测方法及系统
CN115017513A (zh) 一种基于人工智能的智能合约漏洞检测方法
CN116432184A (zh) 基于语义分析和双向编码表征的恶意软件检测方法
CN115859302A (zh) 源代码漏洞检测方法、装置、设备及存储介质
CN116402352A (zh) 一种企业风险预测方法、装置、电子设备及介质
CN115935372A (zh) 一种基于图嵌入和双向门控图神经网络的漏洞检测方法
CN115422518A (zh) 基于无数据知识蒸馏的文本验证码识别方法
CN116305119A (zh) 基于预测指导原型的apt恶意软件分类方法和装置
CN116595537A (zh) 一种基于多模态特征的生成式智能合约的漏洞检测方法
CN116561761A (zh) 一种基于智能合约字节码的漏洞检测方法及系统
CN114386436B (zh) 文本数据的分析方法、模型训练方法、装置及计算机设备
CN115168864A (zh) 一种基于特征交叉的智能交叉合约漏洞检测方法
CN116628695A (zh) 基于多任务学习的漏洞挖掘方法及装置
CN114862588A (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