CN107885999B - 一种基于深度学习的漏洞检测方法及*** - Google Patents
一种基于深度学习的漏洞检测方法及*** Download PDFInfo
- Publication number
- CN107885999B CN107885999B CN201711089352.9A CN201711089352A CN107885999B CN 107885999 B CN107885999 B CN 107885999B CN 201711089352 A CN201711089352 A CN 201711089352A CN 107885999 B CN107885999 B CN 107885999B
- Authority
- CN
- China
- Prior art keywords
- candidate code
- code segments
- vulnerability
- program
- library
- 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
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
- 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/033—Test or assess software
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本发明公开了一种基于深度学习的漏洞检测方法及***,其中方法包括离线漏洞分类器训练和在线漏洞检测两部分。离线漏洞分类器训练的过程如下:对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,这些向量输入到神经网络模型进行训练,最后输出漏洞分类器。在线漏洞检测的过程如下:对目标程序提取库/API函数调用候选代码段,并将候选代码段转换为向量,然后采用训练好的漏洞分类器来分类候选代码段,最后输出分类结果为含漏洞的代码段。本发明自动生成针对库/API函数调用的漏洞特征,不依赖于专家知识,不局限于漏洞类型,同时能显著降低目标程序中漏洞检测的误报率和漏报率,并给出漏洞位置。
Description
技术领域
本发明属于漏洞检测研究中基于漏洞特征的漏洞检测领域,更具体地,涉及一种基于深度学习的漏洞检测方法及***。
背景技术
目前绝大部分的安全问题是由不安全的代码导致的。尽管开发人员代码安全意识在提高,但软件中的安全问题仍日益突出。2010年,在Common Vulnerabilities andExposures(CVE)中登记了约4600个漏洞;2016年,登记了接近6500个漏洞,发布的漏洞数量成上涨趋势。因此,尽早地发现漏洞是解决软件安全问题的关键。
静态漏洞检测,由于具有检测速度快、较全面地考虑执行路径的信息等优点,被代码审计人员广泛用来发现软件源码中潜在的漏洞。其中,通过漏洞特征来检测漏洞是经常采用的方法。这种漏洞特征可以是专家分析得出的漏洞规则,也可以是从漏洞历史信息或漏洞代码学习得到的特征。
目前基于漏洞特征来检测漏洞的工具和研究主要分为3类。第一类是安全专家依据经验人工生成各类漏洞的特征。例如开源软件工具Flawfinder,RATS,ITS4等,商业软件工具Checkmarx,Fortify,CodeSonar,Coverity等以规则形式的各类漏洞特征。由于人工处理很难将各类漏洞的特征考虑全面,这些漏洞检测工具通常具有较高的误报率或漏报率。第二类是针对单一类型的漏洞,如格式化字符串漏洞、信息泄露漏洞、污点类型漏洞等,在单一类型漏洞原理的基础上借助传统机器学习等方法,半自动化生成该类漏洞的特征。这类方法受限于单一漏洞类型,且依赖该类漏洞的专家知识辅助生成特征。第三类是与漏洞类型无关的半自动化生成漏洞特征,需要专家定义属性,例如,词和词频、复杂度、代码变化、API和API子树、***调用等,采用传统机器学习方法在函数、构件或文件等级别判断是否含有漏洞。该类方法需要专家定义刻画漏洞的属性,而且由于在函数、构件或文件等粗粒度级别,无法确定漏洞的具***置。
发明内容
针对现有技术方案的缺陷或改进需求,考虑到大量软件安全问题与库/API函数的使用不当有关,本发明面向库/API函数调用,提供了一种基于深度学习的漏洞检测方法及***,其目的在于,在不依赖于专家知识自动生成漏洞特征、不局限于漏洞类型、且能够定位的同时,显著降低漏洞检测的误报率和漏报率,解决现有的基于漏洞特征检测漏洞方法中存在的上述局限和不足。
为实现上述目的,按照本发明的一个方面,提出了一种基于深度学习的漏洞检测方法,其特征在于,所述方法包括:
一种基于深度学习的漏洞检测方法,包括:
(1)离线漏洞分类器训练步骤:对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,将向量输入神经网络模型进行训练,得到漏洞分类器;
(2)在线漏洞检测步骤:对目标程序提取库/API函数调用候选代码段,将候选代码段转换为向量,采用训练好的漏洞分类器对候选代码段进行分类,输出含漏洞的代码段。
进一步地,步骤(1)具体包括以下步骤:
(1.1)提取库/API函数调用候选代码段:从训练程序中提取库/API函数调用;对于每个库/API函数调用,针对各参数分别生成程序切片,并将各参数的程序切片合并,生成库/API函数调用候选代码段;
(1.2)给候选代码段添加类型标签:对步骤(1.1)中得到的每个库/API函数调用候选代码段,若包含已知的漏洞代码,则添加有漏洞标签,否则添加无漏洞标签;
(1.3)将候选代码段转换为向量:通过除去非ASCII字符和注释,映射用户自定义变量名和函数名为符号名称,将步骤(1.1)中得到的每个库/API函数调用候选代码段表示为符号表征,通过词法解析将符号表征转换为单词序列,然后将单词序列编码为向量;
(1.4)训练神经网络模型:将步骤(1.3)得到的向量和步骤(1.2)得到的类型标签,输入到神经网络模型训练,得到训练好的漏洞分类器。
进一步地,所述步骤(1.1)生成程序切片的具体实施方式为:通过对程序进行词法、语法分析,生成过程间程序依赖图;对于每个接收外部输入的库/API函数调用,基于程序依赖图对各参数分别生成前向程序切片;对于每个不接收外部输入的库/API函数调用,基于程序依赖图对各参数分别生成后向程序切片。
进一步地,所述步骤(1.3)还通过调整单词个数使得向量的长度等于预定值,具体实现方式为:
对于采用前向程序切片生成的候选代码段,通过在向量的尾部填充0或截断来生成固定长度的向量;对于采用后向程序切片生成的候选代码段,通过在向量的前部填充0或截断来生成固定长度的向量。
进一步地,所述步骤(1.1)将各参数的程序切片合并的具体实施方式为:对于属于相同用户自定义函数的语句,按照语句在函数中出现的顺序合并,其中,重复的语句仅保留一条;对于属于不同用户自定义函数的语句,若在程序切片中这些用户自定义函数间已存在顺序,则按此函数顺序合并,否则采用随机的函数顺序合并。
进一步地,所述步骤(1.3)将每个库/API函数调用候选代码段表示为符号表征的具体实施方式为:从候选代码段中除去非ASCII字符和注释,映射每个用户自定义变量名为符号名称,映射每个用户自定义函数名为符号名称。
进一步地,所述步骤(1.3)的将单词序列编码为向量可采用word2vec、gensim、one-hot方法中的任意一种。
进一步地,所述步骤(1.4)的神经网络模型采用循环神经网络、双向循环神经网络、卷积神经网络中的任意一种。
一种基于深度学习的漏洞检测***,包括:
离线漏洞分类器训练模块,用于对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,这些向量输入到神经网络模型进行训练,最后输出训练好的漏洞分类器;
在线漏洞检测模块,用于对目标程序提取库/API函数调用候选代码段,并将候选代码段转换为向量,然后采用训练好的漏洞分类器来分类候选代码段,最后输出分类结果为含漏洞的代码段。
进一步地,所述离线漏洞分类器训练模块包括:
训练程序候选代码段提取模块,用于从训练程序中提取库/API函数调用,对于每个库/API函数调用,针对各参数分别生成程序切片,并将各参数的程序切片合并,生成库/API函数调用候选代码段;
训练程序候选代码段类型标记模块,用于对训练程序中每个库/API函数调用候选代码段,若包含已知的漏洞代码,添加有漏洞标签,否则添加无漏洞标签;
训练程序候选代码段向量生成模块,用于通过除去非ASCII字符和注释,映射用户自定义变量名和函数名为符号名称,将训练程序中每个库/API函数调用候选代码段表示为符号表征,通过词法解析将符号表征转换为单词序列,然后将单词序列编码为向量;
训练神经网络模型模块,用于将候选代码段的向量和候选代码段的类型标签,输入到神经网络模型训练,通过调节各参数,得到训练好的漏洞分类器。
总体而言,通过本发明所构思的以上技术方案与现有技术相比,主要具备以下的技术优点:
(1)自动生成漏洞特征。相比于现有的基于漏洞特征的漏洞检测方案,本发明充分利用了深度学习的特点,自动学习库/API函数调用候选代码段的语义特征,不依赖于专家知识,且不局限于漏洞类型,使得漏洞特征生成完全自动化。
(2)高准确性。相比于现有的基于漏洞特征的漏洞检测方案,本发明面向库/API函数调用,采用神经网络模型,通过学习大量由程序切片生成的候选代码段的语义特征,以更低的误报率和漏报率来检测漏洞,并且能够定位漏洞代码的位置。
(3)高可扩展性。考虑到大量软件安全问题与库/API函数的使用不当有关,本发明面向库/API函数调用的相关漏洞。该方法同样适用于其他漏洞,用户只需要增加其他漏洞的关键点,并从关键点出发提取候选代码段即可,可扩展性非常高。
附图说明
图1为本发明实施例公开的一种基于深度学习的漏洞检测方法流程示意图;
图2为本发明实施例公开的一种提取库/API函数调用候选代码段的流程示意图;
图3为本发明实施例公开的一种将库/API函数调用候选代码段表示为符号表征的流程示意图;
图4为本发明实施例公开的一种基于深度学习的漏洞检测***的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互结合。
本发明的整体思路在于,针对库/API函数调用,提取由各参数程序切片合并而成的候选代码段,在训练阶段基于深度学习模型自动生成漏洞特征,不依赖于专家知识,使得漏洞特征生成完全自动化。同时,通过学习大量候选代码段的语义特征,以更低的误报率和漏报率来检测目标程序中的漏洞,并且能够定位漏洞代码的位置。
如图1所示为本发明实施例公开的一种基于深度学习的漏洞检测方法流程示意图,包括以下步骤:
(1)离线漏洞分类器训练步骤:对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,这些向量输入到神经网络模型进行训练,最后输出训练好的漏洞分类器;
(2)在线漏洞检测步骤:对目标程序提取库/API函数调用候选代码段,并将候选代码段转换为向量,然后采用训练好的漏洞分类器来分类候选代码段,最后输出分类结果为含漏洞的代码段。
神经网络模型可采用循环神经网络(RNN,LSTM,GRU)、双向循环神经网络(BRNN,BLSTM,BGRU)、卷积神经网络(CNN)等中的任意一种,优选双向长短期记忆神经网络(BLSTM)。
作为一种较佳的实施方式,步骤(1)具体包括以下步骤:
(1.1)提取库/API函数调用候选代码段,参考图2所示:从训练程序中提取库/API函数调用,对于每个库/API函数调用,对各参数分别生成程序切片,之后将各参数的程序切片合并,生成库/API函数调用候选代码段。
生成程序切片的具体实施方式为:通过对程序进行词法语法分析,生成过程间(Interprocedural)程序依赖图。对于每个接收外部输入(如命令行、程序、套接字、文件等)的库/API函数调用,基于程序依赖图对各参数分别生成前向程序切片(即提取被参数影响的语句);对于每个不接收外部输入的库/API函数调用,基于程序依赖图对各参数分别生成后向程序切片(即提取影响参数的语句)。
将各参数的程序切片合并的具体实施方式为:对于属于相同用户自定义函数的语句,按照语句在函数中出现的顺序合并,其中,重复的语句仅保留一条;对于属于不同用户自定义函数的语句,若在程序切片中这些用户自定义函数间已存在顺序,则按此函数顺序合并,否则采用随机的函数顺序合并。
(1.2)给候选代码段添加类型标签:对步骤(1.1)中得到的每个库/API函数调用候选代码段,若包含已知的漏洞代码,添加类型标签“1”(即有漏洞),否则添加类型标签“0”(即无漏洞);
(1.3)将候选代码段转换为向量:通过除去非ASCII字符和注释,映射用户自定义变量名或函数名为符号名称,将步骤(1.1)中得到的每个库/API函数调用候选代码段表示为符号表征,并通过词法解析将符号表征转换为单词序列,然后将单词序列编码为向量。
其中,对于采用前向程序切片生成的候选代码段,通过在向量后面填充0或截断来生成固定长度的向量,对于采用后向程序切片生成的候选代码段,通过在向量前面填充0或截断来生成固定长度的向量。
将每个库/API函数调用候选代码段表示为符号表征的具体实施方式为:除去非ASCII字符和注释,映射每个用户自定义变量名为符号名称(如“VAR1”,“VAR2”),映射每个用户自定义函数名为符号名称(如“FUN1”,“FUN2”),参考图3所示。
将单词编码为向量可采用word2vec、gensim、one-hot等工具或方法中的任意一种。
(1.4)训练漏洞分类器:将步骤(1.3)得到的向量和步骤(1.2)得到的类型标签,输入到神经网络模型训练,通过调节各参数达到最佳漏洞检测效果,得到训练好的漏洞分类器。
作为一种可选的实施方式,步骤(2)具体包括以下步骤:
(2.1)提取库/API函数调用候选代码段,与步骤(1.1)相似,不同之处在于针对的是目标程序;
(2.2)将候选代码段转换为向量,与步骤(1.3)相似,不同之处在于针对的是目标程序;
(2.3)依据步骤(1)输出的训练好的漏洞分类器,对步骤(2.2)得到的向量进行分类,若分类结果为“1”,则说明相应的代码含有漏洞,若分类结果为“0”,则说明相应的代码没有漏洞,最后输出所有漏洞代码段。
如图4所示为本发明实施例公开的一种基于深度学习的漏洞检测***的结构示意图,包括以下模块:
离线漏洞分类器训练模块,用于对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,这些向量输入到神经网络模型进行训练,最后输出训练好的漏洞分类器;
其中,离线漏洞分类器训练模块包括:
训练程序候选代码段提取子模块,从训练程序中提取库/API函数调用,对于每个接收外部输入的库/API函数调用,对各参数分别生成前向程序切片,对于每个不接收外部输入的库/API函数调用,对各参数分别生成后向程序切片,之后将各参数的程序切片组合起来,生成库/API函数调用候选代码段;
训练程序候选代码段类型标记子模块,对训练程序中每个库/API函数调用候选代码段,若包含已知的漏洞代码,添加类型标签“1”(即有漏洞),否则添加类型标签“0”(即无漏洞);
训练程序候选代码段向量生成子模块,通过除去非ASCII字符和注释,映射用户自定义变量名为符号名称(如“VAR1”,“VAR2”),映射用户自定义函数名为符号名称(如“FUN1”,“FUN2”),将每个库/API函数调用候选代码段转换为符号表征,并通过词法解析将符号表征转换为单词序列,将每个单词采用word2vec、gensim、one-hot等任一工具或方法编码为向量,把候选代码段转换为固定长度(单词个数)的向量;
训练神经网络模型子模块,将候选代码段的向量和候选代码段的类型标签,输入到神经网络模型训练,通过调节各参数达到最佳漏洞检测效果,得到训练好的漏洞分类器。
在线漏洞检测模块,用于对目标程序提取库/API函数调用候选代码段,并将候选代码段转换为向量,然后采用训练好的漏洞分类器来分类候选代码段,最后输出分类结果为含漏洞的代码段。
其中,在线漏洞检测模块包括:
目标程序候选代码段提取子模块,从目标程序中提取库/API函数调用,对于每个接收外部输入的库/API函数调用,对各参数分别生成前向程序切片,对于每个不接收外部输入的库/API函数调用,对各参数分别生成后向程序切片,之后将各参数的程序切片合并,生成库/API函数调用候选代码段;
目标程序候选代码段向量生成子模块,通过除去非ASCII字符和注释,分别映射用户自定义变量名和函数名为符号名称,将每个库/API函数调用候选代码段表示为符号表征,并通过词法解析将符号表征转换为单词序列,将每个单词采用word2vec、gensim、one-hot等任一工具或方法编码为向量,把候选代码段转换为固定长度(单词个数)的向量;
候选代码段分类子模块,依据训练好的漏洞分类器,对目标程序的候选代码段向量进行分类,若分类结果为“1”,则说明相应的代码含有漏洞,若分类结果为“0”,则说明相应的代码没有漏洞,最后输出所有漏洞代码段。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所做的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
Claims (7)
1.一种基于深度学习的漏洞检测方法,其特征在于,包括:
(1)离线漏洞分类器训练步骤:对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,将向量输入神经网络模型进行训练,得到漏洞分类器;
(2)在线漏洞检测步骤:对目标程序提取库/API函数调用候选代码段,将候选代码段转换为向量,采用训练好的漏洞分类器对候选代码段进行分类,输出含漏洞的代码段;
步骤(1)具体包括以下步骤:
(1.1)提取库/API函数调用候选代码段:从训练程序中提取库/API函数调用;对于每个库/API函数调用,针对各参数分别生成程序切片,并将各参数的程序切片合并,生成库/API函数调用候选代码段;
(1.2)给候选代码段添加类型标签:对步骤(1.1)中得到的每个库/API函数调用候选代码段,若包含已知的漏洞代码,则添加有漏洞标签,否则添加无漏洞标签;
(1.3)将候选代码段转换为向量:通过除去非ASCII字符和注释,映射用户自定义变量名和函数名为符号名称,将步骤(1.1)中得到的每个库/API函数调用候选代码段表示为符号表征,通过词法解析将符号表征转换为单词序列,然后将单词序列编码为向量;
(1.4)训练神经网络模型:将步骤(1.3)得到的向量和步骤(1.2)得到的类型标签,输入到神经网络模型训练,得到训练好的漏洞分类器。
2.根据权利要求1所述的方法,其特征在于,所述步骤(1.1)生成程序切片的具体实施方式为:通过对程序进行词法、语法分析,生成过程间程序依赖图;对于每个接收外部输入的库/API函数调用,基于程序依赖图对各参数分别生成前向程序切片;对于每个不接收外部输入的库/API函数调用,基于程序依赖图对各参数分别生成后向程序切片。
3.根据权利要求2所述的方法,其特征在于,所述步骤(1.3)还通过调整单词个数使得向量的长度等于预定值,具体实现方式为:
对于采用前向程序切片生成的候选代码段,通过在向量的尾部填充0或截断来生成固定长度的向量;对于采用后向程序切片生成的候选代码段,通过在向量的前部填充0或截断来生成固定长度的向量。
4.根据权利要求1或2或3所述的方法,其特征在于,所述步骤(1.1)将各参数的程序切片合并的具体实施方式为:对于属于相同用户自定义函数的语句,按照语句在函数中出现的顺序合并,其中,重复的语句仅保留一条;对于属于不同用户自定义函数的语句,若在程序切片中这些用户自定义函数间已存在顺序,则按此函数顺序合并,否则采用随机的函数顺序合并。
5.根据权利要求1或3所述的方法,其特征在于,所述步骤(1.3)的将单词序列编码为向量采用word2vec、gensim、one-hot方法中的任意一种。
6.根据权利要求1所述的方法,其特征在于,所述步骤(1.4)的神经网络模型采用循环神经网络、双向循环神经网络、卷积神经网络中的任意一种。
7.一种基于深度学习的漏洞检测***,其特征在于,包括:
离线漏洞分类器训练模块,用于对训练程序提取库/API函数调用候选代码段,给候选代码段添加类型标签,并将候选代码段转换为向量,这些向量输入到神经网络模型进行训练,最后输出训练好的漏洞分类器;
在线漏洞检测模块,用于对目标程序提取库/API函数调用候选代码段,并将候选代码段转换为向量,然后采用训练好的漏洞分类器来分类候选代码段,最后输出分类结果为含漏洞的代码段;
所述离线漏洞分类器训练模块包括:
训练程序候选代码段提取模块,用于从训练程序中提取库/API函数调用,对于每个库/API函数调用,针对各参数分别生成程序切片,并将各参数的程序切片合并,生成库/API函数调用候选代码段;
训练程序候选代码段类型标记模块,用于对训练程序中每个库/API函数调用候选代码段,若包含已知的漏洞代码,添加有漏洞标签,否则添加无漏洞标签;
训练程序候选代码段向量生成模块,用于通过除去非ASCII字符和注释,映射用户自定义变量名和函数名为符号名称,将训练程序中每个库/API函数调用候选代码段表示为符号表征,通过词法解析将符号表征转换为单词序列,然后将单词序列编码为向量;
训练神经网络模型模块,用于将候选代码段的向量和候选代码段的类型标签,输入到神经网络模型训练,通过调节各参数,得到训练好的漏洞分类器。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089352.9A CN107885999B (zh) | 2017-11-08 | 2017-11-08 | 一种基于深度学习的漏洞检测方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201711089352.9A CN107885999B (zh) | 2017-11-08 | 2017-11-08 | 一种基于深度学习的漏洞检测方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN107885999A CN107885999A (zh) | 2018-04-06 |
CN107885999B true CN107885999B (zh) | 2019-12-24 |
Family
ID=61779489
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201711089352.9A Active CN107885999B (zh) | 2017-11-08 | 2017-11-08 | 一种基于深度学习的漏洞检测方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN107885999B (zh) |
Families Citing this family (57)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108549817A (zh) * | 2018-04-19 | 2018-09-18 | 北京理工大学 | 一种基于文本深度学习的软件安全漏洞预测方法 |
CN108763931B (zh) * | 2018-05-28 | 2021-11-16 | 上海交通大学 | 基于Bi-LSTM和文本相似性的漏洞检测方法 |
CN108959924A (zh) * | 2018-06-12 | 2018-12-07 | 浙江工业大学 | 一种基于词向量和深度神经网络的Android恶意代码检测方法 |
CN108733359B (zh) * | 2018-06-14 | 2020-12-25 | 北京航空航天大学 | 一种软件程序的自动生成方法 |
CN108829438B (zh) * | 2018-07-05 | 2020-04-07 | 南京大学 | 一种基于深度学习与程序合成的c/c++程序缺陷自动修复方法 |
CN108829607B (zh) * | 2018-07-09 | 2021-08-10 | 华南理工大学 | 一种基于卷积神经网络的软件缺陷预测方法 |
CN109102023A (zh) * | 2018-08-14 | 2018-12-28 | 阿里巴巴集团控股有限公司 | 一种分类模型生成方法及装置、一种数据识别方法及装置 |
CN109120617B (zh) * | 2018-08-16 | 2020-11-17 | 辽宁大学 | 基于频数cnn的多态蠕虫检测方法 |
CN109144879B (zh) * | 2018-09-03 | 2020-12-18 | 腾讯科技(深圳)有限公司 | 测试分析方法及装置 |
CN109525556B (zh) * | 2018-10-18 | 2022-01-11 | 中国电力科学研究院有限公司 | 一种用于确定嵌入式***固件中协议漏洞的轻量级方法及*** |
CN109408389B (zh) * | 2018-10-30 | 2020-10-16 | 北京理工大学 | 一种基于深度学习的代码缺陷检测方法及装置 |
CN109657473B (zh) * | 2018-11-12 | 2020-09-18 | 华中科技大学 | 一种基于深度特征的细粒度漏洞检测方法 |
CN109657466A (zh) * | 2018-11-26 | 2019-04-19 | 杭州英视信息科技有限公司 | 一种函数级软件漏洞检测方法 |
CN109525369B (zh) * | 2018-11-28 | 2020-05-12 | 电子科技大学 | 一种基于循环神经网络的信道编码类型盲识别方法 |
US11960610B2 (en) | 2018-12-03 | 2024-04-16 | British Telecommunications Public Limited Company | Detecting vulnerability change in software systems |
WO2020114922A1 (en) | 2018-12-03 | 2020-06-11 | British Telecommunications Public Limited Company | Detecting anomalies in computer networks |
WO2020114920A1 (en) | 2018-12-03 | 2020-06-11 | British Telecommunications Public Limited Company | Detecting vulnerable software systems |
US11989289B2 (en) | 2018-12-03 | 2024-05-21 | British Telecommunications Public Limited Company | Remediating software vulnerabilities |
GB201819706D0 (en) * | 2018-12-03 | 2019-01-16 | British Telecommunications Public Ltd Comapany | Remediating software vulnerabilities |
CN111338692B (zh) * | 2018-12-18 | 2024-04-16 | 北京奇虎科技有限公司 | 基于漏洞代码的漏洞分类方法、装置及电子设备 |
CN109901869B (zh) * | 2019-01-25 | 2022-03-18 | 中国电子科技集团公司第三十研究所 | 一种基于词袋模型的计算机程序分类方法 |
CN109902024B (zh) * | 2019-03-18 | 2022-04-29 | 中国人民解放军战略支援部队信息工程大学 | 一种程序路径敏感的灰盒测试方法及装置 |
CN110011986B (zh) * | 2019-03-20 | 2021-04-02 | 中山大学 | 一种基于深度学习的源代码漏洞检测方法 |
CN110162245B (zh) * | 2019-04-11 | 2020-12-08 | 北京达佳互联信息技术有限公司 | 图形操作的分析方法、装置、电子设备及存储介质 |
CN110162972B (zh) * | 2019-05-06 | 2022-11-18 | 武汉大学 | 一种基于语句联合编码深度神经网络的uaf漏洞检测方法 |
CN110222512B (zh) * | 2019-05-21 | 2021-04-20 | 华中科技大学 | 一种基于中间语言的软件漏洞智能检测与定位方法与*** |
CN110119627A (zh) * | 2019-05-22 | 2019-08-13 | 刘士刚 | 自动化人工智能漏洞检测*** |
CN110297656B (zh) * | 2019-05-23 | 2024-01-26 | 天航长鹰(江苏)科技有限公司 | 基于配置模型评审代码的方法、装置及计算机设备 |
CN110245496B (zh) * | 2019-05-27 | 2021-04-20 | 华中科技大学 | 一种源代码漏洞检测方法及检测器和其训练方法及*** |
CN110362597A (zh) * | 2019-06-28 | 2019-10-22 | 华为技术有限公司 | 一种结构化查询语言sql注入检测方法及装置 |
CN110348227B (zh) * | 2019-07-15 | 2021-01-29 | 燕山大学 | 一种软件漏洞的分类方法及*** |
US11182238B2 (en) | 2019-07-16 | 2021-11-23 | International Buusiness Machines Corporation | Problematic characters |
CN110428333A (zh) * | 2019-08-01 | 2019-11-08 | 上海爱富爱克斯网络科技发展有限责任公司 | 针对金融中介机构mt4外汇交易软件的数据检测与分析方法 |
CN110704846B (zh) * | 2019-09-27 | 2021-05-18 | 北京计算机技术及应用研究所 | 一种人在回路的智能化安全漏洞发现方法 |
CN110866254B (zh) * | 2019-09-29 | 2023-06-30 | 华为终端有限公司 | 一种检测漏洞方法与电子设备 |
CN110825642B (zh) * | 2019-11-11 | 2021-01-01 | 浙江大学 | 一种基于深度学习的软件代码行级缺陷检测方法 |
WO2021114093A1 (zh) * | 2019-12-10 | 2021-06-17 | 中国科学院深圳先进技术研究院 | 一种基于深度学习的智能合约漏洞检测方法 |
CN111159012A (zh) * | 2019-12-10 | 2020-05-15 | 中国科学院深圳先进技术研究院 | 一种基于深度学习的智能合约漏洞检测方法 |
CN111090860A (zh) * | 2019-12-10 | 2020-05-01 | 北京邮电大学 | 一种基于深度学习的代码漏洞检测方法及装置 |
CN111353160B (zh) * | 2020-02-25 | 2022-08-16 | 融合安全(深圳)信息科技有限公司 | 软件漏洞异常智能检测***及方法 |
CN111523119B (zh) * | 2020-04-26 | 2023-05-05 | 南开大学 | 漏洞检测的方法和装置、电子设备及计算机可读存储介质 |
CN113742205B (zh) * | 2020-05-27 | 2024-04-23 | 南京大学 | 一种基于人机协同的代码漏洞智能检测方法 |
CN111783100B (zh) * | 2020-06-22 | 2022-05-17 | 哈尔滨工业大学 | 基于图卷积网络对代码图表示学习的源代码漏洞检测方法 |
CN111753303B (zh) * | 2020-07-29 | 2023-02-07 | 哈尔滨工业大学 | 一种基于深度学习和强化学习的多粒度代码漏洞检测方法 |
CN112100626B (zh) * | 2020-09-24 | 2023-06-09 | 成都信息工程大学 | 一种提高源代码审计漏洞命中率开发方法 |
CN112131122B (zh) * | 2020-09-27 | 2022-09-30 | 北京智联安行科技有限公司 | 一种源代码缺陷检测工具误报评估方法及装置 |
CN112464245B (zh) * | 2020-11-26 | 2022-05-03 | 重庆邮电大学 | 一种面向深度学习图像分类模型的泛化的安全性评估方法 |
CN112417446A (zh) * | 2020-12-12 | 2021-02-26 | 山东交通学院 | 一种软件定义网络异常检测架构 |
CN112699377B (zh) * | 2020-12-30 | 2023-04-28 | 哈尔滨工业大学 | 基于切片属性图表示学习的函数级代码漏洞检测方法 |
CN112989358B (zh) * | 2021-03-10 | 2022-07-01 | 华中科技大学 | 提高基于深度学习的源代码漏洞检测健壮性的方法及装置 |
CN113392016B (zh) * | 2021-06-25 | 2024-07-26 | 中债金科信息技术有限公司 | 对程序异常情况处理的规约生成方法、装置、设备及介质 |
CN113591093B (zh) * | 2021-07-22 | 2023-05-16 | 燕山大学 | 基于自注意力机制的工业软件漏洞检测方法 |
CN113468534B (zh) * | 2021-09-01 | 2022-02-11 | 北京邮电大学 | 针对安卓应用程序的漏洞检测方法及相关装置 |
CN114490388A (zh) * | 2022-01-27 | 2022-05-13 | 广西教育学院 | 一种基于代码片段的深度学习智能合约漏洞检测方法 |
CN114676437B (zh) * | 2022-04-08 | 2023-01-20 | 中国人民解放军战略支援部队信息工程大学 | 基于量子神经网络的软件漏洞检测方法及装置 |
CN115357904B (zh) * | 2022-07-29 | 2024-04-02 | 南京航空航天大学 | 一种基于程序切片和图神经网络的多类漏洞检测方法 |
CN116204892B (zh) * | 2023-05-05 | 2023-08-08 | 中国人民解放军国防科技大学 | 漏洞处理方法、装置、设备以及存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398758A (zh) * | 2008-10-30 | 2009-04-01 | 北京航空航天大学 | 一种代码抄袭的检测方法 |
CN106294140A (zh) * | 2016-08-02 | 2017-01-04 | 中国科学院软件研究所 | 一种基于代码仓库提交说明的PoC快速生成方法 |
CN106446691A (zh) * | 2016-11-24 | 2017-02-22 | 工业和信息化部电信研究院 | 检测软件中集成或定制的开源项目漏洞的方法和装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9507945B2 (en) * | 2013-04-01 | 2016-11-29 | The Johns Hopkins University | Method and apparatus for automated vulnerability detection |
-
2017
- 2017-11-08 CN CN201711089352.9A patent/CN107885999B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101398758A (zh) * | 2008-10-30 | 2009-04-01 | 北京航空航天大学 | 一种代码抄袭的检测方法 |
CN106294140A (zh) * | 2016-08-02 | 2017-01-04 | 中国科学院软件研究所 | 一种基于代码仓库提交说明的PoC快速生成方法 |
CN106446691A (zh) * | 2016-11-24 | 2017-02-22 | 工业和信息化部电信研究院 | 检测软件中集成或定制的开源项目漏洞的方法和装置 |
Non-Patent Citations (1)
Title |
---|
一种基于深度学习的异常检测方法;邓红莉等;《信息通信》;20150331;第3-4页 * |
Also Published As
Publication number | Publication date |
---|---|
CN107885999A (zh) | 2018-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN107885999B (zh) | 一种基于深度学习的漏洞检测方法及*** | |
CN110245496B (zh) | 一种源代码漏洞检测方法及检测器和其训练方法及*** | |
CN109657473B (zh) | 一种基于深度特征的细粒度漏洞检测方法 | |
CN108446540B (zh) | 基于源代码多标签图神经网络的程序代码抄袭类型检测方法与*** | |
CN114610515B (zh) | 基于日志全语义的多特征日志异常检测方法及*** | |
CN110348214B (zh) | 对恶意代码检测的方法及*** | |
CN108763931A (zh) | 基于Bi-LSTM和文本相似性的漏洞检测方法 | |
CN108985061B (zh) | 一种基于模型融合的webshell检测方法 | |
US8301435B2 (en) | Removing ambiguity when analyzing a sentence with a word having multiple meanings | |
CN112307473A (zh) | 一种基于Bi-LSTM网络和注意力机制的恶意JavaScript代码检测模型 | |
CN114297654A (zh) | 一种源代码层级的智能合约漏洞检测方法及*** | |
CN112579469A (zh) | 一种源代码缺陷检测方法与装置 | |
CN107273546B (zh) | 仿冒应用检测方法以及*** | |
CN115563627B (zh) | 一种基于人机协同的二进制程序漏洞静态分析方法 | |
CN112364631B (zh) | 基于层级多任务学习的中文语法错误检测方法及*** | |
CN113742205B (zh) | 一种基于人机协同的代码漏洞智能检测方法 | |
CN116340952A (zh) | 一种基于操作码程序依赖图的智能合约漏洞检测方法 | |
CN115269427A (zh) | 针对web注入漏洞的中间语言表示方法及*** | |
CN112817877B (zh) | 异常脚本检测方法、装置、计算机设备和存储介质 | |
Fischbach et al. | Cira: A tool for the automatic detection of causal relationships in requirements artifacts | |
CN115688108B (zh) | 一种webshell静态检测方法及*** | |
CN117370980A (zh) | 恶意代码检测模型生成及检测方法、装置、设备及介质 | |
CN117520148A (zh) | 基于大型语言模型的测试用例生成*** | |
CN110427179B (zh) | 面向智能合约语言的msvl程序自动生成方法及*** | |
CN116643759A (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 |