一种程序漏洞的检测方法、终端及服务器技术

技术编号:15691360 阅读:45 留言:0更新日期:2017-06-24 04:30
本申请提供了一种程序漏洞的检测方法、终端及服务器。其方法包括:根据待检测程序预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件;根据所述漏洞规则对应的初始条件确定所述待检测程序的初始检测语句;确定所述初始检测语句的位置,其中初始检测语句的位置包括所述初始检测语句对应的寄存器名称;以所述初始检测语句为起点,顺序追踪检测待检测程序;追踪检测到结束条件,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,并结束检测。根据本发明专利技术的技术方案,提高了程序漏洞的检测效率。

Method, terminal and server for detecting program vulnerability

The present application provides a method for detecting a program vulnerability, a terminal and a server. The method comprises the following steps: according to preset vulnerability detection program rules, to determine the initial conditions corresponding to the loopholes in rules and end conditions; according to the initial statement of initial conditions corresponding to the detection rules determine the vulnerability to test procedures; to determine the location of the initial detection of sentence, the initial statement including position detection the initial detection statement corresponding to the register name; to the initial detection statement as a starting point, the order tracking program to be detected; tracking stop condition is detected, the data flow path of recording the initial detection statement of the position and the statement to the end of the initial detection conditions, and end detection. According to the technical proposal of the invention, the detection efficiency of the program loophole is improved.

【技术实现步骤摘要】
一种程序漏洞的检测方法、终端及服务器
本专利技术涉及信息安全领域,具体而言,涉及一种程序漏洞的检测方法、终端及服务器。
技术介绍
随着智能终端的迅猛发展,智能终端上各种APP程序不断增多,信息安全的隐患也不断增大,因此,在每一款APP程序正式发布之前,都需要对程序的漏洞进行检测。现有的检测方法通常为确定漏洞的起点函数和终点函数,在程序中寻找该起点函数,然后根据起点函数进行逆向查找,找到对应的终点函数,再进行分析是否为漏洞;若起点函数为通用函数,则会导致逆向查找的工作量大大增加,且需要技术人员对查找出的每一条路径都进行分析,费时费力。因此,通过逆向查找的方法检测程序中的漏洞时,若逆向查找的起点函数为通用函数时,容易造成检测效率低的问题。
技术实现思路
本专利技术的主要目的在于提供一种程序漏洞的检测方法、终端及服务器,以解决检测智能终端APP程序中的漏洞检测效率低的问题。为了实现上述目的,根据本专利技术的一个方面,提供了一种程序漏洞的检测方法,该方法包括:根据待检测程序预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件;根据所述漏洞规则对应的初始条件确定所述待检测程序的初始检测语句;确定所述初始检测语句的位置,其中初始检测语句的位置包括所述初始检测语句对应的寄存器名称;以所述初始检测语句为起点,顺序追踪检测待检测程序;追踪检测到结束条件,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,并结束检测。进一步地,以所述初始检测语句为起点,顺序追踪检测待检测程序,具体包括:以所述初始检测语句为起点,顺序追踪检测待检测程序,若追踪检测过程中检测到跳转语句,则根据跳转语句的跳转逻辑进行跳转;跳转后按照待检测程序的执行顺序继续追踪检测。进一步地,若追踪检测过程中检测到按照第一检测语句顺序执行的语句为跳转语句,且跳转语句对应的跳转逻辑为赋值逻辑,则根据跳转语句的跳转逻辑进行跳转并在跳转后按照待检测程序的执行顺序继续追踪检测;且确定跳转至所述第一检测语句对应的跳转语句为第一跳转语句;将所述第一跳转语句顺序执行对应的检测语句作为第二检测语句,对第二检测语句进行顺序追踪检测。进一步地,所述追踪检测到结束条件,具体包括:追踪检测第一检测语句对应的跳转语句,检测到结束条件;且追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件;追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件;追踪检测所述第二检测语句,未检测到结束条件。进一步地,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,具体包括:追踪检测第一检测语句对应的跳转语句,检测到结束条件,且追踪检测所述第二检测语句,检测到结束条件;则分别记录所述初始检测语句的位置,所述通过第一检测语句检测到结束条件对应的数据流动路径;以及所述初始检测语句的位置,所述通过第二检测语句检测到结束条件对应的数据流动路径;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件,追踪检测所述第二检测语句,未检测到结束条件;则记录所述初始检测语句的位置,所述通过第一检测语句检测到结束条件对应的数据流动路径;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件,追踪检测所述第二检测语句,检测到结束条件;则记录所述初始检测语句的位置,所述通过第二检测语句检测到结束条件对应的数据流动路径。进一步地,以所述初始检测语句为起点,顺序追踪检测待检测程序,还包括:以所述初始检测语句为起点,顺序追踪检测,若追踪检测到的跳转语句的次数大于设定的次数阈值,则结束追踪检测;若不大于设定的次数阈值,则继续追踪检测。进一步地,确定所述初始检测语句的位置之前,还包括:对待检测程序的语句进行分析,确定所述待检测程序中的跳转语句;将所述待检测程序中每两个跳转语句之间的顺序执行语句集合作为一个跳转语句块;根据跳转语句的逻辑关系确定各跳转语句块之间的跳转逻辑关系。进一步地,以所述初始检测语句为起点,顺序追踪检测待检测程序,具体包括:以所述初始检测语句为起点,根据跳转语句块的执行顺序以及所述跳转语句块之间的跳转逻辑关系对所述待检测程序进行顺序追踪检测。进一步地,对待检测程序的语句进行分析,确定所述待检测程序中的跳转语句,具体包括:将所述待检测程序语句编译为中间语言;对所述中间语言进行分析,确定所述中间语言的跳转语句。进一步地,根据预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件,具体包括:将所述漏洞规则对应的初始条件和结束条件形成配置文件。进一步地,所述配置文件中的初始条件包括至少一个漏洞触发条件;所述配置文件中的结束条件包括至少一个漏洞形成条件。为了实现上述目的,根据本专利技术的另一方面,还提供了一种程序漏洞的检测终端,该终端包括:规则识别模块,用于根据待检测程序预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件;所述规则识别模块,还用于根据所述漏洞规则对应的初始条件确定所述待检测程序的初始检测语句;语句分析模块,用于确定所述初始检测语句的位置,其中初始检测语句的位置包括所述初始检测语句对应的寄存器名称;漏洞检测模块,用于以所述初始检测语句为起点,顺序追踪检测待检测程序;检测记录模块,用于追踪检测到结束条件,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,并结束检测。进一步地,所述漏洞检测模块,具体用于:以所述初始检测语句为起点,顺序追踪检测待检测程序,若追踪检测过程中检测到跳转语句,则根据跳转语句的跳转逻辑进行跳转;跳转后按照待检测程序的执行顺序继续追踪检测。进一步地,所述漏洞检测模块,还用于:若追踪检测过程中检测到按照第一检测语句顺序执行的语句为跳转语句,且跳转语句对应的跳转逻辑为赋值逻辑,则根据跳转语句的跳转逻辑进行跳转并在跳转后按照待检测程序的执行顺序继续追踪检测;且确定跳转至所述第一检测语句对应的跳转语句为第一跳转语句;将所述第一跳转语句顺序执行对应的检测语句作为第二检测语句,对第二检测语句进行顺序追踪检测。进一步地,所述检测记录模块,具体用于:追踪检测第一检测语句对应的跳转语句,检测到结束条件;且追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件;追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件;追踪检测所述第二检测语句,未检测到结束条件。进一步地,所述检测记录模块,具体用于:追踪检测第一检测语句对应的跳转语句,检测到结束条件,且追踪检测所述第二检测语句,检测到结束条件;则分别记录所述初始检测语句的位置,所述通过第一检测语句检测到结束条件对应的数据流动路径;以及所述初始检测语句的位置,所述通过第二检测语句检测到结束条件对应的数据流动路径;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件,追踪检测所述第二检测语句,未检测到结束条件;则记录所述初始检测语句的位置,所述通过第一检测语句检测到结束条件对应的数据流动路径;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件,追踪检测所述第二检测语句,检测到结束条件;则本文档来自技高网...
一种程序漏洞的检测方法、终端及服务器

【技术保护点】
一种程序漏洞的检测方法,其特征在于,包括:根据待检测程序预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件;根据所述漏洞规则对应的初始条件确定所述待检测程序的初始检测语句;确定所述初始检测语句的位置,其中初始检测语句的位置包括所述初始检测语句对应的寄存器名称;以所述初始检测语句为起点,顺序追踪检测待检测程序;追踪检测到结束条件,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,并结束检测。

【技术特征摘要】
1.一种程序漏洞的检测方法,其特征在于,包括:根据待检测程序预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件;根据所述漏洞规则对应的初始条件确定所述待检测程序的初始检测语句;确定所述初始检测语句的位置,其中初始检测语句的位置包括所述初始检测语句对应的寄存器名称;以所述初始检测语句为起点,顺序追踪检测待检测程序;追踪检测到结束条件,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,并结束检测。2.如权利要求1所述的方法,其特征在于,以所述初始检测语句为起点,顺序追踪检测待检测程序,具体包括:以所述初始检测语句为起点,顺序追踪检测待检测程序,若追踪检测过程中检测到跳转语句,则根据跳转语句的跳转逻辑进行跳转;跳转后按照待检测程序的执行顺序继续追踪检测。3.如权利要求2所述的方法,其特征在于,若追踪检测过程中检测到按照第一检测语句顺序执行的语句为跳转语句,且跳转语句对应的跳转逻辑为赋值逻辑,则根据跳转语句的跳转逻辑进行跳转并在跳转后按照待检测程序的执行顺序继续追踪检测;且确定跳转至所述第一检测语句对应的跳转语句为第一跳转语句;将所述第一跳转语句顺序执行对应的检测语句作为第二检测语句,对第二检测语句进行顺序追踪检测。4.如权利要求3所述的方法,其特征在于,所述追踪检测到结束条件,具体包括:追踪检测第一检测语句对应的跳转语句,检测到结束条件;且追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件;追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件;追踪检测所述第二检测语句,未检测到结束条件。5.如权利要求4所述的方法,其特征在于,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,具体包括:追踪检测第一检测语句对应的跳转语句,检测到结束条件,且追踪检测所述第二检测语句,检测到结束条件;则分别记录所述初始检测语句的位置,所述通过第一检测语句检测到结束条件对应的数据流动路径;以及所述初始检测语句的位置,所述通过第二检测语句检测到结束条件对应的数据流动路径;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件,追踪检测所述第二检测语句,未检测到结束条件;则记录所述初始检测语句的位置,所述通过第一检测语句检测到结束条件对应的数据流动路径;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件,追踪检测所述第二检测语句,检测到结束条件;则记录所述初始检测语句的位置,所述通过第二检测语句检测到结束条件对应的数据流动路径。6.如权利要求1~5任一所述的方法,其特征在于,以所述初始检测语句为起点,顺序追踪检测待检测程序,还包括:以所述初始检测语句为起点,顺序追踪检测,若追踪检测到的跳转语句的次数大于设定的次数阈值,则结束追踪检测;若不大于设定的次数阈值,则继续追踪检测。7.如权利要求6所述的方法,其特征在于,确定所述初始检测语句的位置之前,还包括:对待检测程序的语句进行分析,确定所述待检测程序中的跳转语句;将所述待检测程序中每两个跳转语句之间的顺序执行语句集合作为一个跳转语句块;根据跳转语句的逻辑关系确定各跳转语句块之间的跳转逻辑关系。8.如权利要求7所述的方法,其特征在于,以所述初始检测语句为起点,顺序追踪检测待检测程序,具体包括:以所述初始检测语句为起点,根据跳转语句块的执行顺序以及所述跳转语句块之间的跳转逻辑关系对所述待检测程序进行顺序追踪检测。9.如权利要求8所述的方法,其特征在于,对待检测程序的语句进行分析,确定所述待检测程序中的跳转语句,具体包括:将所述待检测程序语句编译为中间语言;对所述中间语言进行分析,确定所述中间语言的跳转语句。10.如权利要求1~5任一所述的方法,其特征在于,根据预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件,具体包括:将所述漏洞规则对应的初始条件和结束条件形成配置文件。11.如权利要求10所述的方法,其特征在于,所述配置文件中的初始条件包括至少一个漏洞触发条件;所述配置文件中的结束条件包括至少一个漏洞形成条件。12.一种程序漏洞的检测终端,其特征在于,该终端包括:规则识别模块,用于根据待检测程序预先设定的漏洞规则,确定所述漏洞规则对应的初始条件和结束条件;所述规则识别模块,还用于根据所述漏洞规则对应的初始条件确定所述待检测程序的初始检测语句;语句分析模块,用于确定所述初始检测语句的位置,其中初始检测语句的位置包括所述初始检测语句对应的寄存器名称;漏洞检测模块,用于以所述初始检测语句为起点,顺序追踪检测待检测程序;检测记录模块,用于追踪检测到结束条件,记录所述初始检测语句的位置以及所述初始检测语句至所述结束条件的数据流动路径,并结束检测。13.如权利要求12所述的终端,其特征在于,所述漏洞检测模块,具体用于:以所述初始检测语句为起点,顺序追踪检测待检测程序,若追踪检测过程中检测到跳转语句,则根据跳转语句的跳转逻辑进行跳转;跳转后按照待检测程序的执行顺序继续追踪检测。14.如权利要求13所述的终端,其特征在于,所述漏洞检测模块,还用于:若追踪检测过程中检测到按照第一检测语句顺序执行的语句为跳转语句,且跳转语句对应的跳转逻辑为赋值逻辑,则根据跳转语句的跳转逻辑进行跳转并在跳转后按照待检测程序的执行顺序继续追踪检测;且确定跳转至所述第一检测语句对应的跳转语句为第一跳转语句;将所述第一跳转语句顺序执行对应的检测语句作为第二检测语句,对第二检测语句进行顺序追踪检测。15.如权利要求14所述的终端,其特征在于,所述检测记录模块,具体用于:追踪检测第一检测语句对应的跳转语句,检测到结束条件;且追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,未检测到结束条件;追踪检测所述第二检测语句,检测到结束条件;或,追踪检测第一检测语句对应的跳转语句,检测到结束条件;追踪检测所述第二检测语句,未检测到结束条件。16.如权利要求15所述的终端,其特征在于,所述检测记录模块,具体用于:追踪检测第一检测语句对应的跳转语句,检测到结束条件,且追踪检测所述第二检测语句,检测到结束条件;则分别记录所述初始检测语句的位置,所述通过...

【专利技术属性】
技术研发人员:陈晋福
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1