CN103268281A - 一种源代码漏洞检测方法及其系统 - Google Patents

一种源代码漏洞检测方法及其系统 Download PDF

Info

Publication number
CN103268281A
CN103268281A CN2013101652667A CN201310165266A CN103268281A CN 103268281 A CN103268281 A CN 103268281A CN 2013101652667 A CN2013101652667 A CN 2013101652667A CN 201310165266 A CN201310165266 A CN 201310165266A CN 103268281 A CN103268281 A CN 103268281A
Authority
CN
China
Prior art keywords
source code
state
cid
hole detection
algorithm
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
CN2013101652667A
Other languages
English (en)
Other versions
CN103268281B (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.)
Beijing Tianguang Huitong Science & Technology Co Ltd
Original Assignee
Beijing Tianguang Huitong Science & Technology Co Ltd
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 Beijing Tianguang Huitong Science & Technology Co Ltd filed Critical Beijing Tianguang Huitong Science & Technology Co Ltd
Priority to CN201310165266.7A priority Critical patent/CN103268281B/zh
Publication of CN103268281A publication Critical patent/CN103268281A/zh
Application granted granted Critical
Publication of CN103268281B publication Critical patent/CN103268281B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Debugging And Monitoring (AREA)

Abstract

本发明公开了一种源代码漏洞检测方法及其系统,方法包括:S1、获取目标检测源代码的编程语言,根据编程语言编写的源代码所存在的安全漏洞构建安全漏洞规则库;S2、对目标检测源代码进行编译,生成中间表示文件,对中间表示文件进行解析,提取中间表示文件的上下文信息并存储起来;S3、依据存储的上下文信息构建调度上下文的状态自动机;S4、对状态自动机中的状态空间进行遍历,分别判断状态自动机中各状态空间是否与安全漏洞规则库中的规则相匹配,若是则获取产生漏洞的执行路径。本发明能有效地检测出源代码的安全漏洞,特别是能有效地检测多线程并发执行导致的安全漏洞,能实现从源代码层面保障软件的安全性和健壮性。

Description

一种源代码漏洞检测方法及其系统
技术领域
本发明涉及计算机软件源代码安全检测技术领域,尤其涉及一种源代码漏洞检测方法及其系统。
背景技术
信息社会对软件依赖的不断增加,随着软件数量快速增长,软件存在的信息安全问题日益彰显,成为信息安全和用户隐私保护方面的重要隐患。因此,软件的安全问题愈加受到产业界和学术界的关注,针对软件的源代码进行安全检测的研究已经成为一个安全领域的热点。
软件安全成为一个焦点问题,软件能否安全地提供服务,其因素是多方面的,其中源码设计中存在的漏洞是导致安全性问题的一个十分重要的因素。
不论在商业软件还是开源软件中,软件的漏洞随处可见。由于软件漏洞的急剧增加,加之软件系统变得越来越复杂和庞大,人工检测源代码已经不再现实,急需一种自动化检测方法来帮助程序员发现实际软件中的漏洞。因此,对源代码进行检测,发现并指出漏洞也就变得十分必要。
目前,现有的源代码安全检测技术存在检测结果误报率较高的劣势,特别是不能检测多线程交错执行引起的较为严重的系统级别的安全漏洞。因此,针对当前软件源代码的安全检测技术的研究和创新,将有助于保障软件的安全性和可靠性。
发明内容
本发明的目的在于提出一种源代码漏洞检测方法及其系统,能够有效发现软件的源代码安全漏洞,精确定位引发漏洞的执行路径,保证软件的安全性和健壮性。
为达此目的,本发明采用以下技术方案:
一种源代码漏洞检测方法,包括:
S1、获取目标检测源代码的编程语言,根据所述编程语言编写的源代码所存在的安全漏洞构建安全漏洞规则库;
S2、对所述目标检测源代码进行编译,生成中间表示文件,对所述中间表示文件进行解析,提取所述中间表示文件的上下文信息并存储起来;
S3、依据所述存储的上下文信息构建调度上下文的状态自动机;
S4、根据预设的搜索算法对所述状态自动机中的状态空间进行遍历,分别判断所述状态自动机中各状态空间是否与所述安全漏洞规则库中的规则相匹配,若是则获取产生漏洞的执行路径。
进一步地,所述步骤S3具体包括:基于正向可达算法迭代构建调度上下文的状态自动机。
进一步地,所述步骤S4中所述搜索算法包括:深度优先搜索算法、广度优先搜索算法和启发式算法。
进一步地,所述步骤S4中所述执行路径具体包括:所述目标检测源代码的文件名和漏洞名称、执行路径详细信息和/或检测过程的统计信息。
根据本发明的同一构思,本发明还提供了一种源代码漏洞检测系统,包括:
规则库创建模块,用于获取目标检测源代码的编程语言,根据所述编程语言编写的源代码所存在的安全漏洞构建安全漏洞规则库;
上下文生成模块,用于对所述目标检测源代码进行编译,生成中间表示文件,对所述中间表示文件进行解析,提取所述中间表示文件的上下文信息并存储起来;
状态自动机生成模块,用于依据所述存储的上下文信息构建调度上下文的状态自动机;
漏洞检测模块,用于根据预设的搜索算法对所述状态自动机中的状态空间进行遍历,分别判断所述状态自动机中各状态空间是否与所述安全漏洞规则库中的规则相匹配,若是则获取产生漏洞的执行路径。
进一步地,所述状态自动机生成模块具体用于:基于正向可达算法迭代构建调度上下文的状态自动机。
进一步地,所述漏洞检测模块中所述搜索算法包括:深度优先搜索算法、广度优先搜索算法和启发式算法。
进一步地,所述漏洞检测模块中所述执行路径具体包括:所述目标检测源代码的文件名和漏洞名称、执行路径详细信息和/或检测过程的统计信息。
本发明通过穷尽搜索调度上下文的状态空间,能有效地检测出源代码的安全漏洞,特别是能有效地检测多线程并发执行导致的安全漏洞,并精确定位引发漏洞的执行路径,生成漏洞的详细执行路径信息,具备检测精度高和误报率低的优势,能实现从源代码层面保障软件的安全性和健壮性。
附图说明
图1是本发明具体实施例一所述的源代码漏洞检测方法流程图;
图2是本发明具体实施例一所述的上下文调度流程图;
图3是本发明具体实施例一所述的基于上下文调度的状态自动机示意图;
图4是本发明具体实施例二所述的源代码漏洞检测系统结构框图。
具体实施方式
下面结合附图并通过具体实施方式来进一步说明本发明的技术方案。
实施例一
图1是本实施例所述的源代码漏洞检测方法流程图,如图1所示,本实施例所述对的源代码漏洞检测方法包括:
S101、根据安全漏洞,形成安全漏洞规则库。
根据软件源代码安全漏洞,形成基于状态逻辑公式描述的安全漏洞规则库。
在本实施例的一个优选实施方式中,所述安全漏洞规则定义为一个基于状态s∈S表示的逻辑公式f,例如多线程并发执行可能产生死锁漏洞,可以使用如下逻辑公式描述:f=(Sinit→(Scid1=WAIT)∧(Scid2=WAIT)∧…∧(Scidn=WAIT)),其中Sinit表示源代码的初始状态,符号“→”表示逻辑蕴含关系,Scidi表示对应线程i标记,其中i∈N,是一个正整数,表示所有线程的数目。Scidi表示线程i对应的某个状态,符号“∧”表示各个状态之间的逻辑与关系。如果存在死锁漏洞必须满足如下条件:源代码中存在一条起始于初始状态Sinit的执行路径,使得公式f中的所有约束条件,如Scidi=WAIT。
S102、编译应用软件源代码文件。
S103、判断编译是否成功,若是则执行步骤S105,否则执行步骤S104。
S104、报告编译不成功,结束。
本步骤还可包括报告编译不成功的具体出错信息。
S105、生成中间表示文件。
需要说明的是,当目标检测源代码是Java语言编写的源代码时,编译生成的所述中间表示文件则为字节码文件。
S106、解析中间表示文件,提取上下文信息。
解析所述中间表示文件,提取上下文信息并存储起来,例如将所述上下文信息存储到数据库中。
在本实施例的一个优选实施方式中,以目标检测源代码的编程语言为Java,C++等面向对象语言为例,在本实施例中将源代码某一个类的连续执行序列称为一个上下文,将所述提取的上下文信息存储为一个五元组M={ID,V,S,T,Vinit,enable(S)}。
其中,ID=CID∪MID是标识符集合,CID是类的标识符集合,cid∈CID,是为类设置的唯一标识符;MID是方法标识符集合,mid∈MID,是为类的方法设置的唯一标识符。
其中,V=Vcid∈CID∪Vmid∈MID是变量集合,其中Vcid∈CID是类的变量集合,包括类的全局变量和局部变量,Vmid∈MID是类中定义的方法的变量集合。
其中,S是状态集合,s∈S是类的一个状态,即类中所有变量赋值的实例化。
其中,
Figure BDA00003155002700051
是状态转移关系集合,其中S是状态集合,Ins是指令集合;状态转移关系t=(Si,a,Sj)∈T表示源代码在状态Si下执行指令a转换到状态Sj
其中,Vinit是类的初始状态,即初始化时,变量赋值的实例化。
Figure BDA00003155002700052
是状态集合S到ID集合的映射,表示状态对应的可调度的id∈ID,enable(s∈S)={set(id)|cid∈CID,mid∈MID}表示当处于状态s∈S时,可调度的cid和mid,可利用函数enable(s)确定某个状态下可调度的类和方法。
提取的源代码信息按照标识符cid=0,1,2,…,i(i∈N)依次进行存储。
S107、调度数据库中CID标记的上下文。
选择数据库中cid标记的上下文,用一个布尔值cid_scheduled表示cid标记的上下文是否已被调用,cid_scheduled为TRUE则表明该cid标记的上下文已被调用过,cid_scheduled为FALSE则表明该cid标记的上下文未被调用过。
进一步地,在本实施例的一个优选实施方式中,本步骤中所述的上下文调度方法参见图2,如图2所示,本实施例优先的上下文调度方法包括:
S201、从数据库中读取CID的值。
S201、判断是否上下文未被调度,若是则执行步骤S206,否则执行步骤S203。
S203、设置上下文调度状态为已被调度状态,记录调度信息,构造相应状态自动机。
S204、判断当前上下文的状态是否使得某个CID可调度,若是则执行步骤S205,否则执行步骤S206。
S205、根据调度记录进行回溯。
S206、判断是否存在CID未调度,若是则返回步骤S201,否则结束。
S108、基于正向可达算法迭代构建调度上下文的状态自动机。
根据调度cid标记的上下文,基于正向可达算法依次构造对应的状态自动机Acid,在本实施例的一个优选实施方式中,所述正向可达算法即为Post*算法。
具体步骤如下:
步骤一、构造状态自动机的初始状态结点Sinit,所述Sinit是全局变量和局部变量的初始化赋值,
步骤二、根据状态转移集合T,构造状态自动机的其他状态:如果存在一个状态转移关系<si,a,sj>,状态si与已存在的状态匹配,且不存在状态sj,则构造状态赋值为sj,同时添加状态si到状态sj的边,边上标注指令a。
步骤三、重复执行步骤二直至没有可以匹配的状态迁移关系,至此,自动机构造完毕。
步骤四、记录上下文的状态空间,即状态自动机接受的语言集合L(Post*(Acid))。
S109、搜索状态空间与漏洞规则匹配,确定是否存在产生漏洞的执行路径。
基于搜索算法搜索状态空间,检测是否存在路径满足以下条件:存在一个路径使得各个上下文的状态与漏洞规则匹配。所述搜索算法可为深度优先搜索算法、广度优先搜索算法、启发式算法等。
S110、判断是否发现漏洞,若是则执行步骤S112,否则执行步骤S111。
S111、未发现漏洞。
S112、输出漏洞的执行路径信息,结束。
在本实施例的一个优选实施方式中,若未检测到漏洞,报告未检测到漏洞,若检测到漏洞,输出检测结果的详细信息,包括以下内容:
(1)漏洞信息,包括cid对应的源代码文件名和漏洞名称;和/或
(2)执行路径详细信息,包括各个上下文的类名、状态信息、源代码指令和/或源代码指令所在的行号;和/或
(3)检测过程的统计信息,包括搜索的状态、类和/或方法的数目等。
当目标检测源代码的编程语言为C语言等面向过程语言时,具体实现方式如下:
将源代码某一个函数的顺次执行序列称为一个上下文,将所述提取的上下文信息存储为一个五元组M={ID,V,S,T,Vinit,enable(S)}。
其中,ID=CID∪MID是标识符集合,CID是函数的标识符集合,cid∈CID,是为函数设置的唯一标识符;MID是子函数标识符集合,mid∈MID,是为函数所调用的子函数设置的唯一标识符。
其中,V=Vcid∈CID∪Vmid∈MID是变量集合,其中Vcid∈CID是函数的变量集合,包括函数的全局变量和局部变量,Vmid∈MID是函数中调用的子函数的集合。
其中,S是状态集合,s∈S是函数的一个状态,即函数中所有变量赋值的实例化。
其中,
Figure BDA00003155002700081
是状态转移关系集合,其中S是状态集合,Ins是指令集合;状态转移关系t=(Si,a,Sj)∈T表示源代码在状态Si下执行指令a转换到状态Sj
其中,Vinit是类的初始状态,即初始化时,变量赋值的实例化。
Figure BDA00003155002700082
是状态集合S到ID集合的映射,表示状态对应的可调度的id∈ID,enable(s∈S)={set(id)|cid∈CID,mid∈MID}表示当处于状态s∈S时,可调度的cid和mid,可利用函数enable(s)确定某个状态下可调度的子函数。
提取的源代码信息按照标识符cid=0,1,2,…,i(i∈N)依次进行存储。
实施例二
根据本发明的同一构思,本发明还提供了一种源代码漏洞检测系统,图2是本实施例所述的源代码漏洞检测系统结构框图,如图2所示,本实施例所述的源代码漏洞检测系统包括:
规则库创建模块401,用于获取目标检测源代码的编程语言,根据所述编程语言编写的源代码所存在的安全漏洞构建安全漏洞规则库。
根据软件源代码安全漏洞,形成基于状态逻辑公式描述的安全漏洞规则库。
在本实施例的一个优选实施方式中,所述安全漏洞规则定义为一个基于状态s∈S表示的逻辑公式f,例如多线程并发执行可能产生死锁漏洞,可以使用如下逻辑公式描述:f=(Sinit→(Scid1=WAIT)∧(Scid2=WAIT)∧…∧(Scidn=WAIT)),其中Sinit表示源代码的初始状态,符号“→”表示逻辑蕴含关系,Scidi表示对应线程i标记,其中i∈N,是一个正整数,表示所有线程的数目。Scidi表示线程i对应的某个状态,符号“∧”表示各个状态之间的逻辑与关系。如果存在死锁漏洞必须满足如下条件:源代码中存在一条起始于初始状态Sinit的执行路径,使得公式f中的所有约束条件,如Scidi=WAIT。
上下文生成模块402,用于对所述目标检测源代码进行编译,生成中间表示文件,对所述中间表示文件进行解析,提取所述中间表示文件的上下文信息并存储起来。
在本实施例的一个优选实施方式中,以目标检测源代码的编程语言为Java,C++等面向对象语言为例,在本实施例中将源代码某一个类的连续执行序列称为一个上下文,将所述提取的上下文信息存储为一个五元组M={ID,V,S,T,Vinit,enable(S)}。
其中,ID=CID∪MID是标识符集合,CID是类的标识符集合,cid∈CID,是为类设置的唯一标识符;MID是方法标识符集合,mid∈MID,是为类的方法设置的唯一标识符。
其中,V=Vcid∈CID∪Vmid∈MID是变量集合,其中Vcid∈CID是类的变量集合,包括类的全局变量和局部变量,Vmid∈MID是类中定义的方法的变量集合。
其中,S是状态集合,s∈S是类的一个状态,即类中所有变量赋值的实例化。
其中,
Figure BDA00003155002700091
是状态转移关系集合,其中S是状态集合,Ins是指令集合;状态转移关系t=(Si,a,Sj)∈T表示源代码在状态Si下执行指令a转换到状态Sj
其中,Vinit是类的初始状态,即初始化时,变量赋值的实例化。
Figure BDA00003155002700101
是状态集合S到ID集合的映射,表示状态对应的可调度的id∈ID,enable(s∈S)={set(id)|cid∈CID,mid∈MID}表示当处于状态s∈S时,可调度的cid和mid,可利用函数enable(s)确定某个状态下可调度的类和方法。
提取的源代码信息按照标识符cid=0,1,2,…,i(i∈N)依次进行存储。
状态自动机生成模块403,用于依据所述存储的上下文信息构建调度上下文的状态自动机。
选择数据库中cid标记的上下文,用一个布尔值cid_scheduled表示cid标记的上下文是否已被调用,cid_scheduled为TRUE则表明该cid标记的上下文已被调用过,cid_scheduled为FALSE则表明该cid标记的上下文未被调用过。
根据调度cid标记的上下文,基于正向可达算法依次构造对应的状态自动机Acid,在本实施例的一个优选实施方式中,所述正向可达算法即为Post*算法。
具体包括:
构造状态自动机的初始状态结点Sinit,所述Sinit是全局变量和局部变量的初始化赋值。根据状态转移集合T,构造状态自动机的其他状态:如果存在一个状态转移关系<Si,a,Sj>,状态Si与已存在的状态匹配,且不存在状态Sj,则构造状态赋值为Sj,同时添加状态Si到状态Sj的边,边上标注指令a。重复执行步骤二直至没有可以匹配的状态迁移关系,至此,自动机构造完毕。
记录上下文的状态空间,即状态自动机接受的语言集合L(Post*(Acid))。
漏洞检测模块404,用于对所述状态自动机中的状态空间进行遍历,分别判断所述状态自动机中各状态空间是否与所述安全漏洞规则库中的规则相匹配,若是则获取产生漏洞的执行路径。
基于搜索算法搜索状态空间,检测是否存在路径满足以下条件:存在一个路径使得各个上下文的状态与漏洞规则匹配。所述搜索算法可为深度优先搜索算法、广度优先搜索算法、启发式算法等。
在本实施例的一个优选实施方式中,若未检测到漏洞,报告未检测到漏洞,若检测到漏洞,输出检测结果的详细信息,包括以下内容:
(1)漏洞信息,包括cid对应的源代码文件名和漏洞名称;和/或
(2)执行路径详细信息,包括各个上下文的类名、状态信息、源代码指令和/或源代码指令所在的行号;和/或
(3)检测过程的统计信息,包括搜索的状态、类和/或方法的数目等。
当目标检测源代码的编程语言为C语言等面向过程语言时,具体实现方式如下:
将源代码某一个函数的顺次执行序列称为一个上下文,将所述提取的上下文信息存储为一个五元组M={ID,V,S,T,Vinit,enable(S)}。
其中,ID=CID∪MID是标识符集合,CID是函数的标识符集合,cid∈CID,是为函数设置的唯一标识符;MID是子函数标识符集合,mid∈MID,是为函数所调用的子函数设置的唯一标识符。
其中,V=Vcid∈CID∪Vmid∈MID是变量集合,其中Vcid∈CID是函数的变量集合,包括函数的全局变量和局部变量,Vmid∈MID是函数中调用的子函数的集合。
其中,S是状态集合,s∈S是函数的一个状态,即函数中所有变量赋值的实例化。
其中,是状态转移关系集合,其中S是状态集合,Ins是指令集合;状态转移关系t=(Si,a,Sj)∈T表示源代码在状态Si下执行指令a转换到状态Sj
其中,Vinit是类的初始状态,即初始化时,变量赋值的实例化。
Figure BDA00003155002700121
是状态集合S到ID集合的映射,表示状态对应的可调度的id∈ID,enable(s∈S)={set(id)|cid∈CID,mid∈MID}表示当处于状态s∈S时,可调度的cid和mid,可利用函数enable(s)确定某个状态下可调度的子函数。
提取的源代码信息按照标识符cid=0,1,2,…,i(i∈N)依次进行存储。
本发明通过穷尽搜索调度上下文的状态空间,能有效地检测出源代码的安全漏洞,特别是能有效地检测多线程并发执行导致的安全漏洞,并精确定位引发漏洞的执行路径,生成漏洞的详细执行路径信息,具备检测精度高和误报率低的优势,能实现从源代码层面保障软件的安全性和健壮性。
以上实施例提供的技术方案中的全部或部分内容可以通过软件编程实现,其软件程序存储在可读取的存储介质中,存储介质例如:计算机中的硬盘、光盘或软盘。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (8)

1.一种源代码漏洞检测方法,其特征在于,包括:
S1、获取目标检测源代码的编程语言,根据所述编程语言编写的源代码所存在的安全漏洞构建安全漏洞规则库;
S2、对所述目标检测源代码进行编译,生成中间表示文件,对所述中间表示文件进行解析,提取所述中间表示文件的上下文信息并存储起来;
S3、依据所述存储的上下文信息构建调度上下文的状态自动机;
S4、根据预设的搜索算法对所述状态自动机中的状态空间进行遍历,分别判断所述状态自动机中各状态空间是否与所述安全漏洞规则库中的规则相匹配,若是则获取产生漏洞的执行路径。
2.如权利要求1所述的源代码漏洞检测方法,其特征在于,所述步骤S3具体包括:基于正向可达算法迭代构建调度上下文的状态自动机。
3.如权利要求1或2所述的源代码漏洞检测方法,其特征在于,所述步骤S4中所述搜索算法包括:深度优先搜索算法、广度优先搜索算法和启发式算法。
4.如权利要求1或2所述的源代码漏洞检测方法,其特征在于,所述步骤S4中所述执行路径具体包括:所述目标检测源代码的文件名和漏洞名称、执行路径详细信息和/或检测过程的统计信息。
5.一种源代码漏洞检测系统,其特征在于,包括:
规则库创建模块,用于获取目标检测源代码的编程语言,根据所述编程语言编写的源代码所存在的安全漏洞构建安全漏洞规则库;
上下文生成模块,用于对所述目标检测源代码进行编译,生成中间表示文件,对所述中间表示文件进行解析,提取所述中间表示文件的上下文信息并存储起来;
状态自动机生成模块,用于依据所述存储的上下文信息构建调度上下文的状态自动机;
漏洞检测模块,用于根据预设的搜索算法对所述状态自动机中的状态空间进行遍历,分别判断所述状态自动机中各状态空间是否与所述安全漏洞规则库中的规则相匹配,若是则获取产生漏洞的执行路径。
6.如权利要求1所述的源代码漏洞检测系统,其特征在于,所述状态自动机生成模块具体用于:基于正向可达算法迭代构建调度上下文的状态自动机。
7.如权利要求1或2所述的源代码漏洞检测系统,其特征在于,所述漏洞检测模块中所述搜索算法包括:深度优先搜索算法、广度优先搜索算法和启发式算法。
8.如权利要求1或2所述的源代码漏洞检测系统,其特征在于,所述漏洞检测模块中所述执行路径具体包括:所述目标检测源代码的文件名和漏洞名称、执行路径详细信息和/或检测过程的统计信息。
CN201310165266.7A 2013-05-07 2013-05-07 一种源代码漏洞检测方法及其系统 Active CN103268281B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201310165266.7A CN103268281B (zh) 2013-05-07 2013-05-07 一种源代码漏洞检测方法及其系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201310165266.7A CN103268281B (zh) 2013-05-07 2013-05-07 一种源代码漏洞检测方法及其系统

Publications (2)

Publication Number Publication Date
CN103268281A true CN103268281A (zh) 2013-08-28
CN103268281B CN103268281B (zh) 2017-02-08

Family

ID=49011912

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201310165266.7A Active CN103268281B (zh) 2013-05-07 2013-05-07 一种源代码漏洞检测方法及其系统

Country Status (1)

Country Link
CN (1) CN103268281B (zh)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850493A (zh) * 2015-04-24 2015-08-19 百度在线网络技术(北京)有限公司 一种检测源代码漏洞的方法和装置
CN108717509A (zh) * 2018-06-05 2018-10-30 厦门安胜网络科技有限公司 一种在沙箱中提取程序衍生物的方法、装置、设备及可读介质
CN110363004A (zh) * 2018-04-10 2019-10-22 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN110390200A (zh) * 2018-04-19 2019-10-29 卡巴斯基实验室股份制公司 用于通过拦截函数调用识别应用程序的漏洞的系统和方法
CN112149138A (zh) * 2020-11-24 2020-12-29 北京智芯微电子科技有限公司 密码算法程序漏洞检测方法及系统、存储介质
CN113221120A (zh) * 2021-05-19 2021-08-06 西北工业大学太仓长三角研究院 一种面向物联网应用规则的漏洞检测方法及系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044345A1 (en) * 2003-08-21 2005-02-24 Takayuki Suzuki Program processing device
CN102982282A (zh) * 2012-11-26 2013-03-20 北京神州绿盟信息安全科技股份有限公司 程序漏洞的检测系统和方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050044345A1 (en) * 2003-08-21 2005-02-24 Takayuki Suzuki Program processing device
CN102982282A (zh) * 2012-11-26 2013-03-20 北京神州绿盟信息安全科技股份有限公司 程序漏洞的检测系统和方法

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104850493A (zh) * 2015-04-24 2015-08-19 百度在线网络技术(北京)有限公司 一种检测源代码漏洞的方法和装置
CN110363004A (zh) * 2018-04-10 2019-10-22 腾讯科技(深圳)有限公司 一种代码漏洞检测方法、装置、介质及设备
CN110390200A (zh) * 2018-04-19 2019-10-29 卡巴斯基实验室股份制公司 用于通过拦截函数调用识别应用程序的漏洞的系统和方法
CN110390200B (zh) * 2018-04-19 2023-08-11 卡巴斯基实验室股份制公司 用于通过拦截函数调用识别应用程序的漏洞的系统和方法
CN108717509A (zh) * 2018-06-05 2018-10-30 厦门安胜网络科技有限公司 一种在沙箱中提取程序衍生物的方法、装置、设备及可读介质
CN112149138A (zh) * 2020-11-24 2020-12-29 北京智芯微电子科技有限公司 密码算法程序漏洞检测方法及系统、存储介质
CN112149138B (zh) * 2020-11-24 2021-02-19 北京智芯微电子科技有限公司 密码算法程序漏洞检测方法及系统、存储介质
CN113221120A (zh) * 2021-05-19 2021-08-06 西北工业大学太仓长三角研究院 一种面向物联网应用规则的漏洞检测方法及系统

Also Published As

Publication number Publication date
CN103268281B (zh) 2017-02-08

Similar Documents

Publication Publication Date Title
CN103268281A (zh) 一种源代码漏洞检测方法及其系统
CN102339252B (zh) 基于xml中间模型以及缺陷模式匹配的静态检测系统
He et al. Pyart: Python api recommendation in real-time
CN103678118A (zh) 一种Java源代码的合规性检测方法和装置
CN107168762B (zh) 一种基于本体的rucm模型一致性检查方法
CN102804147A (zh) 执行abap源代码的代码检查的代码检查执行系统
CN101794224A (zh) 一种基于性质规约模式的软件运行时性质监测方法
CN109388573B (zh) 一种无漏报的中断驱动型程序运行时错误检测方法和系统
CN103914379B (zh) 故障自动注入与故障检测的方法及其系统
CN102508766B (zh) 一种航天嵌入式c语言软件运行时错误的静态分析方法
CN110750297B (zh) 一种基于程序分析和文本分析的Python代码参考信息生成方法
Ding et al. Towards learning (dis)-similarity of source code from program contrasts
CN103778062A (zh) 基于抽象解释的多中断程序数据访问冲突检测方法
CN110162474B (zh) 一种基于抽象语法树的智能合约重入漏洞检测方法
Staunton et al. Searching for safety violations using estimation of distribution algorithms
Huang et al. A comparative study on method comment and inline comment
CN102681932B (zh) 一种检测软件异常输入处理正确性的方法
CN101894072B (zh) 一种模型检测中异常终止的检测方法
CN102262580A (zh) 一种改进的基于符号执行的软件静态测试方法及工具
Veena et al. Named entity recognition in text documents using a modified conditional random field
CN106326123B (zh) 一种用于检测数组越界缺陷的方法及系统
CN115080448A (zh) 一种软件代码不可达路径自动检测的方法和装置
CN116401145A (zh) 一种源代码静态分析处理方法及装置
Shao et al. Combining lexical and structural information for static bug localisation
CN114047913A (zh) 一种反例引导的稀疏空间流模型检测方法及系统

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
ASS Succession or assignment of patent right

Free format text: FORMER OWNER: ZHANG

Effective date: 20131231

C41 Transfer of patent application or patent right or utility model
C53 Correction of patent of invention or patent application
CB03 Change of inventor or designer information

Inventor after: Huang Yonggang

Inventor before: Zhang

COR Change of bibliographic data

Free format text: CORRECT: INVENTOR; FROM: ZHANG TO: HUANG YONGGANG

TA01 Transfer of patent application right

Effective date of registration: 20131231

Address after: 100097 Beijing city Haidian District landianchang Road No. 55 building 10 floor Beijing Jinwei Huitong Tian Guang Technology Co. Ltd.

Applicant after: Beijing Tianguang Huitong Science & Technology Co., Ltd.

Address before: 100097 Beijing city Haidian District landianchang Road No. 55 building 10 floor Beijing Jinwei Huitong Tian Guang Technology Co. Ltd.

Applicant before: Beijing Tianguang Huitong Science & Technology Co., Ltd.

Applicant before: Zhang

C14 Grant of patent or utility model
GR01 Patent grant