本发明涉及安全检测技术,更具体的说,是涉及一种渗透测试框架系统、渗透测试平台及渗透测试方法。
背景技术:
渗透测试是指尽可能完整地模拟黑客使用的漏洞发现技术和攻击手段,从攻击者的角度对目标网络、系统、主机应用的安全性作深入的非破坏性的探测,发现系统安全防护最脆弱环节的过程。渗透测试的核心是通过最大限度的信息收集和漏洞分析、利用,寻找目标安全防护最薄弱点。实际应用中,由于目标范围广,应用或服务复杂,漏洞检测类型繁多,操作重复性、阶段化程度高等,所以具体实施过程需要渗透测试平台或系统的支撑。
现有的渗透测试平台或系统主要分为两类,第一类是以通用性漏洞发掘为主的通用扫描器平台,比如针对web应用的ibmappscan、acunetixwebvulnerabilityscanner(awvs),针对主机漏洞的nessus以及各安全厂商集成的漏洞扫描平台等。第二类是网络渗透框架系统,包括针对已知安全漏洞收集、检测及利用等综合性渗透平台和以漏洞检测(或利用)脚本化,执行过程自动化为主的测试框架。但现有的这些渗透测试平台都存在一定的问题,如自动化执行模式简单,缺乏逻辑控制、缺少大规模任务调度和执行能力、对渗透测试信息收集、漏洞分析、漏洞检测与利用等全阶段自动化检测与分析能力不足等问题。
技术实现要素:
有鉴于此,本发明提供了如下技术方案:
一种渗透测试框架系统,包括:
目标对象抽象模块,用于对目标对象进行抽象设计和形式化表示;
基础任务模块,用于提供基于消息事件的任务触发调用以及事件消息管理功能;
消息管理模块,用于提供基于消息事件的任务触发调用以及事件消息管理功能;
分布式任务队列模块,用于通过分布式任务队列系统为渗透测试业务执行提供分布式部署和并发执行能力;
实用接口模块,用于提供大量实用工具接口,集成其他的渗透测试工具或系统。
可选的,所述基础任务模块具体用于:
为所述渗透测试框架系统的任务调用、执行提供统一接口。
可选的,所述基础任务模块包括:
任务定义接口,用于定义任务的基本信息,对任务管理、安全态势及分析成果进行展示,所述基本信息包括检测对象、检测具体漏洞描述、漏洞危害等级、参考链接、作者和编写时间;
任务调用接口,用于定义任务的外部调用接口和内部调用接口;
任务管理接口,用于管理和调度所述渗透测试框架系统中的所有任务。
可选的,所述外部调用接口用于检测任务脚本的编写者实现具体任务细节;所述内部调用接口用于所述渗透测试框架系统内部实现对每个任务的调用,以及任务执行结构的处理和存储。
可选的,所述任务管理接口具体用于:获取所述渗透测试框架系统中所有已存在的检测任务及其基本信息,对所述检测任务进行实例化,以及根据条件执行特定消息类型的所有任务。
可选的,所述消息管理模块包括消息定义接口、消息生产接口、消息消费接口、消息触发接口、消息查询接口。
可选的,所述分布式任务队列模块包括:
工作进程接口,用于管理实际任务的执行工作;
消息队列接口,用于将指定任务及其目标参数信息存储于对应的消息队列,并提供基于队列的消息事件管理;
分布式存储接口,用于对实例化任务参数信息、消息队列数据和任务成果进行的分布式存储与管理。
可选的,所述实用接口模块包括:各种形式http访问接口、荷载数据管理接口、web爬虫接口、数据类型转换接口、url路径处理接口、外部工具调用执行接口和第三方模块本地化接口。
一种渗透测试平台,包括:上述任意一种渗透测试框架系统,用于实现和支持任务模块化、自动化任务队列、任务的并发处理和任务的分布式调用执行;
渗透测试业务系统,用于实现渗透测试任务以及任务处理结果的数据分析和展示,其中,所述渗透测试任务包括信息收集、漏洞分析、漏洞检测与利用;
后台管理系统,用于对所述渗透测试平台进行系统管理,所述系统管理包括系统配置、任务信息管理和数据备份。
一种渗透测试方法,应用于上述任意一种渗透测试框架系统,包括:
分布式任务队列模块中的多个工作进程实例分别对指定的消息类型事件进行监听,并不断查询消息队列中是否存在相应类型事件产生;
对目标对象进行抽象表示,形成第一目标数据结构,并选择初始事件消息类型,通过消息管理模块的消息触发功能,将所述第一目标数据结构及所述事件消息投送入分布式任务执行的所述消息队列中;
当某个工作进程查询到其对应的消息类型事件后,获取所述消息类型事件的所述第一目标数据结构,并通过基础任务模块的任务管理功能获取所有消费该消息类型事件的任务信息及任务模块实例句柄,然后逐个调用任务句柄执行具体的检测任务;
工作进程在执行任务的过程中,基础任务模块可以产生特定类型的消息事件,以及与所述消息事件相应的第二目标数据结构,并通过所述消息管理模块的消息触发功能投送入所述分布式任务执行的所述消息队列中;
工作进程执行完某个具体任务后将任务输出写入分布式数据库中。
经由上述的技术方案可知,与现有技术相比,本发明实施例公开了一种渗透测试框架系统、渗透测试平台及渗透测试方法,所述渗透测试框架系统能够对目标对象进行抽象设计和形式化表示,从而兼容不同的检测对象和类型;还能够为业务用户提供基础任务模板以及通用的任务调用及管理;提供基于消息事件的任务触发调用以及事件消息管理功能;通过分布式任务队列系统为渗透测试业务执行提供分布式部署和并发执行能力;提供大量实用工具接口,同时深度集成外部渗透测试工具或系统,最大限度提高任务脚本编写效率等,能够满足用户对渗透测试系统的高性能以及便捷实用性的要求。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例公开的一种渗透测试框架系统的结构示意图;
图2为本发明实施例公开的目标对象形式化标识结构图;
图3为本发明实施例公开的基础任务模块的结构示意图;
图4为本发明实施例公开的基于消息时间的任务触发示意图;
图5为本发明实施例公开的渗透测试框架系统的消息出发过程示例图;
图6为本发明实施例公开的分布式任务队列模块执行过程示意图;
图7为本发明实施例公开的一种渗透测试平台的结构示意图;
图8为本发明实施例公开的渗透测试平台应用结构示意图;
图9为本发明实施例公开的一种渗透测试方法的流程图;
图10为本发明实施例公开的渗透测试框架系统的工作流示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例公开的一种渗透测试框架系统的结构示意图,参见图1所示,渗透测试框架系统10可以包括:
目标对象抽象模块101,用于对目标对象进行抽象设计和形式化表示。
完整的渗透测试过程往往包括多个操作流程,如信息收集、脆弱性发掘与利用等。各阶段的不同操作会面对多种目标形式特征,该特征可能不仅仅包含目标自身,还包括与之密切相关的参数或属性。例如,端口扫描任务的目标为域名或ip地址,扫描完成后目标地址会产生不同的开放端口。针对特定系统服务的漏洞验证任务则需要在提供ip地址的同时还需要确认对应的端口信息,并在检测脚本内部还可能进一步使用该端口信息;针对目标应用的sql注入检测任务的目标则为经过筛选、包含动态参数的url链接地址;在进行应用登录后漏洞分析时需要在指定具体登录链接地址的同时,附带已猜解的正确用户名和密码账户信息等。
本申请对目标对象进行抽象设计和形式化表示,不仅能够兼容不同的检测对象和类型,而且使得随着任务执行过程的推进,任务脚本对目标对象具有更加丰富的表达能力,使更多的检测任务能够具备自动化执行条件。
基础任务模块102,用于提供基于消息事件的任务触发调用以及事件消息管理功能。
在渗透测试过程中,需要对不同对象、组件进行各种类型安全漏洞的检测和利用,本申请实施例将每种检测或利用过程视为一种任务。实际应用中,在渗透测试自动化平台中包含上述大量用于漏洞检测或利用的任务模块或者脚本。
消息管理模块103,用于提供基于消息事件的任务触发调用以及事件消息管理功能。
因目标对象种类众多、安全漏洞及隐患检测技术种类和方法繁杂,所以在渗透测试过程中需要根据不同的目标对象,采取相应的技术检测手段。为完成渗透测试的自动化执行过程,以及高效的分布式任务调度,本申请实施例设计了消息管理模块,并实现了基于消息事件的任务触发调用模型。
分布式任务队列模块104,用于通过分布式任务队列系统为渗透测试业务执行提供分布式部署和并发执行能力。
为达到高效、并发执行大批量检测任务的目的,本申请实施例设置了分布式任务队列模块。分布式任务队列模块可以但不限制为包括工作进程、消息队列、分布式存储等功能接口。
实用接口模块105,用于提供大量实用工具接口,集成其他的渗透测试工具或系统。
为了帮助用户快速完成渗透测试具体业务功能的构建,简化完成特定渗透测试检测任务脚本的编写难度,本申请实施例设置了实用接口模块,用于为框架系统提供大量实用工具接口,同时深度集成外部渗透测试工具或系统,最大限度提高任务脚本编写效率。
渗透测试框架系统主要功能包括:为业务用户提供基础任务模板以及通用的任务调用及管理;提供基于消息事件的任务触发调用以及事件消息管理功能;通过分布式任务队列系统为渗透测试业务执行提供分布式部署和并发执行能力;提供大量实用工具接口,同时深度集成外部渗透测试工具或系统,最大限度提高任务脚本编写效率等。
本申请实施例公开的渗透测试框架系统,能够支持任务模板化、自动化任务队列,以及大规模任务的分布式调度与执行等,为自动执行多样化渗透测试检测任务提供核心基础。渗透测试框架系统能够在网络渗透中根据目标特征以及新的信息数据,不断地调用合适任务模块并完成整个测试工作,具有自动化、高并发、高容错等特征,且对用户完全透明。
上述实施例中,所述基础任务模块具体可用于:为所述渗透测试框架系统的任务调用、执行提供统一接口,这样能够极大地提高任务脚本编写的便捷性和规范性。
本申请通过渗透测试框架系统,能够提供针对信息收集、漏洞分析、漏洞检测与利用等的消息触发设计,以及对目标对象更加完善的形式化表示,从而实现渗透测试全阶段过程的自动化检测和分析能力;通过通用任务执行框架,可以规划不同的消息触发模式设计,实现除渗透测试以外的业务分析平台,例如日志分析、流量及恶意代码分析等;此外提供了大量实用工具接口,同时深度集成外部渗透测试工具或系统,提高了系统的可扩展性,以及渗透平台的检测能力和效率;还向用户提供了易用、统一、快速的任务编写模板,同时支持(特定组件)已知的安全漏洞和未知(通用)的安全漏洞检测,实现了多阶段漏洞检测和目标运行状态的自动维持。
下面将对渗透测试框架系统中包含的各个模块的具体实现做详细介绍,领域内相关技术人员可结合下述内容理解渗透测试框架系统的具体实现。
在上面的实施例中,已经介绍了渗透测试框架系统可以包括目标对象抽象模式、基础任务模块、消息管理模块、分布式任务队列模块和实用接口模块,其中:
目标对象抽象模块101
为使随着任务执行过程的推进,任务脚本对目标对象具有更加丰富的表达能力,更多的检测任务能够具备自动化执行条件,本申请提出了能够兼容不同检测对象和类型的目标对象形式化表示方法。
图2为本发明实施例公开的目标对象形式化标识结构图,结合图2所示,(host,port,service)三元组确定一个目标对象的target结构,并可用唯一的url模式进行表示:service://user:password@host:port。由于很多检测任务涉及web应用,且为了实现web应用安全检测中的状态保持,所以可以在目标url模式的基础上,进一步设计了固定字段以及可选字段。固定字段主要涉及web应用(http请求)中的headers头字段、data字段等,固定字段可以被所有用户修改、变更和使用,以传递和维持访问状态;可选字段则根据需要使用,例如某些漏洞利用脚本中所依赖的特定参数或条件。
在编写检测任务时,针对web应用检测,可以从url模式中直接提取目标的url地址,并对该url下的某个具体路径或页面进行漏洞检测,同时可以从headers头字段中获取渗透测试框架系统中其他模块中产生或维持的web应用访问的状态信息。针对系统服务的检测,可以从url模式中提取目标ip地址、端口、账户等信息,以进行具体的端口或服务漏洞检测。
基础任务模块102
图3为本发明实施例公开的基础任务模块的结构示意图,参见图3所示,基础任务模块可以包括:
任务定义接口301,用于定义任务的基本信息,对任务管理、安全态势及分析成果进行展示,所述基本信息包括检测对象、检测具体漏洞描述、漏洞危害等级、参考链接、作者和编写时间。
任务调用接口302,用于定义任务的外部调用接口和内部调用接口。
所述外部调用接口用于检测任务脚本的编写者实现具体任务细节;所述内部调用接口用于所述渗透测试框架系统内部实现对每个任务的调用,以及任务执行结构的处理和存储。
任务管理接口303,用于管理和调度所述渗透测试框架系统中的所有任务。
其中的任务可以但不限制为包括:获取系统中所有已存在的检测任务及其基本信息,对任务进行实例化,以及根据条件执行特定消息类型的所有任务等。
需要说明的是,基础任务模块仅提供检测任务的抽象表示,不涉及任务检测的具体功能和流程。
消息管理模块103
消息管理模块可以但不限制为包括消息定义、消息生产、消息消费、消息触发、消息查询等功能接口。
消息定义功能接口根据主要目标对象与组件类型,以及安全测试过程中常见的测试类型、测试阶段、测试条件等定义了通用的事件消息类型。借助于所定义的事件消息,渗透测试框架系统可以自动完成从目标初始化到目标信息收集、组件指纹识别、漏洞检测与利用等完整的渗透测试过程。同时,用户可以根据需要自定义消息类型,编写和执行针对自定义消息的检测任务。
图4为本发明实施例公开的基于消息时间的任务触发示意图,结合图4所示,本申请提供了一种基于消息事件的任务触发模型,涉及消息生产、消息消费和消息触发等功能接口。在渗透测试中,执行一种检测任务后,检测结果可以进一步用于其他检测任务的执行。消息生产功能接口即用于通知框架系统将要产生何种新的消息事件,及其对应的目标参数信息(即target数据信息)。另一方面,每种检测任务可能仅针对特定的对象或组件类型,或需要特定的执行条件。因此,本申请实施例可以使用消息消费功能接口来将特定任务与特定消息事件进行关系绑定,渗透测试框架系统会根据任务所指定的消费消息事件类型来决定是否调入和执行该任务。消息触发功能接口用于在任务执行完成后,将产生的消息事件放入分布式任务执行的消息队列中,以继续触发新的任务执行。
图5为本发明实施例公开的渗透测试框架系统的消息触发过程示例图,结合图5所示,可见通过对信息收集、漏洞分析、漏洞检测与利用等的消息触发设计,实现了渗透测试全阶段过程的自动化检测和分析能力。
图5展示了渗透测试框架如何利用消息管理模块中的消息生产、消费功能接口来自动执行(基于基础任务模块)各种任务检测脚本的过程,即演示本申请记载的基于消息事件的任务触发模型。图中”e_”代表某种消息类型表示,“t_”代表某个检测任务,这些任务涉及渗透测试的信息收集、漏洞分析、漏洞检测与利用等不同过程。
图5中消息触发和任务执行流程如下:框架系统首先生成初始消息事件类型e_host,然后系统中存在一个t_host任务,该任务处理(消费)消息类型为e_host的消息及其target数据。该t_host任务可能的目的是区分目标对象地址是一个ip地址,还是一个域名地址,然后根据不同结果分别产生e_domain消息事件,以及e_ip消息事件。此时,系统中的t_domain_brute会处理(消费)e_domain消息及其target数据,以完成对域名下的子域名暴力猜解;而t_port_scan任务处理(消费)e_domain或者e_ip消息,以完成对目标的端口扫描、组件识别等,并产生http、smb等表示系统服务的消息事件(如e_service_http),以及iis、apache等用于构建服务的系统组件的消息事件(如e_platform_iis)。
相应地,iis等不同的系统组件会有各种相关的任务检测脚本来处理相应的消息事件。针对渗透测试中最为常见的http服务(即web应用),渗透测试框架系统会根据具体情况进行爬网(t_crawler)、指纹识别(t_fingerprinter)、web根目录检测等。通过指纹识别结果可以识别具体的cms系统以进行相关漏洞检测;根据爬网及敏感目录检测结果,可继续对具体的url链接地址,进行sql注入、命令执行等通用漏洞检测。
以此类推,不同的任务检测脚本会处理(消费)指定的消息事件,并根据任务执行结果,产生新的消息事件。
为进一步提高框架系统的灵活性,消息管理模块还提供了消息查询功能接口,基础任务模块能够利用此接口查询系统产生了哪些事件消息,这可以用于系统运行过程中某些事件消息如waf(web应用防火墙)等的检测。
分布式任务队列模块104
分布式任务队列模块包括工作进程、消息队列、分布式存储等功能接口。工作进程(worker)功能负责实际任务的执行工作;消息队列功能负责将指定任务及其目标参数信息存储于对应的消息队列,并提供基于队列的消息事件管理;分布式存储功能负责对实例化任务参数信息、消息队列数据、任务成果等的分布式存储与管理。
图6为本发明实施例公开的分布式任务队列模块执行过程示意图,结合图6所示,系统运行时可以启动多个工作进程实例,每个工作进程通过任务管理功能接口获取所有任务模块的实例句柄信息,并监听一定数量的消息类型,同时不断从相应消息队列中接收等待执行的任务及目标参数等数据,然后调用指定的任务实例句柄完执行任务。在任务执行的过程中,可以产生并触发新的消息事件,而这些消息事件可以继续由其他工作进程接收并执行相关任务。
在实际系统实现和部署中,消息队列信息可以动态存储于redis等基于分布式高速缓存消息队列或其他分布式数据库中;工作进程执行过程中的任务状态数据,以及任务执行结果等数据可以存储于mongodb等基于分布式文件存储的数据库中。
实用接口模块105
当前设计并实现的实用接口包括多种形式http访问、荷载数据(payloads)管理、web爬虫、数据类型转换、url路径处理、外部工具调用执行等,此外还包括外部实用第三方模块的本地化,最大限度降低用户任务编写成本。其中,http访问接口除了提供普通http访问功能外,还实现了自动登录、自动会话(cookie)处理、请求参数构造与处理、响应数据格式化及模糊查询等,为各种需求的web应用安全测试任务编写提供了极大便利。
渗透测试框架系统可以将部分已有的渗透测试工具或系统(如metasploit、sqlmap、nmap等)接口化以供用户直接调用,而不需要关心这些工具调用与执行的具体细节。还可以进行自定义外部工具的路径和配置设置等,进一步提高框架系统的可扩展性,以及渗透平台的检测能力和效率。
图7为本发明实施例公开的一种渗透测试平台的结构示意图,图8为本发明实施例公开的渗透测试平台应用结构示意图,结合图7和图8所示,渗透测试平台可以包括:
渗透测试框架系统10,用于实现和支持任务模块化、自动化任务队列、任务的并发处理和任务的分布式调用执行;该渗透测试框架系统可以为上述实施例中任一项所述的渗透测试框架系统。
渗透测试业务系统20,用于实现渗透测试任务以及任务处理结果的数据分析和展示,其中,所述渗透测试任务包括信息收集、漏洞分析、漏洞检测与利用;
后台管理系统30,用于对所述渗透测试平台进行系统管理,所述系统管理包括系统配置、任务信息管理和数据备份。
渗透测试平台由渗透测试框架系统、渗透测试业务系统以及后台管理系统等组成。渗透测试框架系统为多样化渗透测试任务的执行、信息分析等提供核心基础,支持任务高度模块化、自动化消息队列及大规模任务的高度并发或分布式自动调用执行等。渗透测试框架系统包括目标对象抽象模式、基础任务、消息管理、分布式任务队列和实用接口等功能模块,其中目标抽象模式用于结构化表示复杂多变的目标对象;在此基础上,通过消息管理模块完成事件消息的产生、消息及管理工作;基础任务模块提供任务调用、管理等功能,并与实用接口共同为上层渗透测试业务系统提供业务功能支撑。
渗透测试业务系统建立在渗透测试框架系统基础上,利用渗透测试框架系统提供的任务模板快速构建用于实际渗透测试业务的各种检测任务模块,形成测试任务模块库;借助分布式任务队列系统、消息管理等功能完成事件消息的触发和任务的分布式执行;利用任务执行的成果数据,统计、分析目标对象的资产、脆弱性等,并完成成果的可视化展示。
用户可以通过后台管理系统配置平台的基本参数信息,包括所启动的工作进程节点数、单个节点的并发线程数、访问超时设置、任务模块选择,网络访问设置等。
本发明提供的自动化渗透测试平台,功能完整,分布式渗透测试框架系统使得渗透测试平台支持分布式部署,提供了大规模检测任务的分布式执行和高并发能力,显著提供了系统运行效率,业务能力和系统性能大幅度提升。
图9为本发明实施例公开的一种渗透测试方法的流程图,该方法应用于上述实施例公开的任意一种渗透测试框架系统,参见图9所示,渗透测试方法可以包括:
步骤901:分布式任务队列模块中的多个工作进程实例分别对指定的消息类型事件进行监听,并不断查询消息队列中是否存在相应类型事件产生。
步骤902:对目标对象进行抽象表示,形成第一目标数据结构,并选择初始事件消息类型,通过消息管理模块的消息触发功能,将所述第一目标数据结构及所述事件消息投送入分布式任务执行的所述消息队列中。
步骤903:当某个工作进程查询到其对应的消息类型事件后,获取所述消息类型事件的所述第一目标数据结构,并通过基础任务模块的任务管理功能获取所有消费该消息类型事件的任务信息及任务模块实例句柄,然后逐个调用任务句柄执行具体的检测任务。
步骤904:工作进程在执行任务的过程中,基础任务模块可以产生特定类型的消息事件,以及与所述消息事件相应的第二目标数据结构,并通过所述消息管理模块的消息触发功能投送入所述分布式任务执行的所述消息队列中。
步骤905:工作进程执行完某个具体任务后将任务输出写入分布式数据库中。
图10为本发明实施例公开的渗透测试框架系统的工作流示意图,可结合图10理解相关内容。例如,假设目标地址192.168.232.165,该服务器开放了http服务(80端口)、smb服务(445端口),http服务运行了某一个应用系统(例如oa系统),该系统存在web应用中常见的sql注入等安全漏洞。
渗透测试框架系统对该目标地址的自动检测工作流程如下:
(1)渗透测试框架系统启动分布式任务队列模块中的多个工作实例(可以称为worker),例如4个工作实例,每个实例负责处理系统自动分配(或指定)的消息类型事件,例如e_host、e_ip、e_service_smb、e_service_http、e_crawler、e_url等。
(2)渗透测试框架系统接受输入的目标地址,对目标对象进行抽象表示,由于是初始状态,因此形成初始事件消息e_host、初始target数据结构{“url”:”unknown://192.168.232.165:0”}(以python为例),并将其送到消息队列中。
(3)系统中运行的某个工作实例(例如worker2)查询到消息队列中有其监听的消息事件类型e_host,因此其通过基础任务模块的任务管理功能获取所有消费该消息的任务信息及任务模块实例句柄,并逐个调用任务句柄执行具体检测任务,例如任务t_host。
(4)检测任务t_host在执行过程中,产生e_ip消息、target数据结构{“url”:”unknown://192.168.232.165:0”},并将其投送到消息队列。
(5)任务执行完成后,(如果需要)会通过调用指定的接口将结果写入数据库(如mongodb)中。
(6)此时运行的某个工作实例(例如worker1)查询到其负责处理的e_ip消息事件产生,并调用对应的检测任务t_port_scan句柄以执行任务。以此类推,根据端口扫描结果以及其他任务执行结果,系统中会相继产生e_service_http、e_service_smb、e_crawler、e_url等消息事件,及其对应的target数据结构。例如e_service_smb消息,其target数据结构为{“url”:”smb://192.168.232.165:445”};e_url消息,其target数据结果可能为:{“url”:“http://192.168.232.165:8080/search.php”,”data”:”key=data”,“headers”:{“user-agent”:“xx”}}等。然后,系统循环第(3)步,完成对消息事件的处理。
(7)在设定的时间阈值内消息队列中没有新的消息事件产生后,所有工作进程接收到任务结束通知并退出。
本申请实施例公开的渗透测试方法,能够支持任务模板化、自动化任务队列,以及大规模任务的分布式调度与执行等,为自动执行多样化渗透测试检测任务提供核心基础。渗透测试框架系统能够在网络渗透中根据目标特征以及新的信息数据,不断地调用合适任务模块并完成整个测试工作,具有自动化、高并发、高容错等特征,且对用户完全透明。
对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。