用于检测待检测应用的漏洞的方法及装置制造方法及图纸

技术编号:14412569 阅读:102 留言:0更新日期:2017-01-12 00:33
本申请提供了用于检测待检测应用的漏洞的方法及装置。所述方法包括:识别待检测应用中的语句的漏洞特征信息;确定所述漏洞特征信息所对应的寄存器;追溯所述寄存器,以获得所述寄存器的值,其中在追溯所述寄存器的过程中若存在使用指定跳转语句为所述寄存器赋值,则参考存储有所述指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,确定需跳转追溯的寄存器继续追溯;基于所述寄存器的值判断所述语句是否存在漏洞。本申请实现了更加准确地检测应用的漏洞。

【技术实现步骤摘要】

本申请涉及漏洞检测
,尤其涉及一种用于检测待检测应用的漏洞的方法及装置
技术介绍
检测应用(APP)漏洞的目的是发现应用可能存在的漏洞,以对检测出的漏洞进行修补等处理,从而保证应用的正常运行。与本申请较相近的已有技术是通过后向追踪分析方法来检测应用的漏洞。该方法通过对具有漏洞特征信息的语句所相关的寄存器进行追溯,以获得寄存器的值,并对寄存器的值进行分析来检测漏洞。该后向追踪分析方法只能在所述具有漏洞特征信息的语句所在的函数内追溯寄存器,以获得所追溯的寄存器的值。也就是只能在一个函数内追溯寄存器并获取寄存器的值。但具有漏洞特征信息的语句所在的函数内有可能不存在为所追溯的寄存器赋值的语句,或为所追溯的寄存器赋的值为静态无法获取的值,或使用函数为所追溯的寄存器赋值等情况,在上述情况下该后向追踪分析方法所获得的寄存器的值均不能获得正确的寄存器的值,那么基于该获得的寄存器的值进行应用漏洞检测的结果也同样不够准确。
技术实现思路
本申请解决的技术问题之一是提供一种用于检测待检测应用的漏洞的方法及装置,能够提高检测应用存在的漏洞的准确性。根据本申请一方面的一个实施例,提供了一种用于检测待检测应用的漏洞的方法,包括:识别待检测应用中的语句的漏洞特征信息;确定所述漏洞特征信息所对应的寄存器;追溯所述寄存器,以获得所述寄存器的值,其中在追溯所述寄存器的过程中若存在使用指定跳转语句为所述寄存器赋值,则参考存储有所述指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,确定需跳转追溯的寄存器继续追溯;基于所述寄存器的值判断所述语句是否存在漏洞。根据本申请另一方面的一个实施例,提供了一种用于检测待检测应用的漏洞的装置,包括:识别单元,用于识别待检测应用中的语句的漏洞特征信息;确定单元,用于确定所述漏洞特征信息所对应的寄存器;追溯单元,用于追溯所述寄存器,以获得所述寄存器的值,其中在追溯所述寄存器的过程中若存在使用指定跳转语句为所述寄存器赋值,则参考存储有所述指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,确定需跳转追溯的寄存器继续追溯;漏洞判断单元,用于基于所述寄存器的值判断所述语句是否存在漏洞。现有技术之所以进行应用漏洞检测的准确性不高是因为,它往往只能在一个函数内追溯寄存器并获取寄存器的值,并基于该寄存器的值判断语句的漏洞,因为在一个函数内追溯寄存器是比较容易的,而在函数之间尤其是跳转函数为寄存器赋值时,追溯起来涉及不同函数之间的跳转,比较复杂。本申请实施例巧妙地利用了存储有指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,在追溯所述寄存器的过程中,对于使用指定跳转语句为所述寄存器赋值的情况(多半是函数间赋值的情况),可以参考存储有所述指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,确定出需跳转追溯的寄存器继续追溯,从而可追溯到源寄存器,获得准确的寄存器的值,从而克服了现有技术只能在一个函数内追溯寄存器造成检测漏洞不准确的问题。因此本申请实施例有效提高了应用漏洞检测的准确性。本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。附图说明通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本申请的其它特征、目的和优点将会变得更明显:图1是根据本申请一个实施例的用于检测待检测应用的漏洞的方法的流程图。图2是根据本申请一个实施例的追溯寄存器获得寄存器的值的方法的流程图。图3是根据本申请一个实施例的用于检测待检测应用的漏洞的装置的结构示意图。图4是根据本申请又一个实施例的用于检测待检测应用的漏洞的装置的结构示意图。本领域普通技术人员将了解,虽然下面的详细说明将参考图示实施例、附图进行,但本申请并不仅限于这些实施例。而是,本申请的范围是广泛的,且意在仅通过后附的权利要求限定本申请的范围。具体实施方式在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。所述计算机设备包括用户设备与网络设备。其中,所述用户设备包括但不限于电脑、智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(CloudComputing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本申请,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本申请。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。需要说明的是,所述用户设备、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本申请,也应包含在本申请保护范围以内,并以引用方式包含于此。后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本申请的示例性实施例的目的。但是本申请可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举本文档来自技高网...
用于检测待检测应用的漏洞的方法及装置

【技术保护点】
一种用于检测待检测应用的漏洞的方法,其特征在于,包括:识别待检测应用中的语句的漏洞特征信息;确定所述漏洞特征信息所对应的寄存器;追溯所述寄存器,以获得所述寄存器的值,其中在追溯所述寄存器的过程中若使用指定跳转语句为所述寄存器赋值,则参考存储有所述指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,确定需跳转追溯的寄存器继续追溯;基于所述寄存器的值判断所述语句是否存在漏洞。

【技术特征摘要】
1.一种用于检测待检测应用的漏洞的方法,其特征在于,包括:识别待检测应用中的语句的漏洞特征信息;确定所述漏洞特征信息所对应的寄存器;追溯所述寄存器,以获得所述寄存器的值,其中在追溯所述寄存器的过程中若使用指定跳转语句为所述寄存器赋值,则参考存储有所述指定跳转语句及对应的需跳转追溯的寄存器的信息的配置文件,确定需跳转追溯的寄存器继续追溯;基于所述寄存器的值判断所述语句是否存在漏洞。2.根据权利要求1的方法,其特征在于,所述追溯所述寄存器,以获得所述寄存器的值的步骤包括:判断是否使用指定跳转语句为所述寄存器赋值;若判断出不使用指定跳转语句为所述寄存器赋值,则获取所述寄存器所被赋的值作为所述寄存器的值,停止追溯。3.如权利要求2所述的方法,其特征在于,所述不使用指定跳转语句为所述寄存器赋值包括以下任一种情况:为寄存器赋的值为常量;为寄存器赋的值为特定的静态无法获取的值;为寄存器赋的值为可解析函数。4.如权利要求1或2所述的方法,其特征在于,在确定需跳转追溯的寄存器继续追溯的情况下,所述方法还包括:记录跳转次数;以及,所述追溯所述寄存器,以获得所述寄存器的值的步骤包括:判断跳转次数是否达到规定阈值;如果达到规定阈值,则获取寄存器所被赋的值作为所述寄存器的值,停止追溯。5.根据权利要求1的方法,其特征在于,所述漏洞特征信息、与所述漏洞特征信息对应的寄存器相对应地存储在漏洞特征信息表中。6.根据权利要求5的方法,其特征在于,所述漏洞特征信息表还存储
\t与所述漏洞特征信息对应的漏洞标识,所述配置文件还存储与所述指定跳转语句对应的漏洞标识,其中,确定需跳转追溯的寄存器继续追溯前,所述方法还包括:确定所述漏洞特征信息表中与所述漏洞特征信息对应的漏洞标识和配置文件中与所述指定跳转语句对应的漏洞标识一致。7.如权利要求5所述的方法,其特征在于,所述漏洞特征信息表中还存储有与所述漏洞特征信息对应的漏洞判断条件,则基于所述寄存器的值判断所述语句是否存在漏洞包括:判断所述寄存器的值是否满足所述漏洞特征信息表中与所述漏洞特征信息对应的漏洞判断条件;若满足所述漏洞判断条件,则确定所述语句存在漏洞。8.一...

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

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

1