基于智能探针的漏洞验证方法及相关IAST方法、系统与流程

文档序号:26006116发布日期:2021-07-23 21:24阅读:91来源:国知局
基于智能探针的漏洞验证方法及相关IAST方法、系统与流程

本公开的实施例主要涉及计算机软件安全测试领域,并且更具体地,涉及一种基于智能探针的漏洞验证方法及相关iast方法、系统。



背景技术:

随着数字时代的到来,基于b/s的web应用技术被广泛用于政企业务数字化转型中。然而,随之而来的应用安全威胁也显著增加。相关研究显示,越来越多的安全漏洞发生在应用程序层,而非我们以往认知的网络层。为了确保应用程序在交付部署后能够安全稳定的提供服务,通常都会在交付前通过应用安全测试发现和修复其中的薄弱点和漏洞,以防止相关应用程序被黑客及非法人员利用而造成安全危害。然而,由于攻击侧技术的发展和开源组件应用给防守侧带来的安全挑战,加之在出于市场竞争等因素迫使开发者实体/个人开始转向能够满足频繁更新、快速发版的开发模式的大前提下,无益都给相关软件产品在交付前的应用安全测试提出了新的课题和要求。此时,面对上述情形,如何提供一种更为高效且可靠的应用安全测试以满足赋能开发测试人员快速完成相关应用业务代码交付上线前安全测试,成为一个技术难题。



技术实现要素:

根据本公开的示例实施例,提供一种基于智能探针的漏洞验证方案,以及基于此进一步提供一种iast灰盒安全测试方案。

在本公开的第一方面中,提供一种基于智能探针的漏洞验证方法。该方法基于agent技术,具体包括:在服务端,对目标程序中的目标关键函数插桩相应的智能探针;其中,目标关键函数,是指相对于目标类型漏洞的关键函数;对应目标类型漏洞,在目标程序中包括至少一个的目标关键函数;所述智能探针,被配置为接收相应的模拟攻击测试的报文的有效报文内容,和在所述模拟攻击测试的数据流执行到所述智能探针的插桩点时获取有效运行时数据,以及根据所述有效运行时数据和其对应的被插桩目标关键函数信息,及接收的所述模拟攻击测试报文有效报文内容,判断该被插桩目标关键函数在受到所述模拟攻击时是否异常执行,进而确定目标程序中是否潜藏目标类型漏洞;其中,所述模拟攻击测试,是指基于模拟攻击用于检测是否存在目标类型漏洞的测试;所述模拟攻击测试报文,应携带有能够触发目标类型漏洞的有效载荷;所述目标关键函数信息,即标识目标关键函数的信息,例如可以是目标关键函数的函数名称等。

在本公开的第二方面中,提供一种基于内置智能探针的主动型iast方法。作为一种新型的灰盒测试方法,在第一方面述及的漏洞验证方法的基础上,该iast方法包括:在服务端执行第一方面述及的漏洞验证方法的操作,对目标程序插桩智能探针,和在接受模拟攻击测试时,通过相应的智能探针对目标程序中可能潜藏的已知类型漏洞进行验证性检测;以及在测试端产生模拟攻击测试流量,模拟攻击服务端目标程序,提供相应的模拟攻击测试;其中,所述模拟攻击测试,是指基于模拟攻击用于检测是否存在目标类型漏洞的测试;使产生的所述模拟攻击流量中包括相应的模拟攻击测试报文;所述模拟攻击测试报文,应携带有能够触发目标类型漏洞的有效载荷。

在本公开的第三方面中,提供一种基于内置智能探针的iast灰盒测试系统。该系统包括:漏洞检测单元,及测试单元;所述漏洞检测单元基于agent技术,部署在服务端,用于iast灰盒测试过程中的目标程序中已知类型漏洞的检测分析;所述漏洞检测单元,被配置成能够执行第一方面述及的漏洞验证方法的操作,对目标程序插桩智能探针,和在接受模拟攻击测试时,通过相应的智能探针对目标程序中可能潜藏的已知类型漏洞进行验证性检测;测试单元,部署在测试端,用于产生模拟攻击测试流量,模拟攻击服务端目标程序,提供相应的模拟攻击测试;测试单元,包括至少一个的攻击测试节点;攻击测试节点,能够执行所述模拟攻击测试;其中,所述模拟攻击测试,是指基于模拟攻击用于检测是否存在目标类型漏洞的测试;所述模拟攻击流量中包括相应的模拟攻击测试报文;所述模拟攻击测试报文,应携带有能够触发目标类型漏洞的有效载荷。

在本公开的第四方面中,提供一种实现漏洞验证的装置。该装置包括:至少一个处理器,和至少一个处理器耦合的存储器,以及存储在存储器中的计算机程序;其中的处理器执行所述计算机程序,对应地能够实现第一方面述及的漏洞验证方法。

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

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

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

附图说明

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

图1示出了现有技术中的一种主动iast的示例示意图。

图2示出了根据本公开的多个实施例能够在其中或其中组成部分实现的示例环境的示意图;

图3示出了根据本公开的一些实施例的基于智能探针进行漏洞验证的过程的示意图;

图4示出了上述实施例中的一些的智能探针判断其所插桩的目标关键函数在受到针对性的模拟攻击时是否异常执行的过程的示意图;

图5示出了上述实施例中的另一些的智能探针判断其所插桩的目标关键函数在受到针对性的模拟攻击时是否异常执行的过程的示意图;

图6示出了根据本公开的一些实施例的基于内置智能探针的主动型iast灰盒测试的过程的示意图;

图7示出了根据本公开的一些实施例的基于内置智能探针的iast灰盒测试系统的框图;

图8示出了根据本公开的一些实施例的用于实现漏洞验证的电子设备的框图。

具体实施方式

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

在本公开的实施例的描述中术语“包括”及其类似用语应当理解为开放性包含,即“包括但不限于”。术语“基于”应当理解为“至少部分地基于”。术语“一个实施例”或“该实施例”应当理解为“至少一个实施例”。

在本公开的实施例的描述中技术术语“探针”,是指“插桩”的“探针”,其本质上是进行信息采集的代码片段,可以是赋值语句或采集覆盖信息的函数调用。在本公开的实施例的描述中技术术语“插桩”,又称“程序插桩”,是指在保证被测程序原有逻辑完整性的基础上在程序中插入“探针”,通过对“探针”抛出的程序运行特征数据(即运行时数据)的分析,获得程序的控制流和数据流,进而得到逻辑覆盖等动态信息,从而实现测试目的的方法。其中的“探针”,根据插桩点、捕获数据需求等的不同,可以设计具有相应捕获功能的“探针”,获取所需的数据。在同一个被测程序中,根据不同的测试需要,可以包括仅插桩一个“探针”,也可以在其中多个不同的插桩点分别插入“探针”。在一般的基于“插桩”的iast灰盒测试中,其关键是插桩的“探针”;一般来说,这些“探针”是需要根据不同语言进行开发,但是功能基本相同,主要包括:代码执行中的参数传递、数据库查询(如odbc)、目录查询(如ldap),文件系统权限、监听内存中特定的值,识别受污染的输入、第三方库的使用、对外部应用程序和服务的调用等。

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

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

在本公开的实施例的描述中技术术语“目标类型漏洞”,是指在漏洞验证/iast灰盒测试过程中,假设“目标程序”中存在该类型的漏洞,并拟通过相应的模拟攻击测试验证目标程序中是否潜藏了该类型的漏洞的一种类型的漏洞。“目标类型漏洞”可以是任何一种已知类型漏洞;在每次漏洞验证过程中,通常有且仅有一种已知类型漏洞作为当前漏洞验证检测的“目标类型漏洞”。

在本公开的实施例的描述中技术术语“模拟攻击测试”,是指能够触发目标程序中的潜藏的漏洞的攻击测试。“模拟攻击测试”,主要通过向目标程序发送“模拟攻击测试请求”实现。“模拟攻击测试报文”,是指“模拟攻击测试请求”的报文。“目标程序”中可能潜藏多种不同的已知类型的漏洞,故在漏洞验证过程中,需要采取与当前目标类型漏洞相应的“模拟攻击测试”;需要对应不同种的已知类型漏洞,对应地,需要不同的“模拟攻击测试报文”;而在上述的“模拟攻击测试报文”中,携带不同的“有效载荷”,对应上述各种的已知类型漏洞。

在本公开的实施例的描述中技术术语“有效载荷”,即“payload”,是指数据传输中被承载运输的实际信息,通常也称作实际数据或数据体。在传输数据时为使数据传输更可靠,通常需要在每一批数据套加一些辅助信息而每一批数据与其辅助“外套”,就构成了传输通道的基本传输单元,即数据帧或数据包;这些“外套”通常被用于辅助数据传输,也称为开销数据;而其中的原始数据通常被视为有效载荷。“有效载荷”是攻击向量具体实现的一种,示例实现攻击目的,成功利用相应类型漏洞的关键。在漏洞验证的攻击测试过程中,“有效载荷”是用于验证“目标程序”是否潜藏相应类型漏洞的有效测试数据。

随人工智能、软件开源及云原生等新技术新趋势的应用,网络武器泄露的延续效应正在逐渐转变网络攻击的逻辑和手段,“攻防不对等”形势更为严峻。这主要表现在:1、攻击技术越发先进智能,攻击手段在潜伏性、隐蔽性、定向性、自主性、融合性等方面能力日益增强,智能分析使得快速绕过多重防御手段成为可能;2、网络武器研发和利用提速,基于已知和未知漏洞的自动化攻击利用不断涌现,攻击门槛大幅度降低,敏感数据泄露等安全事件频频发生;3、软件开源大行其道,基于信任的软件供应链攻击事件频发,攻击对象范围广、攻击方式隐蔽,给政企用户业务安全防御带来了极大的挑战攻击技术越发先进智能,攻击手段在潜伏性、隐蔽性、定向性、自主性、融合性等方面能力日益增强,智能分析使得快速绕过多重防御手段成为可能。特别需要指出的是,随着云原生和开源技术的普及,基于b/s的web应用技术被广泛用于众多政企实体的业务数字化转型发展中,我们面对的应用安全威胁也显著增加。

为从根本上打破“攻防不对等”的现状,“安全左移”的概念被提出和实践。所谓“安全左移”,即旨在将应用威胁发现能力前置到开发测试环节,将安全工作柔和嵌入政企组织现有的软件开发体系中,从应用生命周期源头上实现对上线应用项目的透明安全测试。其中,iast灰盒测试是实践“安全左移”的重要技术支撑。iast(交互式应用程序安全测试,interactiveapplicationsecuritytesting),是新一代交互式应用程序安全测试方案,通过web应用服务端部署运行时插桩、终端流量代理/vpn、旁路流量镜像及部署主机agent流量嗅探软件等,收集、监控web应用程序运行时函数执行、数据传输,并与分析引擎端进行实时交互,高效、准确的识别安全缺陷及漏洞。图1示出了现有的一些主动插桩iast灰盒测试的示例。如图1所示,其中的主动插桩iast架构100,类似于改进版的dast,其主要通过在服务端110部署iastagent,并通过部署的iastagents130以抛出运行时数据的方式追踪部署在服务端110的被测程序在扫描期间的数据流、扫描覆盖率等,扫描端120则主要是通过爬取构造安全测试报文,并据此产生大量的恶意攻击流量,覆盖扫描服务端110的被测程序。通过广泛部署的iastagents130追踪到的大量数据流、扫描覆盖率等被上传到分析单元140,进行漏洞检测分析。然而,虽然通过广泛部署的iastagent130抛出各自能力范围内获取的运行时数据并上传汇总分析,能够追踪到扫描期间较为全面的和全局性的被测程序数据流、扫描覆盖率等,但其过程中涉及一定数量的数据传输,甚至是低价值、无价值数据传输,且虽然每个iastagent对被测程序的侵入性都很低,但整体架构对外依赖高,且大量数据的传输,特别是跨端传输,都将产生一定的开销,同时用于扫描期间被测程序数据流的、广泛部署的iastagents也将产生不小的开销,这些开销都将影响服务端性能。

根据本公开的实施例,提出一种基于智能探针的漏洞验证方案,以及基于内置智能探针的主动型iast灰盒测试方案。在上述的相关方案中,通过对目标程序插桩智能探针,和在接受模拟攻击测试时,使相应的智能探针能够对目标程序中可能潜藏的已知类型漏洞作出验证,以实现服务端的漏洞主动验证;在此基础上,通过配套可控的测试单元,提供所需的模拟攻击测试,还可实现更为高效的主动型iast灰盒测试。

本公开的方案,较之现有技术,能够通过内置轻量级智能探针,提供更为智能的、高效的、易用的且低侵入性和使被测程序无感知的iast灰盒测试。其中的漏洞验证方案,更是可以通过相应的内置智能探针,对那些高危漏洞和致命缺陷提供针对性的iast测试。

以下将参照附图来具体描述本公开的实施例。图2示出了本公开的多个实施例能够在其中实现的或者在其中组成部分上实现的示例环境的示意图。如图2所示,示例环境200,包括:服务端210和测试端220;其中,服务端210、测试端220可以是实体的服务器设备,也可以是由硬件设备节点/虚拟节点组成的服务器/云服务器集群。在服务端210上,部署目标程序,根据目标程序漏洞验证的需要,还可以部署智能探针230,与目标程序耦合(例如根据相关配置设置和程序执行,寄生于目标程序中)。测试端220,则用于向服务端210发送模拟攻击测试报文,以发起模拟攻击测试触发相应的智能探针对其对应的特定已知类型漏洞的验证性检测。

根据本公开的一些实施例,提出一种基于智能探针的漏洞验证方法。该方法基于agent技术(这里的agent,是分布式计算领域的概念,涉及一种持续自主发挥作用的,具有自主性、交互性、反应性、主动性的计算实体的概念),应用于服务端,其中包括在示例环境200中的服务端210上实现的示例。图3示出了上述示例的基于智能探针进行漏洞验证的过程的示意图。如图3所示,示例中的基于智能探针的漏洞验证方法可以在示例环境200中的服务端210上实现,其中的基于智能探针的漏洞验证过程300,包括:确定作为验证性检测目标的那些已知类型漏洞及其对应的关键函数(作为相应的目标关键函数);其中,对应任一的目标类型漏洞(作为当前验证性检测目标的一种已知类型漏洞),在目标程序中包括至少一个的目标关键函数;在服务端,对目标程序中的那些对应目标类型漏洞的目标关键函数插桩相应的智能探针(参考框301);在目标程序运行的同时,使与目标程序耦合的插桩智能探针,被配置得在受到模拟攻击时能够接收相应的模拟攻击测试的报文的有效报文内容,和在所述模拟攻击测试的数据流执行到所述智能探针的插桩点时获取有效运行时数据,进而根据所述有效运行时数据和其对应的被插桩目标关键函数信息,及接收的所述模拟攻击测试报文有效报文内容,判断该被插桩目标关键函数在受到所述模拟攻击时是否异常执行,来确定目标程序中是否潜藏目标类型漏洞(参考框302);一般来说,目标关键函数在受到模拟攻击时异常执行表征着系统存在脆弱性,也即目标程序中潜藏了目标类型漏洞;其中,所述模拟攻击测试,是指基于模拟攻击用于检测是否存在目标类型漏洞的测试;所述模拟攻击测试报文,应携带有能够触发目标类型漏洞的有效载荷;所述目标关键函数信息,即标识目标关键函数的信息(甚至是进一步地标识目标关键函数插桩位点的信息),例如可以是目标关键函数的函数名称信息等,其中甚至可以进一步具体到插桩位点的信息等。

以下将参考图4、图5来描述在上述一些实施例的框302中智能探针判断其插桩目标关键函数在受到模拟攻击时是否异常执行的具体过程。其中,图4示出了上述实施例中的一些的智能探针判断其所插桩的目标关键函数在受到针对性的模拟攻击时是否异常执行的过程的示意图。如图4所示,其中的智能探针判断其所插桩的目标关键函数在受到针对性的模拟攻击时是否异常执行的过程,可以是包括:d1:判断所述模拟攻击测试报文的有效报文内容中是否包括能够触发目标类型漏洞的有效载荷参数;若是,则继而,d2:根据所述模拟攻击测试报文中的有效载荷参数内容,和所述有效运行时数据及其对应的被插桩目标关键函数信息,判断所述有效运行时数据中是否包括经无害化处理的所述模拟攻击测试报文的有效载荷参数内容;若否,则判定目标关键函数异常执行。

而图5示出了上述实施例中的另一些的智能探针判断其所插桩的目标关键函数在受到针对性的模拟攻击时是否异常执行的过程的示意图。如图5所示,其中的智能探针判断其所插桩的目标关键函数在受到针对性的模拟攻击时是否异常执行的过程,可以是包括:配置得使所述智能探针接收的所述模拟攻击测试报文的有效报文内容中还应包括所述模拟攻击测试报文中对应的请求参数值;d1:判断所述模拟攻击测试报文的有效报文内容中是否包括能够触发目标类型漏洞的有效载荷参数;若是,则继而,d2:根据所述模拟攻击测试报文中的有效载荷参数内容,和所述有效运行时数据及其对应的被插桩目标关键函数信息,判断所述有效运行时数据中是否包括经无害化处理的所述模拟攻击测试报文的有效载荷参数内容;以及,d3:判断所述有效运行时数据中是否包括所述请求参数值;若d2为否且d3为是,则判定目标关键函数异常执行。

在一些实施例中,对于目标类型漏洞在目标程序中包括多个目标关键函数,且对目标程序插入了至少两个相应的智能探针的,所述的智能探针,都能够独立地用于确定目标程序中是否潜藏了目标类型漏洞。具体地,对于目标类型漏洞在目标程序中包括多个目标关键函数的,对这些目标关键函数中的全部或部分都分别插入相应的智能探针,对于是否潜藏了目标类型漏洞的验证,在模拟攻击测试时,任一所述智能探针判断其中的目标关键函数异常执行,都可据此独立地确定确定目标程序中潜藏了目标类型漏洞。

在一些实施例中,在框301中,还可以对目标程序插桩相应的辅助探针;上述的辅助探针,主要被用于获取提供给智能探针的模拟攻击测试报文有效报文内容,或被用于获取目标程序返回给测试端的响应报文。具体地,在框301中,在对目标程序中的那些对应目标类型漏洞的目标关键函数插桩相应的智能探针的同时,还可以包括:对目标程序插桩相应的辅助探针;对目标程序中相应的位点插桩若干个相应功能的辅助探针;其中,这些辅助探针或全部或者部分,可以是被用于获取前面述及的智能探针接收的模拟攻击测试报文有效报文内容,并提供给相应的智能探针,也可以是被用于获取目标程序返回给测试端的响应报文;其中,获取的响应报文用于目标类型漏洞验证的辅助分析等。

附加地,在一些实施例中,在框301中对目标程序插桩的辅助探针,可以被复用于不同类型漏洞的验证过程中的有着相同获取位点、符合相同内容格式要求的模拟攻击测试报文有效报文内容或响应报文的获取,和为不同的智能探针提供相应的模拟攻击测试报文有效报文内容或为不同的漏洞验证辅助分析过程提供相应的响应报文。具体地,对于不同类型漏洞,在其验证过程中,其对应模拟攻击测试数据流存在路径重叠部分的,则尽可能选择共同且合适的插桩点,获取相关数据,特别是当它们对应的模拟攻击测试报文有效报文内容或响应报文符合相同内容格式要求时,可以使辅助探针被设计得和在运行时被配置得能够获取可归属同一类的符合相同内容格式要求的数据,而非仅是获取一种满足具体内容要求的数据,同时使其能够识别其中的用于不同类型漏洞验证的各模拟攻击测试报文有效报文内容或响应报文,和提供它们给相应的智能探针或相应的漏洞验证辅助分析组件/模块/进程。

在一些实施例中,在框301中,还可以采用运行时插桩的方式,对目标程序插桩相应的各种探针,以便基于最小侵入原则获取验证分析所述的各种数据信息。具体地,可以是通过相应的配置设置,在目标程序启动过程中,对相关关键函数等位点插桩探针。以java编程的目标程序为例,对其执行运行时插桩,可以在被检测java程序的类加载过程中,采用字节码插桩工具等方式,在相应的位点(例如关键函数的头部或尾部等)插桩相应的探针(例如智能探针、辅助探针)。

在一些实施例中,在框302中,所述智能探针在其插桩点时获取有效运行时数据,还可以包括:函数调用栈信息;所述的函数调用栈信息,包括能够确定目标类型漏洞触发的代码行信息;函数调用栈信息,用于准确定位目标类型漏洞的位置。

根据本公开的一些实施例,提出一种基于内置智能探针的主动型iast方法。在上述实施例述及的漏洞验证方法的基础上,该iast方法主要包括:在服务端执行的漏洞验证过程,以及在分离部署的测试端执行的、相应的模拟攻击测试过程;其中具体包括:在服务端,执行上述实施例中述及的漏洞验证方法的操作,对目标程序插桩智能探针,和在接受模拟攻击测试时,通过相应的智能探针对目标程序中可能潜藏的已知类型漏洞进行验证性检测;以及在测试端产生模拟攻击测试流量,模拟攻击服务端目标程序,提供相应的模拟攻击测试;其中,所述模拟攻击测试,是指基于模拟攻击用于检测是否存在目标类型漏洞的测试;使产生的所述模拟攻击流量中包括相应的模拟攻击测试报文;所述模拟攻击测试报文,应携带有能够触发目标类型漏洞的有效载荷。以下结合其在示例环境200中实现的具体示例和参考图6来详细描述上述的基于内置智能探针的主动型iast方法的具体过程。图6示出了上述实施例的基于内置智能探针的主动型iast灰盒测试的过程的示意图。如图6所示,基于内置智能探针的主动型iast灰盒测试过程600,包括:在服务端210,如例如通过相应的配置等,在目标程序启动过程中,对相关关键函数等位点插桩相应的预先定义的内置智能探针等各种所需的agent工具(参考框601);在插桩相应的智能探针后,在测试端220产生相应的模拟攻击测试流量,模拟攻击服务端目标程序,提供相应的模拟攻击测试,以便基于模拟攻击检测是否存在目标类型漏洞(参考框602);其中,模拟攻击测试流量包括相应的、用于模拟攻击测试的报文,而模拟攻击测试报文中,应携带有能够触发目标类型漏洞的有效载荷;配置得使智能探针在受到模拟攻击时接收相应的模拟攻击测试的报文的有效报文内容,和在所述模拟攻击测试的数据流执行到所述智能探针的插桩点时获取有效运行时数据,进而根据所述有效运行时数据和其对应的被插桩目标关键函数信息,及接收的所述模拟攻击测试报文有效报文内容,判断该被插桩目标关键函数在受到所述模拟攻击时是否异常执行,进而确定目标程序中是否潜藏目标类型漏洞(参考框603)。

对应上述实施例的一些述及的基于内置智能探针的主动型iast方法,图7示出了根据本公开的一些实施例的基于内置智能探针的iast灰盒测试系统的框图。如图7所示,该iast灰盒测试系统,包括:漏洞检测单元710和测试单元720;漏洞检测单元710基于agent技术,部署在服务端,用于iast灰盒测试过程中的目标程序中已知类型漏洞的检测分析;漏洞检测单元710,被配置成能够执行上述实施例中述及的漏洞验证方法的操作,对目标程序插桩智能探针,和在接受模拟攻击测试时,通过相应的智能探针对目标程序中可能潜藏的已知类型漏洞进行验证性检测;测试单元720,部署在测试端,用于产生模拟攻击测试流量,模拟攻击服务端目标程序,提供相应的模拟攻击测试;测试单元720,包括至少一个的攻击测试节点;攻击测试节点,能够执行所述模拟攻击测试;其中,所述模拟攻击测试,是指基于模拟攻击用于检测是否存在目标类型漏洞的测试;所述模拟攻击流量中包括相应的模拟攻击测试报文;所述模拟攻击测试报文,应携带有能够触发目标类型漏洞的有效载荷。

根据本公开的一些实施例,提出一种实现漏洞验证的装置。该装置用于实现服务端目标程序的已知类型漏洞的本地验证性检测。一般而言,所述的漏洞验证都是伴随服务端目标程序和与之耦合的,相关的漏洞验证性检测,一般是依赖于服务端本地设备资源。因此,该装置往往即是服务端设备。而图8示出了上述实施例的一些的用于实现漏洞验证的电子设备的框图。如图8所示,电子设备800,包括中央处理器(cpu)801,其能够根据存储在只读存储器(rom)802的计算机程序指令或从存储单元808加载到随机访问存储器(ram)803中的计算机程序指令,来执行各种适当的操作和处理,在(ram)803中,还可以存储电子设备800操作所需的各种程序代码、数据。cpu801、rom802、ram803通过总线804彼此相连,且输入/输出(i/o)接口805也与总线804相连。电子设备800的一些部件通过i/o接口805接入,包括:输入单元806,如键鼠等;输出单元807,如显示器等;存储单元808,如磁盘、光盘、固态硬盘(ssd)等,以及通信单元809,如网卡、调制解调器等。通信单元809能够使电子设备800通过计算机网络与其他设备交换信息/数据。cpu801能够执行上述实施例中描述的各种方法和处理过程,例如过程300和/或过程600的实现过程的部分操作。在一些实施例中,过程300和/或过程600的实现过程可以被实现为计算机软件程序,其被有形地包含于例如存储单元808等的计算机可读介质。在一些实施例中,计算机程序的部分或全部被载入或安装到若干台电子设备800。当计算机程序被加载到ram803被cpu801执行时,能够执行过程300和/或过程600的实现过程的部分或者全部操作。

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

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

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

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

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

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