一种程序漏洞挖掘方法、装置、终端及存储介质制造方法及图纸

技术编号:19904077 阅读:27 留言:0更新日期:2018-12-26 03:06
本发明专利技术涉及一种程序漏洞挖掘方法、装置、终端及存储介质,所述方法包括:根据测试目标选择对应的策略模板;根据所述策略模板生成测试用例,其中,所述生成测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;根据所述策略模板和所述日志生成复现脚本。本发明专利技术能够准确、有效地发现程序代码中的安全漏洞,提高代码安全性和可靠性,同时提高了漏洞挖掘的效率和质量。

【技术实现步骤摘要】
一种程序漏洞挖掘方法、装置、终端及存储介质
本专利技术涉及计算机安全
,尤其涉及一种程序漏洞挖掘方法、装置、终端及存储介质。
技术介绍
漏洞是由安全域切换到非安全域的触发点,即在计算机安全领域因设计不周而导致的系统或软件存在的缺陷,从而可以使攻击者在非授权的情况下访问或者破坏系统。漏洞是静态的、被动的,但是可触发的。漏洞挖掘是指对未知漏洞的探索,综合应用各种技术和工具,尽可能地找出软件中的潜在漏洞。常用漏洞挖掘技术包括了用户层和内核层两个方向。现有的用户层漏洞挖掘技术的主要目标是应用广泛的用户软件,比如web浏览器、office办公软件及outlook邮箱软件等。现有的内核层漏洞挖掘技术的主要目标是操作系统核心层、文件系统层和网络层等。目前的漏洞挖掘方案大多数是针对用户层软件的分析,有少数针对内核层的方案也很难覆盖到图形库程序,主要原因是图形库并不属于系统核心,易被忽视,其实现又比较复杂,现有技术无法进行深入有效的测试。
技术实现思路
本专利技术所要解决的技术问题在于,提供一种程序漏洞挖掘方法、装置、终端及存储介质,能够准确、有效地发现程序代码中的安全漏洞,提高代码安全性。为了解决上述技术问题,第一方面,本专利技术提供了一种程序漏洞挖掘方法,包括:根据测试目标选择对应的策略模板;根据所述策略模板生成测试用例,其中,所述生成测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;根据所述策略模板和所述日志生成复现脚本。第二方面,本专利技术提供了一种程序漏洞挖掘装置,包括:策略模板选择模块,用于根据测试目标选择对应的策略模板;测试用例生成模块,用于根据所述策略模板生成测试用例,其中,所述测试用例生成模块包括接口测试用例生成模块、关系测试用例生成模块和数据流测试用例生成模块;测试执行模块,用于将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;脚本用例复现模块,用于根据所述策略模板和所述日志生成复现脚本。第三方面,本专利技术提供了一种终端,包括:处理器以及存储器,其中所述处理器用于调用并执行所述存储器中存储的程序,所述存储器用于存储程序,所述程序用于:根据测试目标选择对应的策略模板;根据所述策略模板生成测试用例,其中,所述生成测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;根据所述策略模板和所述日志生成复现脚本。第四方面,本专利技术提供了一种计算机存储介质,所述存储介质中存储有计算机可执行指令,所述计算机可执行指令由处理器加载并执行以下步骤:根据测试目标选择对应的策略模板;根据所述策略模板生成测试用例,其中,所述生成测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;根据所述策略模板和所述日志生成复现脚本。实施本专利技术实施例,具有如下有益效果:本专利技术根据测试目标选择策略模板,并根据策略模板生成对应的测试用例,其中,所述测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;再将生成的测试用例注入到测试目标中进行测试,并对测试过程中的日志进行保存;最后根据策略模板和日志生成复现脚本。本专利技术能够准确、有效地发现程序代码中的安全漏洞,提高代码安全性和可靠性,同时提高了漏洞挖掘的效率和质量;本专利技术提供的基于接口、数据关系及数据流的漏洞挖掘技术,解决了传统漏洞挖掘技术难以检测的各类程序漏洞的难题。附图说明为了更清楚地说明本专利技术实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单介绍,显而易见地,下面描述中的附图仅仅是本专利技术的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1是本专利技术实施例提供的漏洞挖掘实施场景示意图;图2是本专利技术实施例提供的一种用户层漏洞挖掘方法的示意图;图3是本专利技术实施例提供的一种内核层漏洞挖掘方法的示意图;图4是本专利技术实施例提供的一种漏洞挖掘技术的框架结构示意图;图5是本专利技术实施例提供的一种程序漏洞挖掘方法的流程示意图;图6是本专利技术实施例提供的接口测试用例生成示意图;图7是本专利技术实施例提供的关系测试用例生成示意图;图8是本专利技术实施例提供的数据流测试用例生成示意图;图9是本专利技术实施例提供的另一种程序漏洞挖掘方法的流程示意图;图10是本专利技术实施例提供的一种程序漏洞挖掘装置的示意图;图11是本专利技术实施例提供的接口测试用例生成模块示意图;图12是本专利技术实施例提供的关系测试用例生成模块示意图;图13是本专利技术实施例提供的数据流测试用例生成模块示意图;图14是本专利技术实施例提供的一种终端的结构示意图。具体实施方式为使本专利技术的目的、技术方案和优点更加清楚,下面将结合附图对本专利技术作进一步地详细描述。显然,所描述的实施例仅仅是本专利技术的一部分实施例,而不是全部的实施例。基于本专利技术中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本专利技术保护的范围。首先对本专利技术实施例中涉及的名词作解释。脚本语言:又被称为扩建的语言,或者动态语言,是一种编程语言,用来控制软件应用的程序,脚本通常以文本(如ASCII)保存,只在被调用时进行解释或编译。图形库:是一个用于在显示器上渲染计算机图形的程序库。通常提供了一组执行渲染操作的函数,该类程序通常可以完全运行在CPU上,也可以利用GPU(GraphicsProcessingUnit,图形处理器)进行硬件加速。由于此类程序的实现通常需要与硬件(显卡)交互,因此具备较高的执行权限(内核权限),如果出现缺陷,轻则系统崩溃,重则会被恶意主体利用,造成安全事故。安全漏洞:计算机信息系统在需求、设计、实现、配置、运行等过程中,有意或无意产生的缺陷。这些缺陷以不同的形式存在于计算机信息系统的各个层次和环节之中,一旦被恶意主体所利用,就会对计算机信息系统的安全造成损害,从而影响计算机信息系统的正常运行。漏洞挖掘方法:针对目标程序,利用调试、测试、人工审计等方法,对其代码进行解析,从而达到发现其中存在的安全漏洞的目的。漏洞挖掘装置:针对目标程序,利用计算机自动化技术,对其代码进行自动漏洞挖掘的一种装置,其特点是可以利用计算机的高效执行力,在无人值守的情况下发现安全漏洞。本专利技术中的程序漏洞所指的程序包括但不限于各种系统软件、APP应用(Application,应用程序)以及各类设备驱动等。本专利技术的程序漏洞挖掘方法可直接运行于单台计算机设备,如个人计算机、服务器设备或者云端模拟的计算机平台之上。请参见图1,其示出了本专利技术的一种实施场景示意图,该场景中,整个漏洞挖掘过程都是在主机实现的,测试目标安装在主机中,通过外部输入测试命令和测试所需要的数据,对测试目标进行测试,并输出测试结果,测试结果为后续分析漏洞成因提供有效帮助。请参见图2,其示出了一种用户层漏洞挖掘方法示意图,针对不同的软件,反复地构造出该类软件可以使用的畸形样本,并运行检测是否会出现异本文档来自技高网...

【技术保护点】
1.一种程序漏洞挖掘方法,其特征在于,所述方法包括:根据测试目标选择对应的策略模板;根据所述策略模板生成测试用例,其中,所述生成测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;根据所述策略模板和所述日志生成复现脚本。

【技术特征摘要】
1.一种程序漏洞挖掘方法,其特征在于,所述方法包括:根据测试目标选择对应的策略模板;根据所述策略模板生成测试用例,其中,所述生成测试用例包括生成接口测试用例、生成数据关系测试用例和生成数据流测试用例;将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;根据所述策略模板和所述日志生成复现脚本。2.根据权利要求1所述的一种程序漏洞挖掘方法,其特征在于,所述生成接口测试用例包括:构建接口数据,所述接口数据根据预设的标准生成;对所述根据预设的标准生成的接口数据进行数据随机化;对所述接口进行分类组装,并按照预设的逻辑对所述分类组装后的接口进行排序;对所述接口的执行序列进行序列随机化。3.根据权利要求1所述的一种程序漏洞挖掘方法,其特征在于,所述生成数据关系测试用例包括:构建关系数据,所述关系数据根据预设的标准生成;对所述关系数据进行关系数据随机化;对所述关系进行分类;在基本关系正确的基础上,对所述关系进行关系复杂化。4.根据权利要求1所述的一种程序漏洞挖掘方法,其特征在于,所述生成数据流测试用例包括:构建数据流,所述数据流根据预设的标准生成;对上一次的测试中的数据流进行分析,以获得所述数据流的走向;根据当前数据流的可达路径对当前数据流进行数据广度优化;根据所述数据流的可达路径对当前数据流进行数据深度优化。5.根据权利要求1所述的一种程序漏洞挖掘方法,其特征在于,所述方法包括:当需要改变挖掘策略时,根据所述测试目标的测试需求远程热更新所述策略模板。6.根据权利要求5所述的一种程序漏洞挖掘方法,其特征在于,所述方法还包括:在测试过程中,根据返回的测试结果对所述策略模板进行动态调整。7.一种程序漏洞挖掘装置,其特征在于,包括:策略模板选择模块,用于根据测试目标选择对应的策略模板;测试用例生成模块,用于根据所述策略模板生成测试用例,其中,所述测试用例生成模块包括接口测试用例生成模块、关系测试用例生成模块和数据流测试用例生成模块;测试执行模块,用于将所述测试用例注入到所述测试目标中,对所述测试目标进行测试,并对测试过程中的日志进行保存;脚本用例复现模块,用于根据所述策略模板和所述日志生成复现脚本。8.根据权利要求7所述的一种程序漏洞挖掘装置,其特征在于,所述接口测试用例生成模块包括:接口数据构建模块,用于构建接口数据,所述接口数据根据预设的标准生成;接口数据随机化模块,用于对所述根...

【专利技术属性】
技术研发人员:韩鸷桐陈楠
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:广东,44

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

1