CN117319091B - 基于深度学习的企业软件网络安全漏洞检测方法及系统 - Google Patents
基于深度学习的企业软件网络安全漏洞检测方法及系统 Download PDFInfo
- Publication number
- CN117319091B CN117319091B CN202311606393.6A CN202311606393A CN117319091B CN 117319091 B CN117319091 B CN 117319091B CN 202311606393 A CN202311606393 A CN 202311606393A CN 117319091 B CN117319091 B CN 117319091B
- Authority
- CN
- China
- Prior art keywords
- code
- vulnerability detection
- detection result
- vulnerability
- software
- 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.)
- Active
Links
- 238000001514 detection method Methods 0.000 title claims abstract description 228
- 238000013135 deep learning Methods 0.000 title claims abstract description 32
- 239000013598 vector Substances 0.000 claims abstract description 97
- 238000000034 method Methods 0.000 claims abstract description 54
- 238000012549 training Methods 0.000 claims abstract description 30
- 238000012545 processing Methods 0.000 claims abstract description 25
- 238000003062 neural network model Methods 0.000 claims abstract description 15
- 238000004364 calculation method Methods 0.000 claims description 26
- 238000013527 convolutional neural network Methods 0.000 claims description 23
- 238000004458 analytical method Methods 0.000 claims description 13
- 230000008569 process Effects 0.000 claims description 12
- 239000012634 fragment Substances 0.000 claims description 8
- 238000007781 pre-processing Methods 0.000 claims description 7
- 238000012935 Averaging Methods 0.000 claims description 6
- 230000014509 gene expression Effects 0.000 claims description 6
- 238000006243 chemical reaction Methods 0.000 claims description 3
- 238000010586 diagram Methods 0.000 description 10
- 238000012795 verification Methods 0.000 description 8
- 230000002093 peripheral effect Effects 0.000 description 6
- 230000007547 defect Effects 0.000 description 4
- 238000005516 engineering process Methods 0.000 description 4
- 238000000605 extraction Methods 0.000 description 4
- 230000006870 function Effects 0.000 description 4
- 238000013473 artificial intelligence Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 3
- 239000000284 extract Substances 0.000 description 2
- 238000013441 quality evaluation Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 230000005856 abnormality Effects 0.000 description 1
- 238000012550 audit Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 235000019580 granularity Nutrition 0.000 description 1
- 238000010801 machine learning Methods 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 230000005055 memory storage Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000003058 natural language processing Methods 0.000 description 1
- 239000002245 particle Substances 0.000 description 1
- 238000009877 rendering Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 238000012216 screening Methods 0.000 description 1
- 230000035945 sensitivity Effects 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
Classifications
-
- 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/0464—Convolutional networks [CNN, ConvNet]
-
- 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
- G06N3/09—Supervised learning
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/40—Network security protocols
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Physics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Molecular Biology (AREA)
- Biomedical Technology (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Computer Hardware Design (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请涉及网络安全技术领域,尤其涉及一种基于深度学习的企业软件网络安全漏洞检测方法及系统,其中方法包括获取目标软件的源代码并生成对应的最小中间表示,基于最小中间表示确定切片准则,对目标软件的源代码进行向量表示处理并生成输入数据;获取代码数据集,对预设的神经网络模型进行训练得到软件安全漏洞检测模型;将输入数据输入至软件安全漏洞检测模型,输出第一漏洞检测结果;计算目标软件的源代码与代码数据集之间的相似度,匹配与源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果。本申请能够有效提升对于软件网络安全漏洞的检测准确性和检测速度。
Description
技术领域
本申请涉及网络安全技术领域,尤其涉及一种基于深度学习的企业软件网络安全漏洞检测方法及系统。
背景技术
随着信息技术的不断发展,软件已广泛应用于各行各业。为了满足企业发展的不同需求,需要不断进行软件的开发,相应地,不可避免的会出现企业软件的安全漏洞,安全漏洞是信息技术、信息产品、软件系统在需求、设计、实现、配置和运行等过程中,有意或无意产生的缺陷,这些缺陷以不同形式存在于软件系统的各个层次和环节之中,一旦被恶意主体所利用,就会对软件安全造成威胁,从而影响构建于软件系统之上的正常服务的运行,危害软件系统及软件使用者的信息安全。因此企业软件的漏洞安全管理是企业软件管理中极为重要的一部分。
目前对企业软件进行漏洞检测最有效的方法是针对软件的源代码进行漏洞检测,其中漏洞检测技术主要包括静态分析和动态分析。静态分析方法是在未运行程序的情况下,对软件的源代码进行审计分析,洞悉程序的数据流和执行控制流关系,统计源代码不同粒度下的度量,进而在软件代码中找出存在的安全缺陷。动态分析方法则一般应用于软件的测试运行阶段,在软件程序运行过程中,通过分析动态调试器中程序的状态、执行路径等信息来检测漏洞。
随着人工智能产业的兴起,网络安全技术领域中已经逐渐将深度学习引入并与众多安全检测技术进行结合以进一步地巩固网络的安全,因此在软件的安全漏洞检测方向上也在研究如何能够结合深度学习,以实现自动提取软件的行为信息,并检测出软件中的安全漏洞,从而提升对于软件网络安全漏洞的检测准确性和检测速度。
发明内容
本申请提供了一种基于深度学习的企业软件网络安全漏洞检测方法及系统,能够有效提升对于软件网络安全漏洞的检测准确性和检测速度。本申请提供如下技术方案:
第一方面,本申请提供一种基于深度学习的企业软件网络安全漏洞检测方法,所述方法包括:
获取目标软件的源代码,基于源代码生成对应的最小中间表示;
基于所述最小中间表示确定切片准则,对所述目标软件的源代码进行向量表示处理,生成输入数据;
获取代码数据集,其中所述代码数据集包括已知的有漏洞代码数据集、已知的无漏洞代码数据集和所述有漏洞代码数据集对应的漏洞以及漏洞类型,以所述有漏洞代码数据集以及所述无漏洞代码数据集为输入,有无漏洞和漏洞以及漏洞类型为输出对预设的神经网络模型进行训练得到软件安全漏洞检测模型;
将所述输入数据输入至所述软件安全漏洞检测模型,输出第一漏洞检测结果;
计算所述目标软件的源代码与所述代码数据集之间的相似度,匹配与所述目标软件的源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果;若判断匹配的代码数据是无漏洞数据,则无输出。
在一个具体的可实施方案中,所述获取目标软件的源代码,基于源代码生成对应的最小中间表示包括:
通过控制依赖和数据依赖分析将目标软件的源代码转换为程序依赖图;
依据过程间的调用关系连接所述程序依赖图,得到过程间的系统依赖图;
依据匹配规则在所述系统依赖图中定位关键操作,并对每一个关键操作执行向后可达性计算,得到漏洞关联子图;
按照代码执行顺序遍历所述漏洞关联子图获得语句序列,对所述语句序列应用词法分析得到最终token序列形式的中间表示。
在一个具体的可实施方案中,所述基于最小中间表示确定切片准则,对所述目标软件的源代码进行向量表示处理,生成输入数据包括:
根据所述最小中间表示的上下文关系以及结合漏洞敏感点准则确定切片准则;
根据所述切片准则对源代码进行切片处理得到代码切片,将代码切片进行向量处理,生成语句的向量形式,即将token序列形式转化为向量形式,将属于每条语句的token转化生成的向量按照顺序进行拼接,生成语句的向量形式;
将语句的向量形式作为输入数据。
在一个具体的可实施方案中,所述计算所述目标软件的源代码与所述代码数据集之间的相似度包括:
对源代码和代码数据集中的代码进行预处理;
使用分类器对预处理后的源代码和代码数据集中的代码进行分类,并对分类后的代码片段设置权重;
基于已知的训练数据集对分类器进行训练,在训练迭代中不断使用反向传播算法调整分类器参数,直至分类器的输出分类个数与实际分类个数之间的误差值为最小;
将分类的代码片段依次输入至CNN进行代码文本特征提取,随后CNN输出各代码片段的文本特征向量;
基于各代码片段输出的文本特征向量和权重分别计算源代码和代码数据集中的代码的最终向量,随后计算两个最终向量之间的相似度作为第一相似度;
分别计算源代码和代码数据集中的代码分类而成的各片段的文本特征向量之间的相似度,考虑最小误差值的情况下将所有代码片段的相似度相加并求平均值,生成第二相似度;
将第一相似度和第二相似度相加并求平均值,生成最终相似度。
在一个具体的可实施方案中,所述基于各代码片段输出的文本特征向量和权重分别计算源代码和代码数据集中的代码的最终向量,随后计算两个最终向量之间的相似度作为第一相似度包括:
CNN输出各代码片段的文本特征向量之后,需要将各个文本特征向量进行整合以形成源代码和代码数据集中的代码的最终文本特征向量;其中源代码的最终文本特征向量D1为:
其中代码数据集中的代码的最终文本特征向量D2为:
其中k为最小误差值,W1、W2、W3…Wn为源代码的代码片段的权重,W1’、W2’、W3’…Wn’为代码数据集中的代码的代码片段的权重,F1、F2、F3…Fn为源代码各代码片段对应的文本特征向量,G1、G2、G3…Gn为代码数据集中的代码的各代码片段对应的文本特征向量,n为分类的代码片段数量,随后通过余弦相似度计算源代码的最终文本特征向量D1和代码数据集中的代码的最终文本特征向量D2之间的相似度作为第一相似度。
在一个具体的可实施方案中,所述计算所述目标软件的源代码与所述代码数据集之间的相似度包括:
对源代码和代码数据集中的代码进行预处理;
基于代码程序选取源代码和代码数据集中的代码的特征;
利用正则表达式提取源代码和代码数据集中代码的特征向量;
基于逆向文件频率方法对特征向量进行加权处理;
通过夹角余弦法计算代码之间的相似度。
在一个具体的可实施方案中,所述方法还包括:
当没有输出第二漏洞检测结果时,第一漏洞检测结果即为最终的目标软件的漏洞检测结果;
当输出第二漏洞检测结果时,判断第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果;若是不存在交集,则重新将输入数据输入至软件安全漏洞检测模型并生成新的第一漏洞检测结果,再次判断新的第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将新的第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果;若是仍不存在交集,则将新的第一漏洞检测结果作为最终的目标软件的漏洞检测结果。
第二方面,本申请提供一种基于深度学习的企业软件网络安全漏洞检测系统,采用如下的技术方案:
一种基于深度学习的企业软件网络安全漏洞检测系统,包括:
源代码获取模块,用于获取目标软件的源代码,基于源代码生成对应的最小中间表示;
输入数据生成模块,用于基于所述最小中间表示确定切片准则,对所述目标软件的源代码进行向量表示处理,生成输入数据;
检测模型训练模块,用于获取代码数据集,其中所述代码数据集包括已知的有漏洞代码数据集、已知的无漏洞代码数据集和所述有漏洞代码数据集对应的漏洞以及漏洞类型,以所述有漏洞代码数据集以及所述无漏洞代码数据集为输入,有无漏洞和漏洞以及漏洞类型为输出对预设的神经网络模型进行训练得到软件安全漏洞检测模型;
第一漏洞检测结果生成模块,用于将所述输入数据输入至所述软件安全漏洞检测模型,输出第一漏洞检测结果;
第二漏洞检测结果生成模块,用于计算所述目标软件的源代码与所述代码数据集之间的相似度,匹配与所述目标软件的源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果;若判断匹配的代码数据是无漏洞数据,则无输出。
第三方面,本申请提供一种电子设备,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如第一方面所述的一种基于深度学习的企业软件网络安全漏洞检测方法。
第四方面,本申请提供一种计算机可读存储介质,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如第一方面所述的一种基于深度学习的企业软件网络安全漏洞检测方法。
综上所述,本申请的有益效果至少包括:
1)采用了两种完全不同的方法计算目标程序的源代码和代码数据集中的代码的相似度,当出现相似度过高的代码数据出现过多时,能够使用另一种计算方式再次进行筛选,从而筛选出最为相似的代码数据。
2)训练生成的软件安全漏洞检测模型是动态实时训练的,具体的,由于代码数据集是不断更新的,因此每隔一段时间便会重新获取新的代码数据集对软件安全漏洞检测模型进行训练,从而尽可能保证模型的训练精度。
3)由于软件安全漏洞检测模型存在检测失误的情况,因此增加了校验环节,当第一漏洞检测结果生成之后,匹配出相似度最高的代码数据,若是代码数据为有漏洞数据,那么由于相似度较高,那么存在的漏洞类型也会较为相似,因此以相似度最高的代码数据所对应生成的第二漏洞检测结果为一个辅助参考标准,通过交集的形式与第一漏洞检测结果进行判断。若是存在交集,则将两者合并作为最终的目标软件的漏洞检测结果,若是没有交集,再增加一个校验环节,此处的校验环节有两种方式,一是生成新的第一漏洞检测结果,二是利用两种不同的相似度计算方式计算两个新的第二漏洞检测结果。若还是没有交集,则承认软件安全漏洞检测模型输出的第一漏洞检测结果是正确的。通过增加两次的校验环节提升软件漏洞检测时的准确性。
通过将获取到的需要测试的目标软件的软件码转化为最小中间表示,随后基于最小中间表示确定切片准则,对目标软件的源代码进行向量表示处理,生成适合之后神经网络模型的输入数据。再根据代码数据集训练神经网络模型生成软件安全漏洞检测模型,将输入数据输入至软件安全漏洞检测模型后生成第一漏洞检测结果,同时通过计算目标软件的源代码与代码数据集之间的相似度,匹配出最为相似的代码数据并将其对应的漏洞生成为第二漏洞检测结果,相当于利用相似度计算扩大了目标软件的检测范围,并生成更多的漏洞检测结果,同时在神经网络模型的分析下能够有效提升检测结果生成速度,从而有效提升对于软件网络安全漏洞的检测准确性和检测速度。
上述说明仅是本申请技术方案的概述,为了能够更清楚了解本申请的技术手段,并可依照说明书的内容予以实施,以下以本申请的较佳实施例并配合附图详细说明如后。
附图说明
图1是本申请实施例中基于深度学习的企业软件网络安全漏洞检测方法的流程示意图。
图2是本申请实施例中基于源代码生成对应的最小中间表示的流程示意图。
图3是本申请实施例中基于源代码生成对应的最小中间表示的用例示意图。
图4是本申请实施例中基于CNN进行代码相似度计算的流程示意图。
图5是本申请实施例中基于CNN进行代码相似度计算的整体示意图。
图6是本申请实施例中基于特征向量进行代码相似度计算的流程示意图。
图7是本申请实施例中基于深度学习的企业软件网络安全漏洞检测方法的整体流程示意图。
图8是本申请实施例中基于深度学习的企业软件网络安全漏洞检测系统的结构框图。
图9是本申请实施例中基于深度学习的企业软件网络安全漏洞检测的电子设备的框图。
具体实施方式
为使本申请的上述目的、特征和优点能够更为明显易懂,下面结合附图,对本申请的具体实施方式做详细的说明。可以理解的是,此处所描述的具体实施例仅用于解释本申请,而非对本申请的限定。另外还需要说明的是,为了便于描述,附图中仅示出了与本申请相关的部分而非全部结构。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其它实施例,都属于本申请保护的范围。
本申请中的术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其它步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
可选地,本申请以各个实施例提供的基于深度学习的企业软件网络安全漏洞检测方法用于电子设备中为例进行说明,该电子设备为终端或服务器,终端可以为计算机、平板电脑等,本实施例不对电子设备的类型作限定。
参照图1,是本申请一个实施例提供的基于深度学习的企业软件网络安全漏洞检测方法的流程示意图,该方法至少包括以下几个步骤:
步骤S101,获取目标软件的源代码,基于源代码生成对应的最小中间表示。
步骤S102,基于最小中间表示确定切片准则,对目标软件的源代码进行向量表示处理,生成输入数据。
步骤S103,获取代码数据集,其中代码数据集包括已知的有漏洞代码数据集、已知的无漏洞代码数据集和有漏洞代码数据集对应的漏洞以及漏洞类型,以有漏洞代码数据集以及无漏洞代码数据集为输入,有无漏洞和漏洞以及漏洞类型为输出对预设的神经网络模型进行训练得到软件安全漏洞检测模型。
步骤S104,将输入数据输入至软件安全漏洞检测模型,输出第一漏洞检测结果。
步骤S105,计算目标软件的源代码与代码数据集之间的相似度,匹配与目标软件的源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果。若判断匹配的代码数据是无漏洞数据,则无输出。
根据本申请实施例的方案,首先将获取到的需要测试的目标软件的软件码转化为最小中间表示,随后基于最小中间表示确定切片准则,对目标软件的源代码进行向量表示处理,生成适合之后神经网络模型的输入数据。再根据代码数据集训练神经网络模型生成软件安全漏洞检测模型,将输入数据输入至软件安全漏洞检测模型后生成第一漏洞检测结果,同时通过计算目标软件的源代码与代码数据集之间的相似度,匹配出最为相似的代码数据并将其对应的漏洞生成为第二漏洞检测结果,相当于利用相似度计算扩大了目标软件的检测范围,并生成更多的漏洞检测结果,同时在神经网络模型的分析下能够有效提升检测结果生成速度,从而有效提升对于软件网络安全漏洞的检测准确性和检测速度。
在步骤S101中,目标软件的源代码中可能存在大量无关代码,这些无关代码可能会作为噪声干扰之后软件安全漏洞检测模型的深度学习,因此首先通过预处理将源代码转化为顺序结构的最小中间表示,这个最小中间表示是在源代码层面以关键操作为核心、剔除无关代码后转化而成的token序列。
参照图2,是本申请一个实施例提供的基于源代码生成对应的最小中间表示的流程示意图,该步骤包括:
S1011、通过控制依赖和数据依赖分析将目标软件的源代码转换为程序依赖图。
S1012、依据过程间的调用关系连接程序依赖图,得到过程间的系统依赖图。
具体的,对不同程序依赖图的函数调用语句与被调用函数的声明语句之间添加数据依赖边,对函数返回语句与调用语句添加数据依赖边。
S1013、依据匹配规则在系统依赖图中定位关键操作,并对每一个关键操作执行向后可达性计算,得到漏洞关联子图。
S1014、按照代码执行顺序遍历漏洞关联子图获得语句序列,对语句序列应用词法分析得到最终token序列形式的中间表示。
参照图3,为本申请一个实施例提供的基于源代码生成对应的最小中间表示的用例示意图,由图可知,图中的源代码被转换成token序列形式的最小中间表示。
可选地,获取目标软件的源代码的方式包括但不限于通过官方网站或者版本控制系统例如GitHub获取、在软件发行方的授权下获取以及通过版本控制工具中的命令行或者图形界面工具下载等。本申请不对获取目标软件的源代码的方式做出限制。
在步骤S102中,首先根据源代码的最小中间表示的上下文关系以及结合漏洞敏感点准则确定切片准则,再根据切片准则对源代码进行切片处理得到代码切片,将代码切片进行向量处理,生成语句的向量形式,即将token序列形式转化为向量形式,将属于每条语句的token转化生成的向量按照顺序进行拼接,从而生成语句的向量形式,最后将语句的向量形式作为输入数据。
在步骤S103中,利用代码数据集训练生成软件安全漏洞检测模型时,输入的有漏洞代码数据集以及无漏洞代码数据集的形式与步骤S102中的输入数据的形式是一致的。
在实施中,训练生成的软件安全漏洞检测模型是动态实时训练的,具体的,由于代码数据集是不断更新的,因此每隔一段时间便会重新获取新的代码数据集对软件安全漏洞检测模型进行训练,从而尽可能保证模型的训练精度。
可选地,代码数据集的获取可以从公开的代码数据库例如Github等获取,也可以从过往软件漏洞的研究材料中获取,本申请不对代码数据集的获取方式做出限制。
在步骤105中,计算目标软件的源代码与代码数据集之间的相似度有两种方式,分别是基于CNN进行代码相似度计算以及基于特征向量进行代码相似度计算。在实施中,通过将两种相似度计算方式作为预设神经网络模型中的隐含层,使用预设神经网络模型对目标程序的源代码与代码数据集中的代码进行批量计算。
参照图4,为本申请一个实施例提供的基于CNN进行代码相似度计算的流程示意图,CNN即卷积神经网络,卷积神经网络是计算机视觉中目前较为高效的特征提取方法,在自然语言处理任务中也有较好的表现,CNN通过层层堆叠的结构从图像原像素点中抽取特征,由于代码文本的词颗粒很小,类比CNN提取像素点的方式,因此本申请尝试通过CNN提取代码文本特征。基于CNN进行代码相似度计算的具体步骤包括:
S1051、对源代码和代码数据集中的代码进行预处理。
在实施中,首先对目标程序的源代码和代码数据集中的代码进行预处理,删除掉代码中的注释、空格等无关内容。
S1052、使用分类器对预处理后的源代码和代码数据集中的代码进行分类,并对分类后的代码片段设置权重。
具体的,源代码和代码数据集中的代码经过预处理后,根据预设定的分类条件使用分类器对代码进行分类,其中分类条件包括但不限于代码功能分类、代码质量评估分类、代码异常检测分类等。随后根据分类条件对分类后的代码片段设置权重,例如分类条件为代码质量评估分类时,质量越高的代码所对应的权重值也就越大。需要注意的是,设置分类器对源代码和代码数据集中的代码所分类而成的代码片段的数量是一致的。
在实施中,参照图5,为本申请一个实施例提供的基于CNN进行代码相似度计算的整体示意图,代码经过预处理之后,源代码被分类器分类成n段代码片段,如图中的T1、T2、T3…Tn,代码数据集中的代码同样被分类器分类成n段代码片段,如图中的T1’、T2’、T3’…Tn’,随后设置源代码的代码片段的权重分别为W1、W2、W3…Wn,代码数据集中的代码的代码片段的权重分别为W1’、W2’、W3’…Wn’。
S1053、基于已知的训练数据集对分类器进行训练,在训练迭代中不断使用反向传播算法调整分类器参数,直至分类器的输出分类个数与实际分类个数之间的误差值为最小。
具体的,准备包含特征和对应类别的训练数据集对分类器进行训练,并将训练得出的分类结果(即分类片段个数)与对应类别数进行比对,得出误差值。随后在每个训练迭代中均使用反向传播算法调整分类器的参数,直至误差值为最小且不再变化,此时记录最小误差值为k,其中k为正整数或负整数。
S1054、将分类的代码片段依次输入至CNN进行代码文本特征提取,随后CNN输出各代码片段的文本特征向量。
在实施中,参照图5,源代码的各个代码片段输入至CNN后,经过卷积层的文本特征提取得到了各代码片段对应的文本特征向量F1、F2、F3…Fn,代码数据集中的代码的各个代码片段输入至CNN后,经过卷积层的文本特征提取得到了各代码片段对应的文本特征向量G1、G2、G3…Gn。
S1055、基于各代码片段输出的文本特征向量和权重分别计算源代码和代码数据集中的代码的最终向量,随后计算两个最终向量之间的相似度作为第一相似度。
具体的,CNN输出各代码片段的文本特征向量之后,需要将各个文本特征向量进行整合以形成源代码和代码数据集中的代码的最终文本特征向量。其中源代码的最终文本特征向量D1为:
其中代码数据集中的代码的最终文本特征向量D2为:
随后通过余弦相似度计算源代码的最终文本特征向量D1和代码数据集中的代码的最终文本特征向量D2之间的相似度作为第一相似度S1。
S1056、分别计算源代码和代码数据集中的代码分类而成的各片段的文本特征向量之间的相似度,考虑最小误差值的情况下将所有代码片段的相似度相加并求平均值,生成第二相似度。
在实施中,CNN输出各代码片段的文本特征向量之后,首先通过余弦相似度计算源代码和代码数据集中的代码中对应分类代码片段之间的相似度C,再将所有代码片段计算得出的相似度C相加并求平均值,生成第二相似度S2。
具体的,相似度C的计算公式如下:
其中m为选取的代码片段,/>。
第二相似度S2的计算公式如下:
S1057、将第一相似度和第二相似度相加并求平均值,生成最终相似度。
具体的,计算得到第一相似度S1和第二相似度S2之后,将第一相似度和第二相似度相加并求得平均值作为最终相似度。
参照图6,为本申请一个实施例提供的基于特征向量进行代码相似度计算的流程示意图,该步骤包括:
S1051’、对源代码和代码数据集中的代码进行预处理。
具体的,代码中的一些无关字符,例如头文件、空格、空行、注释行等可能会影响后续代码特征的提取,因此要先把这些与代码相似性无关的信息剔除,预处理不仅能使代码特征的提取更为精准,还可以使代码精简,从而加快相似度计算的速度。
S1052’、基于代码程序选取源代码和代码数据集中的代码的特征。
具体的,根据不同编译程序需要选取不同的代码特征,例如C程序的代码,“for、if、while”即为C语言的基本语法要素。根据不同的程序提取对应的代码特征能提升代码相似度的准确度。
S1053’、利用正则表达式提取源代码和代码数据集中代码的特征向量。
具体的,首先构建一个语法特征词与正则表达式的对应关系表,根据正则表达式在对代码提取特征词的过程中过构建正则特征向量,即每提取一个特征词就生成一个对应的特征向量。
S1054’、基于逆向文件频率方法对特征向量进行加权处理。
因为语法特征词的重要程度不同,不能简单地用这些特征词分别在两段代码中出现的次数所构成的特征向量的对比检测得出两段代码的相似度,因此需要根据每个特征词的重要程度来对特征向量中的相应元素进行加权处理。
可选地,本申请选用逆向文件频率方法对特征向量进行加权处理,也可以选取其他方法进行加权处理,本申请不对加权处理的方法做出限制。
S1055’、通过夹角余弦法计算代码之间的相似度。
具体的,经过上述处理两段代码基本可以由从中提取的经加权的特征向量来表示,因此检测两段代码的相似度,只需要检测两段代码对应的特征向量之间的相似度即可。其中相似度计算方法采用空间向量模型中的夹角余弦法来度量两个特征向量之间的相似度,进而得到两段代码之间的相似度。夹角余弦的表达式为:
其中:x和y表示需检测的两段代码经加权处理过的特征向量。夹角余弦的取值范围为[0,1],夹角余弦的值越接近1,说明两段代码越相似。
综上所述,本申请采用了两种完全不同的方法计算目标程序的源代码和代码数据集中的代码的相似度,当出现相似度过高的代码数据出现过多时,能够使用另一种计算方式再次进行筛选,从而筛选出最为相似的代码数据。
参照图7,是本申请一个实施例提供的基于深度学习的企业软件网络安全漏洞检测方法的整体流程示意图。该实施例中,该漏洞检测方法除包含前述步骤S101至步骤S105之外,还包括:
步骤S106,当没有输出第二漏洞检测结果时,第一漏洞检测结果即为最终的目标软件的漏洞检测结果。
步骤S107,当输出第二漏洞检测结果时,基于第一漏洞检测结果以及第二漏洞检测结果是否存在交集生成最终的目标软件的漏洞检测结果。
具体的,判断第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果。若是不存在交集,则重新将输入数据输入至软件安全漏洞检测模型并生成新的第一漏洞检测结果,再次判断新的第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将新的第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果。若是仍不存在交集,则将新的第一漏洞检测结果作为最终的目标软件的漏洞检测结果。
可选地,步骤S107的具体实施方式也可以是以下步骤:
具体的,判断第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果。若是不存在交集,则通过S105中的两种相似度计算方式同时计算目标软件的源代码与代码数据集之间的相似度,分别匹配出最为相似的代码数据集。
在实施中,若是匹配出的为同一个代码数据且为有漏洞数据,则生成对应的新的第二漏洞检测结果,并重新判断新的第二漏洞检测结果与第一漏洞检测结果是否存在交集,若是存在则将两者合并生成最终的目标软件的漏洞检测结果。若是仍不存在,则将第一漏洞检测结果作为最终的目标软件的漏洞检测结果。若是匹配出的为同一个代码数据且为无漏洞数据,则直接将第一漏洞检测结果作为最终的目标软件的漏洞检测结果。
在实施中,若是两种相似度计算方式匹配出的为不同的代码数据且均为有漏洞数据,则通过两个有漏洞数据分别对应生成新的第三漏洞检测结果和第四漏洞检测结果,判断第一漏洞检测结果、第三漏洞检测结果和第四漏洞检测结果之间是否存在交集,若是第一漏洞检测结果与其他两个结果不存在交集,则直接将第一漏洞检测结果作为最终的目标软件的漏洞检测结果。若是第一漏洞检测结果与其他两个结果存在交集,则将存在交集的结果进行合并生成最终的目标软件的漏洞检测结果。若是两种相似度计算方式匹配出的为不同的代码数据且均为无漏洞数据,则直接将第一漏洞检测结果作为最终的目标软件的漏洞检测结果。若是两种相似度计算方式匹配出的为不同的代码数据且一个为有漏洞数据,另一个为无漏洞数据,则通过有漏洞数据生成对应的新的第二漏洞检测结果,并重新判断新的第二漏洞检测结果与第一漏洞检测结果是否存在交集,若是存在则将两者合并生成最终的目标软件的漏洞检测结果。若是仍不存在,则将第一漏洞检测结果作为最终的目标软件的漏洞检测结果。
综上所述,由于软件安全漏洞检测模型存在检测失误的情况,因此增加了校验环节,具体的,当第一漏洞检测结果生成之后,匹配出相似度最高的代码数据,若是代码数据为有漏洞数据,那么由于相似度较高,那么存在的漏洞类型也会较为相似,因此以相似度最高的代码数据所对应生成的第二漏洞检测结果为一个辅助参考标准,通过交集的形式与第一漏洞检测结果进行判断。若是存在交集,则将两者合并作为最终的目标软件的漏洞检测结果,若是没有交集,再增加一个校验环节,参考上述内容,此处的校验环节有两种方式,一是生成新的第一漏洞检测结果,二是利用两种不同的相似度计算方式计算两个新的第二漏洞检测结果。若还是没有交集,则承认软件安全漏洞检测模型输出的第一漏洞检测结果是正确的。通过增加两次的校验环节提升软件漏洞检测时的准确性。
图8是本申请一个实施例提供的基于深度学习的企业软件网络安全漏洞检测系统的结构框图。该装置至少包括以下几个模块:
源代码获取模块,用于获取目标软件的源代码,基于源代码生成对应的最小中间表示。
输入数据生成模块,用于基于最小中间表示确定切片准则,对目标软件的源代码进行向量表示处理,生成输入数据。
检测模型训练模块,用于获取代码数据集,其中代码数据集包括已知的有漏洞代码数据集、已知的无漏洞代码数据集和有漏洞代码数据集对应的漏洞以及漏洞类型,以有漏洞代码数据集以及无漏洞代码数据集为输入,有无漏洞和漏洞以及漏洞类型为输出对预设的神经网络模型进行训练得到软件安全漏洞检测模型。
第一漏洞检测结果生成模块,用于将输入数据输入至软件安全漏洞检测模型,输出第一漏洞检测结果。
第二漏洞检测结果生成模块,用于计算目标软件的源代码与代码数据集之间的相似度,匹配与目标软件的源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果。若判断匹配的代码数据是无漏洞数据,则无输出。
相关细节参考上述方法实施例。
图9是本申请一个实施例提供的电子设备的框图。该设备至少包括处理器401和存储器402。
处理器401可以包括一个或多个处理核心,比如:4核心处理器、8核心处理器等。处理器401可以采用DSP(Digital Signal Processing,数字信号处理)、FPGA(Field-Programmable Gate Array,现场可编程门阵列)、PLA(Programmable Logic Array,可编程逻辑阵列)中的至少一种硬件形式来实现。处理器401也可以包括主处理器和协处理器,主处理器是用于对在唤醒状态下的数据进行处理的处理器,也称CPU(Central ProcessingUnit,中央处理器);协处理器是用于对在待机状态下的数据进行处理的低功耗处理器。在一些实施例中,处理器401可以在集成有GPU(Graphics Processing Unit,图像处理器),GPU用于负责显示屏所需要显示的内容的渲染和绘制。一些实施例中,处理器401还可以包括AI(Artificial Intelligence,人工智能)处理器,该AI处理器用于处理有关机器学习的计算操作。
存储器402可以包括一个或多个计算机可读存储介质,该计算机可读存储介质可以是非暂态的。存储器402还可包括高速随机存取存储器,以及非易失性存储器,比如一个或多个磁盘存储设备、闪存存储设备。在一些实施例中,存储器402中的非暂态的计算机可读存储介质用于存储至少一个指令,该至少一个指令用于被处理器401所执行以实现本申请中方法实施例提供的基于深度学习的企业软件网络安全漏洞检测方法。
在一些实施例中,电子设备还可选包括有:外围设备接口和至少一个外围设备。处理器401、存储器402和外围设备接口之间可以通过总线或信号线相连。各个外围设备可以通过总线、信号线或电路板与外围设备接口相连。示意性地,外围设备包括但不限于:射频电路、触摸显示屏、音频电路、和电源等。
当然,电子设备还可以包括更少或更多的组件,本实施例对此不作限定。
可选地,本申请还提供有一种计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的基于深度学习的企业软件网络安全漏洞检测方法。
可选地,本申请还提供有一种计算机产品,该计算机产品包括计算机可读存储介质,计算机可读存储介质中存储有程序,程序由处理器加载并执行以实现上述方法实施例的基于深度学习的企业软件网络安全漏洞检测方法。
以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上实施例仅表达了本申请的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本申请构思的前提下,还可以做出若干变形和改进,这些都属于本申请的保护范围。因此,本申请专利的保护范围应以所附权利要求为准。
Claims (9)
1.一种基于深度学习的企业软件网络安全漏洞检测方法,其特征在于,所述方法包括:
获取目标软件的源代码,基于源代码生成对应的最小中间表示;
基于所述最小中间表示确定切片准则,对所述目标软件的源代码进行向量表示处理,生成输入数据;
获取代码数据集,其中所述代码数据集包括已知的有漏洞代码数据集、已知的无漏洞代码数据集和所述有漏洞代码数据集对应的漏洞以及漏洞类型,以所述有漏洞代码数据集以及所述无漏洞代码数据集为输入,有无漏洞和漏洞以及漏洞类型为输出对预设的神经网络模型进行训练得到软件安全漏洞检测模型;
将所述输入数据输入至所述软件安全漏洞检测模型,输出第一漏洞检测结果;
计算所述目标软件的源代码与所述代码数据集之间的相似度,匹配与所述目标软件的源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果;若判断匹配的代码数据是无漏洞数据,则无输出;
当没有输出第二漏洞检测结果时,第一漏洞检测结果即为最终的目标软件的漏洞检测结果;
当输出第二漏洞检测结果时,判断第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果;若是不存在交集,则重新将输入数据输入至软件安全漏洞检测模型并生成新的第一漏洞检测结果,再次判断新的第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将新的第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果;若是仍不存在交集,则将新的第一漏洞检测结果作为最终的目标软件的漏洞检测结果。
2.根据权利要求1所述的基于深度学习的企业软件网络安全漏洞检测方法,其特征在于,所述获取目标软件的源代码,基于源代码生成对应的最小中间表示包括:
通过控制依赖和数据依赖分析将目标软件的源代码转换为程序依赖图;
依据过程间的调用关系连接所述程序依赖图,得到过程间的系统依赖图;
依据匹配规则在所述系统依赖图中定位关键操作,并对每一个关键操作执行向后可达性计算,得到漏洞关联子图;
按照代码执行顺序遍历所述漏洞关联子图获得语句序列,对所述语句序列应用词法分析得到最终token序列形式的中间表示。
3.根据权利要求2所述的基于深度学习的企业软件网络安全漏洞检测方法,其特征在于,所述基于所述最小中间表示确定切片准则,对所述目标软件的源代码进行向量表示处理,生成输入数据包括:
根据所述最小中间表示的上下文关系以及结合漏洞敏感点准则确定切片准则;
根据所述切片准则对源代码进行切片处理得到代码切片,将代码切片进行向量处理,生成语句的向量形式,即将token序列形式转化为向量形式,将属于每条语句的token转化生成的向量按照顺序进行拼接,生成语句的向量形式;
将语句的向量形式作为输入数据。
4.根据权利要求1所述的基于深度学习的企业软件网络安全漏洞检测方法,其特征在于,所述计算所述目标软件的源代码与所述代码数据集之间的相似度包括:
对源代码和代码数据集中的代码进行预处理;
使用分类器对预处理后的源代码和代码数据集中的代码进行分类,并对分类后的代码片段设置权重;
基于已知的训练数据集对分类器进行训练,在训练迭代中不断使用反向传播算法调整分类器参数,直至分类器的输出分类个数与实际分类个数之间的误差值为最小;
将分类的代码片段依次输入至CNN进行代码文本特征提取,随后CNN输出各代码片段的文本特征向量;
基于各代码片段输出的文本特征向量和权重分别计算源代码和代码数据集中的代码的最终向量,随后计算两个最终向量之间的相似度作为第一相似度;
分别计算源代码和代码数据集中的代码分类而成的各片段的文本特征向量之间的相似度,考虑最小误差值的情况下将所有代码片段的相似度相加并求平均值,生成第二相似度;
将第一相似度和第二相似度相加并求平均值,生成最终相似度。
5.根据权利要求4所述的基于深度学习的企业软件网络安全漏洞检测方法,其特征在于,所述基于各代码片段输出的文本特征向量和权重分别计算源代码和代码数据集中的代码的最终向量,随后计算两个最终向量之间的相似度作为第一相似度包括:
CNN输出各代码片段的文本特征向量之后,需要将各个文本特征向量进行整合以形成源代码和代码数据集中的代码的最终文本特征向量;其中源代码的最终文本特征向量D1为:
其中代码数据集中的代码的最终文本特征向量D2为:
其中k为最小误差值,W1、W2、W3…Wn为源代码的代码片段的权重,W1’、W2’、W3’…Wn’为代码数据集中的代码的代码片段的权重,F1、F2、F3…Fn为源代码各代码片段对应的文本特征向量,G1、G2、G3…Gn为代码数据集中的代码的各代码片段对应的文本特征向量,n为分类的代码片段数量,随后通过余弦相似度计算源代码的最终文本特征向量D1和代码数据集中的代码的最终文本特征向量D2之间的相似度作为第一相似度。
6.根据权利要求1所述的基于深度学习的企业软件网络安全漏洞检测方法,其特征在于,所述计算所述目标软件的源代码与所述代码数据集之间的相似度包括:
对源代码和代码数据集中的代码进行预处理;
基于代码程序选取源代码和代码数据集中的代码的特征;
利用正则表达式提取源代码和代码数据集中代码的特征向量;
基于逆向文件频率方法对特征向量进行加权处理;
通过夹角余弦法计算代码之间的相似度。
7.一种基于深度学习的企业软件网络安全漏洞检测系统,其特征在于,包括:
源代码获取模块,用于获取目标软件的源代码,基于源代码生成对应的最小中间表示;
输入数据生成模块,用于基于所述最小中间表示确定切片准则,对所述目标软件的源代码进行向量表示处理,生成输入数据;
检测模型训练模块,用于获取代码数据集,其中所述代码数据集包括已知的有漏洞代码数据集、已知的无漏洞代码数据集和所述有漏洞代码数据集对应的漏洞以及漏洞类型,以所述有漏洞代码数据集以及所述无漏洞代码数据集为输入,有无漏洞和漏洞以及漏洞类型为输出对预设的神经网络模型进行训练得到软件安全漏洞检测模型;
第一漏洞检测结果生成模块,用于将所述输入数据输入至所述软件安全漏洞检测模型,输出第一漏洞检测结果;
第二漏洞检测结果生成模块,用于计算所述目标软件的源代码与所述代码数据集之间的相似度,匹配与所述目标软件的源代码最为相似的代码数据,若判断匹配的代码数据是有漏洞数据,则将有漏洞数据的对应漏洞以及漏洞类型输出为第二漏洞检测结果;若判断匹配的代码数据是无漏洞数据,则无输出;当没有输出第二漏洞检测结果时,第一漏洞检测结果即为最终的目标软件的漏洞检测结果;
当输出第二漏洞检测结果时,判断第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果;若是不存在交集,则重新将输入数据输入至软件安全漏洞检测模型并生成新的第一漏洞检测结果,再次判断新的第一漏洞检测结果与第二漏洞检测结果是否存在交集,若是存在交集,则将新的第一漏洞检测结果与第二漏洞检测结果进行合并生成为最终的目标软件的漏洞检测结果;若是仍不存在交集,则将新的第一漏洞检测结果作为最终的目标软件的漏洞检测结果。
8.一种电子设备,其特征在于,所述设备包括处理器和存储器;所述存储器中存储有程序,所述程序由所述处理器加载并执行以实现如权利要求1至6任一项所述的一种基于深度学习的企业软件网络安全漏洞检测方法。
9.一种计算机可读存储介质,其特征在于,所述存储介质中存储有程序,所述程序被处理器执行时用于实现如权利要求1至6任一项所述的一种基于深度学习的企业软件网络安全漏洞检测方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311606393.6A CN117319091B (zh) | 2023-11-29 | 2023-11-29 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311606393.6A CN117319091B (zh) | 2023-11-29 | 2023-11-29 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117319091A CN117319091A (zh) | 2023-12-29 |
CN117319091B true CN117319091B (zh) | 2024-02-09 |
Family
ID=89250284
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311606393.6A Active CN117319091B (zh) | 2023-11-29 | 2023-11-29 | 基于深度学习的企业软件网络安全漏洞检测方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117319091B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783100A (zh) * | 2020-06-22 | 2020-10-16 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
CN112613040A (zh) * | 2020-12-14 | 2021-04-06 | 中国科学院信息工程研究所 | 一种基于二进制程序的漏洞检测方法及相关设备 |
CN114861194A (zh) * | 2022-05-13 | 2022-08-05 | 兰州交通大学 | 一种基于bgru与cnn融合模型的多类型漏洞检测方法 |
CN115357904A (zh) * | 2022-07-29 | 2022-11-18 | 南京航空航天大学 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
CN115859302A (zh) * | 2022-12-05 | 2023-03-28 | 广东电网有限责任公司 | 源代码漏洞检测方法、装置、设备及存储介质 |
CN116578980A (zh) * | 2023-06-29 | 2023-08-11 | 中国工商银行股份有限公司 | 基于神经网络的代码分析方法及其装置、电子设备 |
CN116955768A (zh) * | 2022-10-14 | 2023-10-27 | 中国移动通信集团有限公司 | 漏洞推荐方法、装置、设备及存储介质 |
-
2023
- 2023-11-29 CN CN202311606393.6A patent/CN117319091B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111783100A (zh) * | 2020-06-22 | 2020-10-16 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
CN112613040A (zh) * | 2020-12-14 | 2021-04-06 | 中国科学院信息工程研究所 | 一种基于二进制程序的漏洞检测方法及相关设备 |
CN114861194A (zh) * | 2022-05-13 | 2022-08-05 | 兰州交通大学 | 一种基于bgru与cnn融合模型的多类型漏洞检测方法 |
CN115357904A (zh) * | 2022-07-29 | 2022-11-18 | 南京航空航天大学 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
CN116955768A (zh) * | 2022-10-14 | 2023-10-27 | 中国移动通信集团有限公司 | 漏洞推荐方法、装置、设备及存储介质 |
CN115859302A (zh) * | 2022-12-05 | 2023-03-28 | 广东电网有限责任公司 | 源代码漏洞检测方法、装置、设备及存储介质 |
CN116578980A (zh) * | 2023-06-29 | 2023-08-11 | 中国工商银行股份有限公司 | 基于神经网络的代码分析方法及其装置、电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN117319091A (zh) | 2023-12-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109426722B (zh) | Sql注入缺陷检测方法、系统、设备及存储介质 | |
CN111881983B (zh) | 基于分类模型的数据处理方法、装置、电子设备及介质 | |
KR102090423B1 (ko) | 동적 api 추출 기반의 애플리케이션 악성코드 탐지 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
JP2010002370A (ja) | パターン抽出プログラム、方法及び装置 | |
KR20190031030A (ko) | 바이너리 파일에 기초하여 오픈소스 소프트웨어 패키지를 식별하는 방법 및 시스템 | |
CN106649221A (zh) | 重复文本的检测方法及装置 | |
CN115510795A (zh) | 一种数据处理方法以及相关装置 | |
CN106874760A (zh) | 一种基于层次式SimHash的Android恶意代码分类方法 | |
CN113849760A (zh) | 敏感信息风险评估方法、系统和存储介质 | |
Li et al. | Open source software security vulnerability detection based on dynamic behavior features | |
CN114036531A (zh) | 一种基于多尺度代码度量的软件安全漏洞检测方法 | |
Henriksen et al. | Bias Field Robustness Verification of Large Neural Image Classifiers. | |
CN111062034A (zh) | 一种Webshell文件检测方法、装置、电子设备及存储介质 | |
US11176311B1 (en) | Enhanced section detection using a combination of object detection with heuristics | |
CN117319091B (zh) | 基于深度学习的企业软件网络安全漏洞检测方法及系统 | |
CN116628600A (zh) | 基于随机森林的不平衡数据采样方法及装置 | |
CN111582647A (zh) | 用户数据处理方法、装置及电子设备 | |
CN116248412A (zh) | 共享数据资源异常检测方法、系统、设备、存储器及产品 | |
CN110544166A (zh) | 样本生成方法、装置及存储介质 | |
CN113836297B (zh) | 文本情感分析模型的训练方法及装置 | |
CN115205619A (zh) | 检测模型的训练方法、检测方法、装置和存储介质 | |
US20220027612A1 (en) | Detecting and processing sections spanning processed document partitions | |
Kuo et al. | Malware Detection Based on Image Conversion | |
CN108255802B (zh) | 通用文本解析架构及基于所述架构解析文本的方法和装置 | |
CN112183714A (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 |