判断应用程序发生异常的方法及装置与流程

文档序号:12863690阅读:307来源:国知局
判断应用程序发生异常的方法及装置与流程

本发明涉及计算机软件领域,具体而言,涉及一种判断应用程序发生异常的方法及装置。



背景技术:

漏洞是指系统中存在的一些功能性或安全性的逻辑缺陷,其可以包括全部导致威胁、损坏计算机系统安全的所有因素,是计算机系统在硬件、软件、协议的具体实现或系统安全策略上存在的缺陷和不足,从而可以使攻击者能够在未经授权的情况下访问甚至破坏计算机系统。

漏洞挖掘是指对未知漏洞进行探索,综合应用各种技术和工具,尽可能地查找出计算机系统中潜在的漏洞。

现有的漏洞挖掘根据分析对象不同主要可以分为基于源代码的漏洞挖掘和基于目标代码的漏洞挖掘。此外,从逆向分析的软件测试角度而言,漏洞挖掘又可以分为白箱分析、黑箱分析和灰箱分析。

目前,漏洞挖掘分析技术主要包括以下几种:

(1)手工测试

通过客户端或服务器访问目标程序,手动向目标程序发送特殊的数据(包括:有效输入和无效输入),根据目标程序的运行状态以及对手动输入数据的响应来发现目标程序可能存在的安全漏洞。

(2)模糊测试(fuzzing)

通过使用大量半有效的数据(即文件的必要标识部分和大部分数据是有效的)作为应用程序的输入,以程序运行是否发生异常为标志,来发现应用程序中可能存在的安全漏洞。

(3)二进制比对

对于安全漏洞而言,通常需要配置相应的补丁去修复,因此,可以通过比较补丁 修复前和补丁修复后的二进制文件定位漏洞代码,再加以数据流分析,最终来确定漏洞的位置和成因。

(4)静态分析

通过词法、语法、语义分析检测程序中潜在的安全漏洞,其基本原理在于对应用程序的源程序进行静态扫描分析,重点检查函数调用和返回状态。

(5)动态分析

通过在调试器中运行目标程序,观察执行过程中程序的运行状态、内存使用状况以及寄存器的取值来查找安全漏洞。

adobeflashplayer是一款由adobe公司开发的高级客户端运行时使用的多媒体程序播放器,其能够在各种浏览器、操作系统和移动设备上使用,功能强大、兼容性高,其由最初设计的播放二维向量动画逐步发展为适合开发创造丰富型互联网应用程序、流视频/音频的工具,可以使用矢量图形技术来最小化文件的大小并且建立节省网络带宽和下载时间的文件,因此,成为嵌入网页中的小游戏、动画以及图形用户界面的常用格式。

基于一个完整的文件是由多个不同的字段来组成的,不同的文件类型,其所包含的字段不同,为此,相关技术中针对文件格式所采用的漏洞挖掘技术采用对特定文件进行格式解析,对其字段进行随机修改,然后再重新构造成新的修改文件,进而测试应用程序是否能够正常解析上述经过修改的文件。如果应用程序发生异常,则说明该应用程序可能存在安全缺陷。

目前,各大公司或独立安全研究人员针对adobeflashplayer的漏洞挖掘,主要是采用相关技术中提供的对文件进行格式解析并对其字段进行随机修改进而完成模糊测试,其安全测试也只能覆盖到文件格式的具体字段解析层面,而无法发现应用程序在处理逻辑方面存在的缺陷。

针对上述的问题,目前尚未提出有效的解决方案。



技术实现要素:

本发明实施例提供了一种判断应用程序发生异常的方法及装置,以至少解决相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷的技术问题。

根据本发明实施例的一个方面,提供了一种判断应用程序发生异常的方法,包括:

在待测应用程序对待播放的多媒体文件执行播放操作的过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断对待播放的多媒体文件的播放操作;判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

可选地,在向宿主程序发送控制指令之前,还包括:向待测应用程序发送待播放的多媒体文件。

可选地,在向待测应用程序发送多媒体文件之前,还包括:选取原始的多媒体文件;利用模糊测试工具对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选地,判断宿主程序在获取到控制指令后是否发生异常包括:判断当前是否弹出与控制指令对应的告警提示信息,其中,告警提示信息是在待测应用程序对待播放的多媒体文件进行播放的过程被控制指令中断后发生异常时触发的;如果是,则确定宿主程序在获取到控制指令后发生异常;如果否,则确定宿主程序在获取到控制指令后未发生异常。

可选地,在确定宿主程序在获取到控制指令后未发生异常之后,还包括:对原始的多媒体文件进行更换,并利用模糊测试工具对更换后的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选地,利用模糊测试工具重新对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选地,控制指令包括以下之一:关闭宿主程序的显示窗口的指令;引导宿主程序的处理逻辑重定向的指令。

根据本发明实施例的另一方面,还提供了另一种判断应用程序发生异常的方法,包括:

在待测应用程序执行过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断执行;判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

根据本发明实施例的又一方面,还提供了一种判断应用程序发生异常的装置,包括:

第一发送模块,用于在待测应用程序对待播放的多媒体文件执行播放操作的过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程 序中断对待播放的多媒体文件的播放操作;判断模块,用于判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

可选地,第二发送模块,用于向待测应用程序发送待播放的多媒体文件。

可选地,上述装置还包括:选取模块,用于选取原始的多媒体文件;生成模块,用于利用模糊测试工具对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选地,判断模块包括:判断单元,用于判断当前是否弹出与控制指令对应的告警提示信息,其中,告警提示信息是在待测应用程序对待播放的多媒体文件进行播放的过程被控制指令中断后发生异常时触发的;第一确定单元,用于在判断单元输出为是时,确定宿主程序在获取到控制指令后发生异常;第二确定单元,用于在判断单元输出为否时,确定宿主程序在获取到控制指令后未发生异常。

可选地,选取模块,还用于对原始的多媒体文件进行更换以及生成模块,还用于模糊测试工具对更换后的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选地,生成模块,还用于利用模糊测试工具重新对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选地,控制指令包括以下之一:关闭宿主程序的显示窗口的指令;引导宿主程序的处理逻辑重定向的指令。

根据本发明实施例的再一方面,还提供了另一种判断应用程序发生异常的装置,包括:

发送模块,用于在待测应用程序执行过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断执行;判断模块,用于判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

在本发明实施例中,采用在待测应用程序对待播放的多媒体文件进行播放的过程中通过向待测应用程序的宿主程序发送用于触发待测应用程序中断对待播放的多媒体文件的播放操作的控制指令的方式,通过引入能够阻断待测应用程序正常处理逻辑的攻击方式强制中断上述播放过程,达到了通过判断宿主程序在获取到控制指令后是否发生异常(即宿主程序发生异常用于表明待测应用程序发生异常)进而确定待测应用程序是否存在安全缺陷的目的,从而实现了通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷的技术效果,进而解 决了相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷的技术问题。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1是本发明实施例的一种判断应用程序发生异常的方法的计算机终端的硬件结构框图;

图2是根据本发明实施例的判断应用程序发生异常的方法的流程图;

图3是根据本发明优选实施例的判断应用程序发生异常的方法的流程图;

图4是根据本发明实施例的另一种判断应用程序发生异常的方法的流程图;

图5是根据本发明实施例的判断应用程序发生异常的装置的结构框图;

图6是根据本发明优选实施例的判断应用程序发生异常的装置的结构框图;

图7是根据本发明实施例的另一种判断应用程序发生异常的装置的结构框图;

图8是根据本发明实施例的一种计算机终端的结构框图。

具体实施方式

为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。

需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方 法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。

本发明所涉及到的名词解释如下:

(1)应用程序是指为完成一项或多项特定工作的计算机程序,其运行在用户模式,可以与用户之间进行信息交互,且具有可视的用户界面。

(2)多媒体文件表示媒体(包括但不限于以下至少之一:文字、图片、音频、视频)的各种编码数据在计算机中以文件的形式进行存储,是二进制数据的集合。

(3)宿主程序是指在计算机环境下,软件赖以生存的软件环境。

(4)控制指令是指先由研发人员编写代码然后再由计算机按照代码的编写规则加以运行,用于执行特定的控制操作。

(5)模糊测试工具是指通过使用大量半有效的数据作为应用程序的输入,以程序运行是否发生异常为标志,来发现应用程序中可能存在的安全漏洞的安全性检测手段。

实施例1

根据本发明实施例,还提供了一种判断应用程序发生异常的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。

本申请实施例一所提供的方法实施例可以在移动终端、计算机终端或者类似的运算装置中执行。以运行在计算机终端上为例,图1是本发明实施例的一种判断应用程序发生异常的方法的计算机终端的硬件结构框图。如图1所示,计算机终端10可以包括一个或多个(图中仅示出一个)处理器102(处理器102可以包括但不限于微处理器mcu或可编程逻辑器件fpga等的处理装置)、用于存储数据的存储器104、以及用于通信功能的传输装置106。本领域普通技术人员可以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机终端10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。

存储器104可用于存储应用软件的软件程序以及模块,如本发明实施例中的判断应用程序发生异常的方法对应的程序指令/模块,处理器102通过运行存储在存储器104内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的判 断应用程序发生异常的方法。存储器104可包括高速随机存储器,还可包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器104可进一步包括相对于处理器102远程设置的存储器,这些远程存储器可以通过网络连接至计算机终端10。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

传输装置106用于经由一个网络接收或者发送数据。上述的网络具体实例可包括计算机终端10的通信供应商提供的无线网络。在一个实例中,传输装置106包括一个网络适配器(networkinterfacecontroller,简称为nic),其可通过基站与其他网络设备相连从而可与互联网进行通讯。在一个实例中,传输装置106可以为射频(radiofrequency,简称为rf)模块,其用于通过无线方式与互联网进行通讯。

在上述运行环境下,本申请提供了如图2所示的判断应用程序发生异常的方法。图2是根据本发明实施例的判断应用程序发生异常的方法的流程图。如图2所示,该方法可以包括以下处理步骤:

步骤s22:在待测应用程序对待播放的多媒体文件执行播放操作的过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断对待播放的多媒体文件的播放操作;

在优选实施过程中,上述控制指令可以包括但不限于以下之一:

(1)关闭宿主程序的显示窗口的指令;

考虑到待测应用程序是嵌入在宿主程序中的,故而无法直接向待测应用程序发送控制指令,为此,可以采用向宿主程序发送控制指令来代替直接向待测应用程序发送控制指令。此时,如果待测应用程序因受到控制指令影响而发生异常时,同样也会导致其宿主程序随之发生异常。

当待测应用程序为adobeflashplayer以及宿主程序为浏览器时,向宿主程序发送的控制指令可以是用于关闭应用程序窗口的wm_close命令。

如果通过键盘或鼠标在系统菜单中选择了“关闭”或者点击了窗口右上角的“x”按钮,浏览器的窗口过程便会接收到wm_close指令。此时,窗口消息处理程序发送wm_syscommand指令并经由wndproc函数将这个指令传递给defwindowproc函数。defwindowproc函数向窗口消息处理程序返回wm_close响应指令。wndproc函数首先再次将wm_close指令传递给defwindowproc函数;其次,wndproc呼叫destroywindow函数来响应这条wm_close指令,destroywindow函数会触发windows向窗口消息处理程序发送一条wm_destroy指令;然后,wndproc函数再呼叫postquitmessage函数, 将一条wm_quit指令放入消息队列中,以此来响应wm_close指令。wm_quit指令将导致winmain中的消息循环终止,进而程序结束。

当然,还可以选择让用户自身来确定是否真的需要关闭浏览器窗口,例如:询问用户是否需要保存更改。如果用户选择“取消”,则可以忽略wm_close指令,那么浏览器照常运行;如果用户确认要退出,则需要调用destroywindow函数。

(2)引导宿主程序的处理逻辑重定向的指令。

宿主程序(例如:浏览器)可以提供一系列与互联网浏览相关的选项,其中,可以包括浏览器初次启动时缺省浏览的主页设置一项。从浏览器的菜单中选“工具”→“internet选项”,便会弹出internet选项窗口,如果选取其中的常规页,在第1项中可填入用户希望设置的缺省页网址;当然,也可按下左边按钮“使用当前页”,将当前浏览器正在浏览的页面设置为缺省打开页;另外,还可按下右边按钮“使用空白页”(此时,网址栏内会自动写入about:bland),其默认为浏览器启动时不会自动打开任何页面。

通过设置缺省页网址可以在待测应用程序(例如:adobeflashplayer)对获取到的多媒体文件进行播放的过程中,可以将当前准备播放多媒体文件的网页重定向至缺省页网址,以强制中断待测应用程序对获取到的多媒体文件正在执行的解析的过程。此时,待测应用程序中负责对多媒体文件进行播放的解析功能模块立即进入收尾释放流程。然而,当前执行的多媒体文件播放过程可能并未结束,由于控制指令强行中断上述播放过程,可能会导致待测应用程序发生处理逻辑混乱(例如:原先希望通过将任务(包括:高延迟操作和长时间运行计算)分载到多个并发运行的后台工作线程来利用更多的计算机资源,从而创建响应更快的内容,然而,在被控制指令强行中断后,多个并发线程之间很有可能未能及时同步而导致处理逻辑混乱),由此引发多种应用程序的安全缺陷,例如:已经被释放的数据又被重新利用的安全缺陷,其可以允许攻击者通过构造未定义向量发起远程代码执行的攻击,可以被用来进行网页挂靠木马和病毒传播,通过浏览器打开畸形的.swf文件会诱发此安全缺陷。

步骤s24:判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

通过采用向宿主程序发送控制指令来代替直接向待测应用程序发送控制指令的方式,此时,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而正常结束时,则不会导致其宿主程序随之发生异常;但是,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而发生异常时,那么同样也会导致其宿 主程序随之发生异常。

相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷采用如图2所示的方法,在待测应用程序对待播放的多媒体文件进行播放的过程中通过向待测应用程序的宿主程序发送用于触发待测应用程序中断对待播放的多媒体文件正在执行的解析操作的控制指令的方式,通过引入能够阻断待测应用程序正常处理逻辑的攻击方式强制中断上述播放过程,达到了通过判断宿主程序在获取到控制指令后是否发生异常进而确定待测应用程序是否存在安全缺陷的目的,从而实现了通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷的技术效果,进而解决了相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷的技术问题。

可选地,在步骤s22,向宿主程序发送控制指令之前,还可以包括以下步骤:

步骤s20:向待测应用程序发送待播放的多媒体文件;

上述待测应用程序可以但不限于是嵌入宿主程序(例如:浏览器)的播放器插件应用程序(例如:adobeflashplayer)。该adobeflashplayer可以适用于windows,linux,solaris,androidpre-ics以及androidics操作系统。如果需要在adobeflashplayer上播放音频/视频文件,可以通过键盘事件、鼠标事件、窗口事件、触摸和手势事件来触发adobeflashplayer从服务器获取待播放的音频/视频文件,然后,adobeflashplayer在对接收到的待播放的音频/视频文件中的音频/视频数据解压后对待播放的音频/视频文件进行播放。待播放的多媒体文件的格式可以包括但不限于:.flv,.mp4,.swf。

可选地,在步骤s20,向待测应用程序发送多媒体文件之前,还可以包括以下执行步骤:

步骤s18:选取原始的多媒体文件;

步骤s19:利用模糊测试工具对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

本发明优选实施例所提供的技术方案不仅可以通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷,还可以借助于浏览器特性,将判断应用程序在处理逻辑维度上的安全缺陷与通过模糊测试判断出的文件格式的具体字段解析层面相结合,同时在多个维度上寻找应用程序可能存在的安全隐患。

在实际应用场景中,既可以采用blindfuzz在原始的多媒体文件中的随机位置上修改数据来生成待播放的多媒体文件进而从文件格式的具体字段解析层面来挖掘待测应用程序可能存在的安全缺陷,也可以采用smartfuzz通过解析原始的多媒体文件所对应的文件格式,然后基于样本和变异来生成待播放的多媒体文件进而从文件格式的具体字段解析层面来挖掘待测应用程序可能存在的安全缺陷。

具体地,首先可以对原始的多媒体文件的文件格式进行分析,查找原始的多媒体文件的脆弱点(即在原始的多媒体文件中可能触发漏洞的数据段)并定位文件的脆弱点,例如:在视频帧中可以自定义的帧头字符。其次,通过确定脆弱点需要填充的内容和长度便可生成待播放的多媒体文件。然后,在生成待播放的多媒体文件之后,便可以调用待测应用程序打开待播放的多媒体文件,如果能够正常运行,则构造新的待播放的多媒体文件,直至测试用例全部执行完毕。在未发生异常的情况下,可以说明从文件格式的具体字段解析层面来看,尚未发现待测应用程序存在安全缺陷。如果在测试过程中,待测应用程序出现异常退出,则说明从文件格式的具体字段解析层面来看,已经发现待测应用程序存在安全缺陷。

在对待测应用程序进行模糊测试的基础上,再进一步通过采用向宿主程序发送控制指令来代替直接向待测应用程序发送控制指令的方式,此时,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而正常结束时,则不会导致其宿主程序随之发生异常;但是,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而发生异常时,那么同样也会导致其宿主程序随之发生异常,由此说明待测应用程序在处理逻辑维度上存在安全缺陷。

可选地,在步骤s24中,判断宿主程序在获取到控制指令后是否发生异常可以包括以下执行步骤:

步骤s241:判断当前是否弹出与控制指令对应的告警提示信息,其中,告警提示信息是在待测应用程序对待播放的多媒体文件进行播放的过程被控制指令中断后发生异常时触发的;

步骤s242:如果是,则确定宿主程序在获取到控制指令后发生异常;

步骤s243:如果否,则确定宿主程序在获取到控制指令后未发生异常。

在向宿主程序发送控制指令之前,可以先对原始的多媒体文件的文件格式进行分析,查找原始的多媒体文件的脆弱点并定位文件的脆弱点,再通过确定脆弱点需要填充的内容和长度便可生成待播放的多媒体文件。然后,在生成待播放的多媒体文件之后,便可以调用待测应用程序打开待播放的多媒体文件,如果能够正常运行,则构造 新的待播放的多媒体文件,直至测试用例全部执行完毕。在未发生异常的情况下,可以说明从文件格式的具体字段解析层面来看,尚未发现待测应用程序存在安全缺陷。如果在测试过程中,待测应用程序出现异常退出,则说明从文件格式的具体字段解析层面来看,已经发现待测应用程序存在安全缺陷。此时,会在宿主程序所在的屏幕显示界面内弹出告警对话框,告知用户“flashplayer.exe遇到问题需要关闭”,由此可以提示用户在对待测应用程序进行模式测试的过程中发现其在文件格式的具体字段解析层面存在安全缺陷。

在对待测应用程序进行模糊测试的基础上,向宿主程序发送控制指令,此时,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而正常结束时,则不会导致其宿主程序随之发生异常;但是,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而发生异常时,那么同样也会导致其宿主程序随之发生异常,由此说明待测应用程序在处理逻辑维度上存在安全缺陷。此时,同样会在宿主程序所在的屏幕显示界面内弹出告警对话框,告知用户“flashplayer.exe遇到问题需要关闭”,由此可以提示用户待测应用程序在处理逻辑维度上存在安全缺陷。

可选地,在步骤s243,确定宿主程序在获取到控制指令后未发生异常之后,还可以包括:

步骤s244:对原始的多媒体文件进行更换,并利用模糊测试工具对更换后的多媒体文件的格式进行修改,生成待播放的多媒体文件;或者,利用模糊测试工具重新对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

无论是在文件格式的具体字段解析层面上还是在处理逻辑维度上,如果在一次测试完成后未能发现待测应用程序存在安全缺陷,那么则可以不断构造新的待播放的多媒体文件,直至测试用例全部执行完毕。具体地,可以重新选取新的原始的多媒体文件,例如:上一次测试推送给待测应用程序的是.mp4格式的视频文件,那么本次测试则可以向待测应用程序推送.flv格式的视频文件,然后,重新查找原始的多媒体文件的脆弱点并定位文件的脆弱点,再通过确定脆弱点需要填充的内容和长度便可生成新的待播放的多媒体文件。或者,始终保持同一个原始的多媒体文件(例如:.mp4格式的视频文件),然后通过更换脆弱点或者更换脆弱点需要填充的内容和长度便可生成新的待播放的多媒体文件。

下面将结合图3所示的优选实施方式对上述优选实施过程作进一步地描述。

图3是根据本发明优选实施例的判断应用程序发生异常的方法的流程图。如图3所示,该流程可以包括以下处理步骤:

步骤s31:adobeflashplayer视频播放器(相当于上述待测应用程序)可以解析多种视频文件格式,例如:.mp4,.flv,.wma,.wmv,.swf。为此,需要先选取一个可以被adobeflashplayer视频播放器正常解析的视频文件(相当于上述原始的多媒体文件)。

在该优选实施例中,视频文件的格式采用.mp4。

步骤s32:使用针对文件格式进行漏洞挖掘的模糊测试方法对文件格式进行修改,生成畸形.mp4测试用例(相当于上述待播放的多媒体文件)。

步骤s33:在浏览器(相当于上述宿主程序)中,使用adobeflashplayer视频播放器加载并解析已经生成的畸形.mp4测试用例。

步骤s34:在使用adobeflashplayer视频播放器加载并解析已经生成的畸形.mp4测试用例的过程中,对浏览器发送wm_close消息或强行将浏览器跳转到about::bland页面(相当于上述向宿主程序发送控制指令),由此导致adobeflashplayer视频播放器的视频播放过程被强行中断,adobeflashplayer视频播放器内的解析模块立即进入收尾释放流程。而此时已经生成的畸形.mp4测试用例的播放过程可能尚未结束,由于用户强行中断播放过程,可能会引发adobeflashplayer视频播放器的应用程序出现逻辑混乱,诱发安全缺陷(例如:释放后重用、二次释放)。

步骤s35:判断浏览器是否发生异常;如果是,则继续执行步骤s36;如果否,则返回步骤s32,开启下一轮测试。

步骤s36:若adobeflashplayer视频播放器发生异常,则会导致其宿主程序(浏览器)也随之发生异常,进而表示本次测试成功,发现adobeflashplayer视频播放器在处理逻辑维度上存在安全缺陷。

在本发明提供的另一个实施例中,还提供了另一种判断应用程序发生异常的方法。图4是根据本发明实施例的另一种判断应用程序发生异常的方法的流程图。如图4所示,该方法可以包括以下处理步骤:

步骤s40:在待测应用程序执行过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断执行;

步骤s42:判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

在本实施例中,在待测应用程序执行过程中(例如:多媒体文件播放软件对多媒体文件进行播放),可以通过向待测应用程序的宿主程序发送用于触发待测应用程序中 断执行当前正在执行的操作的控制指令的方式,通过引入能够阻断待测应用程序正常处理逻辑的攻击方式强制中断上述执行过程,达到了通过判断宿主程序在获取到控制指令后是否发生异常进而确定待测应用程序是否存在安全缺陷的目的,从而实现了通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷的技术效果,进而解决了相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷的技术问题。

需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。

通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到根据上述实施例的判断应用程序发生异常的方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质(如rom/ram、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。

实施例2

根据本发明实施例,还提供了一种用于实施上述判断应用程序发生异常的方法的装置实施例,图5是根据本发明实施例的判断应用程序发生异常的装置的结构框图。如图5所示,该装置包括:第一发送模块10,用于在待测应用程序对待播放的多媒体文件执行播放操作的过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断对待播放的多媒体文件的播放操作;判断模块20,用于判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

在优选实施过程中,上述控制指令可以包括但不限于以下之一:

(1)关闭宿主程序的显示窗口的指令;

考虑到待测应用程序是嵌入在宿主程序中的,故而无法直接向待测应用程序发送控制指令,为此,可以采用向宿主程序发送控制指令来代替直接向待测应用程序发送 控制指令。此时,如果待测应用程序因受到控制指令影响而发生异常时,同样也会导致其宿主程序随之发生异常。

当待测应用程序为adobeflashplayer以及宿主程序为浏览器时,向宿主程序发送的控制指令可以是用于关闭应用程序窗口的wm_close命令。

如果通过键盘或鼠标在系统菜单中选择了“关闭”或者点击了窗口右上角的“x”按钮,浏览器的窗口过程便会接收到wm_close指令。此时,窗口消息处理程序发送wm_syscommand指令并经由wndproc函数将这个指令传递给defwindowproc函数。defwindowproc函数向窗口消息处理程序返回wm_close响应指令。wndproc函数首先再次将wm_close指令传递给defwindowproc函数;其次,wndproc呼叫destroywindow函数来响应这条wm_close指令,destroywindow函数会触发windows向窗口消息处理程序发送一条wm_destroy指令;然后,wndproc函数再呼叫postquitmessage函数,将一条wm_quit指令放入消息队列中,以此来响应wm_close指令。wm_quit指令将导致winmain中的消息循环终止,进而程序结束。

当然,还可以选择让用户自身来确定是否真的需要关闭浏览器窗口,例如:询问用户是否需要保存更改。如果用户选择“取消”,则可以忽略wm_close指令,那么浏览器照常运行;如果用户确认要退出,则需要调用destroywindow函数。

(2)引导宿主程序的处理逻辑重定向的指令。

宿主程序(例如:浏览器)可以提供一系列与互联网浏览相关的选项,其中,可以包括浏览器初次启动时缺省浏览的主页设置一项。从浏览器的菜单中选“工具”→“internet选项”,便会弹出internet选项窗口,如果选取其中的常规页,在第1项中可填入用户希望设置的缺省页网址;当然,也可按下左边按钮“使用当前页”,将当前浏览器正在浏览的页面设置为缺省打开页;另外,还可按下右边按钮“使用空白页”(此时,网址栏内会自动写入about:bland),其默认为浏览器启动时不会自动打开任何页面。

通过设置缺省页网址可以在待测应用程序(例如:adobeflashplayer)对获取到的多媒体文件进行播放的过程中,可以将当前准备播放多媒体文件的网页重定向至缺省页网址,以强制中断待测应用程序对获取到的多媒体文件正在执行的解析的过程。此时,待测应用程序中负责对多媒体文件进行播放的解析功能模块立即进入收尾释放流程。然而,当前执行的多媒体文件播放过程可能并未结束,由于控制指令强行中断上述播放过程,可能会导致待测应用程序发生处理逻辑混乱(例如:原先希望通过将任务(包括:高延迟操作和长时间运行计算)分载到多个并发运行的后台工作线程来 利用更多的计算机资源,从而创建响应更快的内容,然而,在被控制指令强行中断后,多个并发线程之间很有可能未能及时同步而导致处理逻辑混乱),由此引发多种应用程序的安全缺陷,例如:已经被释放的数据又被重新利用的安全缺陷,其可以允许攻击者通过构造未定义向量发起远程代码执行的攻击,可以被用来进行网页挂靠木马和病毒传播,通过浏览器打开畸形的.swf文件会诱发此安全缺陷。

相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷采用如图5所示的装置,在待测应用程序对待播放的多媒体文件进行播放的过程中通过向待测应用程序的宿主程序发送用于触发待测应用程序中断对待播放的多媒体文件的播放操作的控制指令的方式,通过引入能够阻断待测应用程序正常处理逻辑的攻击方式强制中断上述播放过程,达到了通过判断宿主程序在获取到控制指令后是否发生异常进而确定待测应用程序是否存在安全缺陷的目的,从而实现了通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷的技术效果,进而解决了相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷的技术问题。

可选地,图6是根据本发明优选实施例的判断应用程序发生异常的装置的结构框图。如图6所示,上述装置还包括:第二发送模块30,用于向待测应用程序发送待播放的多媒体文件。

可选地,如图6所示,上述装置还包括:选取模块40,用于选取原始的多媒体文件;生成模块50,用于利用模糊测试工具对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

本发明优选实施例所提供的技术方案不仅可以通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷,还可以借助于浏览器特性,将判断应用程序在处理逻辑维度上的安全缺陷与通过模糊测试判断出的文件格式的具体字段解析层面相结合,同时在多个维度上寻找应用程序可能存在的安全隐患。

具体地,首先可以对原始的多媒体文件的文件格式进行分析,查找原始的多媒体文件的脆弱点(即在原始的多媒体文件中可能触发漏洞的数据段)并定位文件的脆弱点,例如:在视频帧中可以自定义的帧头字符。其次,通过确定脆弱点需要填充的内容和长度便可生成待播放的多媒体文件。然后,在生成待播放的多媒体文件之后,便可以调用待测应用程序打开待播放的多媒体文件,如果能够正常运行,则构造新的待播放的多媒体文件,直至测试用例全部执行完毕。在未发生异常的情况下,可以说明从文件格式的具体字段解析层面来看,尚未发现待测应用程序存在安全缺陷。如果在 测试过程中,待测应用程序出现异常退出,则说明从文件格式的具体字段解析层面来看,已经发现待测应用程序存在安全缺陷。

在对待测应用程序进行模糊测试的基础上,再进一步通过采用向宿主程序发送控制指令来代替直接向待测应用程序发送控制指令的方式,此时,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而正常结束时,则不会导致其宿主程序随之发生异常;但是,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而发生异常时,那么同样也会导致其宿主程序随之发生异常,由此说明待测应用程序在处理逻辑维度上存在安全缺陷。

可选地,如图6所示,判断模块20可以包括:判断单元200,用于判断当前是否弹出与控制指令对应的告警提示信息,其中,告警提示信息是在待测应用程序对待播放的多媒体文件进行播放的过程被控制指令中断后发生异常时触发的;第一确定单元202,用于在判断单元输出为是时,确定宿主程序在获取到控制指令后发生异常;第二确定单元204,用于在判断单元输出为否时,确定宿主程序在获取到控制指令后未发生异常。

在向宿主程序发送控制指令之前,可以先对原始的多媒体文件的文件格式进行分析,查找原始的多媒体文件的脆弱点并定位文件的脆弱点,再通过确定脆弱点需要填充的内容和长度便可生成待播放的多媒体文件。然后,在生成待播放的多媒体文件之后,便可以调用待测应用程序打开待播放的多媒体文件,如果能够正常运行,则构造新的待播放的多媒体文件,直至测试用例全部执行完毕。在未发生异常的情况下,可以说明从文件格式的具体字段解析层面来看,尚未发现待测应用程序存在安全缺陷。如果在测试过程中,待测应用程序出现异常退出,则说明从文件格式的具体字段解析层面来看,已经发现待测应用程序存在安全缺陷。此时,会在宿主程序所在的屏幕显示界面内弹出告警对话框,告知用户“flashplayer.exe遇到问题需要关闭”,由此可以提示用户在对待测应用程序进行模式测试的过程中发现其在文件格式的具体字段解析层面存在安全缺陷。

在对待测应用程序进行模糊测试的基础上,向宿主程序发送控制指令,此时,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而正常结束时,则不会导致其宿主程序随之发生异常;但是,如果待测应用程序因受到控制指令强制中断其对多媒体文件的播放过程而发生异常时,那么同样也会导致其宿主程序随之发生异常,由此说明待测应用程序在处理逻辑维度上存在安全缺陷。此时,同样会在宿主程序所在的屏幕显示界面内弹出告警对话框,告知用户“flashplayer.exe遇到问题需要关闭”,由此可以提示用户待测应用程序在处理逻辑维度上存在安全缺陷。

可选地,选取模块40,还用于对原始的多媒体文件进行更换以及生成模块50,还用于模糊测试工具对更换后的多媒体文件的格式进行修改,生成待播放的多媒体文件;或者,生成模块50,还用于利用模糊测试工具重新对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

无论是在文件格式的具体字段解析层面上还是在处理逻辑维度上,如果在一次测试完成后未能发现待测应用程序存在安全缺陷,那么则可以不断构造新的待播放的多媒体文件,直至测试用例全部执行完毕。具体地,可以重新选取新的原始的多媒体文件,例如:上一次测试推送给待测应用程序的是.mp4格式的视频文件,那么本次测试则可以向待测应用程序推送.flv格式的视频文件,然后,重新查找原始的多媒体文件的脆弱点并定位文件的脆弱点,再通过确定脆弱点需要填充的内容和长度便可生成新的待播放的多媒体文件。或者,始终保持同一个原始的多媒体文件(例如:.mp4格式的视频文件),然后通过更换脆弱点或者更换脆弱点需要填充的内容和长度便可生成新的待播放的多媒体文件。

在本实施例中,还提供了另一种判断应用程序发生异常的装置。图7是根据本发明实施例的另一种判断应用程序发生异常的装置的结构框图。如图7所示,该装置可以包括:发送模块70,用于在待测应用程序执行过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断执行;判断模块72,用于判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

实施例3

本发明的实施例可以提供一种计算机终端,该计算机终端可以是计算机终端群中的任意一个计算机终端设备。可选地,在本实施例中,上述计算机终端也可以替换为移动终端等终端设备。

可选地,在本实施例中,上述计算机终端可以位于计算机网络的多个网络设备中的至少一个网络设备。

可选地,图8是根据本发明实施例的一种计算机终端的结构框图。如图8所示,该计算机终端可以包括:一个或多个(图中仅示出一个)处理器以及存储器。

其中,存储器可用于存储软件程序以及模块,如本发明实施例中的判断应用程序发生异常的方法和装置对应的程序指令/模块,处理器通过运行存储在存储器内的软件程序以及模块,从而执行各种功能应用以及数据处理,即实现上述的判断应用程序发 生异常的方法。存储器可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器可进一步包括相对于处理器远程设置的存储器,这些远程存储器可以通过网络连接至终端。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

处理器可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:

s1:在待测应用程序对待播放的多媒体文件执行播放操作的过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断对待播放的多媒体文件的播放操作;

s2:判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

可选的,上述处理器还可以执行如下步骤的程序代码:向待测应用程序发送待播放的多媒体文件。

可选的,上述处理器还可以执行如下步骤的程序代码:选取原始的多媒体文件;利用模糊测试工具对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选的,上述处理器还可以执行如下步骤的程序代码:判断当前是否弹出与控制指令对应的告警提示信息,其中,告警提示信息是在待测应用程序对待播放的多媒体文件进行播放的过程被控制指令中断后发生异常时触发的;如果是,则确定宿主程序在获取到控制指令后发生异常;如果否,则确定宿主程序在获取到控制指令后未发生异常。

可选的,上述处理器还可以执行如下步骤的程序代码:对原始的多媒体文件进行更换,并利用模糊测试工具对更换后的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选的,上述处理器还可以执行如下步骤的程序代码:利用模糊测试工具重新对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选的,上述处理器还可以执行如下步骤的程序代码:将控制指令设置为关闭宿主程序的显示窗口的指令或者引导宿主程序的处理逻辑重定向的指令。

采用本发明实施例,在待测应用程序对待播放的多媒体文件进行播放的过程中通过向待测应用程序的宿主程序发送用于触发待测应用程序中断对待播放的多媒体文件的播放操作的控制指令的方式,通过引入能够阻断待测应用程序正常处理逻辑的攻击 方式强制中断上述播放过程,达到了通过判断宿主程序在获取到控制指令后是否发生异常进而确定待测应用程序是否存在安全缺陷的目的,从而实现了通过构造强行中断指令,强制打破应用程序的正常处理逻辑来获取应用程序在处理逻辑维度上的安全缺陷的技术效果,进而解决了相关技术中所提供的漏洞挖掘方式无法发现应用程序在处理逻辑方面存在的缺陷的技术问题。

另外,本实施例中提到的上述处理器还可以通过传输装置调用存储器存储的信息及应用程序,以执行下述步骤:

s1:在待测应用程序执行过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断执行;

s2:判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

本领域普通技术人员可以理解,图8所示的结构仅为示意,计算机终端也可以是智能手机(如android手机、ios手机等)、平板电脑、掌声电脑以及移动互联网设备(mobileinternetdevices,mid)、pad等终端设备。图8其并不对上述电子装置的结构造成限定。例如,计算机终端还可包括比图8中所示更多或者更少的组件(如网络接口、显示装置等),或者具有与图8所示不同的配置。

本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令终端设备相关的硬件来完成,该程序可以存储于一计算机可读存储介质中,存储介质可以包括:闪存盘、只读存储器(read-onlymemory,简称为rom)、随机存取器(randomaccessmemory,简称为ram)、磁盘或光盘等。

实施例4

本发明的实施例还提供了一种存储介质。可选地,在本实施例中,上述存储介质可以用于保存上述实施例一所提供的判断应用程序发生异常的方法所执行的程序代码。

可选地,在本实施例中,上述存储介质可以位于计算机网络中计算机终端群中的任意一个计算机终端中,或者位于移动终端群中的任意一个移动终端中。

可选地,在本实施例中,存储介质被设置为存储用于执行以下步骤的程序代码:

s1:在待测应用程序对待播放的多媒体文件执行播放操作的过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断对待播放 的多媒体文件的播放操作;

s2:判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:向待测应用程序发送待播放的多媒体文件。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:选取原始的多媒体文件;利用模糊测试工具对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:判断当前是否弹出与控制指令对应的告警提示信息,其中,告警提示信息是在待测应用程序对待播放的多媒体文件进行播放的过程被控制指令中断后发生异常时触发的;如果是,则确定宿主程序在获取到控制指令后发生异常;如果否,则确定宿主程序在获取到控制指令后未发生异常。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:对原始的多媒体文件进行更换,并利用模糊测试工具对更换后的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:利用模糊测试工具重新对原始的多媒体文件的格式进行修改,生成待播放的多媒体文件。

可选的,上述存储介质还被设置为存储用于执行以下步骤的程序代码:将控制指令设置为关闭宿主程序的显示窗口的指令或者引导宿主程序的处理逻辑重定向的指令。

另外,在本实施例中,上述存储介质还可以被设置为存储用于执行以下步骤的程序代码:

s1:在待测应用程序执行过程中,向待测应用程序的宿主程序发送控制指令,其中,控制指令用于触发待测应用程序中断执行;

s2:判断宿主程序在获取到控制指令后是否发生异常,其中,宿主程序发生异常表明待测应用程序发生异常。

上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。

在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。

在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。

所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。

另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。

所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:u盘、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。

以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1