CN114282221B - 注入类漏洞检测方法、系统、终端及存储介质 - Google Patents
注入类漏洞检测方法、系统、终端及存储介质 Download PDFInfo
- Publication number
- CN114282221B CN114282221B CN202111503954.0A CN202111503954A CN114282221B CN 114282221 B CN114282221 B CN 114282221B CN 202111503954 A CN202111503954 A CN 202111503954A CN 114282221 B CN114282221 B CN 114282221B
- Authority
- CN
- China
- Prior art keywords
- instruction
- target
- target instruction
- position information
- information
- 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
- 238000002347 injection Methods 0.000 title claims abstract description 79
- 239000007924 injection Substances 0.000 title claims abstract description 79
- 238000001514 detection method Methods 0.000 title claims abstract description 35
- 238000012795 verification Methods 0.000 claims abstract description 39
- 238000012216 screening Methods 0.000 claims abstract description 15
- 230000006870 function Effects 0.000 claims description 78
- 238000000034 method Methods 0.000 claims description 28
- 230000003068 static effect Effects 0.000 claims description 7
- 230000005540 biological transmission Effects 0.000 claims description 6
- 238000004590 computer program Methods 0.000 claims description 3
- 238000005314 correlation function Methods 0.000 abstract 1
- 239000000243 solution Substances 0.000 description 8
- 238000004891 communication Methods 0.000 description 5
- 238000005538 encapsulation Methods 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 230000003287 optical effect Effects 0.000 description 3
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000012790 confirmation Methods 0.000 description 1
- 230000006378 damage Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
Landscapes
- Debugging And Monitoring (AREA)
Abstract
本发明涉及漏洞检测技术领域,具体提供一种注入类漏洞检测方法、系统、终端及存储介质,包括:从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,剩余指令信息作为注入类漏洞定位信息输出。本发明可以降低代码扫描中对注入类漏洞检测的误报率,提高代码扫描和代码审核的质量和效率。
Description
技术领域
本发明涉及漏洞检测技术领域,具体涉及一种注入类漏洞检测方法、系统、终端及存储介质。
背景技术
常见的注入类漏洞包括命令注入、路径篡改、SQL注入、日志注入、指令注入等。它们通过修改用户输入指令或其他受保护的系统资源,从而导致程序以攻击者的名义执行恶意指令。注入类漏洞属于高风险的漏洞,会导致信息泄露、数据篡改、系统被破坏等,给企业、客户带来严重的安全风险。
因此,为了降低存在的安全风险,会在代码投入使用之前采用安全扫描工具对其进行安全扫描。但是安全扫描工具对注入类漏洞的误报率非常高,为了确认是否是误报,需要开发人员对其进行二次的核实确认。如果注入类漏洞的误报比较多,这会及其降低开发人员的工作效率。
所以,降低代码中注入类漏洞的误报率是非常有必要的。
发明内容
针对现有技术的上述不足,本发明提供一种注入类漏洞检测方法、系统、终端及存储介质,以解决上述技术问题。
第一方面,本发明提供一种注入类漏洞检测方法,包括:
从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;
对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;
对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;
将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出。
进一步的,从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集,包括:
根据编码语言类型确认能发生注入类漏洞的指令类型;
根据指令类型对源码进行静态扫描及指令集分析,得到属于所述指令类型的目标指令在源码中的位置信息,所述位置信息包括路径、所属函数和行数;
如果目标指令被封装,则查找所有封装命令被调用的位置信息;
将查找到的所有目标指令位置信息保存至初始预漏洞集。
进一步的,对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合,包括:
从初始预漏洞集调取目标指令,并分析目标指令的参数是否为原始参数:
若是,则切换目标指令;
若否,则扫描所有调用所述目标指令所在函数的关联函数,关联函数存在关联参数,关联参数与目标指令的参数在一条传输链上,将关联参数的位置信息保存为目标指令的关联函数信息。
进一步的,对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验,包括:
校验黑白名单是否对目标指令进行配置,若未配置则不执行校验,若存在对目标指令的配置则利用配置文件对目标指令的参数进行校验;
利用合法性校验集对目标指令的参数进行校验;
校验目标指令是否存在特定的参数填入模式,若存在则判定目标指令不存在注入类漏洞,通过校验。
第二方面,本发明提供一种注入类漏洞检测系统,包括:
目标筛选单元,用于从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;
参数解析单元,用于对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;
漏洞校验单元,用于对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;
结果输出单元,用于将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出。
进一步的,所述目标筛选单元包括:
类型确认模块,用于根据编码语言类型确认能发生注入类漏洞的指令类型;
源码扫描模块,用于根据指令类型对源码进行静态扫描及指令集分析,得到属于所述指令类型的目标指令在源码中的位置信息,所述位置信息包括路径、所属函数和行数;
封装解析模块,用于如果目标指令被封装,则查找所有封装命令被调用的位置信息;
信息保存模块,用于将查找到的所有目标指令位置信息保存至初始预漏洞集。
进一步的,所述参数解析单元包括:
参数分析模块,用于从初始预漏洞集调取目标指令,并分析目标指令的参数是否为原始参数;
目标切换模块,用于若目标指令的参数为原始参数,则切换目标指令;
关联查找模块,用于若目标指令的参数不是原始参数,则扫描所有调用所述目标指令所在函数的关联函数,关联函数存在关联参数,关联参数与目标指令的参数在一条传输链上,将关联参数的位置信息保存为目标指令的关联函数信息。
进一步的,所述漏洞校验单元包括:
第一校验模块,用于校验黑白名单是否对目标指令进行配置,若未配置则不执行校验,若存在对目标指令的配置则利用配置文件对目标指令的参数进行校验;
第二校验模块,用于利用合法性校验集对目标指令的参数进行校验;
第三校验模块,用于校验目标指令是否存在特定的参数填入模式,若存在则判定目标指令不存在注入类漏洞,通过校验。
第三方面,提供一种终端,包括:
处理器、存储器,其中,
该存储器用于存储计算机程序,
该处理器用于从存储器中调用并运行该计算机程序,使得终端执行上述的终端的方法。
第四方面,提供了一种计算机存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述各方面所述的方法。
本发明的有益效果在于,本发明提供的注入类漏洞检测方法、系统、终端及存储介质,通过预漏洞定位和数据源分析过程,获得预漏洞指令调用链集合。遍历该集合,在注入类漏洞解决方案的基础上分类检测,得到最终的注入类漏洞。本发明算法降低了代码扫描中对注入类漏洞检测的误报率,提高了开发人员和代码审核人员的工作效率。本发明可以降低代码扫描中对注入类漏洞检测的误报率,提高代码扫描和代码审核的质量和效率。
此外,本发明设计原理可靠,结构简单,具有非常广泛的应用前景。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明一个实施例的方法的示意性流程图。
图2是本发明一个实施例的系统的示意性框图。
图3为本发明实施例提供的一种终端的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明中的技术方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
图1是本发明一个实施例的方法的示意性流程图。其中,图1执行主体可以为一种注入类漏洞检测系统。
如图1所示,该方法包括:
步骤110,从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;
步骤120,对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;
步骤130,对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;
步骤140,将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出。
为了便于对本发明的理解,下面以本发明注入类漏洞检测方法的原理,结合实施例中对注入类漏洞进行检测的过程,对本发明提供的注入类漏洞检测方法做进一步的描述。
具体的,所述注入类漏洞检测方法包括:
S1、从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集。
具体的,代码分析是进行分类检测的前置工作,即尽可能的定位可能发生注入类的漏洞,主要过程包括预漏洞定位和数据源分析。预漏洞定位:指把可能发生注入类漏洞的位置定位出来。被篡改的指令在被执行时才有可能发生注入类漏洞,因此找到项目中的执行命令是预漏洞定位的关键。具体过程如下:
指令搜集:根据项目编码语言搜集可能发生注入类漏洞的命令,以python代码为例,待搜集的指令包括但不限于:os.system(命令注入)、os.open(路径注入)、cursor.execute(SQL注入)、log.error(日志注入)、log.debug(日志注入)、eval(命令注入)等。
指令定位:加载项目,对项目源码进行静态扫描,并对指令集中的命令进行逐一分析。若命令被封装,则查找项目中所有封装命令被调用的位置;否则查找项目中该指令被调用的位置。该位置即为注入类漏洞可能发生的地方,记录该调用在项目中的位置,包括但不限于路径、函数、行数等,形成初始预漏洞集。
S2、对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合。
数据源分析。确定从原始参数数据到预漏洞的指令调用链集合,便于后续的分类检测。原始参数数据分为两类,即在参数函数中被定义和通过传参得到。具体分析过程如下:
遍历预漏洞集,对该预漏洞进行分析,判断该参数是否为原始参数数据,若是,则分析下一个预漏洞。
否则,扫描所有调用该预漏洞所在函数的函数,记录该函数及漏洞参数变量所在的位置。对每个函数进行分析,若该函数中参数变量为原始参数数据,则分析下一个函数,否则重复执行该步骤。
直至所有预漏洞集中的元素均被分析完毕,形成最后的预漏洞指令调用链集合。
为了更清晰准确的描述数据源分析过程,特以指令eval(param)举例如下:
设,该指令被被FuncA1,FuncA2调用,对应的路径和位置分别在PathA1/LineA1和PathA2/LineA2,则预漏洞集为{(FuncA1,PathA1,LineA1),(FuncA2,PathA2,LineA2)}。
设,FnucA1中定义了eval参数;FuncA2中eval的参数则是通过FuncB1和FuncB2传进来,FuncB2中传递给eval的参数是由FuncC1传进来,FuncA1、FuncC1、FuncB1中传递给eval的数据为原始数据。
通过数据源分析,得到的预漏洞指令调用集合如下所示:
{{(FuncA1,PathA1,LineA1)},
{(FuncA2,PathA2,LineA2),(FuncB1,PathB1,LineB1)},
{(FuncA2,PathA2,LineA2),(FuncB2,PathB2,LineB2),(FuncC1,PathC1,LineC1)},}
S3、对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出。
遍历预漏洞指令调用集合,对集合中的每个元素进行检测,确定是否为漏洞。根据常见的解决方案,分类检测的方法有以下三种:
黑/白名单/安全指令集:该方式一般通过配置文件对指令输入指令进行限制,因此在进行分类检测时需要对其进行配置。若该项没有配置,则默认没有采用该方式对预漏洞进行处理。否则,判断该链中数据是否经过配置文件的校验。若经过,则认为该链预漏洞位置不存在注入类漏洞,并把其从预漏洞指令结构集中去除。
合法性校验:是指在数据执行之前进行的合法性校验。可通过配置合法性校验集进行检测。检测方式同黑/白名单/安全指令集方式。
指令参数化:指在设计和访问数据,在需要填入数据的地方采用参数来给值,通常有特定的模式。如python使用@连接对数据连接的处理。若预漏洞指令存在特定的指令模式,则认为与预漏洞指令相关的函数均为不存在注入类漏洞,并把其从预漏洞指令结构集中去除。
通过三种方式的分类检测,预漏洞指令调用集合中预漏洞位置为可能存在注入类漏洞的地方。以数据源分析中举例为基础,对预漏洞指令调用集合进行分类检测的过程如下所示:
若{(FuncA1,PathA1,LineA1)}从集合中去除,则在FuncA2处存在注入类漏洞;
若{(FuncA2,PathA2,LineA2),(FuncB1,PathB1,LineB1)}或
{(FuncA2,PathA2,LineA2),(FuncB2,PathB2,LineB2),(FuncC1,PathC1,LineC1)}从集合中去除,则在FuncA1和Func2处存在注入类漏洞。
如图2所示,该系统200包括:
目标筛选单元210,用于从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;
参数解析单元220,用于对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;
漏洞校验单元230,用于对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;
结果输出单元240,用于将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出。
可选地,作为本发明一个实施例,所述目标筛选单元包括:
类型确认模块,用于根据编码语言类型确认能发生注入类漏洞的指令类型;
源码扫描模块,用于根据指令类型对源码进行静态扫描及指令集分析,得到属于所述指令类型的目标指令在源码中的位置信息,所述位置信息包括路径、所属函数和行数;
封装解析模块,用于如果目标指令被封装,则查找所有封装命令被调用的位置信息;
信息保存模块,用于将查找到的所有目标指令位置信息保存至初始预漏洞集。
可选地,作为本发明一个实施例,所述参数解析单元包括:
参数分析模块,用于从初始预漏洞集调取目标指令,并分析目标指令的参数是否为原始参数;
目标切换模块,用于若目标指令的参数为原始参数,则切换目标指令;
关联查找模块,用于若目标指令的参数不是原始参数,则扫描所有调用所述目标指令所在函数的关联函数,关联函数存在关联参数,关联参数与目标指令的参数在一条传输链上,将关联参数的位置信息保存为目标指令的关联函数信息。
可选地,作为本发明一个实施例,所述漏洞校验单元包括:
第一校验模块,用于校验黑白名单是否对目标指令进行配置,若未配置则不执行校验,若存在对目标指令的配置则利用配置文件对目标指令的参数进行校验;
第二校验模块,用于利用合法性校验集对目标指令的参数进行校验;
第三校验模块,用于校验目标指令是否存在特定的参数填入模式,若存在则判定目标指令不存在注入类漏洞,通过校验。
图3为本发明实施例提供的一种终端300的结构示意图,该终端300可以用于执行本发明实施例提供的注入类漏洞检测方法。
其中,该终端300可以包括:处理器310、存储器320及通信单元330。这些组件通过一条或多条总线进行通信,本领域技术人员可以理解,图中示出的服务器的结构并不构成对本发明的限定,它既可以是总线形结构,也可以是星型结构,还可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
其中,该存储器320可以用于存储处理器310的执行指令,存储器320可以由任何类型的易失性或非易失性存储终端或者它们的组合实现,如静态随机存取存储器(SRAM),电可擦除可编程只读存储器(EEPROM),可擦除可编程只读存储器(EPROM),可编程只读存储器(PROM),只读存储器(ROM),磁存储器,快闪存储器,磁盘或光盘。当存储器320中的执行指令由处理器310执行时,使得终端300能够执行以下上述方法实施例中的部分或全部步骤。
处理器310为存储终端的控制中心,利用各种接口和线路连接整个电子终端的各个部分,通过运行或执行存储在存储器320内的软件程序和/或模块,以及调用存储在存储器内的数据,以执行电子终端的各种功能和/或处理数据。所述处理器可以由集成电路(Integrated Circuit,简称IC)组成,例如可以由单颗封装的IC所组成,也可以由连接多颗相同功能或不同功能的封装IC而组成。举例来说,处理器310可以仅包括中央处理器(Central Processing Unit,简称CPU)。在本发明实施方式中,CPU可以是单运算核心,也可以包括多运算核心。
通信单元330,用于建立通信信道,从而使所述存储终端可以与其它终端进行通信。接收其他终端发送的用户数据或者向其他终端发送用户数据。
本发明还提供一种计算机存储介质,其中,该计算机存储介质可存储有程序,该程序执行时可包括本发明提供的各实施例中的部分或全部步骤。所述的存储介质可为磁碟、光盘、只读存储记忆体(英文:read-only memory,简称:ROM)或随机存储记忆体(英文:random access memory,简称:RAM)等。
因此,本发明通过预漏洞定位和数据源分析过程,获得预漏洞指令调用链集合。遍历该集合,在注入类漏洞解决方案的基础上分类检测,得到最终的注入类漏洞。本发明算法降低了代码扫描中对注入类漏洞检测的误报率,提高了开发人员和代码审核人员的工作效率。本发明可以降低代码扫描中对注入类漏洞检测的误报率,提高代码扫描和代码审核的质量和效率,本实施例所能达到的技术效果可以参见上文中的描述,此处不再赘述。
本领域的技术人员可以清楚地了解到本发明实施例中的技术可借助软件加必需的通用硬件平台的方式来实现。基于这样的理解,本发明实施例中的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中如U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质,包括若干指令用以使得一台计算机终端(可以是个人计算机,服务器,或者第二终端、网络终端等)执行本发明各个实施例所述方法的全部或部分步骤。
本说明书中各个实施例之间相同相似的部分互相参见即可。尤其,对于终端实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例中的说明即可。
在本发明所提供的几个实施例中,应该理解到,所揭露的系统和方法,可以通过其它的方式实现。例如,以上所描述的系统实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,系统或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
尽管通过参考附图并结合优选实施例的方式对本发明进行了详细描述,但本发明并不限于此。在不脱离本发明的精神和实质的前提下,本领域普通技术人员可以对本发明的实施例进行各种等效的修改或替换,而这些修改或替换都应在本发明的涵盖范围内/任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应所述以权利要求的保护范围为准。
Claims (8)
1.一种注入类漏洞检测方法,其特征在于,包括:
从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;
对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;
对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;
将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出;
对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合,包括:
从初始预漏洞集调取目标指令,并分析目标指令的参数是否为原始参数:
若是,则切换目标指令;
若否,则扫描所有调用所述目标指令所在函数的关联函数,关联函数存在关联参数,关联参数与目标指令的参数在一条传输链上,将关联参数的位置信息保存为目标指令的关联函数信息。
2.根据权利要求1所述的方法,其特征在于,从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集,包括:
根据编码语言类型确认能发生注入类漏洞的指令类型;
根据指令类型对源码进行静态扫描及指令集分析,得到属于所述指令类型的目标指令在源码中的位置信息,所述位置信息包括路径、所属函数和行数;
如果目标指令被封装,则查找所有封装指令被调用的位置信息;
将查找到的所有目标指令位置信息保存至初始预漏洞集。
3.根据权利要求1所述的方法,其特征在于,对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验,包括:
校验黑白名单是否对目标指令进行配置,若未配置则不执行校验,若存在对目标指令的配置则利用配置文件对目标指令的参数进行校验;
利用合法性校验集对目标指令的参数进行校验;
校验目标指令是否存在特定的参数填入模式,若存在则判定目标指令不存在注入类漏洞,通过校验。
4.一种注入类漏洞检测系统,其特征在于,包括:
目标筛选单元,用于从源码中筛选能发生注入类漏洞的目标指令,并将目标指令在源码中的位置信息保存至初始预漏洞集;
参数解析单元,用于对初始预漏洞集中的目标指令进行数据源分析,得到目标指令的关联函数信息,将目标指令位置信息及关联函数信息保存至指令调用链集合;
漏洞校验单元,用于对指令调用链集合中的目标指令位置信息及关联函数信息进行黑白名单校验、合法性校验或指令参数化校验;
结果输出单元,用于将通过校验的目标指令位置信息及关联函数信息从指令调用链集合移除,将指令调用链集合中未通过校验的目标指令位置信息及关联函数信息作为注入类漏洞定位信息输出;
所述参数解析单元包括:
参数分析模块,用于从初始预漏洞集调取目标指令,并分析目标指令的参数是否为原始参数;
目标切换模块,用于若目标指令的参数为原始参数,则切换目标指令;
关联查找模块,用于若目标指令的参数不是原始参数,则扫描所有调用所述目标指令所在函数的关联函数,关联函数存在关联参数,关联参数与目标指令的参数在一条传输链上,将关联参数的位置信息保存为目标指令的关联函数信息。
5.根据权利要求4所述的系统,其特征在于,所述目标筛选单元包括:
类型确认模块,用于根据编码语言类型确认能发生注入类漏洞的指令类型;
源码扫描模块,用于根据指令类型对源码进行静态扫描及指令集分析,得到属于所述指令类型的目标指令在源码中的位置信息,所述位置信息包括路径、所属函数和行数;
封装解析模块,用于如果目标指令被封装,则查找所有封装指令被调用的位置信息;
信息保存模块,用于将查找到的所有目标指令位置信息保存至初始预漏洞集。
6.根据权利要求4所述的系统,其特征在于,所述漏洞校验单元包括:
第一校验模块,用于校验黑白名单是否对目标指令进行配置,若未配置则不执行校验,若存在对目标指令的配置则利用配置文件对目标指令的参数进行校验;
第二校验模块,用于利用合法性校验集对目标指令的参数进行校验;
第三校验模块,用于校验目标指令是否存在特定的参数填入模式,若存在则判定目标指令不存在注入类漏洞,通过校验。
7.一种终端,其特征在于,包括:
处理器;
用于存储处理器的执行指令的存储器;
其中,所述处理器被配置为执行权利要求1-3任一项所述的方法。
8.一种存储有计算机程序的计算机可读存储介质,其特征在于,该程序被处理器执行时实现如权利要求1-3中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111503954.0A CN114282221B (zh) | 2021-12-09 | 2021-12-09 | 注入类漏洞检测方法、系统、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111503954.0A CN114282221B (zh) | 2021-12-09 | 2021-12-09 | 注入类漏洞检测方法、系统、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN114282221A CN114282221A (zh) | 2022-04-05 |
CN114282221B true CN114282221B (zh) | 2024-01-12 |
Family
ID=80871516
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111503954.0A Active CN114282221B (zh) | 2021-12-09 | 2021-12-09 | 注入类漏洞检测方法、系统、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114282221B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116881930B (zh) * | 2023-09-07 | 2023-11-21 | 思客云(北京)软件技术有限公司 | 一种基于orm框架的sql注入漏洞的分析方法与装置 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598842A (zh) * | 2016-11-10 | 2017-04-26 | 乐视控股(北京)有限公司 | 代码检测方法、装置及电子设备 |
CN110225029A (zh) * | 2019-06-10 | 2019-09-10 | 北京达佳互联信息技术有限公司 | 注入攻击检测方法、装置、服务器及存储介质 |
CN110909358A (zh) * | 2019-10-22 | 2020-03-24 | 上海安智信息科技有限公司 | 一种基于动静态分析的整形漏洞检测方法 |
CN111488579A (zh) * | 2020-03-25 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 漏洞检测方法、装置、电子设备和计算机可读存储介质 |
CN113206849A (zh) * | 2021-04-29 | 2021-08-03 | 杭州安恒信息安全技术有限公司 | 一种基于ghidra的漏洞扫描方法、装置及相关设备 |
-
2021
- 2021-12-09 CN CN202111503954.0A patent/CN114282221B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106598842A (zh) * | 2016-11-10 | 2017-04-26 | 乐视控股(北京)有限公司 | 代码检测方法、装置及电子设备 |
CN110225029A (zh) * | 2019-06-10 | 2019-09-10 | 北京达佳互联信息技术有限公司 | 注入攻击检测方法、装置、服务器及存储介质 |
CN110909358A (zh) * | 2019-10-22 | 2020-03-24 | 上海安智信息科技有限公司 | 一种基于动静态分析的整形漏洞检测方法 |
CN111488579A (zh) * | 2020-03-25 | 2020-08-04 | 腾讯科技(深圳)有限公司 | 漏洞检测方法、装置、电子设备和计算机可读存储介质 |
CN113206849A (zh) * | 2021-04-29 | 2021-08-03 | 杭州安恒信息安全技术有限公司 | 一种基于ghidra的漏洞扫描方法、装置及相关设备 |
Also Published As
Publication number | Publication date |
---|---|
CN114282221A (zh) | 2022-04-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8613080B2 (en) | Assessment and analysis of software security flaws in virtual machines | |
Bagheri et al. | Practical, formal synthesis and automatic enforcement of security policies for android | |
US11748487B2 (en) | Detecting a potential security leak by a microservice | |
US8635602B2 (en) | Verification of information-flow downgraders | |
CN113489713B (zh) | 网络攻击的检测方法、装置、设备及存储介质 | |
CN109101815B (zh) | 一种恶意软件检测方法及相关设备 | |
US8572747B2 (en) | Policy-driven detection and verification of methods such as sanitizers and validators | |
CN112286828B (zh) | 一种区块链智能合约的测试方法和系统 | |
WO2023035751A1 (zh) | 移动端应用的智能混淆 | |
CN112671605B (zh) | 一种测试方法、装置及电子设备 | |
CN111414402A (zh) | 一种日志威胁分析规则生成方法及装置 | |
CN110851352A (zh) | 一种模糊测试系统及终端设备 | |
Bagheri et al. | Automated dynamic enforcement of synthesized security policies in android | |
CN114282221B (zh) | 注入类漏洞检测方法、系统、终端及存储介质 | |
CN116599747A (zh) | 一种网络与信息安全服务系统 | |
CN110287700B (zh) | 一种iOS应用安全分析方法及装置 | |
US10310962B2 (en) | Infrastructure rule generation | |
CN113591096A (zh) | 综合检测大数据漏洞和不安全配置的脆弱性扫描系统 | |
US11057416B2 (en) | Analyze code that uses web framework using local parameter model | |
CN116680699A (zh) | 一种漏洞优先级排序系统、方法、计算机设备及存储介质 | |
US11573887B2 (en) | Extracting code patches from binary code for fuzz testing | |
CN115544518A (zh) | 漏洞扫描引擎实现方法、装置、漏洞扫描方法及电子设备 | |
CN114358934A (zh) | 智能合约的校验方法和相关设备 | |
Huang | An empirical study on real bug fixes in smart contracts projects | |
US20240054225A1 (en) | Intelligent service security enforcement system |
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 |