CN114841318A - 基于跨模态知识蒸馏的智能合约漏洞检测方法 - Google Patents

基于跨模态知识蒸馏的智能合约漏洞检测方法 Download PDF

Info

Publication number
CN114841318A
CN114841318A CN202210474802.0A CN202210474802A CN114841318A CN 114841318 A CN114841318 A CN 114841318A CN 202210474802 A CN202210474802 A CN 202210474802A CN 114841318 A CN114841318 A CN 114841318A
Authority
CN
China
Prior art keywords
network
intelligent contract
teacher
vulnerability detection
cross
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
Application number
CN202210474802.0A
Other languages
English (en)
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.)
Harbin Engineering University
Original Assignee
Harbin Engineering 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 Harbin Engineering University filed Critical Harbin Engineering University
Priority to CN202210474802.0A priority Critical patent/CN114841318A/zh
Publication of CN114841318A publication Critical patent/CN114841318A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • 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
    • G06N3/082Learning methods modifying the architecture, e.g. adding, deleting or silencing nodes or connections
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V10/00Arrangements for image or video recognition or understanding
    • G06V10/70Arrangements for image or video recognition or understanding using pattern recognition or machine learning
    • G06V10/77Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
    • G06V10/80Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level
    • G06V10/806Fusion, i.e. combining data from various sources at the sensor level, preprocessing level, feature extraction level or classification level of extracted features
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V30/00Character recognition; Recognising digital ink; Document-oriented image-based pattern recognition
    • G06V30/40Document-oriented image-based pattern recognition
    • G06V30/41Analysis of document content
    • G06V30/416Extracting the logical structure, e.g. chapters, sections or page numbers; Identifying elements of the document, e.g. authors

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Artificial Intelligence (AREA)
  • General Physics & Mathematics (AREA)
  • Computing Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Software Systems (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Multimedia (AREA)
  • Databases & Information Systems (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

基于跨模态知识蒸馏的智能合约漏洞检测方法,涉及区块链技术领域,针对现有技术中无法将两种模态的特征信息融合并加以处理的问题,与现有技术相比,本申请针对当前仅分析一种模态的逻辑信息作为智能合约漏洞检测的基础,提出基于跨模态知识蒸馏的智能合约漏洞检测方法。本申请的漏洞检测方法可有效地发现大量智能合约存在的漏洞,且准确度较高。本申请提出的漏洞检测方法有助于在智能合约漏洞造成损失之前发现和预防漏洞,避免不可估量的经济损失。

Description

基于跨模态知识蒸馏的智能合约漏洞检测方法
技术领域
本发明涉及区块链技术领域,具体为基于跨模态知识蒸馏的智能合约漏洞检测方法。
背景技术
当前,区块链作为计算机领域新兴技术,其技术高度不断被提高到新的水平,逐渐成为影响国防安全的重要因素。随着技术的问世,为获取利益而造成的攻击接踵而至,造成的损失十分巨大;而在区块链领域,以太坊验证的合约数高达上百万,引发的攻击不计其数,因此国内外区块链人才对智能合约漏洞检测的研究不断投入精力,致力于完善区块链生态安全;而当前智能合约主要以二进制代码为主要存在形式,缺少源码形式的智能合约,无法对智能合约提供全面的漏洞检测,其原因如下,二进制代码形式的智能合约缺乏足够的逻辑结构,对其检测无法深入挖掘语义信息,而源码形式的智能合约虽逻辑结构充足,但需要进行大量运算,因此,如何在漏洞检测的过程将二进制代码形式和源码形式的合约逻辑信息进行融合,并采用静态漏洞检测挖掘合约深层漏洞是对当前漏洞检测技术的一大难题。
智能合约的静态检测方法主要有形式化验证和符号执行两种方式,前者通过逻辑语言对智能合约文档和代码形式化建模,在保证验证过程数学逻辑完备的情况下检验合约功能的正确性和安全性,后者将代码中的变量符号化,并为所有执行维护一组约束,并在执行结束后确定输入,然后再产生新的测试输入,以此来检测符号值是否可以产生漏洞;两种方式的主要分析对象为合约二进制代码或者源码的逻辑信息,无法将两种模态的特征信息融合并加已处理;教师学生网络模型又被称为知识蒸馏模型,能够将教师网络中“蒸馏”出的信息传递给学生网络,实现教师学生模型间知识转移的目的,最终让教师网络的“经验”传递到学生网络中,使得学生网络能够处理融合多个模态的特征信息。
因此,如何结合静态漏洞检测技术和教师学生网络模型,构建多个模态间智能合约逻辑信息融合框架,以源码语义信息填补二进制代码反汇编后语义信息丢失的缺陷,是当前智能合约的漏洞检测方式亟待解决的问题。
发明内容
本发明的目的是:针对现有技术中无法将两种模态的特征信息融合并加以处理的问题,提出基于跨模态知识蒸馏的智能合约漏洞检测方法。
本发明为了解决上述技术问题采取的技术方案是:
基于跨模态知识蒸馏的智能合约漏洞检测方法,包括以下步骤:
步骤一:获取智能合约,所述智能合约的形式包括二进制代码和源码;
步骤二:将二进制代码进行反汇编处理,得到控制流程图,将源码进行图生成处理,得到合约图;
步骤三:将控制流程图和合约图输入教师网络中,将控制流程图输入学生网络中;
所述教师网络具体执行如下步骤:
首先,将控制流程图和合约图分别进行特征提取,得到二进制代码特征表示向量和源码特征表示向量,然后将二进制代码特征表示向量和源码特征表示向量进行聚合操作,得到多模态语义信息,之后将得到的多模态语义信息输入到全连接层中,之后全连接层的输出使用sigmoid函数激活得到多模态教师网络的预测结果;
所述学生网络具体执行如下步骤:
首先,将控制流程图进行特征提取,得到二进制代码特征表示向量,然后将二进制代码特征表示向量与教师网络中得到的二进制代码特征表示向量做损失计算,并将损失计算结果作为第一损失函数优化学生网络;
然后二进制代码特征表示向量输入全连接层,全连接层的最后一层采用如下公式使得二进制代码特征表示向量的维度与源码特征表示向量相同:
Figure BDA0003624883700000021
其中,Ws表示可训练矩阵,bs表示偏置参数,
Figure BDA0003624883700000022
表示二进制代码特征表示向量,ys表示经过维度处理后的二进制代码特征表示向量;
全连接层的输出经过ReLU函数的激活,经过ReLU函数激活后的结果与教师网络得到的源码特征表示向量做相似计算,并将相似计算结果作为第二损失函数优化学生网络,之后将优化后的学生网络中的特征信息表示向量传递到全连接层中进行预测,并将预测结果通过sigmoid函数进行激活,得到最终预测结果;
步骤四:将多模态教师网络的预测结果和最终预测结果进行损失计算,并将损失计算结果作为第三损失函数优化学生网络和教师网络;
步骤五:利用步骤四优化后的学生网络和教师网络进行智能合约漏洞检测。
进一步的,所述二进制代码特征表示向量的获取步骤为:
首先,利用GCN模型对控制流程图中的语义信息进行特征提取,然后将提取到的特征经过批量归一化处理和ReLU函数后,再经最大池化和平均池化处理,得到二进制代码特征表示向量。
进一步的,所述批量归一化处理表示为:
y=γ·x+β
Figure BDA0003624883700000031
其中,γ取x方差和β取x均值,γ和β作为归一化操作的可训练参数,x表示批量归一化处理的输入,y表示批量归一化处理的输出。
进一步的,所述ReLU函数表示为:
f(x)=max(0,x)。
进一步的,所述图生成处理的具体步骤为:
将源码中关键函数调用特征作为主节点,将源码中函数关键变量特征作为次节点;
将每两个节点之间的边的起始节点特征、时序编号特征和边类型特征嵌入合约图;
所述每两个节点之间的边为控制边或数据边。
进一步的,所述源码特征表示向量的获取步骤为:
首先,对合约图进行消融操作,消除次节点,并保留被消除的次节点与主节点连接的边,然后,将合约图中次节点对应的函数关键变量特征传递到距离次节点最近的主节点中,得到消融操作后的合约图;然后,将消融操作后的合约图输入时序边传递图神经网络,进行特征提取;最后,将提取到的特征进行批量归一化处理、ReLU函数以及平均池化处理后,得到源码特征表示向量。
进一步的,所述时序边传递图神经网络分为边传递阶段和边读出阶段;
所述边传递阶段用于生成边的信息以及聚合边的信息;
所述边读出阶段用于将特征提取前的节点的状态gi和特征提取后的节点的状态oi进行聚合;
所述聚合表示为:
Figure BDA0003624883700000032
Figure BDA0003624883700000033
Figure BDA0003624883700000034
其中,
Figure BDA0003624883700000041
表示最终隐层状态,
Figure BDA0003624883700000042
表示节点初始隐层状态,
Figure BDA0003624883700000043
表示元素积,
Figure BDA0003624883700000044
Figure BDA0003624883700000045
Figure BDA0003624883700000046
表示要学习的模型参数,y′表示聚合结果,j表示模型参数的序号,V表示节点总数。
进一步的,所述第一损失函数表示为单模态损失函数,表示为:
Figure BDA0003624883700000047
其中,
Figure BDA0003624883700000048
表示学生网络输出的二进制漏洞信息表示向量,
Figure BDA0003624883700000049
表示教师网络输出的二进制漏洞信息表示向量,N表示训练集中的样本数,bi表示第i个二进制代码样本。
进一步的,所述第二损失函数表示为跨模态转移损失函数,表示为:
Figure BDA00036248837000000410
其中,
Figure BDA00036248837000000411
表示来之教师网络的源码特征信息表示。
进一步的,所述第三损失函数表示为教师-学生互学习损失函数,表示为:
Figure BDA00036248837000000412
Figure BDA00036248837000000413
Figure BDA00036248837000000414
Figure BDA00036248837000000415
其中,
Figure BDA00036248837000000416
Figure BDA00036248837000000417
分别表示教师网络和学生网络的监督分类损失,
Figure BDA00036248837000000418
表示第i个样本是否有漏洞,k∈{0,1},
Figure BDA00036248837000000419
Figure BDA00036248837000000420
分别表示由教师网络和学生网络生成第i个样本是否有漏洞的预测分数,λ、γ和ω表示控制不同损失权重的平衡因素,下角标s表示学生网络,下角标t表示教师网络,xi表示第i个多模态融合样本。
本发明的有益效果是:
与现有技术相比,本申请针对当前仅分析一种模态的逻辑信息作为智能合约漏洞检测的基础,提出基于跨模态知识蒸馏的智能合约漏洞检测方法。首先,该方法以静态检测技术为基础,分析智能合约内在逻辑结构,剥离与漏洞信息不相关的语义信息,通过结合多模态特征信息融合,实现更深层次的漏洞挖掘,其次,该方法以二进制代码得出的控制流程图作为分析基础,学生网络充当主体处理架构,补充源码内在逻辑信息,构建高效、快速的漏洞检测架构;第三,部署单模态损失、跨模态损失和教师学生互学习损失的损失优化结构,逐层逐阶段优化模型参数,实现高效的知识转移效果,使学生网络最终预测更贴近于教师网络的输出。在对大量智能合约进行实验后发现,本申请的漏洞检测方法可有效地发现大量智能合约存在的漏洞,且准确度较高。本申请提出的漏洞检测方法有助于在智能合约漏洞造成损失之前发现和预防漏洞,避免不可估量的经济损失。
附图说明
图1为本申请的整体流程图;
图2为二进制代码处理流程图;
图3为源码处理流程图;
图4为跨模态知识转移流程图;
图5为消融操作示意图。
具体实施方式
需要特别说明的是,在不冲突的情况下,本申请公开的各个实施方式之间可以相互组合。
具体实施方式一:参照图1具体说明本实施方式,本实施方式所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,首先,二进制代码与源码合约分别执行反汇编及图生成操作,生成二进制代码的控制流程图和源码的合约图;然后,教师网络利用二进制代码反汇编的控制流程图和源码生成的合约图作为输入,设置GCN(图卷积神经网络)和TMP模型初步处理数据,并采用多种激活函数优化网络输出;之后聚合来自二进制代码和源码的特征信息,并采用全连接网络和sigmoid函数对聚合信息处理,最后输出教师模型的预测结果;学生网络利用二进制代码反汇编的控制流程图作为输入,用相似于教师网络模型的结构处理输入并得到特征信息,之后恢复特征信息维度实现跨模态知识转移,最后生成学生网络的预测结果;另外,在教师网络与学生网络处理的过程中,设置单模态转移损失、跨模态转移损失以及师生互学习损失不断优化模型参数,实现高效的多模态信息融合。
具体来说,本申请包括以下步骤:
第一,智能合约的两种形式(二进制代码和源码)在输入网络前分别进行反汇编和图生成操作;
第二,合约被处理后将会输入到教师和学生模型中,经过模型的处理得到合约二进制代码和源码特征表示向量;
第三,二进制代码和源码的特征表示向量在单模态损失和跨模态转移损失中参与运算并根据结果对模型进行优化;
第四,学生网络和教师网络的输出做教师-学生互学习损失并对知识转移机制进行优化,如图1所示;
本申请以x=(b,s)表示总样本中二进制代码和源码的组成部分,则y∈{0,1}C表示样本的二元向量标签,0代表该合约无漏洞,1表示该合约有漏洞,其中C表示被检测到的样本数量;对输入到教师网络的数据类型设置为D={(b,s,y)},分别代表二进制代码、源码和标签,对学生网络的数据类型设置为D={(b,y)}。
二进制代码处理流程
智能合约的二进制代码在反汇编后生成控制流程图,将二进制代码中的语义信息转换成图并传输到教师和学生网络,利用GCN模型对图中的语义信息进行提取,之后经过批量归一化处理和ReLU函数对输出向量优化,其中批量归一化操作具体形式如下所示:
y=γ·x+β (1)
Figure BDA0003624883700000061
γ取x方差和β取x均值都作为归一化操作的可训练参数;ReLU激活函数如下所示:
f(x)=max(0,x) (3)
为降低模型计算量,本发明设置最大池化层和平均池化层对优化后的数据进行处理,最终生成二进制代码层面的特征表示向量。如图2所示
源码处理流程
智能合约的源码有着丰富的逻辑信息,通过图生成操作生成合约图,合约图将源码的特征信息转存于图结构中。在该图中,主节点作为关键函数调用,次节点作为函数关键变量,同时将边的起始节点、时序编号和边类型等特征嵌入该图,分别为控制边、数据边等类型;为简化对神经网络数据运算,本发明拟设置对图的消融操作,将次节点特征传递到最近主节点,连接被消除节点的边保留(仅更新起始节点),此时核心节点的特征由三部分组成:自身特征、输入特征集、输出特征集;消融后得到的图紧接着输入到时序边传递图神经网络(TMP)模型中作为输入,该模型分为两个阶段,分别为边传递阶段和读出阶段;边传递阶段主要用于生成边的信息以及聚合边的信息,而读出阶段主要用于将节点的最终状态gi与初始状态oi进行聚合,其中
Figure BDA0003624883700000071
表示最终隐层状态,
Figure BDA0003624883700000072
表示节点初始隐层状态,
Figure BDA0003624883700000073
表示元素积,Wg,bg都是要学习的模型参数,y则是最终聚合结果,聚合公式如下所示:
Figure BDA0003624883700000074
Figure BDA0003624883700000075
Figure BDA0003624883700000076
y=Sigmoid(gi·oi) (7)
经过TMP的特征提取之后,设置与前文相同的批量归一化方法和ReLU激活函数来优化输出向量,然后使用平均池化处理产生源码层面漏洞信息表示向量。如图3所示,多模态教师网络
教师网络采用二进制代码反汇编后的控制流程图和源码图生成操作的合约图作为多种模态输入,之后如前文所叙述的处理两种输入的过程,最终生成的特征信息表示向量,而在教师网络中,两种模态的特征信息会经过聚合操作而形成汇聚了二进制代码和源码的语义信息,之后输入到全连接神经网络中,该全连接神经网络输入维度是两个特征信息表示向量行数相加,而输出维度则是等于一个特征信息表示向量行数,之后全连接神经网络的输出使用sigmoid函数激活生成多模态教师网络的预测结果。
单模态学生网络
单模态学生网络将二进制代码反汇编后的控制流程图作为输入,经过上述对控制流程图的处理过后所得出的二进制层面特征信息表示向量将会作为全连接神经网络的输入进行运算,如图3所示,该全连接神经网络的最后一层采用如下公式使得二进制代码特征信息表是向量的格式与源码特征表示向量相同:
Figure BDA0003624883700000077
其中Ws作为可训练矩阵,bs作为偏置参数;之后由全连接神经网络得到的输出将会经过ReLU函数的激活得到更平滑的结果,该结果将会与教师网络所得到的源码特征信息表示向量做相似计算,从而作为损失函数以优化该模型,之后将优化后的特征信息表示向量传递到全连接神经网络中进行预测,得出结果将会通过sigmoid函数进行激活以得到更精确结果。
单模态损失
教师和学生网络所得到的特征信息表示向量的过程虽然大致相同,但是对于每一次处理的位置,大小,参数都各不相同,因此,提出的单模态损失函数是为了将学生网络在相较于教师网络更小的情况下优化模型参数,使其从二进制代码的控制流程图中尽可能多的提取语义信息,其损失函数设置如下:
Figure BDA0003624883700000081
其中
Figure BDA0003624883700000082
表示学生网络输出的二进制漏洞信息表示向量,
Figure BDA0003624883700000083
表示教师网络输出的二进制漏洞信息表示向量,N表示训练集中的样本数。
跨模态转移损失
本申请提出基于多模态知识蒸馏的智能合约漏洞检测机制的最关键的是如何将教师网络得出的知识能够传递到学生网络中,为了解决这一个问题,本申请提出了跨模态转移损失。该方法通过计算处理后的二进制代码特征信息表示与源码特征信息表示之间的相似性作为知识转移过程的损失函数,通过不断降低损失函数的值对转移过程的模型参数进行优化,其损失函数如下所示:
Figure BDA0003624883700000084
其中
Figure BDA0003624883700000085
表示来之教师网络的源码特征信息表示。该损失函数提出的本质原因是二进制代码和源码的逻辑结构从全局的角度出发是相似的,二进制代码语义信息会在反汇编操作之后缺失一部分语义信息,而此时依靠跨模态知识转移将教师网络从源码中提取的逻辑结构补充到二进制代码特征信息表示中,从而促进学生网络对智能合约的漏洞检测提供帮助。如图4所示。
教师-学生互学习损失
为实现从多模态到单模态更为有效的知识转移效果,本发明提出一种教师-学生相互学习框架,并将合约漏洞检测定义为一个二分类问题,考虑到智能合约二进制代码在漏洞检测中的语义信息缺失,将学生网络预测与教师网络输出的软标签之间作二元交叉熵误差 (BCE)运算,如下所示:
Figure BDA0003624883700000091
Figure BDA0003624883700000092
其中
Figure BDA0003624883700000093
Figure BDA0003624883700000094
分别代表教师网络和学生网络的监督分类损失,
Figure BDA0003624883700000095
表示第i个样本是否有漏洞,k∈{0,1};前文提及x=(b,s)和b表示对教师网络和学生网络的多模态和单模态输入,因此
Figure BDA0003624883700000096
Figure BDA0003624883700000097
分别表示由教师网络和学生网络生成第i个样本是否有漏洞的预测分数,最后,通过将监督分类损失与前文提出的单模态传输损失和跨模态传输损失相结合,从而得到了两个网络的总体损失为:
Figure BDA0003624883700000098
Figure BDA0003624883700000099
其中,λ、γ和ω是控制不同损失权重的平衡因素。由此可得,在框架中,除学生网络向老师学习外,教师网络也向学生提供其“教学策略”。这两个模型在每个小批量中都进行了联合优化。在每次迭代中,根据当前的模型计算漏洞信息向量、对等网络的漏洞信息向量和软标签输出以及硬标签输出来更新两个网络的参数。
本申请结合二进制代码和源码的智能合约语义信息,实现源码语义信息到二进制代码的转移,构建轻量化、多模态信息检测模型。本发明构建的模型包括教师和学生模型,利用三种损失计算不断优化模型参数,其中包括单模态损失、跨模态知识转移损失、以及多模态-单模态互学习损失,通过以上设置,实现对智能合约多模态相结合的漏洞检测方案,提高漏洞检测效率的同时降低智能合约漏洞检测过程的复杂性。
需要注意的是,具体实施方式仅仅是对本发明技术方案的解释和说明,不能以此限定权利保护范围。凡根据本发明权利要求书和说明书所做的仅仅是局部改变的,仍应落入本发明的保护范围内。

Claims (10)

1.基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于包括以下步骤:
步骤一:获取智能合约,所述智能合约的形式包括二进制代码和源码;
步骤二:将二进制代码进行反汇编处理,得到控制流程图,将源码进行图生成处理,得到合约图;
步骤三:将控制流程图和合约图输入教师网络中,将控制流程图输入学生网络中;
所述教师网络具体执行如下步骤:
首先,将控制流程图和合约图分别进行特征提取,得到二进制代码特征表示向量和源码特征表示向量,然后将二进制代码特征表示向量和源码特征表示向量进行聚合操作,得到多模态语义信息,之后将得到的多模态语义信息输入到全连接层中,之后全连接层的输出使用sigmoid函数激活得到多模态教师网络的预测结果;
所述学生网络具体执行如下步骤:
首先,将控制流程图进行特征提取,得到二进制代码特征表示向量,然后将二进制代码特征表示向量与教师网络中得到的二进制代码特征表示向量做损失计算,并将损失计算结果作为第一损失函数优化学生网络;
然后二进制代码特征表示向量输入全连接层,全连接层的最后一层采用如下公式使得二进制代码特征表示向量的维度与源码特征表示向量相同:
Figure FDA0003624883690000011
其中,Ws表示可训练矩阵,bs表示偏置参数,
Figure FDA0003624883690000012
表示二进制代码特征表示向量,ys表示经过维度处理后的二进制代码特征表示向量;
全连接层的输出经过ReLU函数的激活,经过ReLU函数激活后的结果与教师网络得到的源码特征表示向量做相似计算,并将相似计算结果作为第二损失函数优化学生网络,之后将优化后的学生网络中的特征信息表示向量传递到全连接层中进行预测,并将预测结果通过sigmoid函数进行激活,得到最终预测结果;
步骤四:将多模态教师网络的预测结果和最终预测结果进行损失计算,并将损失计算结果作为第三损失函数优化学生网络和教师网络;
步骤五:利用步骤四优化后的学生网络和教师网络进行智能合约漏洞检测。
2.根据权利要求1所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述二进制代码特征表示向量的获取步骤为:
首先,利用GCN模型对控制流程图中的语义信息进行特征提取,然后将提取到的特征经过批量归一化处理和ReLU函数后,再经最大池化和平均池化处理,得到二进制代码特征表示向量。
3.根据权利要求2所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述批量归一化处理表示为:
y=γ·x+β
Figure FDA0003624883690000021
β=E(x)
其中,γ取x方差和β取x均值,γ和β作为归一化操作的可训练参数,x表示批量归一化处理的输入,y表示批量归一化处理的输出。
4.根据权利要求2所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述ReLU函数表示为:
f(x)=max(0,x)。
5.根据权利要求1所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述图生成处理的具体步骤为:
将源码中关键函数调用特征作为主节点,将源码中函数关键变量特征作为次节点;
将每两个节点之间的边的起始节点特征、时序编号特征和边类型特征嵌入合约图;
所述每两个节点之间的边为控制边或数据边。
6.根据权利要求5所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述源码特征表示向量的获取步骤为:
首先,对合约图进行消融操作,消除次节点,并保留被消除的次节点与主节点连接的边,然后,将合约图中次节点对应的函数关键变量特征传递到距离次节点最近的主节点中,得到消融操作后的合约图;然后,将消融操作后的合约图输入时序边传递图神经网络,进行特征提取;最后,将提取到的特征进行批量归一化处理、ReLU函数以及平均池化处理后,得到源码特征表示向量。
7.根据权利要求6所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述时序边传递图神经网络分为边传递阶段和边读出阶段;
所述边传递阶段用于生成边的信息以及聚合边的信息;
所述边读出阶段用于将特征提取前的节点的状态gi和特征提取后的节点的状态oi进行聚合;
所述聚合表示为:
Figure FDA0003624883690000031
Figure FDA0003624883690000032
Figure FDA0003624883690000033
其中,
Figure FDA0003624883690000034
表示最终隐层状态,
Figure FDA0003624883690000035
表示节点初始隐层状态,
Figure FDA0003624883690000036
表示元素积,
Figure FDA0003624883690000037
Figure FDA0003624883690000038
Figure FDA0003624883690000039
表示要学习的模型参数,y′表示聚合结果,j表示模型参数的序号,V表示节点总数。
8.根据权利要求1所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述第一损失函数表示为单模态损失函数,表示为:
Figure FDA00036248836900000310
其中,
Figure FDA00036248836900000311
表示学生网络输出的二进制漏洞信息表示向量,
Figure FDA00036248836900000312
表示教师网络输出的二进制漏洞信息表示向量,N表示训练集中的样本数,bi表示第i个二进制代码样本。
9.根据权利要求8所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述第二损失函数表示为跨模态转移损失函数,表示为:
Figure FDA00036248836900000313
其中,
Figure FDA00036248836900000314
表示来之教师网络的源码特征信息表示。
10.根据权利要求9所述的基于跨模态知识蒸馏的智能合约漏洞检测方法,其特征在于所述第三损失函数表示为教师-学生互学习损失函数,表示为:
Figure FDA00036248836900000315
Figure FDA00036248836900000316
Figure FDA0003624883690000041
Figure FDA0003624883690000042
其中,
Figure FDA0003624883690000043
Figure FDA0003624883690000044
分别表示教师网络和学生网络的监督分类损失,
Figure FDA0003624883690000045
表示第i个样本是否有漏洞,k∈{0,1},
Figure FDA0003624883690000046
Figure FDA0003624883690000047
分别表示由教师网络和学生网络生成第i个样本是否有漏洞的预测分数,λ、γ和ω表示控制不同损失权重的平衡因素,下角标s表示学生网络,下角标t表示教师网络,xi表示第i个多模态融合样本。
CN202210474802.0A 2022-04-29 2022-04-29 基于跨模态知识蒸馏的智能合约漏洞检测方法 Pending CN114841318A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202210474802.0A CN114841318A (zh) 2022-04-29 2022-04-29 基于跨模态知识蒸馏的智能合约漏洞检测方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202210474802.0A CN114841318A (zh) 2022-04-29 2022-04-29 基于跨模态知识蒸馏的智能合约漏洞检测方法

Publications (1)

Publication Number Publication Date
CN114841318A true CN114841318A (zh) 2022-08-02

Family

ID=82568225

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202210474802.0A Pending CN114841318A (zh) 2022-04-29 2022-04-29 基于跨模态知识蒸馏的智能合约漏洞检测方法

Country Status (1)

Country Link
CN (1) CN114841318A (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033896A (zh) * 2022-08-15 2022-09-09 鹏城实验室 以太坊智能合约漏洞检测方法、装置、系统与介质

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN115033896A (zh) * 2022-08-15 2022-09-09 鹏城实验室 以太坊智能合约漏洞检测方法、装置、系统与介质
CN115033896B (zh) * 2022-08-15 2022-11-08 鹏城实验室 以太坊智能合约漏洞检测方法、装置、系统与介质

Similar Documents

Publication Publication Date Title
CN110070183B (zh) 一种弱标注数据的神经网络模型训练方法及装置
CN109902183B (zh) 一种基于多样图注意力机制的知识图谱嵌入方法
CN111291836B (zh) 一种生成学生网络模型的方法
WO2023024412A1 (zh) 基于深度学习模型的视觉问答方法及装置、介质、设备
CN112784964A (zh) 基于桥接知识蒸馏卷积神经网络的图像分类方法
KR102203065B1 (ko) 트리플 검증 장치 및 방법
CN113486190B (zh) 一种融合实体图像信息和实体类别信息的多模态知识表示方法
CN112015868A (zh) 基于知识图谱补全的问答方法
CN113628059B (zh) 一种基于多层图注意力网络的关联用户识别方法及装置
CN112527993B (zh) 一种跨媒体层次化深度视频问答推理框架
CN112417063B (zh) 一种基于异构关系网络的相容功能项推荐方法
CN112417159A (zh) 一种上下文对齐增强图注意力网络的跨语言实体对齐方法
CN116932722A (zh) 一种基于跨模态数据融合的医学视觉问答方法及系统
CN114254093A (zh) 多空间知识增强的知识图谱问答方法及系统
CN114841318A (zh) 基于跨模态知识蒸馏的智能合约漏洞检测方法
CN114077659A (zh) 一种基于邻居交互网络的知识图谱问答方法及系统
CN112819024A (zh) 模型处理方法、用户数据处理方法及装置、计算机设备
CN111488460A (zh) 数据处理方法、装置和计算机可读存储介质
CN113705402A (zh) 视频行为预测方法、系统、电子设备及存储介质
CN112529057A (zh) 一种基于图卷积网络的图相似性计算方法及装置
CN116975686A (zh) 训练学生模型的方法、行为预测方法和装置
CN116431821A (zh) 基于常识感知的知识图谱补全方法及问答系统
CN113836319B (zh) 融合实体邻居的知识补全方法及系统
CN112989024B (zh) 文本内容的关系提取方法、装置、设备及存储介质
CN115545833A (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