CN112364352A - 可解释性的软件漏洞检测与推荐方法及系统 - Google Patents
可解释性的软件漏洞检测与推荐方法及系统 Download PDFInfo
- Publication number
- CN112364352A CN112364352A CN202011131831.4A CN202011131831A CN112364352A CN 112364352 A CN112364352 A CN 112364352A CN 202011131831 A CN202011131831 A CN 202011131831A CN 112364352 A CN112364352 A CN 112364352A
- Authority
- CN
- China
- Prior art keywords
- vulnerability
- code
- node
- graph
- sample
- 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 49
- 238000000034 method Methods 0.000 title claims abstract description 43
- 230000002194 synthesizing effect Effects 0.000 claims abstract description 15
- 238000013528 artificial neural network Methods 0.000 claims abstract description 12
- 239000013598 vector Substances 0.000 claims description 72
- 230000006870 function Effects 0.000 claims description 27
- 230000015572 biosynthetic process Effects 0.000 claims description 19
- 238000003786 synthesis reaction Methods 0.000 claims description 19
- 230000008569 process Effects 0.000 claims description 17
- 238000013507 mapping Methods 0.000 claims description 16
- 238000012549 training Methods 0.000 claims description 13
- 238000004220 aggregation Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 8
- 230000003993 interaction Effects 0.000 claims description 8
- 239000011159 matrix material Substances 0.000 claims description 8
- 238000012512 characterization method Methods 0.000 claims description 6
- 238000010276 construction Methods 0.000 claims description 6
- 238000012360 testing method Methods 0.000 claims description 5
- 238000012935 Averaging Methods 0.000 claims description 4
- 230000002776 aggregation Effects 0.000 claims description 4
- 238000004458 analytical method Methods 0.000 claims description 4
- 230000001174 ascending effect Effects 0.000 claims description 4
- 150000001875 compounds Chemical class 0.000 claims description 4
- 238000009826 distribution Methods 0.000 claims description 4
- 238000012163 sequencing technique Methods 0.000 claims description 4
- 239000000126 substance Substances 0.000 claims description 4
- 238000007781 pre-processing Methods 0.000 claims description 3
- 238000012550 audit Methods 0.000 abstract description 2
- 238000010586 diagram Methods 0.000 description 3
- 230000007246 mechanism Effects 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000004364 calculation method Methods 0.000 description 2
- 239000002131 composite material Substances 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 238000005065 mining Methods 0.000 description 2
- 230000002787 reinforcement Effects 0.000 description 2
- 238000011160 research Methods 0.000 description 2
- 230000004931 aggregating effect Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 238000000605 extraction Methods 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000012546 transfer 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/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/213—Feature extraction, e.g. by transforming the feature space; Summarisation; Mappings, e.g. subspace methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/23—Clustering techniques
- G06F18/232—Non-hierarchical techniques
- G06F18/2321—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions
- G06F18/23213—Non-hierarchical techniques using statistics or function optimisation, e.g. modelling of probability density functions with fixed number of clusters, e.g. K-means clustering
-
- 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
- G06F18/2415—Classification techniques relating to the classification model, e.g. parametric or non-parametric approaches based on parametric or probabilistic models, e.g. based on likelihood ratio or false acceptance rate versus a false rejection rate
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2221/00—Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F2221/03—Indexing scheme relating to G06F21/50, monitoring users, programs or devices to maintain the integrity of platforms
- G06F2221/032—Protect output to user by software means
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Vision & Pattern Recognition (AREA)
- General Physics & Mathematics (AREA)
- Evolutionary Computation (AREA)
- Bioinformatics & Computational Biology (AREA)
- Evolutionary Biology (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- Probability & Statistics with Applications (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明公开了一种可解释性的软件漏洞检测与推荐方法及系统,方法包括以下步骤:构建漏洞数据集;进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;进行漏洞特征学习,提取不同类型的特征;进行漏洞数据集平衡,合成少数类数据;构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。本发明可以更好地利用漏洞代码的语法、语义信息,充分挖掘漏洞代码与上下文的关系,达到对多种漏洞类型的判别与输出,普适性和通用性更强,可以取代实际代码审计中人工制定漏洞指标的环节,并推荐与检测代码所含漏洞类似的已知漏洞,使实际应用领域更广、精度更高、可解释性强。
Description
技术领域
本发明属于软件安全领域,特别涉及一种可解释性的软件漏洞检测与推荐方法及系统。
背景技术
漏洞检测是软件维护过程中的重要组成部分。近年来,随着软件项目的规模扩张和复杂度提升,在软件开发过程中出现了大量的漏洞,如何准确高效地检测出潜在漏洞已成为具有相当挑战性的工作。而在之前的工作中多采用由人类专家手工制定的特征或模式被机器学习算法作为输入来检测漏洞,然而由专家手工定义一些漏洞度量(如代码行数,圈复杂度等),成本过高且主观性较强,会导致较高的误报率和漏报率。同时,大多数方法仅能识别出被检测文件是否包含漏洞,而无法对漏洞的一些属性,例如漏洞的类型,漏洞产生的原因等进行更进一步的阐述,从而可解释性差,难以指导实际的修复工作。
目前已有一些工作使用深度学习的方法来检测软件漏洞及其类型,如文献《μVulDeePecker:A Deep Learning-Based System for Multiclass VulnerabilityDetection》通过引入“代码注意”这个概念来关注对于漏洞更重要的代码语义特征,但是对于漏洞类型的分类仅停留在了抽象定义层面,而忽略了检测漏洞时所围绕的软件开发中经常使用或遇到的漏洞特征,同时也没有考虑影响多分类器性能的数据不平衡问题。也有一些工作通过将相似度匹配来分析bug代码,如文献《SmartEmbed:A Tool for Clone andBug Detection in Smart Contracts through Structural Code Embedding》通过比较被检测代码与已知bug之间的相似性,输出可能的bug类型并标注bug语句及其上下文,但仍停留在匹配层面,无法解释漏洞产生的原因,且没有考虑类不平衡问题,使得对bug类型的检测仍存在许多误报。
发明内容
本发明的目的在于针对上述现有技术存在的问题,提供一种具有应用领域更广、精度更高、可解释性强等特点的漏洞检测与推荐方法及系统。
实现本发明目的的技术解决方案为:一种可解释性的软件漏洞检测与推荐方法,所述方法包括以下步骤:
步骤1,构建漏洞数据集;
步骤2,进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;
步骤3,进行漏洞特征学习,提取不同类型的特征;
步骤4,进行漏洞数据集平衡,合成少数类数据;
步骤5,构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。
进一步地,步骤2所述进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构,具体过程包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1漏洞类型表
步骤2-2,结合表1对漏洞数据集中的漏洞数据进行分类,构建语料库,并随机选取80%的漏洞数据作为训练集,剩下的20%作为测试集;
步骤2-3,对漏洞数据集中的所有数据进行代码表征,通过工具Joern和Roslyn将漏洞代码表示为抽象语法树AST、控制流图CFG、程序依赖图PDG、代码语序图NCS、词法调用图LastLexicalUse、参数闭合图GuardedBy和GuardedByNegation;
步骤2-4,利用Word2vec对语料库中通过AST解析得到的代码单词code tokens和代码语句statements进行词向量学习,获得一组词向量,其中语句的词向量通过对该语句所包含的代码单词求和取平均值得到。
进一步地,步骤3所述进行漏洞特征学习,提取不同类型的特征,具体过程包括:
步骤3-1,使用标签编码对漏洞代码图结点类型进行编码,与步骤2-4得到的结点词向量连结,得到每个结点的初始结点属性向量,并依此构造结点邻接矩阵和结点属性矩阵其中N为每一张漏洞代码图的结点数,D为每张漏洞代码图中结点的属性数,此外,每张漏洞代码图还包含一个由步骤2-1得到的对应图标签li;
步骤3-3,在第t-1次遍历时的结点向量序列rt-1中,依次遍历当前遍历结点ct-1的每个邻居结点ct,计算从结点ct-1到结点ct这一步遍历所包含的信息量st:
步骤3-4,聚合遍历到结点ct所得到的子图所包含的每一步所包含的信息量ht:
ht=fh(st,ht-1,θh)
式中,θh为参数,fh为映射函数,ht-1为聚合遍历到结点ct-1所得到的子图所包含的每一步所包含的信息量;
步骤3-5,计算遍历到结点ct所得到的子图的图标签比较该标签与步骤3-1中所述li是否一致,若一致,执行下一步,否则更新下一步遍历所需要的排序向量rt,并重复执行步骤3-3到3-5;其中,图标签的计算公式和排序向量rt的更新公式分别为:
rt=fr(ht;θr)
式中,θc和θr为参数,fc和fr为映射函数,P表示概率;
步骤3-6,计算同一张漏洞代码图在以不同结点为起点下遍历得到的所有子图中,信息量最大的最优遍历子图J:
式中,表示最优遍历子图J的梯度,i=1,…,M表示子图遍历的结点,所有的结点形成结点交互序列,M为结点总数,γ∈(0,1]表示折扣系数,表示结点和其类型的映射函数,θ={θh,θs,θr}表示上述步骤所提的参数集,s1:t表示时间步长为t时的一组状态即环境,表示子图遍历的结点交互序列的特征向量求和,T为时间步长的总数,表示到达期待状态所积累的信息量的映射值,表示时间步长为t时结点i的环境,表示时间步长为t时结点i的信息量,rt i表示时间步长为t时的结点向量序列,表示时间步长为t+1时的结点i,Ri表示遍历到结点i时所获得的奖励即时间步长t下所有已遍历结点的向量和。
进一步地,步骤4所述进行漏洞数据集平衡,具体为:利用过采样技术合成人工漏洞数据,平衡多数类和少数类样本;具体过程包括:
步骤4-1,计算整个漏洞数据集的多类别不平衡度IR,并根据类平均样本数A将漏洞数据集中的数据划分为多数类和少数类:
式中,C表示类别的总数,Ni和Nj分别表示类别i和类别j的样本尺寸,M'表示样本总数,L表示类别数,样本数大于A的标记为多数类,反之为少数类;
步骤4-2,利用基于邻居的聚类算法对少数类c进一步划分,划分为仅由少数类样本聚类构成的突出样本集Oic和与其他类样本边界有重叠的交叉样本集Tic:
式中,Nk和RNk分别为K近邻和反K近邻集,xi表示少数类c的软核实例,软核实例为大于预设阈值的K近邻集,xj表示分别由xi的K近邻和反K近邻集所构成的集合中的软核实例,xi=hi,hi为通过步骤3-6得到的最优子图J的信息量;
步骤4-3,对于突出样本集Oic中的样本,随机在K1近邻方向上生成合成实例;
步骤4-4,对于交叉样本集Tic中的样本,计算其K1近邻方向上生成合成实例的权重W:
式中,e为自然数,γc、γma、γmi分别表示少数类c在PN上的样本集、多数类样本和其他少数类样本,Emi表示少数类熵,Ema表示多数类熵,r1、r2、w1、w2均为参数;
步骤4-5,对交叉样本集中的每个样本xi∈Tic检查其K1近邻,若没有仅包含少数类c的邻域,将该样本添加到自己的邻域集中并对其实例合成方向分配权重1+w1/e,归一化样本所有相邻方向上的选择权重,得到多个可供选择的用于合成实例的邻域的概率分布;
步骤4-6,为每个少数类生成相同数量的合成实例集SI:
si←xi+(xj-xi).*γ
SI←SI∪{si}
其中,si表示每个合成实例,γ为不同合成方向的权重W所对应的概率。
进一步地,步骤5所述构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例,具体过程包括:
步骤5-1,将步骤3学习到的漏洞特征图向量即信息量和步骤4合成的少数类特征图向量作为分类器的输入,通过多类别交叉熵损失函数softmax训练分类器,获得漏洞检测模型;
式中,s(G1,G2)表示平均汉明相似度,G1、G2分别表示待测漏洞实例对应的漏洞代码图和候选漏洞代码图,分别表示G1、G2图向量化后的结果即最优遍历子图;表示数学期望;Lpair∈[0,1],Lpair越小,表示相似度越高,t∈{-1,1}表示两者之间的相似度标签,0表示不相似,1表示相似;
步骤5-4,对最小化损失Lpair进行升序排列进而对候选漏洞代码图进行排序;
一种可解释性的软件漏洞检测与推荐系统,所述系统包括:
数据集构建模块,用于构建漏洞数据集;
图嵌入模块,用于进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;
特征学习模块,用于进行漏洞特征学习,提取不同类型的特征;
平衡模块,用于进行漏洞数据集平衡,合成少数类数据;
漏洞检测和推荐模块,用于构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。
本发明与现有技术相比,其显著优点为:1)从图的角度对漏洞代码进行表示,通过多种代码图的组合能更好地利用漏洞代码语义信息,充分挖掘漏洞代码与上下文的关系;2)提出通过引入图挖掘算法的注意力机制,结合强化学习技术选择与整张函数图的漏洞语句最相关的函数子图,提高漏洞检测的效果;3)使用基于邻域的过采样技术对多分类问题中影响分类性能的数据不平衡问题进行了分析和解决,相较于传统的简单选择数据集中较为平衡的子集进行训练和检测,适用性更强;4)考虑到目前软件漏洞检测技术的可解释性差的问题,本发明通过在图神经网络学习漏洞特征的基础上进行子图匹配,推荐与被检测代码漏洞相似的已知漏洞,一定程度上可以解释漏洞产生的原因,为软件漏洞定位和修复的实际应用研究打下基础。
下面结合附图对本发明作进一步详细描述。
附图说明
图1为一个实施例中可解释性的软件漏洞检测与推荐方法的流程图。
图2为一个实施例中部分代码图嵌入所构成的复合图。
图3为一个实施例中基于注意力机制的漏洞特征学习过程图。
图4为一个实施例中基于过采样的数据集平衡示意图。
图5为一个实施例中基于结点特征学习的子图匹配过程图。
具体实施方式
为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。
在一个实施例中,结合图1,本发明提出一种可解释性的软件漏洞检测与推荐方法,包括以下步骤:
步骤1,构建漏洞数据集;
步骤2,进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;
步骤3,进行漏洞特征学习,提取不同类型的特征;
步骤4,进行漏洞数据集平衡,合成少数类数据(解决漏洞类别不平衡问题,提高特征泛化能力);
步骤5,构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。
进一步地,在其中一个实施例中,步骤1所述构建漏洞数据集,具体过程包括:
步骤1-1,采集漏洞数据库NVD和开源代码库GitHub中的漏洞数据,包括漏洞类型和漏洞文件;
步骤1-2,对提取出的漏洞文件进行预处理,从函数级别提取漏洞文件中的漏洞代码,去除文件中的多余信息,包括头文件,注释以及声明的全局参数等,得到漏洞数据集。
进一步地,在其中一个实施例中,步骤2所述进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构,具体过程包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表2所示:
表2漏洞类型表
步骤2-2,结合表2对漏洞数据集中的漏洞数据进行分类,构建语料库,并随机选取80%的漏洞数据作为训练集,剩下的20%作为测试集;
步骤2-3,对漏洞数据集中的所有数据进行代码表征,通过工具Joern和Roslyn将漏洞代码表示为抽象语法树AST、控制流图CFG、程序依赖图PDG、代码语序图NCS、词法调用图LastLexicalUse、参数闭合图GuardedBy和GuardedByNegation;如图2所示,通过AST、CFG和PDG将代码表征为了复合图形结构,代码中的数据传递和控制依赖通过有向边连接各个图结点;
步骤2-4,利用Word2vec对语料库中通过AST解析得到的代码单词code tokens和代码语句statements进行词向量学习,获得一组词向量,其中语句的词向量通过对该语句所包含的代码单词求和取平均值得到。
进一步地,在其中一个实施例中,步骤3所述进行漏洞特征学习,提取不同类型的特征,具体过程包括:
步骤3-1,使用标签编码对漏洞代码图结点类型进行编码,与步骤2-4得到的结点词向量连结,得到每个结点的初始结点属性向量,并依此构造结点邻接矩阵和结点属性矩阵其中N为每一张漏洞代码图的结点数,D为每张漏洞代码图中结点的属性数,此外,每张漏洞代码图还包含一个由步骤2-1得到的对应图标签li;
步骤3-3,在第t-1次遍历时的结点向量序列rt-1中,依次遍历当前遍历结点ct-1的每个邻居结点ct,计算从结点ct-1到结点ct这一步遍历所包含的信息量st:
步骤3-4,聚合遍历到结点ct所得到的子图所包含的每一步所包含的信息量ht:
ht=fh(st,ht-1,θh)
式中,θh为参数,fh为映射函数,ht-1为聚合遍历到结点ct-1所得到的子图所包含的每一步所包含的信息量;
步骤3-5,计算遍历到结点ct所得到的子图的图标签比较该标签与步骤3-1中所述li是否一致,若一致,执行下一步,否则更新下一步遍历所需要的排序向量rt,并重复执行步骤3-3到3-5;其中,图标签的计算公式和排序向量rt的更新公式分别为:
rt=fr(ht;θr)
步骤3-6,计算同一张漏洞代码图在以不同结点为起点下遍历得到的所有子图中,信息量最大的最优遍历子图J:
式中,表示最优遍历子图J的梯度,i=1,…,M表示子图遍历的结点,所有的结点形成结点交互序列,M为结点总数,γ∈(0,1]表示折扣系数,表示结点和其类型的映射函数,θ={θh,θs,θr}表示上述步骤所提的参数集,s1:t表示时间步长为t时的一组状态即环境,表示子图遍历的结点交互序列的特征向量求和,T为时间步长的总数,表示到达期待状态所积累的信息量的映射值,表示时间步长为t时结点i的环境,表示时间步长为t时结点i的信息量,rt i表示时间步长为t时的结点向量序列,表示时间步长为t+1时的结点i,Ri表示遍历到结点i时所获得的奖励即时间步长t下所有已遍历结点的向量和。
采用本实施例的方案,通过引入图挖掘算法的注意力机制,结合强化学习技术选择与整张函数图的漏洞语句最相关的函数子图,提高漏洞检测的效果。
进一步地,在其中一个实施例中,步骤4所述进行漏洞数据集平衡,具体为:利用过采样技术合成人工漏洞数据,平衡多数类和少数类样本;具体过程包括:
步骤4-1,计算整个漏洞数据集的多类别不平衡度IR,并根据类平均样本数A将漏洞数据集中的数据划分为多数类和少数类:
式中,C表示类别的总数,Ni和Nj分别表示类别i和类别j的样本尺寸,M'表示样本总数,L表示类别数,样本数大于A的标记为多数类,反之为少数类;
步骤4-2,利用基于邻居的聚类算法对少数类c进一步划分,划分为仅由少数类样本聚类构成的突出样本集Oic和与其他类样本边界有重叠的交叉样本集Tic:
式中,Nk和RNk分别为K近邻(以任一点为中心,K为半径的区域所构成的集合)和反K近邻集(对以任意点为中心的K近邻中,距离刚好为K的所有点以自己为中心,K为半径所构成的集合),xi表示少数类c的软核实例,软核实例为大于预设阈值的K近邻集,xj表示分别由xi的K近邻和反K近邻集所构成的集合中的软核实例,xi=hi,hi为通过步骤3-6得到的最优子图J的信息量。如图4所示,x1、x4、x5、x6属于突出样本集,x2、x3属于交叉样本集;
步骤4-3,对于突出样本集Oic中的样本,随机在K1近邻方向上生成合成实例;
步骤4-4,对于交叉样本集Tic中的样本,计算其K1近邻方向上生成合成实例的权重W:
式中,e为自然数,γc、γma、γmi分别表示少数类c在PN上的样本集、多数类样本和其他少数类样本,Emi表示少数类熵,Ema表示多数类熵,r1、r2、w1、w2均为参数;
步骤4-5,对交叉样本集中的每个样本xi∈Tic检查其K1近邻,若没有仅包含少数类c的邻域,将该样本添加到自己的邻域集中并对其实例合成方向分配权重1+w1/e,归一化样本所有相邻方向上的选择权重,得到多个可供选择的用于合成实例的邻域的概率分布;
步骤4-6,为每个少数类生成相同数量的合成实例集SI:
si←xi+(xj-xi).*γ
SI←SI∪{si}
其中,si表示每个合成实例,γ为不同合成方向的权重W所对应的概率。
采用本实施例的方案,使用基于邻域的过采样技术,对多分类问题中影响分类性能的数据不平衡问题进行了分析和解决,相较于传统的简单选择数据集中较为平衡的子集进行训练和检测,适用性更强。
进一步地,在其中一个实施例中,步骤5所述构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例,具体过程包括:
步骤5-1,将步骤3学习到的漏洞特征图向量即信息量和步骤4合成的少数类特征图向量作为分类器的输入,通过多类别交叉熵损失函数softmax训练分类器,获得漏洞检测模型;
式中,s(G1,G2)表示平均汉明相似度,G1、G2分别表示待测漏洞实例对应的漏洞代码图和候选漏洞代码图,分别表示G1、G2图向量化后的结果即最优遍历子图;表示数学期望;Lpair∈[0,1],Lpair越小,表示相似度越高,t∈{-1,1}表示两者之间的相似度标签,0表示不相似,1表示相似。如图5所示,通过对应结点间的信息传递,计算整张图的相似度分数。
步骤5-4,对最小化损失Lpair进行升序排列进而对候选漏洞代码图进行排序;
采用本实施例的方案,通过在图神经网络学习漏洞特征的基础上进行子图匹配,推荐与被检测代码漏洞相似的已知漏洞,一定程度上可以解释漏洞产生的原因,为软件漏洞定位和修复的实际应用研究打下基础。
在一个实施例中,提出了一种可解释性的软件漏洞检测与推荐系统,所述系统包括:
数据集构建模块,用于构建漏洞数据集;
图嵌入模块,用于进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;
特征学习模块,用于进行漏洞特征学习,提取不同类型的特征;
平衡模块,用于进行漏洞数据集平衡,合成少数类数据;
漏洞检测和推荐模块,用于构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。
进一步地,在其中一个实施例中,所述数据集构建模块包括:
采集单元,用于采集漏洞数据库NVD和开源代码库GitHub中的漏洞数据,包括漏洞类型和漏洞文件;
提取单元,用于对提取出的漏洞文件进行预处理,从函数级别提取漏洞文件中的漏洞代码,去除文件中的多余信息,包括头文件,注释以及声明的全局参数等,得到漏洞数据集。
进一步地,在其中一个实施例中,所述图嵌入模块包括:
归并单元,用于对CWE漏洞类型标签进行归并,获得漏洞类型表如下表3所示:
表3漏洞类型表
第一划分单元,用于结合表3对漏洞数据集中的漏洞数据进行分类,构建语料库,并随机选取80%的漏洞数据作为训练集,剩下的20%作为测试集;
表征单元,用于对漏洞数据集中的所有数据进行代码表征,通过工具Joern和Roslyn将漏洞代码表示为抽象语法树AST、控制流图CFG、程序依赖图PDG、代码语序图NCS、词法调用图LastLexicalUse、参数闭合图GuardedBy和GuardedByNegation;
图嵌入单元,用于利用Word2vec对语料库中通过AST解析得到的代码单词codetokens和代码语句statements进行词向量学习,获得一组词向量,其中语句的词向量通过对该语句所包含的代码单词求和取平均值得到。
进一步地,在其中一个实施例中,所述特征学习模块包括依次执行的:
初始化单元,用于使用标签编码对漏洞代码图结点类型进行编码,与图嵌入单元得到的结点词向量连结,得到每个结点的初始结点属性向量,并依此构造结点邻接矩阵和结点属性矩阵其中N为每一张漏洞代码图的结点数,D为每张漏洞代码图中结点的属性数,此外,每张漏洞代码图还包含一个由归并单元得到的对应图标签li;
信息量求取单元,用于在第t-1次遍历时的结点向量序列rt-1中,依次遍历当前遍历结点ct-1的每个邻居结点ct,计算从结点ct-1到结点ct这一步遍历所包含的信息量st:
信息量聚合单元,用于聚合遍历到结点ct所得到的子图所包含的每一步所包含的信息量ht:
ht=fh(st,ht-1,θh)
式中,θh为参数,fh为映射函数,ht-1为聚合遍历到结点ct-1所得到的子图所包含的每一步所包含的信息量;
更新单元,用于计算遍历到结点ct所得到的子图的图标签比较该标签与初始化单元中所述li是否一致,若一致,执行最优子图求取单元,否则更新下一次遍历所需要的排序向量rt,并重复执行信息量求取单元至更新单元;其中,图标签的计算公式和排序向量rt的更新公式分别为:
rt=fr(ht;θr)
式中,θc和θr为参数,fc和fr为映射函数,P表示概率;
最优子图求取单元,用于计算同一张漏洞代码图在以不同结点为起点下遍历得到的所有子图中,信息量最大的最优遍历子图J:
式中,表示最优遍历子图J的梯度,i=1,…,M表示子图遍历的结点,所有的结点形成结点交互序列,M为结点总数,γ∈(0,1]表示折扣系数,表示结点和其类型的映射函数,θ={θh,θs,θr}表示上述单元所提的参数集,s1:t表示时间步长为t时的一组状态即环境,表示子图遍历的结点交互序列的特征向量求和,T为时间步长的总数,表示到达期待状态所积累的信息量的映射值,表示时间步长为t时结点i的环境,表示时间步长为t时结点i的信息量,rt i表示时间步长为t时的结点向量序列,表示时间步长为t+1时的结点i,Ri表示遍历到结点i时所获得的奖励即时间步长t下所有已遍历结点的向量和。
进一步地,在其中一个实施例中,所述平衡模块包括依次执行的:
第二划分单元,用于计算整个漏洞数据集的多类别不平衡度IR,并根据类平均样本数A将漏洞数据集中的数据划分为多数类和少数类:
式中,C表示类别的总数,Ni和Nj分别表示类别i和类别j的样本尺寸,M'表示样本总数,L表示类别数,样本数大于A的标记为多数类,反之为少数类;
聚类单元,用于利用基于邻居的聚类算法对少数类c进一步划分,划分为仅由少数类样本聚类构成的突出样本集Oic和与其他类样本边界有重叠的交叉样本集Tic:
式中,Nk和RNk分别为K近邻和反K近邻集,xi表示少数类c的软核实例,软核实例为大于预设阈值的K近邻集,xj表示分别由xi的K近邻和反K近邻集所构成的集合中的软核实例,xi=hi,hi为通过最优子图求取单元得到的最优子图J的信息量;
合成样本单元,用于对于突出样本集Oic中的样本,随机在K1近邻方向上生成合成实例;
权重计算单元,用于对于交叉样本集Tic中的样本,计算其K1近邻方向上生成合成实例的权重W:
式中,e为自然数,γc、γma、γmi分别表示少数类c在PN上的样本集、多数类样本和其他少数类样本,Emi表示少数类熵,r1、r2、w1、w2均为参数;
转化单元,用于对交叉样本集中的每个样本xi∈Tic检查其K1近邻,若没有仅包含少数类c的邻域,将该样本添加到自己的邻域集中并对其实例合成方向分配权重1+w1/e,归一化样本所有相邻方向上的选择权重,得到多个可供选择的用于合成实例的邻域的概率分布;
合成单元,用于为每个少数类生成相同数量的合成实例集SI:
si←xi+(xj-xi).*γ
SI←SI∪{si}
其中,si表示每个合成实例,γ为不同合成方向的权重W所对应的概率。
进一步地,在其中一个实施例中,所述漏洞检测和推荐模块包括依次执行的:
模型构建单元,用于将特征学习模块学习到的漏洞特征图向量即信息量和平衡模块合成的少数类特征图向量作为分类器的输入,通过多类别交叉熵损失函数softmax训练分类器,获得漏洞检测模型;
式中,s(G1,G2)表示平均汉明相似度,G1、G2分别表示待测漏洞实例对应的漏洞代码图和候选漏洞代码图,分别表示G1、G2图向量化后的结果即最优遍历子图;表示数学期望;Lpair∈[0,1],Lpair越小,表示相似度越高,t∈{-1,1}表示两者之间的相似度标签,0表示不相似,1表示相似;
排序单元,用于对最小化损失Lpair进行升序排列进而对候选漏洞代码图进行排序;
本发明可以更好地利用漏洞代码的语法、语义信息,充分挖掘漏洞代码与上下文的关系,达到对多种漏洞类型的判别与输出,普适性和通用性更强,可以取代实际代码审计中人工制定漏洞指标的环节,并推荐与检测代码所含漏洞类似的已知漏洞,使实际应用领域更广、精度更高、可解释性强。
以上显示和描述了本发明的基本原理、主要特征及优点。本行业的技术人员应该了解,本发明不受上述实施例的限制,上述实施例和说明书中描述的只是说明本发明的原理,在不脱离本发明精神和范围的前提下,本发明还会有各种变化和改进,这些变化和改进都落入要求保护的本发明范围内。本发明要求保护范围由所附的权利要求书及其等效物界定。
Claims (7)
1.一种可解释性的软件漏洞检测与推荐方法,其特征在于,所述方法包括以下步骤:
步骤1,构建漏洞数据集;
步骤2,进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;
步骤3,进行漏洞特征学习,提取不同类型的特征;
步骤4,进行漏洞数据集平衡,合成少数类数据;
步骤5,构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。
2.根据权利要求1所述的可解释性的软件漏洞检测与推荐方法,其特征在于,步骤1所述构建漏洞数据集,具体过程包括:
步骤1-1,采集漏洞数据库NVD和开源代码库GitHub中的漏洞数据,包括漏洞类型和漏洞文件;
步骤1-2,对提取出的漏洞文件进行预处理,从函数级别提取漏洞文件中的漏洞代码,去除文件中的多余信息,包括头文件,注释以及声明的全局参数,得到漏洞数据集。
3.根据权利要求2所述的可解释性的软件漏洞检测与推荐方法,其特征在于,步骤2所述进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构,具体过程包括:
步骤2-1,对CWE漏洞类型标签进行归并,获得漏洞类型表如下表1所示:
表1漏洞类型表
步骤2-2,结合表1对漏洞数据集中的漏洞数据进行分类,构建语料库,并随机选取80%的漏洞数据作为训练集,剩下的20%作为测试集;
步骤2-3,对漏洞数据集中的所有数据进行代码表征,通过工具Joern和Roslyn将漏洞代码表示为抽象语法树AST、控制流图CFG、程序依赖图PDG、代码语序图NCS、词法调用图LastLexicalUse、参数闭合图GuardedBy和GuardedByNegation;
步骤2-4,利用Word2vec对语料库中通过AST解析得到的代码单词code tokens和代码语句statements进行词向量学习,获得一组词向量,其中语句的词向量通过对该语句所包含的代码单词求和取平均值得到。
4.根据权利要求3所述的可解释性的软件漏洞检测与推荐方法,其特征在于,步骤3所述进行漏洞特征学习,提取不同类型的特征,具体过程包括:
步骤3-1,使用标签编码对漏洞代码图结点类型进行编码,与步骤2-4得到的结点词向量连结,得到每个结点的初始结点属性向量,并依此构造结点邻接矩阵和结点属性矩阵其中N为每一张漏洞代码图的结点数,D为每张漏洞代码图中结点的属性数,此外,每张漏洞代码图还包含一个由步骤2-1得到的对应图标签li;
步骤3-3,在第t-1次遍历时的结点向量序列rt-1中,依次遍历当前遍历结点ct-1的每个邻居结点ct,计算从结点ct-1到结点ct这一步遍历所包含的信息量st:
步骤3-4,聚合遍历到结点ct所得到的子图所包含的每一步所包含的信息量ht:
ht=fh(st,ht-1,θh)
式中,θh为参数,fh为映射函数,ht-1为聚合遍历到结点ct-1所得到的子图所包含的每一步所包含的信息量;
步骤3-5,计算遍历到结点ct所得到的子图的图标签比较该标签与步骤3-1中所述li是否一致,若一致,执行下一步,否则更新下一步遍历所需要的排序向量rt,并重复执行步骤3-3到3-5;其中,图标签的计算公式和排序向量rt的更新公式分别为:
rt=fr(ht;θr)
式中,θc和θr为参数,fc和fr为映射函数,P表示概率;
步骤3-6,计算同一张漏洞代码图在以不同结点为起点下遍历得到的所有子图中,信息量最大的最优遍历子图J:
5.根据权利要求4所述的可解释性的软件漏洞检测与推荐方法,其特征在于,步骤4所述进行漏洞数据集平衡,具体为:利用过采样技术合成人工漏洞数据,平衡多数类和少数类样本;具体过程包括:
步骤4-1,计算整个漏洞数据集的多类别不平衡度IR,并根据类平均样本数A将漏洞数据集中的数据划分为多数类和少数类:
式中,C表示类别的总数,Ni和Nj分别表示类别i和类别j的样本尺寸,M'表示样本总数,L表示类别数,样本数大于A的标记为多数类,反之为少数类;
步骤4-2,利用基于邻居的聚类算法对少数类c进一步划分,划分为仅由少数类样本聚类构成的突出样本集Oic和与其他类样本边界有重叠的交叉样本集Tic:
式中,Nk和RNk分别为K近邻和反K近邻集,xi表示少数类c的软核实例,软核实例为大于预设阈值的K近邻集,xj表示分别由xi的K近邻和反K近邻集所构成的集合中的软核实例,xi=hi,hi为通过步骤3-6得到的最优子图J的信息量;
步骤4-3,对于突出样本集Oic中的样本,随机在K1近邻方向上生成合成实例;
步骤4-4,对于交叉样本集Tic中的样本,计算其K1近邻方向上生成合成实例的权重W:
式中,e为自然数,γc、γma、γmi分别表示少数类c在PN上的样本集、多数类样本和其他少数类样本,Emi表示少数类熵,Ema表示多数类熵,r1、r2、w1、w2均为参数;
步骤4-5,对交叉样本集中的每个样本xi∈Tic检查其K1近邻,若没有仅包含少数类c的邻域,将该样本添加到自己的邻域集中并对其实例合成方向分配权重1+w1/e,归一化样本所有相邻方向上的选择权重,得到多个可供选择的用于合成实例的邻域的概率分布;
步骤4-6,为每个少数类生成相同数量的合成实例集SI:
si←xi+(xj-xi).*γ
SI←SI∪{si}
其中,si表示每个合成实例,γ为不同合成方向的权重W所对应的概率。
6.根据权利要求5所述的可解释性的软件漏洞检测与推荐方法,其特征在于,步骤5所述构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例,具体过程包括:
步骤5-1,将步骤3学习到的漏洞特征图向量即信息量和步骤4合成的少数类特征图向量作为分类器的输入,通过多类别交叉熵损失函数softmax训练分类器,获得漏洞检测模型;
式中,s(G1,G2)表示平均汉明相似度,G1、G2分别表示待测漏洞实例对应的漏洞代码图和候选漏洞代码图,分别表示G1、G2图向量化后的结果即最优遍历子图;表示数学期望;Lpair∈[0,1],Lpair越小,表示相似度越高,t∈{-1,1}表示两者之间的相似度标签,0表示不相似,1表示相似;
步骤5-4,对最小化损失Lpair进行升序排列进而对候选漏洞代码图进行排序;
7.一种可解释性的软件漏洞检测与推荐系统,其特征在于,所述系统包括:
数据集构建模块,用于构建漏洞数据集;
图嵌入模块,用于进行漏洞代码图嵌入,将代码转化为可供神经网络学习的图形结构;
特征学习模块,用于进行漏洞特征学习,提取不同类型的特征;
平衡模块,用于进行漏洞数据集平衡,合成少数类数据;
漏洞检测和推荐模块,用于构建漏洞检测模型,利用该模型检测待测漏洞实例所含漏洞并为其推荐漏洞样例。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011131831.4A CN112364352B (zh) | 2020-10-21 | 2020-10-21 | 可解释性的软件漏洞检测与推荐方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011131831.4A CN112364352B (zh) | 2020-10-21 | 2020-10-21 | 可解释性的软件漏洞检测与推荐方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112364352A true CN112364352A (zh) | 2021-02-12 |
CN112364352B CN112364352B (zh) | 2023-11-24 |
Family
ID=74511403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011131831.4A Active CN112364352B (zh) | 2020-10-21 | 2020-10-21 | 可解释性的软件漏洞检测与推荐方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112364352B (zh) |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113138924A (zh) * | 2021-04-23 | 2021-07-20 | 扬州大学 | 一种基于图学习的线程安全代码识别方法 |
CN113342318A (zh) * | 2021-04-19 | 2021-09-03 | 山东师范大学 | 基于多视图代码特征的细粒度代码自动生成方法及系统 |
CN113434418A (zh) * | 2021-06-29 | 2021-09-24 | 扬州大学 | 知识驱动的软件缺陷检测与分析方法及系统 |
CN113742733A (zh) * | 2021-08-09 | 2021-12-03 | 扬州大学 | 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置 |
WO2023092511A1 (en) * | 2021-11-26 | 2023-06-01 | Huawei Technologies Co.,Ltd. | Methods and apparatuses for software vulnerability detection |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471856A (zh) * | 2019-08-21 | 2019-11-19 | 大连海事大学 | 一种基于数据不平衡的软件缺陷预测方法 |
CN111274134A (zh) * | 2020-01-17 | 2020-06-12 | 扬州大学 | 基于图神经网络的漏洞识别与预测方法、系统、计算机设备和存储介质 |
CN111552969A (zh) * | 2020-04-21 | 2020-08-18 | 中国电力科学研究院有限公司 | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 |
CN111783100A (zh) * | 2020-06-22 | 2020-10-16 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
-
2020
- 2020-10-21 CN CN202011131831.4A patent/CN112364352B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110471856A (zh) * | 2019-08-21 | 2019-11-19 | 大连海事大学 | 一种基于数据不平衡的软件缺陷预测方法 |
CN111274134A (zh) * | 2020-01-17 | 2020-06-12 | 扬州大学 | 基于图神经网络的漏洞识别与预测方法、系统、计算机设备和存储介质 |
CN111552969A (zh) * | 2020-04-21 | 2020-08-18 | 中国电力科学研究院有限公司 | 基于神经网络的嵌入式终端软件代码漏洞检测方法及装置 |
CN111783100A (zh) * | 2020-06-22 | 2020-10-16 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
Non-Patent Citations (2)
Title |
---|
李韵等: "基于机器学习的软件漏洞挖掘方法综述", 《软件学报》, pages 2042 - 2043 * |
陈肇炫等: "基于抽象语法树的智能化漏洞检测系统", 《信息安全学报》, vol. 5, no. 4, pages 1 - 11 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113342318A (zh) * | 2021-04-19 | 2021-09-03 | 山东师范大学 | 基于多视图代码特征的细粒度代码自动生成方法及系统 |
CN113342318B (zh) * | 2021-04-19 | 2022-06-10 | 山东师范大学 | 基于多视图代码特征的细粒度代码自动生成方法及系统 |
CN113138924A (zh) * | 2021-04-23 | 2021-07-20 | 扬州大学 | 一种基于图学习的线程安全代码识别方法 |
CN113138924B (zh) * | 2021-04-23 | 2023-10-31 | 扬州大学 | 一种基于图学习的线程安全代码识别方法 |
CN113434418A (zh) * | 2021-06-29 | 2021-09-24 | 扬州大学 | 知识驱动的软件缺陷检测与分析方法及系统 |
CN113742733A (zh) * | 2021-08-09 | 2021-12-03 | 扬州大学 | 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置 |
CN113742733B (zh) * | 2021-08-09 | 2023-05-26 | 扬州大学 | 阅读理解漏洞事件触发词抽取和漏洞类型识别方法及装置 |
WO2023092511A1 (en) * | 2021-11-26 | 2023-06-01 | Huawei Technologies Co.,Ltd. | Methods and apparatuses for software vulnerability detection |
Also Published As
Publication number | Publication date |
---|---|
CN112364352B (zh) | 2023-11-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN112364352B (zh) | 可解释性的软件漏洞检测与推荐方法及系统 | |
CN110232280B (zh) | 一种基于树结构卷积神经网络的软件安全漏洞检测方法 | |
CN107229563B (zh) | 一种跨架构的二进制程序漏洞函数关联方法 | |
US20210012210A1 (en) | Techniques for creating, analyzing, and modifying neural networks | |
US11640539B2 (en) | Techniques for visualizing the operation of neural networks using samples of training data | |
CN111124487B (zh) | 代码克隆检测方法、装置以及电子设备 | |
CN116049831A (zh) | 一种基于静态分析和动态分析的软件漏洞检测方法 | |
CN107577605A (zh) | 一种面向软件缺陷预测的特征聚类选择方法 | |
CN110162972B (zh) | 一种基于语句联合编码深度神经网络的uaf漏洞检测方法 | |
WO2021007259A1 (en) | Techniques for modifying neural network definitions | |
CN111767216B (zh) | 一种可缓解类重叠问题的跨版本深度缺陷预测方法 | |
CN113434418A (zh) | 知识驱动的软件缺陷检测与分析方法及系统 | |
CN116305158A (zh) | 一种基于切片代码依赖图语义学习的漏洞识别方法 | |
WO2021007215A1 (en) | Techniques for modifying the operation of neural networks | |
Qin et al. | Evaluation of goaf stability based on transfer learning theory of artificial intelligence | |
CN116150757A (zh) | 一种基于cnn-lstm多分类模型的智能合约未知漏洞检测方法 | |
CN112783513B (zh) | 一种代码风险检查方法、装置及设备 | |
CN114064459A (zh) | 基于生成对抗网络和集成学习的软件缺陷预测方法 | |
CN114153839A (zh) | 多源异构数据的集成方法、装置、设备及存储介质 | |
CN116702157B (zh) | 一种基于神经网络的智能合约漏洞检测方法 | |
CN113742396A (zh) | 一种对象学习行为模式的挖掘方法及装置 | |
CN117725592A (zh) | 一种基于有向图注意力网络的智能合约漏洞检测方法 | |
CN110502669A (zh) | 基于n边dfs子图的轻量级无监督图表示学习方法及装置 | |
CN116662991A (zh) | 基于人工智能的智能合约意图检测方法 | |
CN114780103B (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 |