漏洞检测方法及装置制造方法及图纸

技术编号:15956072 阅读:21 留言:0更新日期:2017-08-08 09:55
本申请提供了一种漏洞检测方法及装置,该漏洞检测方法包括:对第一操作系统的计算机程序进行漏洞挖掘,获得漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据;利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测;其中,所述第一操作系统的计算机程序及第二操作系统的计算机程序由同一待检测源码编译而成。利用本申请,能够快速准确的对不同操作系统的计算机程序进行漏洞挖掘。

【技术实现步骤摘要】
漏洞检测方法及装置
本申请涉及软件程序测试
,特别涉及一种漏洞检测方法及装置。
技术介绍
模糊测试(Fuzz)是一种常见的漏洞检测方法,通过向测试目标发送各种随机构造的畸形数据并观察目标是否存在异常行为,然后分析这些异常行为的详细信息以进一步判断是否存在漏洞。畸形数据为根据待测试程序中的目标数据随机构造的数据,例如可以为一个字符串模板,或者为一段二进制数据,将该字符串模板或者该段二进制数据按照一定的比例随机地改变其中的若干字节,可以生成一份新的数据,这份新的数据即为畸形数据。一个Fuzz工具主要有以下几个组成部分:样本分析模块;变异模块;数据发送模块;目标状态监控模块;日志模块;各个模块的主要功能如下:样本分析模块:对目标程序能够正常处理的一个样本进行分析,主要分析它的结构,为后续对其做随机化的变异做准备。变异模块:对正常的样本进行随机化的变异,可能是随机修改某个位置的数据为一个随机值,或者交换前后两个比特的数据等。数据发送模块:主要负责将变异模块产生的畸形数据发送给目标程序。可以是通过网络发送,也可以是本地的直接文件读写。目标状态监控模块:主要负责监控目标程序所在进程在处理发送过去的畸形数据时是否出现了异常,包括一些内存的异常访问,以及代码执行异常等。日志模块:用于记录目标程序都发生了哪些异常,以及导致目标程序出现这些异常的畸形数据等。Fuzz作为一种成熟的漏洞检测方法在PC平台得到了广泛的应用,也有很多成熟切高效稳定的工具可以使用。但是Android作为一个比较年轻的平台,之上的漏洞挖掘处于刚刚起步阶段,Fuzz工具还很少,而很多传统PC平台上的漏洞挖掘工具都无法应用在AndroidARM平台上(如Peach社区版),使得AndroidARM平台上的漏洞挖掘无法复用传统PC平台上的工具。具体地,X86平台为传统PC的主要运行平台,使用intel的x86系列处理器,ARM为Android系统的主要运行平台,使用ARM处理器,二者的指令是不兼容的,即编译给x86平台程序不能够运行在ARM平台。为了进行Android系统的漏洞挖掘,现有技术中通常采用如下方法:1、直接使用自带支持FuzzAndroid系统平台的Fuzz框架。2、将传统PC平台的Fuzz工具移植到Android平台。第1种方法的主要问题是默认自带支持Android系统的传统PC平台的Fuzz工具非常少,目前已知只有Peach(商业版)。导致很多其它成熟的PC平台Fuzz工具及其技术无法使用。第2种方法的主要问题是:移植时要求对应的Fuzz工具是公开源码的,对于以可执行文件形式分发的Fuzz工具,这种方案无法使用。移植过程中需要花费很多精力处理对Android系统使用的非标准C库以及Android系统的一些特性的兼容,如Android使用了与PC上操作系统不同的共享内存机制,很多Fuzz工具会使用共享内存机制来监测目标程序的状态,如AFL,这些工具在移植的时候需要修改其内部实现才能够运行在Android系统上。整套Fuzz工具移植到Android上之后,由于目前Android设备的性能普遍远不如PC,会导致Fuzz效率变低很多。
技术实现思路
本申请的一实施例提供一种漏洞检测方法,以快速准确的对不同操作系统的计算机程序进行漏洞挖掘,该方法包括:对所述第一操作系统的计算机程序进行漏洞挖掘,获得漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据;利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测;其中,所述第一操作系统的计算机程序与第二操作系统的计算机程序由同一待检测源码编译而成。本申请的一实施例提供一种漏洞检测装置,以快速的对不同操作系统的计算机程序进行漏洞挖掘,该装置包括:畸形数据生成单元,用于对所述第一操作系统的计算机程序进行漏洞挖掘,获得漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据;漏洞检测单元,用于利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测;其中,所述第一操作系统的计算机程序与第二操作系统的计算机程序由同一待检测源码编译而成。本申请的一实施例提供一种漏洞检测方法,以快速准确的对不同操作系统的计算机程序进行漏洞挖掘,该方法包括:获取适于在第一操作系统上运行的第一程序和适于在第二操作系统上运行的第二程序,其中,所述第一程序和第二程序对应于同一待检测源码;针对所述第一程序,获取导致第一程序运行出现异常的异常数据;利用所述异常数据,对所述第二程序进行漏洞检测。由以上本申请实施例提供的技术方案可见,利用本申请的漏洞检测方法及装置,能够快速准确的对不同操作系统的计算机程序进行漏洞挖掘。附图说明为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请实施例的漏洞检测方法的流程图;图2为本申请实施例的编译方法流程图;图3为本申请一实施例的漏洞挖掘方法的流程图;图4为本申请另一实施例的漏洞挖掘方法的流程图;图5为本申请一实施例利用畸形数据进行漏洞检测的方法流程图;图6为本申请另一实施例利用畸形数据进行漏洞检测的方法流程图;图7为本申请实施例的Android源码中的某个子项目Makefile示意图;图8为本申请实施例的编译成功的x86平台程序示意图;图9为本申请实施例的编译结果输出的目录示意图;图10为本申请实施例的x86平台的可执行文件示意图;图11为本申请实施例的漏洞检测装置的结构框图;图12为本申请实施例的漏洞检测装置的具体实施例的结构框图;图13为本申请实施例的编译单元901的具体实施例的结构框图;图14为本申请另一实施例的漏洞检测装置的结构框图;图15为本申请实施例的畸形数据生成单元902的具体实施例的结构框图;图16为本申请实施例的漏洞检测单元903的具体实施例的结构框图。图17为本申请在业务实现中的应用场景示意图;图18为本申请一实施例的漏洞挖掘方法的流程图;图19为本申请实施例采用模糊测试的方法进行漏洞检测方法流程图;图20为本申请一实施例的漏洞挖掘方法的流程图。具体实施方式下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。图17为本申请一实施例在业务实现中的应用场景示意图。如图17所示,本申请实施例的技术方案可以在移动终端1701与计算机端1702之间实现对端的应用程序漏洞检测业务。利用计算机端1702对移动终端1701的应用程序进行漏洞检测时,可以在计算机端1702虚拟一个移动终端系统,通过在计算机端1702对虚拟的移动终端系统的应用程序漏洞检测,实现移动终端1701的应用程序漏洞检测。Android作为一个比较年轻的平台,Fuzz工具还很少,传统PC平台上的漏洞挖掘工具无法应用在Android平台上,使得Android平台上的漏洞挖掘无法复用传统PC本文档来自技高网
...

【技术保护点】
一种漏洞检测方法,其特征在于,包括:对第一操作系统的计算机程序进行漏洞挖掘,获得漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据;利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测;其中,所述第一操作系统的计算机程序及第二操作系统的计算机程序由同一待检测源码编译而成。

【技术特征摘要】
2015.12.15 CN 20151093261671.一种漏洞检测方法,其特征在于,包括:对第一操作系统的计算机程序进行漏洞挖掘,获得漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据;利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测;其中,所述第一操作系统的计算机程序及第二操作系统的计算机程序由同一待检测源码编译而成。2.根据权利要求1所述的漏洞检测方法,其特征在于,还包括:将待检测源码分别编译为能够运行在所述第一操作系统的计算机程序以及能够运行在所述第二操作系统的计算机程序。3.根据权利要求2所述的漏洞检测方法,其特征在于,利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测,包括:向所述第二操作系统的计算机程序提交所述畸形数据;利用所述畸形数据作为输入数据,检测所述第二操作系统的计算机程序是否出现异常,以分析所述第二操作系统的计算机程序是否存在漏洞。4.根据权利要求1所述的漏洞检测方法,其特征在于,所述待检测源码为Android系统的应用程序源码。5.根据权利要求3所述的漏洞检测方法,其特征在于,所述第一操作系统为Linux系统,第二操作系统为Android系统;对所述第一操作系统的计算机程序进行漏洞挖掘,并记录漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据,包括:对所述Linux系统的计算机程序进行模糊测试,检测所述Linux系统存在的漏洞;记录模糊测试过程中导致所述Linux系统的计算机程序出现异常的畸形数据。6.根据权利要求3所述的漏洞检测方法,其特征在于,所述第一操作系统为Windows系统,第二操作系统为Android系统;对所述第一操作系统的计算机程序进行漏洞挖掘,并记录漏洞挖掘过程中导致所述第一操作系统的计算机程序出现异常的畸形数据,包括:对所述Windows系统的计算机程序进行模糊测试,检测所述Windows系统存在的漏洞;记录模糊测试过程中导致所述Windows系统的计算机程序出现异常的畸形数据。7.根据权利要求5或6所述的漏洞检测方法,其特征在于,利用所述畸形数据对在第二操作系统的计算机程序进行漏洞检测,包括:向所述Android系统的计算机程序提交所述畸形数据;利用所述畸形数据作为输入数据,检测所述Android系统的计算机程序是否出现异常,以分析所述Android版本程序是否存在漏洞。8.根据权利要求1所述的漏洞检测方法,其特征在于,还包括:通过repo工具将所述待检测源码下载到所述第一操作系统,或者,将所述待检测源码拷贝到所述第一操作系统。9.根据权利要求5所述的漏洞检测方法,其特征在于,将待检测源码分别编译为能够运行在第一操作系统的计算机程序以及能够运行在第二操作系统的计算机程序,包括:获取所述待检测源码中用于编译的脚本;根据所述脚本将所述待检测源码分别编译为能够运行在Linux系统的计算机程序以及能够运行在Android系统的计算机程序。10.根据权利要求6所述的漏洞检测方法,其特征在于,将待检测源码分别编译为能够运行在第一操作系统的计算机程序以及能够运行在第二操作系统的计算机程序,包括:获取所述待检测源码中用于编译的脚本;根据所述脚本将所述待检测源码分别编译为能够运行在Windows系统的计算机程序以及能够运行在Android系统的计算机程序。11.根据权利要求5或6所述的漏洞检测方法,其特征在于,还包括:将所述Android系统的计算机程序对应的运行系统刷入Android设备,以作为所述Android系统的计算机程序在该Android设备中的运行环境。12.一种漏洞检测装置,其特征在于,包括:畸形数据生成单元,用于对第一操作系统的计算机程序进行漏洞挖掘,获得漏洞挖掘过...

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

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

1