安全漏洞检测方法及装置的制造方法

文档序号:9375454阅读:402来源:国知局
安全漏洞检测方法及装置的制造方法
【技术领域】
[0001] 本发明涉及应用程序测试领域,具体而言,涉及一种安全漏洞检测方法及装置。
【背景技术】
[0002] 目前业界所使用的自动化漏洞挖掘系统,按照挖掘思路的不同,大体上可以分为 两种类型:白盒漏洞挖掘和黑盒漏洞挖掘。相比白盒挖掘,黑盒挖掘更简单、更直接、更受到 安全研究人员的喜欢。自动化漏洞挖掘领域所面临的主要问题之一是:如何使挖掘漏洞的 测试用例尽可能多的覆盖待测试产品代码逻辑,只有覆盖了足够多的代码逻辑,才可能在 这些代码逻辑中找到漏洞。
[0003] 其中,上述的白盒漏洞挖掘具体指从待测试产品的源代码出发,尝试理解其语义 和逻辑,然后根据准备好的漏洞规则对这些语义和逻辑进行扫描,以求找到漏洞;而黑盒漏 洞挖掘则是把待测试产品当成一个黑盒子,向黑盒子的外部接口填充大量测试用例,然后 观察黑盒子在处理这些测试用例时的表现,根据这些表现确定漏洞。
[0004] 具体地,在黑盒漏洞挖掘中,如果发现黑盒子的表现异常(如产品崩溃等),则将 这个测试用例提出来做更细致的分析(甚至可以是人工分析),根据分析得到的异常原因 找到漏洞。
[0005] 现有技术中,自动化的黑盒漏洞挖掘系统把待测试产品当成一个黑盒子,盲目填 充大量无效测试用例,浪费大量漏洞挖掘资源,却还无法有效挖掘漏洞。据统计,传统黑盒 漏洞挖掘系统代码覆盖率不足5 %,剩余95 %代码里面的漏洞根本无法进行挖掘。
[0006] 具体地,在正常情况下,待测试程序中往往包含大量的约束条件(如if条件判 断)。在黑盒漏洞挖掘领域,由于不了解待测试产品的代码逻辑,在进行安全漏洞挖掘时,盲 目的填充大量的测试用例,填充的测试用例没有针对性,测试用例再多也无法触发漏洞。例 如,设:在待测试程序中输入a触发漏洞A,如果测试用例中没有输入为"a"的测试用例,则 无法测试出漏洞A。
[0007] 由上可知,现有技术中黑盒挖掘漏洞的缺点是:在黑盒的输入端填充大量的测试 用例,大量测试用例中却没有针对性很强的测试用例,无法有效的覆盖更多的代码路径,难 以触及存在漏洞的代码逻辑,挖掘到的漏洞数量少。
[0008] 针对上述的黑盒挖掘安全漏洞中使用的测试用例无法有效覆盖待测试程序的代 码路径,漏掉很多漏洞,漏检率高的问题,目前尚未提出有效的解决方案。

【发明内容】

[0009] 本发明实施例提供了一种安全漏洞检测方法及装置,以至少解决由于黑盒挖掘安 全漏洞中使用的测试用例无法有效覆盖待测试程序的代码路径,漏掉很多漏洞,漏检率高 的技术问题。
[0010] 根据本发明实施例的一个方面,提供了一种安全漏洞检测方法,该方法包括:记录 在待测试程序执行第一测试用例的过程中产生的测试信息,其中,测试信息包括测试指令; 从测试指令中获取待测试程序执行第一测试用例时的执行逻辑;基于执行逻辑生成第二测 试用例;在待测试程序中执行第二测试用例。
[0011] 根据本发明实施例的另一方面,还提供了一种安全漏洞检测装置,该装置包括:记 录模块,用于记录在待测试程序执行第一测试用例的过程中产生的测试信息,其中,测试信 息包括测试指令;第一获取模块,用于从测试指令中获取待测试程序执行第一测试用例时 的执行逻辑;测试用例生成模块,用于基于执行逻辑生成第二测试用例;执行模块,用于在 待测试程序中执行第二测试用例。
[0012] 在本发明实施例中,通过记录待测试程序在执行第一测试用例时的测试信息,并 从其中的测试指令中确定出待测试程序的执行逻辑,按照该执行逻辑生成新的测试用例 (即上述实施例中的测试用例),然后在待测试程序中执行第二测试用例。通过上述的实施 例,是通过第一测试用例确定的第二测试用例,第二测试用例是根据待测试程序的执行逻 辑生成的,具有很强的针对性,可以在第一测试用例的基础上执行更多的程序逻辑,从而可 以有效地覆盖更多的代码路径,有效触及存在漏洞的代码逻辑,解决了现有技术中黑盒挖 掘安全漏洞中使用的测试用例无法有效覆盖待测试程序的代码路径,漏掉很多漏洞,漏检 率高的问题,实现了有效覆盖更多的待测试程序中的代码路径,减少安全漏洞的漏检率的 效果。
【附图说明】
[0013] 此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发 明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
[0014] 图1是根据本发明的一种计算机的结构框图;
[0015] 图2是根据本发明实施例的一种安全漏洞检测方法的流程图;
[0016] 图3是根据本发明实施例的一种待测试程序中的安全漏洞的代码示意图;
[0017] 图4是根据本发明实施例的一种可选的安全漏洞检测方法的流程图;
[0018] 图5是根据本发明实施例的另一种可选的安全漏洞检测方法的流程图;
[0019] 图6是根据本发明实施例的第三种可选的安全漏洞检测方法的流程图;
[0020] 图7是根据本发明实施例的第四种可选的安全漏洞检测方法的流程图;
[0021] 图8是根据本发明实施例的一种安全漏洞检测装置的结构示意图;以及
[0022] 图9是根据本发明实施例的一种可选的安全漏洞检测装置的结构示意图。
【具体实施方式】
[0023] 为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的 附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是 本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术 人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范 围。
[0024] 需要说明的是,本发明的说明书和权利要求书及上述附图中的术语"第一"、"第 二"等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用 的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或 描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任何变形,意图在于 覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限 于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产 品或设备固有的其它步骤或单元。
[0025] 本发明实施例提供一种动画源文件安全漏洞检查方法,其可由计算机或者类似的 运算装置执行。
[0026] 图1是根据本发明的一种计算机的结构框图。如图1所示,计算机10包括一个或 多个(图中仅示出一个)处理器11、存储器13、以及传输装置15。本领域普通技术人员可 以理解,图1所示的结构仅为示意,其并不对上述电子装置的结构造成限定。例如,计算机 10还可包括比图1中所示更多或者更少的组件,或者具有与图1所示不同的配置。
[0027] 其中,存储器13可用于存储软件程序以及模块,如本发明实施例中的安全漏洞检 测方法和装置对应的程序指令/模块,处理器11通过运行存储在存储器13内的软件程序 以及模块,从而执行各种功能应用以及数据处理,即实现上述的安全漏洞检测方法和装置。 存储器13可包括高速随机存储器,还可以包括非易失性存储器,如一个或者多个磁性存储 装置、闪存、或者其他非易失性固态存储器。在一些实例中,存储器13可进一步包括相对于 处理器11远程设置的存储器,这些远程存储器可以通过网络连接至计算机10。上述网络的 实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
[0028] 上述的传输装置15用于经由一个网络接收或者发送数据。上述的网络具体实例 可包括有线网络及无线网络。在一个实例中,传输装置15包括一个网络适配器(Network Interface Controller, NIC),其可通过网线与其他网络设备与路由器相连从而可与互联 网或局域网进行通讯。在一个实例中,传输装置15为射频(Radio Frequency,RF)模块,其 用于通过无线方式与互联网进行通讯。
[0029] 实施例1
[0030] 根据本发明实施例,提供了一种安全漏洞检测方法的实施例,需要说明的是,在附 图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽 然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出 或描述的步骤。
[0031] 根据本发明实施例,提供了一种安全漏洞检测方法,如图2所示,该检测方法可以 通过如下步骤实现:
[0032] 步骤S202 :记录在待测试程序执行第一测试用例的过程中产生的测试信息,其 中,测试信息包括测试指令。
[0033] 步骤S204 :从测试指令中获取待测试程序执行第一测试用例时的执行逻辑。
[0034] 步骤S206 :基于执行逻辑生成第二测试用例。
[0035] 步骤S208 :在待测试程序中执行第二测试用例。
[0036] 采用本发明实施例,通过记录待测试程序在执行第一测试用例时的测试信息,并 从其中的测试指令中确定出待测试程序的执行逻辑,按照该执行逻辑生成新的测试用例 (即上述实施例中的测试用例),然后在待测试程序中执行第二测试用例。通过上述的实施 例,是通过第一测试用例确定的第二测试用例,第二测试用例是根据待测试程序的执行逻 辑生成的,具有很强的针对性,可以在第一测试用例的基础上执行更多的程序逻辑,从而可 以有效地覆盖更多的代码路径,有效触及存在漏洞的代码逻辑,解决了现有技术中黑盒挖 掘安全漏洞中使用的测试用例无法有效覆盖待测试程序的代码路径,漏掉很多漏洞,漏检 率高的问题,实现了有效覆盖更多的待测试程序中的代码路径,减少安全漏洞的漏检率的 效果。
[0037] 其中,本发明实施例中的测试用例指:为某个安全漏洞挖掘目标而编制(如预先 设置好)的一组测试输入、执行条件以及预期结果,以便测试待测试产品的代码路径或核 实是否满足某个特定需求的字符串或数据包。
[0038] 上述实施例中的第一测试用例可以为在开始进行自动化漏洞挖掘前,预先设置好 的一些固定的基准测试用例,该测试用例可以作为后续第一次执行、监控、特征匹配和约束 求解的输入来源。
[0039] 在一个实施例中,可以循环执行上述的实施例,具体地,在待测试程序执行
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1