CN105512562A - 一种漏洞挖掘方法、装置及电子设备 - Google Patents
一种漏洞挖掘方法、装置及电子设备 Download PDFInfo
- Publication number
- CN105512562A CN105512562A CN201510875605.XA CN201510875605A CN105512562A CN 105512562 A CN105512562 A CN 105512562A CN 201510875605 A CN201510875605 A CN 201510875605A CN 105512562 A CN105512562 A CN 105512562A
- Authority
- CN
- China
- Prior art keywords
- fuzzy
- data
- destination application
- fuzzy data
- bug excavation
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F21/00—Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
- G06F21/50—Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
- G06F21/57—Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
- G06F21/577—Assessing vulnerabilities and evaluating computer system security
Landscapes
- Engineering & Computer Science (AREA)
- Computer Hardware Design (AREA)
- Computer Security & Cryptography (AREA)
- General Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Computing Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本发明的实施例公开一种漏洞挖掘方法、装置及电子设备。方法包括:生成基于目标应用程序的模糊配置数据;在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。应用本发明,可以提升漏洞挖掘效率。
Description
技术领域
本发明涉及计算机网络安全技术,尤其涉及一种漏洞挖掘方法、装置及电子设备。
背景技术
随着计算机网络技术的高速发展,互联网络已逐渐成为人们工作生活中不可或缺的一部分。但互联网络在带给人们便利的同时,由于互联网络应用环境的复杂性以及互联网络应用程序的多样性,人们在通过应用软件使用互联网络的过程中,应用软件容易受到电脑病毒、木马等网络漏洞攻击威胁。其中,漏洞是指应用软件中存在的功能性或安全性逻辑缺陷,是计算机系统在硬件、应用软件、协议的具体实现或系统安全策略上存在的缺陷和不足。因而,利用漏洞挖掘技术及时挖掘并修补应用软件中存在的漏洞,对保护互联网络用户的个人信息安全、财产安全有着积极的促进作用。
漏洞挖掘技术是指对应用软件中存在的未知漏洞的探索,通过综合应用各种技术和工具,尽可能地找出应用软件中存在的潜在漏洞并予以及时修复。
目前,漏洞挖掘技术一般基于二进制漏洞挖掘,在进行二进制漏洞挖掘时,通过定制脚本来手动修改目标内容,即手动变换输入接口数据,然后将手动修改的脚本分别提交至一个或多个目标应用程序运行,其中,目标应用程序可以运行在不同的电子设备上,最后,依据目标应用程序运行得到的运行结果,分析目标应用程序是否产生异常,进而依据产生的异常以判断该目标应用程序是否存在漏洞,在存在漏洞时,再采用相关技术手段修复该漏洞。例如,在挖掘Officeword应用软件中的漏洞时,通过定制脚本doc文件,然后,在指定的doc文件中随意填充各种值后,启动Officeword应用软件加载该doc文件,并监控Officeword应用软件在运行该doc文件的过程中是否产生异常,在运行该doc文件完毕后,重新在doc文件中再次随意填充各种值,然后再加载该doc文件,并监控Officeword应用软件在运行该doc文件的过程中是否产生异常,从而对Officeword应用软件中存在的潜在漏洞进行挖掘。如果Officeword应用软件加载该doc文件超时,则重新导入该doc文件进行重加载后运行。
但该漏洞挖掘方法,脚本中的目标内容需要进行手动修改,并在脚本中每一次手动修改目标内容后,需要将脚本重新加载至目标应用程序运行,以及,在脚本加载超时后,需要再次提交脚本至目标应用程序运行,使得挖掘该目标应用程序中存在的潜在漏洞所需的时间较长,漏洞挖掘效率较低。
发明内容
有鉴于此,本发明实施例提供一种漏洞挖掘方法、装置及电子设备,提升漏洞挖掘效率。
为达到上述目的,本发明的实施例采用如下技术方案:
第一方面,本发明实施例提供一种漏洞挖掘方法,包括:
生成基于目标应用程序的模糊配置数据;
在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;
解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;
将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
优选地,所述在所述目标应用程序中运行所述模糊数据包括:
对写入所述目标应用程序的输入接口的模糊数据进行虚拟机镜像;
在所述目标应用程序中运行所述模糊数据,如果运行所述模糊数据的时间超过预先设置的超时时间阈值,结束运行所述模糊数据,重加载所述虚拟机镜像以进行漏洞挖掘。
优选地,通过快照方式对当前时刻包括内存状态、文件操作、内核对象的进程状态进行虚拟机镜像。
优选地,所述在所述目标应用程序中运行所述模糊数据包括:
监控到所述目标应用程序在运行所述模糊数据的过程中异常,将记录的运行结果写入预先设置的结果数据库中,结束所述所述模糊数据的运行;
判断当前运行的所述模糊数据是否为最后一模糊数据,如果是,结束所述目标应用程序;如果不是,在所述目标应用程序中运行下一模糊数据。
优选地,在所述依据运行所述模糊数据的运行结果信息进行漏洞挖掘之前,所述方法进一步包括:
获取所述目标应用程序中运行所述模糊数据的运行结果信息;
过滤运行结果信息中预先设置的非模糊数据运行产生的异常信息,基于过滤的运行结果信息执行所述漏洞挖掘。
优选地,在所述目标应用程序中运行所述模糊数据以进行漏洞挖掘之前,所述方法进一步包括:
如果生成的所述模糊数据为多个,为所述目标应用程序分配多个线程,每一线程运行一模糊数据。
优选地,利用模糊配置数据生成器,基于格式分析和目标应用程序解析相结合的方法生成所述模糊配置数据。
优选地,所述模糊配置数据的格式采用偏移-长度-数据类型格式。
优选地,利用预先注入在所述目标应用程序中的模糊数据动态链接库脚本调用所述模糊配置数据。
第二方面,本发明实施例提供一种漏洞挖掘装置,包括:配置模块、样本文件读取模块、模糊数据生成模块以及漏洞挖掘模块,其中,
配置模块,用于生成基于目标应用程序的模糊配置数据;
样本文件读取模块,用于在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;
模糊数据生成模块,用于解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;
漏洞挖掘模块,用于将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
优选地,所述漏洞挖掘模块包括:写入单元、镜像单元、恢复镜像单元以及漏洞挖掘单元,其中,
写入单元,用于将所述模糊数据写入所述目标应用程序的输入接口;
镜像单元,用于对写入所述目标应用程序的输入接口的模糊数据进行虚拟机镜像;
超时检测单元,用于在所述目标应用程序中运行所述模糊数据,如果运行所述模糊数据的时间超过预先设置的超时时间阈值,通知恢复镜像单元;
恢复镜像单元,用于接收通知,结束运行所述模糊数据,重加载所述虚拟机镜像;
漏洞挖掘单元,用于依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
优选地,通过快照方式对当前时刻包括内存状态、文件操作、内核对象的进程状态进行虚拟机镜像。
优选地,所述漏洞挖掘模块包括:写入单元、监控单元、记录单元、遍历单元以及漏洞挖掘单元,其中,
写入单元,用于将所述模糊数据写入所述目标应用程序的输入接口;
监控单元,用于在监控到所述目标应用程序在运行所述模糊数据的过程中异常后,通知记录单元;
记录单元,用于将记录的运行结果写入预先设置的结果数据库中,结束所述所述模糊数据的运行,通知遍历单元;
遍历单元,用于判断当前运行的所述模糊数据是否为最后一模糊数据,如果是,结束所述目标应用程序;如果不是,在所述目标应用程序中运行下一模糊数据;
漏洞挖掘单元,用于依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
优选地,所述漏洞挖掘模块进一步包括:
过滤单元,用于获取所述目标应用程序中运行所述模糊数据的运行结果信息;过滤运行结果信息中预先设置的非模糊数据运行产生的异常信息,将过滤的运行结果信息输出至所述漏洞挖掘单元。
优选地,所述漏洞挖掘模块进一步包括:
线程分配单元,如果生成的所述模糊数据为多个,为所述目标应用程序分配多个线程,每一线程运行一模糊数据。
优选地,利用模糊配置数据生成器,基于格式分析和目标应用程序解析相结合的装置生成所述模糊配置数据。
优选地,所述模糊配置数据的格式采用偏移-长度-数据类型格式。
优选地,利用预先注入在所述目标应用程序中的模糊数据动态链接库脚本调用所述模糊配置数据。
第三方面,本发明实施例提供一种电子设备,所述电子设备包括:壳体、处理器、存储器、电路板和电源电路,其中,电路板安置在壳体围成的空间内部,处理器和存储器设置在电路板上;电源电路,用于为上述电子设备的各个电路或器件供电;存储器用于存储可执行程序代码;处理器通过读取存储器中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一所述的漏洞挖掘方法。
本发明实施例提供的漏洞挖掘方法、装置及电子设备,利用模糊配置数据对解析样本文件得到的数据块自动进行模糊配置,无需对数据块进行手动修改编辑,有效降低了挖掘漏洞所需的时间,提升了漏洞挖掘效率;同时,通过将目标应用程序置于虚拟机中运行模糊数据,可以保证每次运行模糊数据的系统环境完全一致,便于漏洞重现,提升漏洞挖掘的准确性。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其它的附图。
图1为本发明实施例漏洞挖掘方法流程示意图;
图2为本发明实施例漏洞挖掘装置结构示意图;
图3为本发明实施例漏洞挖掘装置逻辑结构示意图;
图4为本发明电子设备一个实施例的结构示意图。
具体实施方式
下面结合附图对本发明实施例进行详细描述。
应当明确,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本发明保护的范围。
图1为本发明实施例漏洞挖掘方法流程示意图。参见图1,该方法包括:
步骤11,生成基于目标应用程序的模糊配置数据;
本步骤中,作为一可选实施例,利用模糊配置数据(Fuzzing-Data)生成器生成模糊配置数据。其中,模糊配置数据生成器利用模糊技术生成数据,可以向目标应用程序提供预先构造的无效的、非预期或者是随机的模糊配置数据,用于对目标内容进行模糊处,得到用于进行漏洞挖掘的模糊数据,从而可以得到批量的包含各漏洞挖掘目标的目标内容(模糊数据),而无需在每一次漏洞挖掘时都需要手动编辑生成目标内容,并在后续运行中通过监控并记录目标应用程序运行模糊数据中出现的异常,从而定位目标应用程序中漏洞的位置。
本发明实施例中,模糊技术(Fuzzing)是一种基于缺陷注入的自动测试技术,通过设置模糊配置数据,用以向目标应用程序提供依据模糊配置数据进行填充的预定形式的输入数据,并通过日志方式记录目标应用程序输入数据的响应,以挖掘目标应用程序中的潜在漏洞。其中,输入数据可以是完全随机的或精心构造的。
作为一可选实施例,一目标应用程序对应一模糊配置数据,模糊数据配置中,包含有一个或多个配置选项。当然,实际应用中,多个目标应用程序也可以对应一模糊配置数据。
作为一可选实施例,为了有效地避免目标应用程序对后续基于模糊配置数据生成的模糊数据中固定字段、校验和以及长度的检查,从而能够检测出目标应用程更多潜在的漏洞,提升模糊配置数据的有效性,模糊配置数据生成器基于格式分析和目标应用程序解析相结合的方法生成模糊配置数据。关于利用模糊配置数据生成器生成模糊配置数据为公知技术,在此略去详述。
作为一可选实施例,模糊配置数据的格式采用偏移-长度-数据类型(pos-len-data)格式。
作为另一可选实施例,在生成模糊配置数据后,该方法进一步包括:
将生成的模糊配置数据存储至模糊配置数据库中,并在模糊配置数据库中,构建目标应用程序与模糊配置数据的对应关系。
步骤12,在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;
本步骤中,在预先设置的虚拟机中启动目标应用程序,在目标应用程序启动时,系统(虚拟机)为目标应用程序分配目标应用程序进程,在分配目标应用程序进程后,目标应用程序进程读取预先存储的或即时生成的用于目标应用程序的样本文件,样本文件中可以包含一次或多次进行漏洞挖掘所需的目标内容。
本发明实施例中,通过在虚拟机中运行各目标应用程序,进行相应目标应用程序的漏洞挖掘,能保证每次运行目标内容时,目标应用程序所处的系统环境是完全一致的,避免目标应用程序所处的系统环境对目标内容运行的干扰,可以便于漏洞重现,从而能够对漏洞进行精确定位。
本发明实施例中个,作为一可选实施例,样本文件为能被目标应用程序正常解析的合法文件。
步骤13,解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;
本步骤中,通过解析样本文件的格式,识别出该样本文件包含的一个或多个数据块。
作为一可选实施例,对应于模糊配置数据,每一数据块也采用偏移-长度-数据类型(pos-len-data)三元组的形式来表示。然后,针对每一数据块进行模糊(Fuzz)配置处理,生成相应的模糊数据,即对每一所述数据块,依次调用模糊配置数据进行模糊配置处理,以生成该数据块相应的模糊数据。
本发明实施例中,每一模糊数据对应一模糊数据文件,多个模糊数据文件组成一模糊数据文件集。
本发明实施例中,作为一可选实施例,在生成模糊数据后,将模糊数据存储至模糊数据库中。
步骤14,将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
本步骤中,对于样本文件包含有多个数据块的情形,在生成一模糊数据后,即可以将生成的模糊数据写入所述目标应用程序的输入接口,后续应用中,对数据块进行模糊配置生成模糊数据与运行模糊数据可以同时进行,从而可以有效减少生成模糊数据所需的时间。
本发明实施例中,可依据运行所述模糊数据得到的运行结果信息来分析该目标应用程序中是否存在漏洞,关于依据运行结果信息分析漏洞为公知技术,在此略去详述。
作为一可选实施例,可通过将预先设置的模糊数据动态链接库(Fuzz-DLL,FuzzDynamicLinkLibrary)脚本注入到所述目标应用程序中,用于在启动所述目标应用程序后,目标应用程序进程读取数据(样本文件)时,对读取的数据进行模糊配置处理,并写入到目标应用程序进程的输入接口中,即利用预先注入在所述目标应用程序中的模糊数据动态链接库脚本调用所述模糊配置数据。例如,目标应用程序进程A需要读取一样本文件,例如,配置文件B.cfg,本发明实施例中,先中断所述目标应用程序A的运行,并触发模糊数据动态链接库脚本调用模糊配置数据,对B.cfg文件进行模糊配置处理(Fuzzing),即利用pos-len-data格式的结构填充B.cfg,在填充完成后,将填充的B.cfg写入所述目标应用程序A的输入接口,再让目标应用程序进程A继续运行。
作为一可选实施例,可以是将一模糊数据文件写入目标应用程序的输入接口,目标应用程序运行完该模糊数据文件后,再自动触发将另一模糊数据文件写入目标应用程序的输入接口,如此循环;也可以是将模糊数据文件集写入目标应用程序的输入接口,目标应用程序依次运行模糊数据文件集中包含的各模糊数据文件。
因而,作为一可选实施例,可以采用并行的漏洞挖掘处理方式,即在所述目标应用程序中运行所述模糊数据以进行漏洞挖掘之前,该方法还可以进一步包括:
如果生成的所述模糊数据为多个,为所述目标应用程序分配多个线程,每一线程运行一模糊数据。
本步骤中,在目标应用程序进程下分配多个线程。
作为一可选实施例,在所述目标应用程序中运行所述模糊数据包括:
对写入所述目标应用程序的输入接口的模糊数据进行虚拟机镜像;
在所述目标应用程序中运行所述模糊数据,如果运行所述模糊数据的时间超过预先设置的超时时间阈值,结束运行所述模糊数据,重加载所述虚拟机镜像以进行漏洞挖掘。
本步骤中,作为一可选实施例,可以通过快照(snapshot)方式进行虚拟机镜像。即对当前时刻的进程状态,包括内存状态、文件操作、内核对象等进行镜像。作为一可选实施例,可以将当前进程的进程状态镜像到预先的指定文件并进行保存。而在重加载所述虚拟机镜像时,则将所述目标应用程序的执行操作重定向到所述指定文件。
本发明实施例中,在进行虚拟机镜像时,暂停所述目标应用程序的执行,对目标应用程序进程当前时刻的进程状态进行虚拟机镜像,在虚拟机镜像创建完成后,恢复所述目标应用程序的执行。
本发明实施例中,作为另一可选实施例,通过虚拟机控制器(VMC,VirtualMachineController)检测虚拟机内的所述目标应用程序进程运行模糊数据是否超时,如果不超时,不作处理,继续运行模糊数据以获取运行结果,如果超时,则重新恢复虚拟机镜像以使目标应用程序重新运行模糊数据。这样,在模糊数据运行超时后,通过在模糊数据加载的时刻恢复镜像,可以有效减少在加载模糊数据时需要预生成模糊数据所需的时间,提高运行速度,缩短运行模糊数据的启动时间,从而提升漏洞挖掘效率。
作为另一可选实施例,在所述目标应用程序中运行所述模糊数据包括:
监控到所述目标应用程序在运行所述模糊数据的过程中异常,将记录的运行结果写入预先设置的结果数据库中,结束所述所述模糊数据的运行;
判断当前运行的所述模糊数据是否为最后一模糊数据,如果是,结束所述目标应用程序;如果不是,在所述目标应用程序中运行下一模糊数据。
本步骤中,对运行模糊数据的目标应用程序(进程)进行异常监控,例如,当监控到目标应用程序进程卡死或者崩溃时,将运行结果信息写入到外部结果数据库中,并结束该次运行模糊数据的线程,如果当前运行的所述模糊数据为最后一模糊数据,则结束所述目标应用程序(进程);如果不是,运行下一模糊数据,直至遍历完针对样本文件的所有模糊数据,即所有模糊数据都依次加载至所述目标应用程序中运行。
本发明实施例中,由于是对目标应用程序的潜在漏洞进行挖掘,因而,如果目标应用程序在运行一模糊数据的过程中未出现异常,可以不记录该目标应用程序在运行该模糊数据中的运行结果信息,在运行完该模糊数据后,如果该模糊数据不是最后一模糊数据,则运行下一未运行的模糊数据。
本发明实施例中,作为一可选实施例,在预先设置的超时时间阈值内监控到所述目标应用程序运行异常,执行所述将运行结果写入预先设置的结果数据库中的步骤;而如果在预先设置的超时时间阈值外所述目标应用程序运行才出现异常,则进行重加载虚拟机镜像的步骤。
作为再一可选实施例,在所述依据运行所述模糊数据的运行结果信息进行漏洞挖掘之前,该方法可以进一步包括:
获取所述目标应用程序中运行所述模糊数据的运行结果信息;
过滤运行结果信息中预先设置的非模糊数据运行产生的异常信息,基于过滤的运行结果信息执行所述漏洞挖掘。
本步骤中,非模糊数据运行产生的异常信息主要是指与输入的模糊数据无关的异常信息,例如,进程或线程创建时的异常。
该方法还可以进一步包括:
将漏洞挖掘后具有的漏洞信息进行展示。
本步骤中,可以将触发漏洞的异常信息,例如,触发异常的地址、异常种类、异常产生时的各寄存器值向相关技术人员进行展示,以便相关技术人员根据展示的该异常信息开发出修复该目标应用程序的漏洞的插件。
由上述可见,本发明实施例的漏洞挖掘方法,通过生成基于目标应用程序的模糊配置数据;在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。这样,利用模糊配置数据对解析样本文件得到的数据块自动进行模糊配置,无需对数据块进行手动修改编辑,有效降低了挖掘漏洞所需的时间,提升了漏洞挖掘效率;同时,通过将目标应用程序置于虚拟机中运行模糊数据,可以保证每次运行模糊数据的系统环境完全一致,便于异常(漏洞)重现,提升漏洞挖掘的准确性;而且,在模糊数据加载超时后,可以通过恢复虚拟机镜像的方式重加载模糊数据,能有效提高模糊数据恢复速度,缩短目标应用程序运行模糊数据的时间,也可有效提升漏洞挖掘效率。
图2为本发明实施例漏洞挖掘装置结构示意图。参见图2,该装置包括:配置模块21、样本文件读取模块22、模糊数据生成模块23以及漏洞挖掘模块24,其中,
配置模块21,用于生成基于目标应用程序的模糊配置数据;
本发明实施例中,作为一可选实施例,配置模块21为模糊配置数据生成器,利用模糊配置数据生成器,基于格式分析和目标应用程序解析相结合的方法生成所述模糊配置数据。
本发明实施例中,作为一可选实施例,所述模糊配置数据的格式采用偏移-长度-数据类型格式。
样本文件读取模块22,用于在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;
本发明实施例中,通过在虚拟机中运行各目标应用程序,进行相应目标应用程序的漏洞挖掘,能保证每次运行目标内容时,目标应用程序所处的系统环境是完全一致的。作为一可选实施例,样本文件读取模块可以从后续的模糊配置数据库模块中读取样本文件,样本文件为能被目标应用程序正常解析的合法文件。
模糊数据生成模块23,用于解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;
本发明实施例中,通过解析样本文件的格式,识别出该样本文件包含的一个或多个数据块,每一数据块对应一模糊数据。可以利用预先注入在所述目标应用程序中的模糊数据动态链接库脚本调用所述模糊配置数据。
漏洞挖掘模块24,用于将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
本发明实施例中,作为一可选实施例,在目标应用程序进程中运行模糊数据,并设置模糊数据异常监控进程监控异常运行的模糊数据。
作为一可选实施例,漏洞挖掘模块24包括:写入单元、镜像单元、超时检测单元、恢复镜像单元以及漏洞挖掘单元(图中未示出),其中,
写入单元,用于将所述模糊数据写入所述目标应用程序的输入接口;
镜像单元,用于对写入所述目标应用程序的输入接口的模糊数据进行虚拟机镜像;
本发明实施例中,作为一可选实施例,可以通过快照方式对当前时刻包括内存状态、文件操作、内核对象的进程状态进行虚拟机镜像。
超时检测单元,用于在所述目标应用程序中运行所述模糊数据,如果运行所述模糊数据的时间超过预先设置的超时时间阈值,通知恢复镜像单元;
本发明实施例中,通过虚拟机控制器(VMC,VirtualMachineController)进行虚拟机镜像,并检测虚拟机内的所述目标应用程序进程运行模糊数据是否超时。
恢复镜像单元,用于接收通知,结束运行所述模糊数据,重加载所述虚拟机镜像;
漏洞挖掘单元,用于依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
作为另一可选实施例,漏洞挖掘模块24包括:写入单元、监控单元、记录单元、遍历单元以及漏洞挖掘单元,其中,
写入单元,用于将所述模糊数据写入所述目标应用程序的输入接口;
监控单元,用于在监控到所述目标应用程序在运行所述模糊数据的过程中异常后,通知记录单元;
本发明实施例中,利用模糊数据异常监控进程监控异常运行的模糊数据。
记录单元,用于将记录的运行结果写入预先设置的结果数据库中,结束所述所述模糊数据的运行,通知遍历单元;
本发明实施例中,作为一可选实施例,结果数据库用于存储异常运行结果信息以及崩溃信息。
遍历单元,用于判断当前运行的所述模糊数据是否为最后一模糊数据,如果是,结束所述目标应用程序;如果不是,在所述目标应用程序中运行下一模糊数据;
漏洞挖掘单元,用于依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
作为另一可选实施例,漏洞挖掘模块24还可以进一步包括:
过滤单元,用于获取所述目标应用程序中运行所述模糊数据的运行结果信息;过滤运行结果信息中预先设置的非模糊数据运行产生的异常信息,将过滤的运行结果信息输出至所述漏洞挖掘单元。
作为再一可选实施例,漏洞挖掘模块24还可以进一步包括:
线程分配单元,如果生成的所述模糊数据为多个,为所述目标应用程序分配多个线程,每一线程运行一模糊数据。
作为一可选实施例,该装置还可以进一步包括:
模糊配置数据库模块25,用于将生成的模糊配置数据存储至模糊配置数据库中,并在模糊配置数据库中,构建目标应用程序与模糊配置数据的对应关系。
图3为本发明实施例漏洞挖掘装置逻辑结构示意图。参见图3,包括:
模糊配置数据生成器31,用于基于格式分析和目标应用程序解析相结合的方法生成所述模糊配置数据;
模糊配置数据库32,用于存储模糊配置数据以及样本文件,并基于所述模糊配置数据以及样本文件生成模糊数据,还用于存储虚拟机镜像;
结果数据库33,用于存储目标应用程序运行模糊数据产生的异常运行结果信息以及崩溃信息;
模糊数据动态链接库34,用于从模糊配置数据库中读取模糊数据,写入目标应用程序进程的输入接口;
目标应用程序进程35,用于运行写入的模糊数据;
模糊数据异常监控进程36,用于监控异常运行的模糊数据,在确定模糊数据运行异常后,将异常运行结果信息或崩溃信息输出至结果数据库;
本发明实施例中,模糊数据动态链接库34、目标应用程序进程35以及模糊数据异常监控进程36构成威睿虚拟机(Vmware)。
虚拟机控制器37,用于进行虚拟机镜像,将虚拟机镜像输出至模糊配置数据库,并检测模糊数据动态链接库、目标应用程序进程以及模糊数据异常监控进程是否超时,如果超时,从模糊配置数据库中读取虚拟机镜像,输出至模糊数据动态链接库。
本发明实施例中,虚拟机控制器37检测威睿虚拟机是否超时。
本发明实施例还提供一种电子设备,所述电子设备包含前述任一实施例所述的装置。
图4为本发明电子设备一个实施例的结构示意图,可以实现本发明图1-3所示实施例的流程,如图4所示,上述电子设备可以包括:壳体41、处理器42、存储器43、电路板44和电源电路45,其中,电路板44安置在壳体41围成的空间内部,处理器42和存储器43设置在电路板44上;电源电路45,用于为上述电子设备的各个电路或器件供电;存储器43用于存储可执行程序代码;处理器42通过读取存储器43中存储的可执行程序代码来运行与可执行程序代码对应的程序,用于执行前述任一实施例所述的漏洞挖掘方法。
处理器42对上述步骤的具体执行过程以及处理器42通过运行可执行程序代码来进一步执行的步骤,可以参见本发明图1-3所示实施例的描述,在此不再赘述。
该电子设备以多种形式存在,包括但不限于:
(1)移动通信设备:这类设备的特点是具备移动通信功能,并且以提供话音、数据通信为主要目标。这类终端包括:智能手机(例如iPhone)、多媒体手机、功能性手机,以及低端手机等。
(2)超移动个人计算机设备:这类设备属于个人计算机的范畴,有计算和处理功能,一般也具备移动上网特性。这类终端包括:PDA、MID和UMPC设备等,例如iPad。
(3)便携式娱乐设备:这类设备可以显示和播放多媒体内容。该类设备包括:音频、视频播放器(例如iPod),掌上游戏机,电子书,以及智能玩具和便携式车载导航设备。
(4)服务器:提供计算服务的设备,服务器的构成包括处理器、硬盘、内存、系统总线等,服务器和通用的计算机架构类似,但是由于需要提供高可靠的服务,因此在处理能力、稳定性、可靠性、安全性、可扩展性、可管理性等方面要求较高。
(5)其他具有数据交互功能的电子设备。
本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的程序可存储于一计算机可读取存储介质中,该程序在执行时,可包括如上述各方法的实施例的流程。其中,所述的存储介质可为磁碟、光盘、只读存储记忆体(Read-OnlyMemory,ROM)或随机存储记忆体(RandomAccessMemory,RAM)等。
以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到的变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以权利要求的保护范围为准。
Claims (10)
1.一种漏洞挖掘方法,其特征在于,该方法包括:
生成基于目标应用程序的模糊配置数据;
在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;
解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;
将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
2.根据权利要求1所述的方法,其特征在于,所述在所述目标应用程序中运行所述模糊数据包括:
对写入所述目标应用程序的输入接口的模糊数据进行虚拟机镜像;
在所述目标应用程序中运行所述模糊数据,如果运行所述模糊数据的时间超过预先设置的超时时间阈值,结束运行所述模糊数据,重加载所述虚拟机镜像以进行漏洞挖掘。
3.根据权利要求2所述的方法,其特征在于,通过快照方式对当前时刻包括内存状态、文件操作、内核对象的进程状态进行虚拟机镜像。
4.根据权利要求1所述的方法,其特征在于,所述在所述目标应用程序中运行所述模糊数据包括:
监控到所述目标应用程序在运行所述模糊数据的过程中异常,将记录的运行结果写入预先设置的结果数据库中,结束所述所述模糊数据的运行;
判断当前运行的所述模糊数据是否为最后一模糊数据,如果是,结束所述目标应用程序;如果不是,在所述目标应用程序中运行下一模糊数据。
5.根据权利要求1至4任一项所述的方法,其特征在于,在所述依据运行所述模糊数据的运行结果信息进行漏洞挖掘之前,所述方法进一步包括:
获取所述目标应用程序中运行所述模糊数据的运行结果信息;
过滤运行结果信息中预先设置的非模糊数据运行产生的异常信息,基于过滤的运行结果信息执行所述漏洞挖掘。
6.根据权利要求1至4任一项所述的方法,其特征在于,在所述目标应用程序中运行所述模糊数据以进行漏洞挖掘之前,所述方法进一步包括:
如果生成的所述模糊数据为多个,为所述目标应用程序分配多个线程,每一线程运行一模糊数据。
7.根据权利要求1至4任一项所述的方法,其特征在于,利用模糊配置数据生成器,基于格式分析和目标应用程序解析相结合的方法生成所述模糊配置数据。
8.根据权利要求7所述的方法,其特征在于,所述模糊配置数据的格式采用偏移-长度-数据类型格式。
9.根据权利要求1至4任一项所述的方法,其特征在于,利用预先注入在所述目标应用程序中的模糊数据动态链接库脚本调用所述模糊配置数据。
10.一种漏洞挖掘装置,其特征在于,该装置包括:配置模块、样本文件读取模块、模糊数据生成模块以及漏洞挖掘模块,其中,
配置模块,用于生成基于目标应用程序的模糊配置数据;
样本文件读取模块,用于在预先设置的虚拟机中启动所述目标应用程序,读取用于目标应用程序的样本文件;
模糊数据生成模块,用于解析所述用于目标应用程序的样本文件的格式,得到数据块,调用所述基于目标应用程序的模糊配置数据,对所述数据块进行模糊配置,生成模糊数据;
漏洞挖掘模块,用于将所述模糊数据写入所述目标应用程序的输入接口,在所述目标应用程序中运行所述模糊数据,依据运行所述模糊数据的运行结果信息进行漏洞挖掘。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510875605.XA CN105512562B (zh) | 2015-12-01 | 2015-12-01 | 一种漏洞挖掘方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201510875605.XA CN105512562B (zh) | 2015-12-01 | 2015-12-01 | 一种漏洞挖掘方法、装置及电子设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105512562A true CN105512562A (zh) | 2016-04-20 |
CN105512562B CN105512562B (zh) | 2018-12-25 |
Family
ID=55720535
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201510875605.XA Active CN105512562B (zh) | 2015-12-01 | 2015-12-01 | 一种漏洞挖掘方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105512562B (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667912A (zh) * | 2018-04-23 | 2018-10-16 | 中国人民解放军战略支援部队信息工程大学 | 一种云资源分配方法及装置 |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109191286A (zh) * | 2018-10-19 | 2019-01-11 | 中国银行股份有限公司 | 一种多种外部数据的处理方法及装置 |
CN110457907A (zh) * | 2019-07-25 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种固件程序检测方法和装置 |
CN110489973A (zh) * | 2019-08-06 | 2019-11-22 | 广州大学 | 一种基于Fuzz的智能合约漏洞检测方法、装置和存储介质 |
CN111078752A (zh) * | 2019-12-17 | 2020-04-28 | 昆山华东信息科技有限公司 | 基于zorro系统的数据挖掘任务创建方法 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853650A (zh) * | 2012-11-28 | 2014-06-11 | 西门子公司 | 一种模糊测试的测试用例生成方法及装置 |
CN104268085A (zh) * | 2014-10-24 | 2015-01-07 | 重庆邮电大学 | 一种基于属性提取的软件漏洞挖掘系统及方法 |
CN104573523A (zh) * | 2013-10-24 | 2015-04-29 | 深圳市腾讯计算机系统有限公司 | 文件漏洞挖掘的实现方法和装置 |
-
2015
- 2015-12-01 CN CN201510875605.XA patent/CN105512562B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103853650A (zh) * | 2012-11-28 | 2014-06-11 | 西门子公司 | 一种模糊测试的测试用例生成方法及装置 |
CN104573523A (zh) * | 2013-10-24 | 2015-04-29 | 深圳市腾讯计算机系统有限公司 | 文件漏洞挖掘的实现方法和装置 |
CN104268085A (zh) * | 2014-10-24 | 2015-01-07 | 重庆邮电大学 | 一种基于属性提取的软件漏洞挖掘系统及方法 |
Non-Patent Citations (1)
Title |
---|
张玉清 等: "Android安全漏洞挖掘技术综述", 《计算机研究与进展》 * |
Cited By (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108667912A (zh) * | 2018-04-23 | 2018-10-16 | 中国人民解放军战略支援部队信息工程大学 | 一种云资源分配方法及装置 |
CN108667912B (zh) * | 2018-04-23 | 2021-03-23 | 中国人民解放军战略支援部队信息工程大学 | 一种云资源分配方法及装置 |
CN109032927A (zh) * | 2018-06-26 | 2018-12-18 | 腾讯科技(深圳)有限公司 | 一种漏洞挖掘方法及装置 |
CN109191286A (zh) * | 2018-10-19 | 2019-01-11 | 中国银行股份有限公司 | 一种多种外部数据的处理方法及装置 |
CN110457907A (zh) * | 2019-07-25 | 2019-11-15 | 腾讯科技(深圳)有限公司 | 一种固件程序检测方法和装置 |
CN110457907B (zh) * | 2019-07-25 | 2021-04-20 | 腾讯科技(深圳)有限公司 | 一种固件程序检测方法和装置 |
CN110489973A (zh) * | 2019-08-06 | 2019-11-22 | 广州大学 | 一种基于Fuzz的智能合约漏洞检测方法、装置和存储介质 |
CN111078752A (zh) * | 2019-12-17 | 2020-04-28 | 昆山华东信息科技有限公司 | 基于zorro系统的数据挖掘任务创建方法 |
Also Published As
Publication number | Publication date |
---|---|
CN105512562B (zh) | 2018-12-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN105512562A (zh) | 一种漏洞挖掘方法、装置及电子设备 | |
CN107515808B (zh) | 日志记录方法、装置、计算机设备和计算机可读存储介质 | |
CN103744824A (zh) | 一种出厂测试方法和测试系统 | |
CN105574416A (zh) | 一种浏览器漏洞检测方法及装置 | |
CN110764870A (zh) | 一种虚拟机逃逸漏洞挖掘方法、装置、设备及介质 | |
CN107480327A (zh) | 一种仿真验证方法、装置和电子设备 | |
US11030074B2 (en) | Code update based on detection of change in runtime code during debugging | |
CN113835643B (zh) | 数据存储方法、装置、电子设备及可读存储介质 | |
CN112149136A (zh) | loT设备固件漏洞的检测方法、系统及电子设备 | |
CN115470141A (zh) | 一种故障模拟方法、装置及相关设备 | |
CN105528546A (zh) | 一种挖掘漏洞的方法、装置及电子设备 | |
CN110889116A (zh) | 一种广告拦截方法、装置及电子设备 | |
US11249880B1 (en) | Debugging and simulating application runtime execution | |
CN107357717B (zh) | 检测配置错误的方法、装置及设备 | |
CN116414722B (zh) | 模糊测试处理方法、装置、模糊测试系统及存储介质 | |
Wu et al. | CydiOS: A Model-Based Testing Framework for iOS Apps | |
CN115600199A (zh) | 安全评估的方法、装置、电子设备及计算机可读存储介质 | |
CN110795338B (zh) | 一种基于前后端交互的自动化测试方法、装置及电子设备 | |
CN108875371B (zh) | 一种沙箱分析方法、装置、电子设备及存储介质 | |
CN107742080B (zh) | 针对虚拟化环境的漏洞挖掘方法及装置 | |
CN108415822B (zh) | 一种随机测试方法和装置 | |
CN107729229A (zh) | 一种设计代码中替换单元的验证方法、装置和设备 | |
CN114756871B (zh) | 漏洞检测方法、装置、电子设备及存储介质 | |
CN109918913A (zh) | 一种漏洞检测方法和装置 | |
CN114328189A (zh) | 故障复现方法、装置、终端及计算机可读存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20181217 Address after: 519031 Room 105-53811, No. 6 Baohua Road, Hengqin New District, Zhuhai City, Guangdong Province Patentee after: Zhuhai Leopard Technology Co.,Ltd. Address before: 519070, six level 601F, 10 main building, science and technology road, Tangjia Bay Town, Zhuhai, Guangdong. Co-patentee before: BEIJING KINGSOFT INTERNET SECURITY SOFTWARE Co.,Ltd. Patentee before: Zhuhai Juntian Electronic Technology Co.,Ltd. |
|
TR01 | Transfer of patent right |