本发明专利技术公开了一种应用程序的漏洞检测方法及装置。其中,该方法包括:将待检测应用程序的安装文件转换为代码文件;获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。通过上述技术方案,解决了漏洞检测方案存在效率低、且检测结果不全面的技术问题。
【技术实现步骤摘要】
本专利技术涉及漏洞检测领域,具体而言,涉及一种应用程序的漏洞检测方法及装置。
技术介绍
随着智能移动终端的快速发展,基于移动操作系统的应用程序也层出不穷,但是,由于开发者众多,应用程序中不可避免地存在安全漏洞。例如,在Android应用程序存在的漏洞中,有一类影响面比较广的漏洞就是Java空指针(NullPointer)拒绝服务(DenialOfService,简称为DOS)漏洞(以下简称DOS漏洞)。这一类漏洞多是由于程序在调用一些系统API的时候处理参数不当造成的程序崩溃,导致正常功能无法使用从而导致DOS。目前检测这类漏洞的主要方式是模糊测试(FuzzTesting),即通过向目标程序的所有可能入口发送随机数据,并观察程序是否会出现异常。如图1所示,Fuzz监测程序是否存在漏洞的原理如下;用于做畸变的样本(sample)被读入Fuzz框架(framework),经过分析交给转换模块(mutation)进行随机化的变异,之后通过桥接部分(bridge)传递给目标程序(target),此时目标应用程序运行在自己的平台(Platformruntime)上,Fuzz框架通过监测模块(monitor)监测目标应用程序的运行状态,发现异常时记录到日志(logger)中。这种方式由于依赖程序的具体执行情况,不能保证遍历所有程序的代码分支,发现漏洞的效率较低,并且由于每秒可能产生几百甚至上千个Fuzz用例,即使检测到目标程序的异常也需要花费很多的精力重现异常以确定漏洞具体存在的点以及能够产生的影响。而且由于目标程序是在目标平台上执行,有些比较深的程序分支很难被查找到。针对上述的问题,目前尚未提出有效的解决方案。
技术实现思路
本专利技术实施例提供了一种应用程序的漏洞检测方法及装置,以至少解决漏洞检测方案存在效率低、且检测结果不全面等技术问题。根据本专利技术实施例的一个方面,提供了一种应用程序的漏洞检测方法,包括:将待检测应用程序的安装文件转换为代码文件;获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。根据本专利技术实施例的另一方面,还提供了一种应用程序的漏洞检测装置,包括:转换模块,用于将待检测应用程序的安装文件转换为代码文件;获取模块,用于获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;检测模块,用于依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。在本专利技术实施例中,采用将应用程序的安装文件转换为代码文件并从该代码文件中查找用于反映指定行为的函数,以及依据描述信息与指定描述信息匹配的第一类函数对应用程序的漏洞进行检测的方式,达到了通过静态分析的方式进行漏洞检测的目的,同时,由于是以应用程序的代码文件为基础进行检测,可以对代码文件中的各个分支进行遍历检测,因此,可以使得检测结果更加全面,进而解决了漏洞检测方案存在的效率低且检测结果不全面等技术问题。附图说明此处所说明的附图用来提供对本专利技术的进一步理解,构成本申请的一部分,本专利技术的示意性实施例及其说明用于解释本专利技术,并不构成对本专利技术的不当限定。在附图中:图1是根据相关技术的一种利用Fuzz监测应用程序的原理示意图;图2是本专利技术实施例的一种用于实现应用程序的漏洞检测方法的计算机终端的硬件结构框图;图3是根据本专利技术实施例的一种可选的应用程序的漏洞检测方法的示意图;图4是根据本专利技术实施例的一种可选的第一CFG的生成过程示意图;图5是根据本专利技术实施例的一种CFG的示意图;图6是根据本专利技术实施例的一种可选的应用程序的漏洞检测方法的另一示意图;图7是根据本专利技术实施例的一种可选的应用程序的漏洞检测装置的示意图;图8是根据本专利技术实施例的一种可选的应用程序的漏洞检测装置的另一示意图;图9是根据本专利技术实施例的一种计算机终端的结构框图。具体实施方式为了使本
的人员更好地理解本专利技术方案,下面将结合本专利技术实施例中的附图,对本专利技术实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本专利技术一部分的实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本专利技术保护的范围。需要说明的是,本专利技术的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本专利技术的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。实施例1根据本专利技术实施例,还提供了一种应用程序的漏洞检测方法的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图2是本专利技术实施例的一种用于实现应用程序的漏洞检测方法的计算机终端的硬件结构框图。如图2所示,计算机终端20可以包括一个或多个(图中仅示出一个)处理器202(处理器202可以包括但不限于微处理器MCU或可编程逻辑器件FPGA等的处理装置)、用于存储数据的存储器204、以及用于通信功能的传输装置206。本领域普通技术人员可以理解,图2所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端20还可包括比图2中所示更多或者更少的组件,或者具有与图2所示不同的配置。存储器204可用于存储应用软件的软件程序以及模块,如本专利技术实施例中的应用程序的漏洞检测方法对应的程序指令/模块,处理器202通过运行存储在存储器204内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的应用程序的漏洞检测方法。存储器204可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器204可进一步包括相对于处理器202远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端20。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。传输装置206用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端20的通信供应商提供的无线网络。在一个实例中,传输装置206包括一个网络适配器(NetworkInterfaceController,NIC),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置206可以为射频(RadioFrequency,RF)模块,其用于通过无线方式与互联网进行通讯。在上述运行环本文档来自技高网...

【技术保护点】
一种应用程序的漏洞检测方法,其特征在于,包括:将待检测应用程序的安装文件转换为代码文件;获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。
【技术特征摘要】
1.一种应用程序的漏洞检测方法,其特征在于,包括:将待检测应用程序的安装文件转换为代码文件;获取指定函数的描述信息,其中,所述指定函数为用于反映指定行为的函数;依据所述描述信息,在所述代码文件中确定与指定描述信息匹配的第一类函数,并依据所述第一类函数对所述应用程序的漏洞进行检测。2.根据权利要求1所述的方法,其特征在于,依据所述第一类函数对所述应用程序的漏洞进行检测,包括:构建所述第一类函数所在分支的第一控制流图CFG,并统计所有所述第一类函数中具有指定特征值的第二类函数;在所述第一CFG中查找所述第二类函数所在的分支,并判断所述第二类函数所在的分支是否进行了异常处理,在判断结果为是时,则确定所述应用程序不存在漏洞;在所述判断结果为否时,则确定所述应用程序存在漏洞。3.根据权利要求2所述的方法,其特征在于,所述异常处理包括:设置用于指示在当前指令异常时,跳转至其他指令的跳转指令或者调用指令。4.根据权利要求2所述的方法,其特征在于,在所述第一CFG中查找所述第二类函数所在的分支,包括:按照预设规则对所述第一CFG中的分支进行过滤,得到第二CFG;在所述第二CFG中查找所述第二类函数所在的分支。5.根据权利要求4所述的方法,其特征在于,按照预设规则对所述第一CFG中的分支进行过滤,包括:删除所述第一CFG中的指定节点以及仅能被该指定节点连通的节点,其中,该指定节点所对应的函数为仅有出度且没有入度的函数。6.根据权利要求2所述的方法,其特征在于,所述指定特征值包括:所述第一类函数的返回值。7.根据权利要求1所述的方法,其特征在于,获取指定函数的描述信息,包括:从网络侧的开源文档中获取所述指定函数的描述信息。8.根据权利要求7所述的方法,其特征在于,从网络侧的开源文档中获取所述指定函数的描述信息,...
【专利技术属性】
技术研发人员:孙伟超,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛;KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。