首页> 中国专利> 一种自动化攻击测试方法及基于此的自动化安全测试方法

一种自动化攻击测试方法及基于此的自动化安全测试方法

摘要

本申请提供一种自动化攻击测试方法及基于此的自动化安全测试方法。其中的自动化攻击测试方法,通过根据合法请求和对应其的各类型漏洞集合,构造、生成对应的攻击测试报文,攻击服务端目标程序,以实现有针对性的攻击测试;而基于其的自动化安全测试方法,在实现有针对性的攻击测试基础上,则能够实现低成本且精确地发现那些对应着某类外部请求的目标程序内部特定业务逻辑的安全漏洞风险,并解决脏数据干扰、攻击测试输入质量等问题。

著录项

  • 公开/公告号CN112906010A

    专利类型发明专利

  • 公开/公告日2021-06-04

    原文格式PDF

  • 申请/专利权人 北京安普诺信息技术有限公司;

    申请/专利号CN202110492634.3

  • 发明设计人 张涛;宁戈;牛伟颖;董毅;

    申请日2021-05-07

  • 分类号G06F21/57(20130101);G06F11/36(20060101);

  • 代理机构11360 北京万象新悦知识产权代理有限公司;

  • 代理人贾晓玲

  • 地址 100085 北京市海淀区安宁庄西路9号院25号楼8层2-807

  • 入库时间 2023-06-19 11:16:08

说明书

技术领域

本申请涉及计算机应用程序安全测试技术领域,具体涉及一种自动化攻击测试方法及基于此的自动化安全测试方法。

背景技术

随着数字时代的到来,基于B/S的Web应用技术被广泛用于政企业务数字化转型中。然而,随之而来的应用安全威胁也显著增加。相关研究显示,越来越多的安全漏洞发生在应用程序层,而非我们以往认知的网络层。为了确保应用程序在交付部署后能够安全稳定的提供服务,通常都会在交付前使其通过应用安全测试,发现和修复其中的薄弱点和漏洞,以防止相关应用程序被黑客及非法人员利用,造成安全危害。

目前业界常用的Web应用安全测试技术,主要包括:SAST、DAST和IAST三大类。其中,SAST主要是提供对应用程序源代码的白盒分析。但是,SAST白盒分析是在代码的静态视图上运行的,往往无法控制误报率在可接受范围,而且无法适用于目标程序动态运行时的安全测试,例如,目标应用程序在生产部署阶段的应用安全测试。而DAST提供的对应用程序的黑盒测试和IAST的一些实现中提供的对包括应用程序等的主动型灰盒测试,通过向目标程序服务端发送攻击测试报文,对目标程序进行动态攻击,并通过响应报文或程序内部数据分析目标程序动态运行状态、发现潜藏漏洞,则不仅能够满足目标程序运行状态应用安全测试的需求,还能够提高检测精准度、降低误报率。

然而,在现有技术提供的黑盒、主动型灰盒测试过程中,都涉及到了对目标对象发起全面性覆盖或相对的全面性覆盖的攻击测试,要完成这些攻击测试,需要发送相当数量的各种攻击测试报文,形成相当规模的攻击流量,不仅开销高、昂贵,不能实现精确化的安全测试,而且不免将导致大量脏数据产生,干扰其他测试。那么,如何仅提供尽可能少的攻击测试输入,实现有针对性地安全测试验证,低成本且精准地发现那些对应着某类外部请求的目标程序内部特定业务逻辑的安全风险,成为一个技术难题。

发明内容

有鉴于此,本申请旨在提供一种自动化攻击测试方法及基于此的自动化安全测试方法,以解决上述技术问题。

根据本申请公开的示例实施例,提供一种自动化攻击测试方案,以及基于此的自动化灰/黑盒安全测试方案,其中的自动化攻击测试方案用于为有针对性地安全测试验证提供可靠的且低成本的攻击测试,而基于所述自动化攻击测试的主动型灰盒安全测试或黑盒安全测试,则可通过有针对性的攻击测试,低成本且精确地发现那些对应着某类外部请求的目标程序内部特定业务逻辑的安全漏洞风险。

在本公开的第一方面中,提供一种自动化攻击测试的方法,用于向服务端目标程序发起攻击测试。该方法,包括:接收、获取或者捕获自客户端发往服务端的第一合法请求报文;根据目标程序中处理第一合法请求报文的内部逻辑结构,确定第一类型漏洞集合;第一类型漏洞集合中包括至少一种第一类型漏洞;根据所述集合中的每一种第一类型漏洞,构造与所述漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文,向服务端发起针对性的攻击测试;第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。

在本公开的第二方面中,提供一种自动化的灰盒安全测试方法或黑盒安全测试方法。基于第一方面的自动化攻击测试,该灰盒安全测试方法/黑盒安全测试方法,包括:执行第一方面述及的自动化攻击测试的方法,产生攻击测试流量,攻击服务端目标程序;以及对应地,监控目标程序中与攻击测试相关的内部反应,验证、定位与之相关的漏洞/接收反馈的攻击测试相关的响应报文,根据验证规则,判断是否潜藏与之相关的漏洞。

在本公开的第三方面中,提供一种自动化攻击测试装置。该装置包括:目标获取模块和攻击测试模块;目标获取模块被配置为获取或接收第一合法请求报文、及其对应的第一类型漏洞集合信息;第一类型漏洞集合中包括至少一种第一类型漏洞;攻击测试模块,被配置为根据所述集合信息中的第一类型漏洞信息,构造与所述漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文;第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。

在本公开的第四方面中,提供一种用于自动化攻击测试的电子设备。该电子设备,用作主动型灰盒安全测试或黑盒安全测试的测试端节点,包括:至少一个处理器,和至少一个处理器耦合的存储器,以及存储在存储器中的计算机程序;其中的处理器执行所述计算机程序,对应地能够实现第一方面述及的自动化攻击测试方法。

在本公开的第五方面中,提供一种自动化的灰盒安全测试系统或黑盒安全测试系统。基于第一方面的自动化攻击测试,该灰盒安全测试系统/黑盒安全测试系统,包括:自动化攻击测试单元和灰盒安全测试单元/黑盒安全测试单元;其中,自动化攻击测试单元,用于在接收、获取或者捕获自客户端发往服务端的第一合法请求报文后,自动触发针对性的攻击测试,攻击服务端目标程序;所述针对性的攻击测试,用于触发后续的主动型灰盒安全测试/黑盒安全测试;其中,自动化攻击测试单元,包括至少一个攻击测试节点;攻击测试节点,被配置为能够执行第一方面述及的方法,对服务端目标程序发起针对性的攻击测试;对应地,灰盒安全测试单元/黑盒安全测试单元,用于执行灰盒安全测试/黑盒安全测试,其中包括:在受到针对性攻击测试后,监控目标程序中与攻击测试相关的内部反应,验证、定位与之相关的漏洞/接收反馈的攻击测试相关的响应报文,根据验证规则,判断是否潜藏与之相关的漏洞。

在本公开的第六方面中,提供了一种计算机可读存储介质。该介质上存储有用于安全测试的计算机指令,该计算机指令在被计算机处理器执行时能够实现第一方面或第二方面述及的方法。

在本公开的第七方面中,提供了一种计算机程序产品。该程序产品包括计算机程序,该计算机程序在被计算机处理器执行时能够实现第一方面或第二方面述及的方法。

应当理解,发明内容部分中所描述的内容并非旨在限定本公开的实施例的关键或重要特征,亦非用于限制本公开的范围。本公开的其它特征将通过以下的描述变得容易理解。

附图说明

结合附图并参考以下详细说明,本公开各实施例的上述和其他特征、优点及方面将变得更加明显。在附图中,相同或相似的附图标注表示相同或相似的元素,其中:

图1示出了现有的用于Web应用程序安全测试的DAST黑盒安全测试的示例示意图;

图2示出了现有的基于插桩模式的主动型IAST灰盒安全测试的示例示意图;

图3示出了根据本公开的一些实施例的自动化攻击测试方法的流程示意图;

图4示出了上述实施例中的一些的部署在测试端时的一种精简后的实现方式的流程示意图;

图5示出了根据本公开的一些实施例的自动化攻击测试装置的框图;

图6示出了上述实施例中的一些的具有分析功能的自动化攻击测试装置的框图;

图7示出了根据本公开的一些实施例的自动化灰盒安全测试系统的框图;

图8示出了根据本公开的一些实施例的自动化黑盒安全测试系统的框图;

图9示出了根据本公开的一些实施例的用于自动化攻击测试的电子设备的框图。

具体实施方式

下面将参照附图更详细地描述本公开的实施例。虽然附图中显示了本公开的某些实施例,然而应当理解的是,本公开可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本公开。应当理解的是,本公开的附图及实施例仅用于示例性作用,并非用于限制本公开的保护范围。

在本公开的实施例的描述中术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。术语“第一”等等可以指代不同的或相同的对象。下文还可能包括其他明确的和隐含的定义。

在本公开的实施例的描述中技术术语“目标程序”,是指在安全测试过程中被作为检测对象的计算机应用程序。对于计算机程序来说,安全漏洞是不可避免的。程序是由人来编程的,兼顾代码质量和开发效率,是不可能存在开发阶段一蹴而就、完全符合编程规范、没有漏洞和缺陷的大型应用程序的;尤其是那些满足诸多功能需求、有着复杂业务逻辑的基于B/S的Web应用程序,是不可避免地存在着漏洞和缺陷的。在数字时代的今天,在软件,特别是各种应用程序(例如各种衣食住行相关的手机App等),越来越定义我们生活的每一部分的今天,考虑到大多数的安全漏洞存在于应用程序中,为了减少被非法利用造成损害,应用程序在上线部署前,一般要求其通过应用安全测试。这里的“目标程序”,主要是指安全测试过程中的被测应用程序。

在本公开的实施例的描述中技术术语“第一合法请求报文”,是指“第一合法请求”的报文。而“第一合法请求”是指“第一合法请求集合”中的任一合法请求;“第一合法请求集合”是指自客户端发往服务端的任意一类合法请求的集合;其中,同属于一类的合法请求,是指其报文内容、及其中参数输入内容等都遵守相同的内容格式、规范的一类合法请求。对于任意一类“第一合法请求”,都存在着与之同构的“第一恶意请求”。“第一恶意请求”,能够触发“目标程序”中潜藏的“第一类型漏洞”;对应同一类“第一合法请求”的“第一恶意请求”,根据“第一恶意请求”中参数的恶意输入部分,相对于“第一合法请求”中参数的全部合法输入所处的位置、及所述恶意输入内容等,对应同一类“第一合法请求”,可以包括不同种类的“第一恶意请求”;一般地,对应同一类“第一合法请求”,包括至少一种“第一恶意请求”;对应同一类“第一合法请求”的不同种类的“第一恶意请求”,能够触发“目标程序”中潜藏的对应种类的“第一类型漏洞”;其中,“第一类型漏洞”,属于“第一类型漏洞集合”;“第一类型漏洞集合”,是指对于任意一类“第一合法请求”:其对应的任意一种“第一恶意请求”能够触发的“第一类型漏洞”的集合。

在本公开的实施例的描述中技术术语“第一攻击测试报文”,是指“第一攻击测试请求”的报文;而“第一攻击测试请求”是指能够触发目标程序中的潜藏的“第一类型漏洞”的攻击测试请求。当对于同一类“第一合法请求”,“目标程序”中可能潜藏多种“第一类型漏洞”时,则需要设计不同的“第一攻击测试请求”,攻击服务端,诱发目标程序中对应的“第一类型漏洞”。

在本公开的实施例的描述中技术术语“有效载荷”,即“Payload”,是指数据传输中被承载运输的实际信息,通常也称作实际数据或数据体。在传输数据时为使数据传输更可靠,通常需要在每一批数据套加一些辅助信息而每一批数据与其辅助“外套”,就构成了传输通道的基本传输单元,即数据帧或数据包;这些“外套”通常被用于辅助数据传输,也称为开销数据;而其中的原始数据通常被视为有效载荷。在应用安全测试技术技术领域,有效载荷主要是指在安全测试中用于检测“目标程序”是否潜藏了漏洞的安全测试数据;具体来说,是指通过诱发“目标程序”中潜藏漏洞进而验证之的安全测试数据。

在本公开的实施例的描述中技术术语“插桩”,又称“程序插桩”,是指在保证被测程序原有逻辑完整性的基础上在程序中插入“探针”,通过“探针”的执行获取程序的运行特征数据(即运行时数据),并通过对上述特征数据的分析,获得程序的控制流和数据流,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。其中的“探针”,本质上是进行信息采集的代码片段,可以是赋值语句或采集覆盖信息的函数调用;根据插桩点、捕获数据需求等的不同,可以设计具有相应捕获功能的“探针”,获取所需的数据。在同一个被测程序中,根据不同的测试需要,可以包括仅插桩一个“探针”,也可以在其中多个不同的插桩点分别插入“探针”。

在本公开的实施例的描述中技术术语“关键函数”,是指“目标程序”中那些在潜藏的漏洞被触发时异常执行的函数。对于目标程序中可能潜藏的各种不同类型的漏洞,对应其中的每一类型的漏洞,在目标程序中均包括至少一个与之对应的关键函数。

随着云原生和开源技术的普及,基于B/S的Web应用技术被广泛用于众多政企实体的业务数字化转型发展中。然而,随着软件应用程序总的体量的大规模增长,随之而来的应用安全威胁也显著增加。根据加特纳公司(Gartner Group Inc.)的调研显示,75%的安全漏洞发生在应用程序层,而非我们以往认知的网络层;而美国国家标准与技术研究院(National Institute of Standards and Technology,NIST)发布的相似调查,更是直接指出92%的已知的安全漏洞存在于应用程序中,而非网络层中。

为了及时发现软件应用的漏洞和缺陷,确保Web应用程序在交付部署前后的安全性,通常需要利用Web应用安全测试技术发现Web应用程序中架构的薄弱点和漏洞,防止相关应用被黑客及非法人员利用,造成安全危害。

目前业界常用的Web应用安全测试技术,主要包括:SAST、DAST和IAST三大类。

SAST:静态应用程序安全测试(Static Application Security Testing)技术通常是指在编码阶段分析应用程序的源代码或二进制文件的语法、结构、过程、接口等来发现程序代码存在的安全漏洞。

DAST:动态应用程序安全测试(Dynamic Application Security Testing)技术在测试或运行阶段分析应用程序的动态运行状态。DAST通过模拟黑客行为对目标程序进行动态攻击,分析其反应(主要是通过反馈的响应报文,不涉及程序内部数据),确定目标程序是否潜藏漏洞而成为恶意攻击受害对象。

IAST:交互式应用程序安全测试(Interactive Application Security Testing)是一种新的应用程序安全测试方案,通过代理、VPN或者在监控、收集程序内部数据,高效、准确地识别安全漏洞,定位漏洞所在。IAST相当于是DAST和SAST结合的一种运行时安全检测技术。

其中,SAST提供的白盒分析是在代码的静态视图上运行的,往往无法控制误报率在可接受范围,而且无法适用于目标程序动态运行时的安全测试,例如,目标应用程序在生产部署阶段的应用安全测试。虽然,DAST提供的对应用程序的黑盒测试和IAST的一些实现中提供的对包括应用程序等的主动型灰盒测试,通过对目标程序进行动态攻击和基于响应报文或程序内部数据分析目标程序动态运行状态、发现潜藏漏洞,实现了对目标程序运行状态的应用安全测试,并且降低了误报率;但是,在现有技术提供的上述的黑盒、主动型灰盒测试,往往都采用全面性覆盖或相对的全面性覆盖的攻击测试以诱发响应/反应,进而发现其中漏洞。图1、图2分别示出了现有技术中用于Web应用程序安全测试的DAST黑盒安全测试的示例示意图、基于插桩模式的主动型IAST灰盒安全测试的示例示意图。如图1、图2所示,上述的黑盒、主动型灰盒测试过程中,都对目标对象发起覆盖攻击测试,要完成这些攻击测试,需要发送相当数量的各种攻击测试报文,形成相当规模的攻击流量,不免将导致大量脏数据产生,干扰其他测试;况且,即使如此也不能实现对那些对应着某类外部请求的目标程序内部特定业务逻辑做有针对性地安全测试验证,低成本且精准地发现其中安全风险。即便是上述的一些灰/黑盒安全测试中,是可以选定一些特定类型的安全问题,做相对的全面性覆盖的攻击测试,但是在未了解程序内部逻辑时而盲目针对选定一些类型安全问题,过盲目拦截捕获合法请求、利用模糊测试工具等手段生成和服务端发送大量可能是完全无意义的攻击测试报文,也是不足取的,和可能做无用功的。此外,上述的灰/黑盒安全测试,非常依赖攻击测试输入的质量,盲目选择输入源,很可能由于根据其产生的攻击测试报文URL不完整、遗漏重要代码片段等,从而导致检测结果缺乏精准性、影响检测效率。

针对上述现有技术存在的具体问题,本申请旨在提供一种自动化攻击测试方法,并在其基础上提供相应的自动化安全测试方法,以解决对一些特定目标对象(例如那些对应着某类外部请求的目标程序内部特定业务逻辑)做有针对性地安全测试验证的问题,以及覆盖扫描造成的大量脏数据干扰问题、攻击测试输入源质量问题等。

根据本申请公开的实施例,提出一种自动化攻击测试方案,以及基于上述的自动化攻击测试的自动化灰/黑盒安全测试方案,其中的自动化攻击测试方案,通过根据合法请求和对应其的各类型漏洞集合,构造、生成对应的攻击测试报文,攻击服务端目标程序,以期实现有针对性的攻击测试;而基于其的主动型灰盒安全测试或黑盒安全测试,则通过有针对性的攻击测试,以及攻击测试后的程序内部反应监控或响应分析,验证发现相关漏洞。

本公开的方案,其中的自动化攻击测试方案实现了有针对性的攻击测试;而基于其的主动型灰盒安全测试或黑盒安全测试,在实现有针对性的攻击测试基础上,通过相应的验证分析,低成本且精确地发现那些对应着某类外部请求的目标程序内部特定业务逻辑的安全漏洞风险。

以下将参照附图来具体描述本公开的实施例。根据本公开的一些实施例,提出了一种自动化攻击测试的方法,用于在安全测试过程中向服务端目标程序发起攻击测试。以下将参考图3来描述上述的自动化攻击测试方法的具体过程。图3示出了上述实施例的自动化攻击测试方法的流程示意图。如图3所示,自动化攻击测试过程300,包括:接收服务端转发的自客户端发往服务端的第一合法请求报文,或者从服务端(例如日记记录中)获取自客户端发往服务端的第一合法请求报文,亦或者在客户端和服务端间捕获自客户端发往服务端的第一合法请求报文;然后,根据目标程序中处理第一合法请求报文的内部逻辑结构,确定第一类型漏洞集合;第一类型漏洞集合中包括至少一种第一类型漏洞;继而,根据所述集合中的每一种第一类型漏洞,构造与所述漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文,向服务端发起针对性的攻击测试;其中,第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。

在一些实施例中,在框302中,用作确定第一类型漏洞集合依据的目标程序中处理第一合法请求报文的内部逻辑结构,可以是:通过对目标程序插桩探针,使在目标程序中插桩探针监控目标程序中处理第一合法请求报文的过程,而获取的对应其处理过程的内部逻辑结构。

附加地,在一些实施例中,其中的对目标程序插桩探针,具体可以是:对目标程序中的关键函数插桩探针,使在目标程序中关键函数的插桩探针监控目标程序中处理第一合法请求报文的过程,以准确获取该处理过程的内部逻辑结构。

在一些实施例中,在框301中,在客户端和服务端间捕获自客户端发往服务端的第一合法请求报文的方式,可以是在客户端和服务端间设置代理,通过代理捕获自客户端发往服务端的第一合法请求报文。

在一些实施例中,所述自动化攻击测试的方法,可以选择完全部署在测试端,用于使测试端在接收、获取或者捕获自客户端发往服务端的第一合法请求报文后,自动化地对服务端目标程序发起攻击测试。

附加地,在一些部署在测试端的自动化攻击测试的具体实现中,框302的确定第一类型漏洞集合的过程,还可以由外部输入已确定的第一类型漏洞集合(例如由服务端输入等,具体地,如在服务端转发第一合法请求报文的同时,一并转发在服务端(比如,以插桩程序的方式获取目标程序中处理第一合法请求报文的内部逻辑结构,并据此)确认的第一类型漏洞集合等)。以下将参考图4来描述上述的部署在测试端的自动化攻击测试的具体过程。图4示出了上述实施例中的一些的部署在测试端时的一种精简后的实现方式的流程示意图。如图4所示,部署在测试端的、精简的自动化攻击测试的过程400,包括:接收服务端转发的自客户端发往服务端的第一合法请求报文,或者从服务端(例如日记记录中)获取自客户端发往服务端的第一合法请求报文,亦或者在客户端和服务端间捕获自客户端发往服务端的第一合法请求报文;与此同时,并接收或获取外部输入的与对应第一合法请求报文的第一类型漏洞集合信息;第一类型漏洞集合中包括至少一种第一类型漏洞;继而,根据所述集合信息中的每一种第一类型漏洞信息,构造与所述漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文,向服务端发起针对性的攻击测试;其中,第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。

根据本公开的一些实施例,提出了一种自动化的灰盒安全测试方法或黑盒安全测试方法。基于上述实施例中的自动化攻击测试的方案,该灰盒安全测试方法/黑盒安全测试方法,包括:执行上述实施例中的自动化攻击测试的方法,产生攻击测试流量,攻击服务端目标程序;以及对应地,监控目标程序中与攻击测试相关的内部反应,验证、定位与之相关的漏洞/接收反馈的攻击测试相关的响应报文,根据验证规则,判断是否潜藏与之相关的漏洞。

根据本公开的一些实施例,提出了一种自动化攻击测试装置,用于在安全测试过程中向服务端目标程序发起攻击测试。以下将参考图5来描述上述的自动化攻击测试装置的基本组成。图5示出了根据本公开的一些实施例的自动化攻击测试装置的框图。如图5所示,自动化攻击测试装置500,包括:目标获取模块510和攻击测试模块520;目标获取模块510,被配置为获取或接收第一合法请求报文、及其对应的第一类型漏洞集合信息;第一类型漏洞集合中包括至少一种第一类型漏洞;攻击测试模块520,被配置为根据目标获取模块510的所述集合信息中的第一类型漏洞信息,构造与所述漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文;第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。

在一些实施例中,所述自动化攻击测试装置的目标获取模块,被配置为仅获取或接收第一合法请求报文;而所述的自动化攻击测试装置,还包括分析模块,用于初步识别第一合法请求相关的业务逻辑的安全风险。以下将参考图6来描述上述的自动化攻击测试装置的基本组成。图6示出了上述实施例中的一些的具有分析功能的自动化攻击测试装置的框图。如图6所示,自动化攻击测试装置500,除了目标获取模块610和攻击测试模块620外,还包括:分析模块630;其中,目标获取模块610,被配置为获取或接收第一合法请求报文;分析模块630,则被配置为根据目标获取模块610的第一合法请求报文、以及目标程序中处理第一合法请求报文的内部逻辑结构,分析确定与第一合法请求对应的第一类型漏洞集合信息;攻击测试模块620,被配置为根据所述集合信息中的第一类型漏洞信息,构造与所述漏洞类型对应的有效载荷,替换第一合法请求报文中对应的原始载荷,生成验证所述第一类型漏洞的第一攻击测试报文;向服务端发送第一攻击测试报文;第一攻击测试报文,用于诱发目标程序中对应的第一类型漏洞。

在一些实施例中,分析模块630中的用作确定第一类型漏洞集合依据的目标程序中处理第一合法请求报文的内部逻辑结构,可以是:通过对目标程序插桩探针,使在目标程序中插桩探针监控目标程序中处理第一合法请求报文的过程,而获取的。

附加地,在一些实施例中,其中的对目标程序插桩探针,具体可以是对目标程序中的关键函数插桩探针,使在目标程序中关键函数的插桩探针监控目标程序中处理第一合法请求报文的过程,以准确获取该处理过程的内部逻辑结构。

在一些实施例中,在目标获取模块510从客户端和服务端间获得自客户端发往服务端的第一合法请求报文的方式,可以是在客户端和服务端间设置代理,通过代理捕获自客户端发往服务端的第一合法请求报文。

根据本公开的一些实施例,提出了一种自动化的灰盒安全测试系统或黑盒安全测试系统。基于上述实施例中的自动化攻击测试方案,该灰盒安全测试系统/黑盒安全测试系统,包括:自动化攻击测试单元和灰盒安全测试单元/黑盒安全测试单元;其中,自动化攻击测试单元,用于根据接收/获取/捕获的合法请求,自动化地发起攻击测试,而灰盒安全测试单元/黑盒安全测试单元,则对应的响应攻击测试,执行相应的安全测试。其中,图7、图8分别示出了根据本公开的一些实施例的自动化灰盒安全测试系统的框图、自动化黑盒安全测试系统的框图。如图7、图8所示,其中,自动化灰盒安全测试系统700/自动化黑盒安全测试系统800分别具体包括:自动化攻击测试单元710/810,用于在接收、获取或者捕获自客户端发往服务端的第一合法请求报文后,自动触发针对性的攻击测试,攻击服务端目标程序730/830;所述针对性的攻击测试,用于触发后续的主动型灰盒安全测试/黑盒安全测试;其中,自动化攻击测试单元710/810,包括至少一个攻击测试节点;攻击测试节点,被配置为能够执行上述实施例述及的自动化攻击测试的方法,对服务端目标程序730/830发起针对性的攻击测试;对应地,灰盒安全测试单元720/黑盒安全测试单元820,用于执行灰盒安全测试/黑盒安全测试,其中包括:在受到针对性攻击测试后,监控目标程序730/830中与攻击测试相关的内部反应,验证、定位与之相关的漏洞/接收反馈的攻击测试相关的响应报文,根据验证规则,判断是否潜藏与之相关的漏洞。

根据本公开的一些实施例,提出了一种用于自动化攻击测试的电子设备。该电子设备,可以用于主动型灰盒安全测试或黑盒安全测试中的测试端节点。图9示出了根据本公开的一些实施例的用于自动化攻击测试的电子设备的框图。如图9所示,电子设备900,包括中央处理器(CPU)901,其能够根据存储在只读存储器(ROM)902的计算机程序指令或从存储单元908加载到随机访问存储器(RAM)903中的计算机程序指令,来执行各种适当的操作和处理,在(RAM)903中,还可以存储电子设备900操作所需的各种程序代码、数据。CPU901、ROM902、RAM903通过总线904彼此相连,且输入/输出(I/O)接口905也与总线904相连。电子设备900的一些部件通过I/O接口905接入,包括:输入单元906,如键鼠等;输出单元907,如显示器等;存储单元908,如磁盘、光盘、固态硬盘(SSD)等,以及通信单元909,如网卡、调制解调器等。通信单元909能够使电子设备900通过计算机网络与其他设备交换信息/数据。CPU901能够执行上述实施例中描述的各种方法和处理过程,例如过程300,以及基于此的自动化的灰盒安全测试方法或黑盒安全测试方法等。在一些实施例中,300和/或基于此的自动化的灰盒安全测试方法或黑盒安全测试方法,可以被实现为计算机软件程序,其被例如存储单元908等的计算机可读介质。在一些实施例中,计算机程序的部分或全部被载入或安装到电子设备900。当计算机程序被加载到RAM903被CPU901执行时,能够执行过程300和/或基于此的自动化的灰盒安全测试方法或黑盒安全测试方法的部分或者全部操作。

本文中以上描述的功能都可以至少部分地由一个或多个硬件逻辑部件来执行。例如,非限制性地,可以使用的示范类型的硬件逻辑部件包括:场可编程门阵列(FPGA)、专用集成电路(ASIC)、专用标准产品(ASSP)、芯片上系统的系统(SOC)、负载可编程逻辑设备(CPLD)等等。

用于实施本公开的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。

在本公开的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。

此外,虽然采用特定次序描绘了各操作,但是这应当理解为要求这样操作以所示出的特定次序或以顺序次序执行,或者要求所有图示的操作应被执行以取得期望的结果。在一定环境下,多任务和并行处理可能是有利的。同样地,虽然在上面论述中包含了若干具体实现细节,但是这些不应当被解释为对本公开的范围的限制。在单独的实施例的上下文中描述的某些特征还可以组合地实现在单个实现中。相反地,在单个实现的上下文中描述的各种特征也可以独立地或以任何合适的子组合的方式实现在多个实现中。

尽管已经采用特定于结构特征和/或方法逻辑动作的语言描述了本主题,但是应当理解所附权利要求书中所限定的主题未必局限于上面描述的特定特征或动作。相反,上面所描述的特定特征和动作仅仅是实现权利要求书的示例形式。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号