CN108737213A - 一种基于fpga的高并行大吞吐量渗透测试系统及方法 - Google Patents
一种基于fpga的高并行大吞吐量渗透测试系统及方法 Download PDFInfo
- Publication number
- CN108737213A CN108737213A CN201810496665.4A CN201810496665A CN108737213A CN 108737213 A CN108737213 A CN 108737213A CN 201810496665 A CN201810496665 A CN 201810496665A CN 108737213 A CN108737213 A CN 108737213A
- Authority
- CN
- China
- Prior art keywords
- test
- penetration testing
- task
- board
- module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/08—Monitoring or testing based on specific metrics, e.g. QoS, energy consumption or environmental parameters
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L43/00—Arrangements for monitoring or testing data switching networks
- H04L43/50—Testing arrangements
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L47/00—Traffic control in data switching networks
- H04L47/10—Flow control; Congestion control
- H04L47/12—Avoiding congestion; Recovering from congestion
- H04L47/125—Avoiding congestion; Recovering from congestion by balancing the load, e.g. traffic engineering
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L63/00—Network architectures or network communication protocols for network security
- H04L63/14—Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
- H04L63/1433—Vulnerability analysis
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Environmental & Geological Engineering (AREA)
- Computer Hardware Design (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Debugging And Monitoring (AREA)
- Data Exchanges In Wide-Area Networks (AREA)
Abstract
本发明公开了一种基于FPGA的高并发大流量渗透测试系统及方法,该系统包括渗透测试板卡和处理器;处理器包括任务配置模块、任务编排模块、渗透测试任务生成模块和渗透测试系统数据库,任务编排模块根据配置的测试目标的参数构建测试任务集合,从中选取一个或多个测试任务,由渗透测试任务生成模块生成渗透测试任务,将渗透测试任务及测试DAG图发送至渗透测试板卡;接收渗透测试板卡反馈的关键字段信息,并对其进行漏洞分析;渗透测试板卡接收渗透测试任务,根据存储的测试DAG图生成测试数据,封装成数据包发送至被测目标,并接收被测目标反馈的信息,解析出关键信息发送至任务编排模块。本发明提高了测试速度,能够快速对大规模场景的漏洞进行测试。
Description
技术领域
本发明涉及网络测试数据产生领域,具体涉及一种基于FPGA和测试DAG图的高并行大吞吐量渗透测试系统及方法。
背景技术
渗透测试指在签署协议的条件下模仿网络渗透测试,测试被测目标的网络安全防御系统的安全性和健壮性。渗透测试需要具备渗透测试执行标准中的各种渗透测试行为,包括情报搜集、漏洞扫描等。随着互联网成为电子商务、信息交换的主要途径,任何企业在开启网络服务之前必须要对服务器或数据中心的网络安全进行评估,渗透测试因此成为了重要的网络测试手段,广泛用于各类网络的建设、维护、升级过程,具有广阔的市场。它在网络安全测试方面具备同时测试多个目标和多种漏洞、高度自动化、被测目标反馈数据实时处理、能够均衡板卡任务负载的特点。
当前的渗透测试执行主要有两种方法:第一种是由大量网络专家构成的渗透测试团队,以手动输入的方式发送渗透测试报文,分析反馈结果,最后给出测试结果,第二种是利用软件实现自动化的渗透测试。这两种方式各有优缺点:渗透测试团队需要大量人力且处理时间冗长,但专业团队能够针对漏洞给出创新性方法,测试强度更高;利用软件实现的自动化测试能够按照手动输入的参数和预设模板进行自动化渗透测式,较人工方式操作简单,但没有专业的硬件做支撑,测试速率和测试并行并发数受到极大限制。综上,上述方式以跟不上互联网发展的速度。
在现有软件方案中,Metasploit集成了多种渗透测试工具,包含了图形化界面、渗透测试载荷生成器、编码器等,但只能够在软件层面提供测试流程配置和自动化测试,无法配合硬件板卡进行更高效率的并行并发测试。在现有仪器设备中,如Spirent公司的Avalanche中采用预存的渗透测试模板生成测试数据流,主要针对已知漏洞进行测试和模糊测试。
手工渗透测试周期极长,在针对漏洞库进行快速渗透测实时多采用自动化渗透测试。现有渗透测试自动化方案以软件实现,存在并行并发数不高、测试速度缓慢的问题,并且应用于大规模网络系统(如云数据中心、公司内部网络等)时,难以在新漏洞爆发后,快速对多平台、多租户、异构软件环境进行高并发、大流量的高效渗透测试,且整个测试过程无法进行负载均衡管控,无法在多个端口上实现实时反馈数据处理。
发明内容
为了克服上述现有技术的不足,本发明提供了基于FPGA的高并行大吞吐量渗透测试系统及方法,将采用图数据库存储渗透测试过程,使用处理器同时运行多个渗透测试任务,测试运行过程中将测试子图缓存到板卡DDR3中,使用高性能FPGA加板载CPU实现测试数据流的生成和被测试目标反馈信息的解析,设计了负载均衡模块及算法来保证板卡上多个端口负载均衡、吞吐量达到最大。
本发明所采用的技术方案是:
一种基于FPGA的高并发大流量渗透测试系统,包括渗透测试板卡和处理器;
所述处理器包括任务配置模块、任务编排模块、渗透测试任务生成模块和渗透测试系统数据库,其中,
所述任务配置模块,负责配置并行测试目标及其参数;
所述任务编排模块,被配置为根据配置的测试目标的参数构建测试任务集合,从中选取一个或多个测试任务,由渗透测试任务生成模块生成一个或多个具体的渗透测试任务,从渗透测试系统数据库中获取渗透测试任务对应的测试DAG图,将渗透测试任务及其对应的测试DAG图发送至渗透测试板卡;
所述渗透测试板卡,被配置为接收渗透测试任务,根据存储的测试DAG图生成测试数据,封装成数据包发送至被测目标,并接收被测目标反馈的信息,解析出关键信息发送至任务编排模块。
进一步的,所述任务编排模块还配置为接收渗透测试板卡反馈的关键字段信息,并对其进行评估,若发现被测试目标的漏洞,查找渗透测试图数据库中对应的测试DAG图,将新的DAG图更新到对应的板卡测试单元,开启漏洞测试进程,查找渗透测试图数据库中对应的测试DAG图,更新测试DAG图,并发送至渗透测试板卡,接收渗透测试板卡上传的渗透测试结果;
所述渗透测试板卡还被配置为根据新的测试DAG图生成测试数据,封装成数据包发送至被测目标,并接收被测目标反馈的信息,并对其进行解析,得到渗透测试结果,并发送至任务编排模块;
所述渗透测试任务生成模块还被配置为对每个渗透测试任务分配当前测试阶段的标识符,并建立该标示符的日志。
进一步的,所述渗透测试板卡包括板卡测试单元、协议栈、交换电路和网络端口;
所述板卡测试单元接收渗透测试任务,根据存储的测试DAG图生成测试数据,封装成数据包通过协议栈发送至交换电路,接收交换电路上传的被测目标反馈信息,并对其进行解析处理,得到关键字段信息,发送至任务编排模块;
所述交换电路通过网络端口与被测目标连接,将多个板卡测试单元产生的数据包通过网络端口发送至被测目标,接收被测目标反馈的信息,通过协议栈发送到对应板卡测试单元。
进一步的,所述板卡测试单元包括接口电路、统计电路、接收存贮电路、DDR3存储器、第一包处理电路、第一CPU、协议解析电路、第二包处理电路、FPGA、第二CPU,所述接口电路接收渗透测试任务及对应的测试DAG图,通过接收存贮电路存储到DDR3存储器中;同时,通过统计电路和第一包处理电路发送至第一CPU,第一CPU根据测试DAG图生成测试数据,通过第一包处理电路封装成数据包,数据包通过协议解析电路发送至协议栈;所述FPGA通过协议解析电路接收协议栈上传的被测目标反馈信息,并对其进行解析处理,得到关键字段信息,通过第二CPU判断是否接收到被测目标反馈信息,若接收到,则通过第二包处理电路将被测目标反馈信息的关键字段信息封装成数据包,经过统计电路和接口电路发送至任务编排模块,同时,通过接收存贮电路存储到DDR3存储器中。
进一步的,所述处理器还包括负载均衡模块,其接收任务编排模块计算的资源开销评估值,基于负载均衡算法将渗透测试任务均衡分配到各板卡测试单元,并将将渗透测试任务和板卡测试单元的映射发送至任务编排模块。
进一步的,所述处理器还包括渗透测试系统数据库,所述渗透测试系统数据库至少包含并不限于基础数据库、渗透测试图数据库和渗透测试策略库;
所述基础数据库,被配置为存储用户账号和设备信息;
所述渗透测试图数据库,被配置为存储针对特定漏洞的渗透测试方案;
所述渗透测试策略库,被配置为存储整个渗透测试任务的预设信息、反馈信息和统计信息,其中,预设信息指大量拟定好的被渗透测试目标,反馈信息指被渗透测试目标反馈给设备的信息,统计信息指对多个渗透测试任务各渗透测试步骤的统计与监控信息。
进一步的,所述服务器还包括系统日志模块、数据库接口模块和板卡管理模块;
所述系统日志模块,被配置为记录渗透测试系统出现的事件,包括错误、故障和调试事件;
所述数据库接口模块,被配置为给渗透测试系统数据库提供调用接口;
所述板卡管理模块,被配置为接收任务编排模块上传的渗透测试任务及其对应的测试DAG图,并发送至对应的板卡测试单元。
一种基于FPGA的高并发大流量渗透测试方法,该方法包括以下步骤:
配置并行测试目标及其参数;
根据测试目标参数构建测试任务集合,从测试任务集合中挑选若干个测试任务,并生成具体的渗透测试任务;
基于负载均衡算法均衡分配渗透测试任务,从渗透测试图数据库中获取渗透测试任务对应的测试DAG图,基于测试DAG图生成测试数据,封装成数据包发送至被测目标;
接收被测目标反馈的信息,对被测目标反馈的信息进行解析,得到关键字段信息;
对关键字段信息进行评估,若发现被测目标存在漏洞,进行漏洞测试;
查找渗透测试图数据库中对应的测试DAG图,更新测试DAG图,基于更新后的测试DAG图生成测试数据,封装成数据包发送至被测目标;
接收被测目标反馈的信息,对被测目标反馈的信息进行解析,判断渗透测试是否成功,若成功,则生成渗透测试成功报告;否则生成渗透测试失败报告。
进一步的,所述配置并行测试目标的参数集合为S={Os,As,Rname,CVE},
其中,Os是渗透测试目标列表,As是选择的测试方法集合,Rname是日志保存文件路径,CVE是发现的漏洞集合,初始为空。
进一步的,所述基于负载均衡算法均衡分配渗透测试任务的步骤包括:
输入新增渗透测试任务负载和各板卡测试单元负载;
顺序查找各板卡测试单元是否存在剩余资源;
若不存在,则不增加新的渗透测试任务;若存在,则将渗透测试任务分别给剩余资源最大的板卡测试单元;
判断新增任务队列是否为空,若为不为空,则不增加新的渗透测试任务,若为空,则设定负载均衡的条件阈值,判断板卡测试单元负载均衡是否满足设定的阈值条件;
若板卡测试单元负载均衡满足设定的阈值条件,则将新的渗透测试任务和板卡测试单元的映射发送至任务编排模块。
与现有技术相比,本发明的有益效果是:
(1)本发明通过处理器实现了用户交互和渗透测试板卡统一管理,能够快速对大规模场景的漏洞进行测试,渗透测试板卡通过FPGA设计的专用大规模数字电路配合测试DAG图来实现,将渗透测试流程数据以测试DAG图子图的形式直接存入大容量高速DDR3中,板卡并行使用多个网络端口执行渗透测试,每个端口高并发地根据测试语义网实现多种渗透测试方式,能有效的解决单目标、多目标下的混合测试数据的产生,该基于FPGA、CPU和DDR3的板卡测试单元具有测试数据发生带宽大、支持高并行并发数测试、能够进行交互式测试、支持测试的漏洞种类多、易于扩展等优点,实现了测试的高并行、高并发、高吞吐量,能够处理被测对象反馈数据,提高了测试速度;
(2)本发明采用负载均衡技术,在生成新的渗透测试任务时,不会盲目地将测试任务分配给底层硬件,在对监控到的负载进行测算后,选择适当的板卡测试单元处理,保证不会出现拥塞的端口,最终在多个板卡测试单元上实现负载均衡,保证所有端口能够平衡使用,测试整体吞吐量达到最大。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1是基于FPGA的高并行大吞吐量渗透测试系统结构框图;
图2是基于FPGA的高并行大吞吐量渗透测试系统工作流程图;
图3是基于FPGA的高并行大吞吐量渗透测试方法流程图;
图4是板卡测试单元结构框图;
图5是负载均衡算法流程图。
具体实施方式
下面结合附图与实施例对本发明作进一步说明。
应该指出,以下详细说明都是例示性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
正如背景技术所介绍的,现有技术中渗透测试自动化方案以软件实现,存在并行并发数不高、测试速度缓慢的不足,应用于大规模网络系统(如云数据中心、公司内部网络等)时,难以在新漏洞爆发后,快速对多平台、多租户、异构软件环境进行高并发、大流量的高效渗透测试,且整个测试过程无法进行负载均衡管控,无法在多个端口上实现实时反馈数据处理的不足,为了解决如上的技术问题,本申请提出了一种基于FPGA的高并行大吞吐量渗透测试系统及方法,基于FPGA和测试DAG图实现测试数据发生带宽大、支持高并行并发数测试、板卡能够自主与被测目标交互、支持测试的漏洞种类多、易于扩展的高性能渗透测试编排技术,具有测试时间大大缩短、测试管理更加简单的特点。
本申请的一种典型的实施方式中,如图1-2所示,提供了一种基于FPGA的高并行大吞吐量渗透测试系统,该系统包括处理器和高性能渗透测试板卡,该板卡具有支持多个独立测试任务,同时进行多目标测试的能力。
如图1所示,该处理器包括任务编排模块、渗透测试任务生成模块、负载均衡模块、渗透测试系统数据库、任务配置模块、系统日志模块、数据库接口模块和板卡管理模块。
(1)任务配置模块
该任务配置模块负责以图形化界面引导用户选择、配置并行测试目标及其参数,该界面应支持对多个测试目标的快速构建。
(2)测试任务编排模块
该测试任务编排模块实现渗透测试过程管理、被测目标反馈信息分析与测试状态呈现三个部分的工作,实现自动化渗透测试任务链。精准渗透测试主要分成情报搜集阶段、威胁漏洞分析阶段、渗透测试实施阶段、渗透测试痕迹清除阶段。任务编排模块对所有渗透测试任务的上述过程进行统一管理,实时处理从渗透测试板卡上传反馈信息、指导渗透测试任务的下一步渗透测试方法,此处的反馈信息推荐经过初步关键字段信息提取,但也可直接将被测目标返回的原始数据直接传到。在威胁漏洞分析阶段,任务编排模块需要对信息搜集完毕的目标进行架构和漏洞分析,归结其防御系统信息、硬件性能信息、应用服务器信息、数据库信息、协议信息等等。在此基础上,任务编排模块在渗透测试实施阶段需依据漏洞选择一至多个渗透测试,从而精准攻破系统防御和漏洞。在针对某一测试任务决定测试方案后,任务编排模块将测试DAG图下发至板卡测试单元。在渗透测试成功的条件下,如果获取了被渗透测试目标的管理权限,则编排模块负责清理历史记录,保证渗透测试的隐蔽性。
(3)渗透测试任务生成模块
该测试任务生成模块根据用户输入的测试参数生成一至多个具体的渗透测试任务,每个渗透测试任务分配一个当前测试阶段唯一的标识符Tid,为其建立一个唯一的日志RTid,在任务结束后将以唯一的名称命名该测试任务及其数据,推荐使用被测试目标名称、测试方法和测试时间组成名称字符串。
(4)负载均衡模块
本系统同时支持对多个被测目标发起大规模渗透测试,假设同时存在L个攻击任务,整个测试环境具备n个板卡测试单元,m个物理网络端口。在L≠n时,需要对运行各个测试任务的板卡测试单元进行指派;在L>n时,需要板卡测试单元上同时运行多个测试任务。负载均衡模块接收任务编排模块对各个渗透测试任务的资源开销评估值最为输入参数,运行负载均衡算法,完成所有渗透测试任务分配到各板卡测试单元的映射。具体的负载均衡算法如图5所示。
(5)渗透测试系统数据库
该渗透测试系统数据库逻辑上至少包含并不限于渗透测试图数据库、渗透测试策略库和基础数据库。
渗透测试图数据库,用于存储大量被验证针对特定漏洞有效的渗透测试方案,对用户开放自定义渗透测试方案导入功能。由于渗透测试需要实现高速交互,采用DAG图设计渗透测试流程,采用图数据库存储,便于依据反馈信息进行下一个状态的查询,可采用的图数据库包括Neo4j、Titan等。
渗透测试策略库,负责存储整个渗透测试从起始到终止的预设信息、反馈信息和统计信息。预设信息指大量拟定好的被渗透测试目标,反馈信息指被渗透测试目标反馈给设备的信息,统计信息指对多个渗透测试任务各渗透测试步骤的统计与监控信息。该信息库主要用于记录大量渗透测试任务的全局信息。其中内容也可作为新的渗透测试的配置模板。
基本数据库,负责存储用户账号、设备信息等基本信息。
(6)系统日志模块
该系统日志模块负责记录渗透测试系统出现的事件,包括错误、故障、调试记录等信息。
(7)数据库接口模块
本系统涉及到多种信息和数据,逻辑上存储于多个类型的数据库,包含但不限于关系型数据库、半结构化数据库和图数据库,因此数据库接口模块对这些数据库提供了调用接口,方便使用者的管理和升级。
(8)板卡管理模块
板卡管理模块负责安装板卡驱动,识别板卡参数和性能,任务编排模块通过板卡管理模块将渗透测试任务及其对应的测试DAG下发至对应的板卡测试单元。
所述渗透测试板卡包括板卡测试单元、协议栈、交换电路和网络端口,其中,
所述板卡测试单元用于发送渗透测试数据和接收被测目标反馈信息。该模块主要由FPGA芯片、CPU和DDR3存储构成,板卡测试单元具备的基本构成部分如图4,但具体实现可选择不-限于该架构。
如图4所示,所述板卡测试单元包括接口电路、统计电路、接收存贮电路、DDR3存储器、第一包处理电路、第一CPU、协议解析电路、第二包处理电路、FPGA、第二CPU,所述接口电路接收渗透测试任务及对应的测试DAG图,通过接收存贮电路存储到DDR3存储器中;同时,通过统计电路和第一包处理电路发送至第一CPU,第一CPU根据测试DAG图生成测试数据,通过第一包处理电路封装成数据包,数据包通过协议解析电路发送至协议栈;所述FPGA通过协议解析电路接收协议栈上传的被测目标反馈信息,并对其进行解析处理,得到关键字段信息,通过第二CPU判断是否接收到被测目标反馈信息,若接收到,则通过第二包处理电路将被测目标反馈信息的关键字段信息封装成数据包,经过统计电路和接口电路发送至任务编排模块,同时,通过接收存贮电路存储到DDR3存储器中。
该FPGA负责高速提取关键字段信息、CPU负责进行状态判断和决策、DDR3存储渗透测试DAG子图,这里称为子图是因为只存储和该单元测试任务相关的测试DAG图。板卡测试单元对数据流关键信息的处理减少主机的负载,从而在测试效率上更高,大量并行的板卡测试单元相互独立,增加了渗透测试的并行化程度。该模块上需要缓存各渗透测试任务的临时信息,识别不同渗透测试任务的反馈数据流,将渗透测试命令映射到个渗透测试任务。可以选择地将反馈信息原始数据或过滤出的关键信息上传至任务编排模块。
所述协议栈,用FPGA实现的协议栈将支持用户选择的网络协议解析。
由于n个板卡测试单元,m个网络端口,在很多情况下n≠m,因此需要交换电路将多个板卡测试单元产生的测试流量分配到网络端口上,将接收到的反馈信息数据包转发到对应板卡测试单元。
该网络端口是连接渗透测试系统和被测目标的物理端口。
如图2所示,本实施例提出的基于FPGA的高并行大吞吐量渗透测试系统的工作流程为:
网络测试人员使用任务配置模块配置并行测试目标及其参数Os,As,Rname,CVE,任务编排模块根据配置的测试目标的参数Os和As构建测试任务集合Tid,从Tid中选取一个或多个测试任务Tid’,这些任务由渗透测试任务生成模块生成一个或多个具体的渗透测试任务,计算渗透测试任务的资源开销输入负载均衡模块,负载均衡模块基于负载均衡算法将渗透测试任务分配到编号1至n的板卡测试单元上,攻击任务和板卡测试单元间的映射用P表示;任务编排模块从渗透测试系统数据库中获取渗透测试任务对应的测试DAG图,通过板卡管理模块将将渗透测试任务及其对应的测试DAG图发送至板卡测试单元;
板卡测试单元根据存储的测试DAG图生成测试数据,封装成数据包发送至被测目标,并接收被测目标反馈的信息,解析出关键字段信息发送至任务编排模块;
任务编排模块接收渗透测试板卡反馈的关键字段信息,并对其进行漏洞分析,任务编排模块发现漏洞后,查找渗透测试图数据库中对应的测试DAG图,将新的DAG图更新到对应的板卡测试单元,开启漏洞测试进程;
任务编排模块会依据DDR3内存储的DAG图发送渗透测试数据,接收被渗透测试目标的反馈。如果渗透测试目标反馈信息能够由板卡测试单元处理,则进行下一步渗透测试;如果任务编排模块不能处理,则将信息反馈给任务编排模块,待任务编排模块下发渗透测试命令后进行下一步渗透测试;如果渗透测试成功,则反馈成功报告及渗透测试成果;如果渗透测试失败,则反馈渗透测试失败报告。任务编排模块实时刷新各渗透测试任务执行情况,将相关统计信息呈现给用户。
本实施例提出的基于FPGA的高并行大吞吐量渗透测试系统,通过处理器实现了用户交互和统一管理,通过多个独立的、由FPGA+CPU+DDR3构成的板卡测试单元实现了测试的高并行、高并发、高吞吐量;提出交互式测试技术,使用独立的一组FPGA、CPU和DDR3实现自主测试单元,能够处理被测对象反馈数据,提高了测试速度;采用负载均衡技术,在生成新的渗透测试任务时,不会盲目地将测试任务分配给底层硬件,在对监控到的负载进行测算后,选择适当的板卡测试单元处理,保证不会出现拥塞的端口,测试整体吞吐量达到最大;提出测试路径保存技术,分两级设置,包含完整的高层测试图和板卡缓存的局部子图,测试图有向、无环和可评估,可用于测试流程的控制、负载均衡评;有效利用板卡上有限的计算和存储资源,实现高效的测试任务交互,实现高并行并发测试。
本申请的另一种典型实施方式,如图3所示,提供了一种基于FPGA的高并行大吞吐量渗透测试方法,该方法包括以下步骤:
(1)网络测试人员使用任务配置模块配置并行测试目标及其参数,参数集合
S={Os,As,Rname,CVE}
其中,Os是渗透测试目标列表,As是选择的测试方法集合,Rname是日志保存文件路径,CVE是发现的漏洞集合,初始为空;
(2)任务编排模块根据Os和As构建测试任务集合Tid;
(3)任务编排模块从Tid中挑选若干任务Tid’,这些任务由渗透测试任务生成模块生成具体的渗透测试任务,将这些渗透测试任务的资源开销输入负载均衡模块;
(4)负载均衡模块基于负载均衡算法将渗透测试任务分配到编号1至n的板卡测试单元上,渗透测试任务和板卡测试单元间的映射用P表示;
(5)任务编排模块通过板卡管理模块将渗透测试任务及其对应的测试DAG图DAG(Tid’)下发至对应的板卡测试单元,每个任务根据DDR3缓存的测试DAG图进行测试数据的生成,再将生成的数据封装成数据报发送给被测目标;板卡测试单元接收被测目标反馈后,会解析关键信息,根据测试DAG图的信息决定下一个测试行动;
(6)被测目标反馈信息经过处理后会通过总线发送至任务编排模块;任务编排模块评估这些信息,如果信息足以发现被测试目标的漏洞,则进入下一步,否则持续对被测试目标执行当前测试;
(7)任务编排模块发现漏洞后,查找渗透测试图数据库中对应的测试DAG图,将新的DAG图更新到对应的板卡测试单元,开启漏洞测试进程;
(8)板卡测试单元会依据DDR3内存储的DAG图发送渗透测试数据,接收被渗透测试目标的反馈;如果渗透测试目标反馈信息能够由板卡测试单元处理,则进行下一步渗透测试;如果板卡测试单元不能处理,则将信息反馈给任务编排模块,待任务编排模块下发渗透测试命令后进行下一步渗透测试;如果渗透测试成功,则反馈成功报告及渗透测试成果;如果渗透测试失败,则反馈渗透测试失败报告;任务编排模块实时刷新各渗透测试任务执行情况,将相关统计信息呈现给用户。
在步骤(4)中,如图5所示,负载均衡模块基于负载均衡算法将渗透测试任务分配到编号1至n的板卡测试单元上的具体步骤为:
(1)输入新增渗透测试任务负载和各板卡测试单元负载;
(2)顺序查找各板卡测试单元是否存在剩余资源,若不存在,则切换渗透测试任务,返回步骤(1),若存在,则进入下一步;
(3)将渗透测试任务分别给空闲资源最大的板卡测试单元;
(4)判断新增任务队列是否为空,若为不为空,则切换渗透测试任务,返回步骤(1),若为空,则进入下一步;
(5)计算负载均衡评价指标,判断板卡测试单元是否负载均衡;若板卡测试单元负载均衡,则进入下一步,否则Rollback;
(6)将新的渗透测试任务和板卡测试单元的映射P发送至任务编排模块。
负载均衡模块将测试任务分配到各个板卡测试单元,使各个单元不会出现最大最小负载相差过大的情况。由于板卡可以同时安装多个物理端口,均衡的任务配置可以防止某个端口出现拥塞,实现测试数据流吞吐量达到最大。可以选择地,当不使用负载均衡算法时,即当前渗透测试任务数量L小于或等于n时,该模块直接将测试任务按顺序分配到编号从1至n的板卡测试单元上。当L大于n或者新增加测试任务时,需要运行负载均衡算法决定P。可以灵活选择负载是否均衡的评价指标,可选择但不限于各板卡测试单元负载的熵值、负载的方差等。以决策代价最小、计算速度最快的贪心方法为例,在增加新的测试任务时,先判断板卡是否存在剩余资源,否则不增加新的测试任务;如果有剩余资源,则在具有剩余资源的板卡测试单元中选择剩余资源最多的运行该任务。其次,可选择地,可以设定负载均衡的条件阈值,当不满足阈值条件时Rollback。若满足设定的要求,则按分配结果更新P,并将新的P发送给任务编排模块。
渗透测试需要进行测试数据的发送和反馈信息的分析,因此需要在板卡测试单元上实现测试交互,采用图形结构管理测试流程,本方法推荐但不限于DAG图来控制测试单元,也可采用状态机、树形结构等存储测试方法。DAG图是有向无环图,保证了测试任务可以在有限步骤内执行完,无环也可以避免潜在的逻辑环路,避免陷入死循环的任务无限消耗板卡资源。本方法采用两级测试DAG图的策略:渗透测试图数据库存储整个系统的完整测试DAG图,包含所有的测试策略和方法;板卡上缓存的测试DAG图是任务编排模块计算的子集,仅和当前测试任务相关,在执行完毕后会替换或删除,这主要取决于任务编排模块的策略。
测试DAG图可以表示为Gt=(Vs,Ere,e):Vs是测试DAG图中的节点,代表当前测试任务可能处于的状态集合;Ere是代表获得何种反馈信息的集合,代表从一个节点切换为另一个节点的条件,重点在于它是有向的三元组,包含初始节点、反馈信息和下一节点;e是每个任务节点的资源开销评估值,该值可用于任务编排模块计算各测试DAG子图的总体开销,评估各板卡测试单元总开销。板卡测试单元通过查找当前状态对应的节点在测试DAG图中的节点位置和反馈信息对应的Ere,计算出下一状态,按照,下一状态的测试内容发送数据。
与现有技术相比,本实施例提出的基于FPGA的高并行大吞吐量渗透测试系统及方法存在以下优点:
(1)基于FPGA的渗透测试数据发生器具有测试数据发生带宽大的优势,突破了软件自动化测试吞吐量小的瓶颈,测试速度更快,能够快速对大规模场景的漏洞进行测试;
(2)通过多个独立的板卡测试单元、多个高速端口支持高并发数测试,可以同时对多个目标进行不同的测试任务,从而更加灵活。可以实现多种测试方法的组合测试;
(3)能够在硬件板级进行交互式测试,通过缓存的测试控制图让每个测试单元能够进行测试交互,减少上层设备负担,具有更好的扩展性;
(4)通过统一的任务编排模块评估各测试任务的资源开销,进而进行负载均衡管理,最终在多个板卡测试单元上实现负载均衡,保证所有端口能够平衡使用,能够使吞吐量达到最大。
上述虽然结合附图对本发明的具体实施方式进行了描述,但并非对本发明保护范围的限制,所属领域技术人员应该明白,在本发明的技术方案的基础上,本领域技术人员不需要付出创造性劳动即可做出的各种修改或变形仍在本发明的保护范围以内。
Claims (10)
1.一种基于FPGA的高并发大流量渗透测试系统,其特征是,包括渗透测试板卡和处理器;
所述处理器包括任务配置模块、任务编排模块、渗透测试任务生成模块和渗透测试系统数据库,其中,
所述任务配置模块,负责配置并行测试目标及其参数;
所述任务编排模块,被配置为根据配置的测试目标的参数构建测试任务集合,从中选取一个或多个测试任务,由渗透测试任务生成模块生成一个或多个具体的渗透测试任务,从渗透测试系统数据库中获取渗透测试任务对应的测试DAG图,将渗透测试任务及其对应的测试DAG图发送至渗透测试板卡;
所述渗透测试板卡,接收渗透测试任务,根据存储的测试DAG图生成测试数据,封装成数据包发送至被测目标,并接收被测目标反馈的信息,解析出关键信息发送至任务编排模块。
2.根据权利要求1所述的基于FPGA的高并发大流量渗透测试架构,其特征是,所述任务编排模块还没配置为接收渗透测试板卡反馈的关键字段信息,并对其进行评估,若发现被测试目标的漏洞,查找渗透测试图数据库中对应的测试DAG图,将新的DAG图更新到对应的板卡测试单元,开启漏洞测试进程,查找渗透测试图数据库中对应的测试DAG图,更新测试DAG图,并发送至渗透测试板卡,接收渗透测试板卡上传的渗透测试结果;
所述渗透测试板卡还被配置为根据新的测试DAG图生成测试数据,封装成数据包发送至被测目标,并接收被测目标反馈的信息,并对其进行解析,得到渗透测试结果,并发送至任务编排模块;
所述渗透测试任务生成模块还被配置为对每个渗透测试任务分配当前测试阶段的标识符,并建立该标示符的日志。
3.根据权利要求1所述的基于FPGA的高并发大流量渗透测试架构,其特征是,所述渗透测试板卡包括板卡测试单元、协议栈、交换电路和网络端口;
所述板卡测试单元接收渗透测试任务,根据存储的测试DAG图生成测试数据,封装成数据包通过协议栈发送至交换电路,接收交换电路上传的被测目标反馈信息,并对其进行解析处理,得到关键字段信息,发送至任务编排模块;
所述交换电路通过网络端口与被测目标连接,将多个板卡测试单元产生的数据包通过网络端口发送至被测目标,接收被测目标反馈的信息,通过协议栈发送到对应板卡测试单元。
4.根据权利要求3所述的基于FPGA的高并发大流量渗透测试架构,其特征是,所述板卡测试单元包括接口电路、统计电路、接收存贮电路、DDR3存储器、第一包处理电路、第一CPU、协议解析电路、第二包处理电路、FPGA、第二CPU,所述接口电路接收渗透测试任务及对应的测试DAG图,通过接收存贮电路存储到DDR3存储器中;同时,通过统计电路和第一包处理电路发送至第一CPU,第一CPU根据测试DAG图生成测试数据,通过第一包处理电路封装成数据包,数据包通过协议解析电路发送至协议栈;所述FPGA通过协议解析电路接收协议栈上传的被测目标反馈信息,并对其进行解析处理,得到关键字段信息,通过第二CPU判断是否接收到被测目标反馈信息,若接收到,则通过第二包处理电路将被测目标反馈信息的关键字段信息封装成数据包,经过统计电路和接口电路发送至任务编排模块,同时,通过接收存贮电路存储到DDR3存储器中。
5.根据权利要求1所述的基于FPGA的高并发大流量渗透测试架构,其特征是,所述处理器还包括负载均衡模块,其接收任务编排模块计算的资源开销评估值,基于负载均衡算法将渗透测试任务均衡分配到各板卡测试单元,并将将渗透测试任务和板卡测试单元的映射发送至任务编排模块。
6.根据权利要求1所述的基于FPGA的高并发大流量渗透测试架构,其特征是,所述处理器还包括渗透测试系统数据库,所述渗透测试系统数据库至少包含并不限于基础数据库、渗透测试图数据库和渗透测试策略库;
所述基础数据库,被配置为存储用户账号和设备信息;
所述渗透测试图数据库,被配置为存储针对特定漏洞的渗透测试方案;
所述渗透测试策略库,被配置为存储整个渗透测试任务的预设信息、反馈信息和统计信息,其中,预设信息指大量拟定好的被渗透测试目标,反馈信息指被渗透测试目标反馈给设备的信息,统计信息指对多个渗透测试任务各渗透测试步骤的统计与监控信息。
7.根据权利要求1所述的基于FPGA的高并发大流量渗透测试架构,其特征是,所述服务器还包括系统日志模块、数据库接口模块和板卡管理模块;
所述系统日志模块,被配置为记录渗透测试系统出现的事件,包括错误、故障和调试事件;
所述数据库接口模块,被配置为给渗透测试系统数据库提供调用接口;
所述板卡管理模块,被配置为接收任务编排模块上传的渗透测试任务及其对应的测试DAG图,并发送至对应的板卡测试单元。
8.一种基于FPGA的高并发大流量渗透测试方法,其特征是,该方法包括以下步骤:
配置并行测试目标及其参数;
根据测试目标参数构建测试任务集合,从测试任务集合中挑选若干个测试任务,并生成具体的渗透测试任务;
基于负载均衡算法均衡分配渗透测试任务,从渗透测试图数据库中获取渗透测试任务对应的测试DAG图,基于测试DAG图生成测试数据,封装成数据包发送至被测目标;
接收被测目标反馈的信息,对被测目标反馈的信息进行解析,得到关键字段信息;
对关键字段信息进行评估,若发现被测目标存在漏洞,进行漏洞测试;
查找渗透测试图数据库中对应的测试DAG图,更新测试DAG图,基于更新后的测试DAG图生成测试数据,封装成数据包发送至被测目标;
接收被测目标反馈的信息,对被测目标反馈的信息进行解析,判断渗透测试是否成功,若成功,则生成渗透测试成功报告;否则生成渗透测试失败报告。
9.根据权利要求8所述的基于FPGA的高并发大流量渗透测试方法,其特征是,所述配置并行测试目标的参数集合为S={Os,As,Rname,CVE},
其中,Os是渗透测试目标列表,As是选择的测试方法集合,Rname是日志保存文件路径,CVE是发现的漏洞集合,初始为空。
10.根据权利要求8所述的基于FPGA的高并发大流量渗透测试方法,其特征是,所述基于负载均衡算法均衡分配渗透测试任务的步骤包括:
输入新增渗透测试任务负载和各板卡测试单元负载;
顺序查找各板卡测试单元是否存在剩余资源;
若不存在,则不增加新的渗透测试任务;若存在,则将渗透测试任务分别给剩余资源最大的板卡测试单元;
判断新增任务队列是否为空,若为不为空,则不增加新的渗透测试任务,若为空,则设定负载均衡的条件阈值,判断板卡测试单元负载均衡是否满足设定的阈值条件;
若板卡测试单元负载均衡满足设定的阈值条件,则将新的渗透测试任务和板卡测试单元的映射发送至任务编排模块。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810496665.4A CN108737213B (zh) | 2018-05-22 | 2018-05-22 | 一种基于fpga的高并行大吞吐量渗透测试系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810496665.4A CN108737213B (zh) | 2018-05-22 | 2018-05-22 | 一种基于fpga的高并行大吞吐量渗透测试系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108737213A true CN108737213A (zh) | 2018-11-02 |
CN108737213B CN108737213B (zh) | 2020-06-09 |
Family
ID=63937871
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810496665.4A Active CN108737213B (zh) | 2018-05-22 | 2018-05-22 | 一种基于fpga的高并行大吞吐量渗透测试系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108737213B (zh) |
Cited By (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785224A (zh) * | 2019-01-29 | 2019-05-21 | 华中科技大学 | 一种基于fpga的图数据处理方法和系统 |
CN110413525A (zh) * | 2019-07-29 | 2019-11-05 | 国网新疆电力有限公司电力科学研究院 | 安全测试方法及装置 |
CN111541693A (zh) * | 2020-04-23 | 2020-08-14 | 北京凌云信安科技有限公司 | 面向多类系统的自动化渗透测试与数据取证系统 |
CN112214325A (zh) * | 2020-10-20 | 2021-01-12 | 杭州电子科技大学 | Fpga任务动态编排方法、装置、芯片和存储介质 |
CN112651199A (zh) * | 2020-12-24 | 2021-04-13 | 山东高云半导体科技有限公司 | 质量验证平台和质量验证方法 |
CN113377591A (zh) * | 2021-06-18 | 2021-09-10 | 杭州加速科技有限公司 | 一种提升ate设备芯片测试速度的方法、装置 |
CN113608092A (zh) * | 2021-06-28 | 2021-11-05 | 臻驱科技(上海)有限公司 | 一种双脉冲测试系统 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242279A (zh) * | 2008-03-07 | 2008-08-13 | 北京邮电大学 | 用于web系统的自动化渗透性测试系统和方法 |
CN102546639A (zh) * | 2012-01-12 | 2012-07-04 | 北京航空航天大学 | 一种面向网络的渗透测试方案自动生成方法 |
CN103870334A (zh) * | 2012-12-18 | 2014-06-18 | 中国移动通信集团公司 | 一种大规模漏洞扫描的任务分配方法及装置 |
CN104301304A (zh) * | 2014-09-16 | 2015-01-21 | 赛尔网络有限公司 | 基于大型isp互联口的漏洞检测系统及其方法 |
CN105183644A (zh) * | 2015-08-20 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种多任务集成自动化测试系统及方法 |
CN105516177A (zh) * | 2015-12-28 | 2016-04-20 | 上海交通大学 | 基于sdn和nfv的5g网络多级攻击缓解方法 |
CN105827642A (zh) * | 2016-05-16 | 2016-08-03 | 深圳市安络科技有限公司 | 一种自动化渗透测试方法及系统 |
CN107046526A (zh) * | 2016-12-28 | 2017-08-15 | 北京邮电大学 | 基于Fuzzing算法的分布式异构网络漏洞挖掘方法 |
US20180089437A1 (en) * | 2016-09-23 | 2018-03-29 | International Business Machines Corporation | Automated security testing for a mobile application or a backend server |
CN107948305A (zh) * | 2017-12-11 | 2018-04-20 | 北京百度网讯科技有限公司 | 漏洞扫描方法、装置、设备及计算机可读介质 |
-
2018
- 2018-05-22 CN CN201810496665.4A patent/CN108737213B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101242279A (zh) * | 2008-03-07 | 2008-08-13 | 北京邮电大学 | 用于web系统的自动化渗透性测试系统和方法 |
CN102546639A (zh) * | 2012-01-12 | 2012-07-04 | 北京航空航天大学 | 一种面向网络的渗透测试方案自动生成方法 |
CN103870334A (zh) * | 2012-12-18 | 2014-06-18 | 中国移动通信集团公司 | 一种大规模漏洞扫描的任务分配方法及装置 |
CN104301304A (zh) * | 2014-09-16 | 2015-01-21 | 赛尔网络有限公司 | 基于大型isp互联口的漏洞检测系统及其方法 |
CN105183644A (zh) * | 2015-08-20 | 2015-12-23 | 上海斐讯数据通信技术有限公司 | 一种多任务集成自动化测试系统及方法 |
CN105516177A (zh) * | 2015-12-28 | 2016-04-20 | 上海交通大学 | 基于sdn和nfv的5g网络多级攻击缓解方法 |
CN105827642A (zh) * | 2016-05-16 | 2016-08-03 | 深圳市安络科技有限公司 | 一种自动化渗透测试方法及系统 |
US20180089437A1 (en) * | 2016-09-23 | 2018-03-29 | International Business Machines Corporation | Automated security testing for a mobile application or a backend server |
CN107046526A (zh) * | 2016-12-28 | 2017-08-15 | 北京邮电大学 | 基于Fuzzing算法的分布式异构网络漏洞挖掘方法 |
CN107948305A (zh) * | 2017-12-11 | 2018-04-20 | 北京百度网讯科技有限公司 | 漏洞扫描方法、装置、设备及计算机可读介质 |
Non-Patent Citations (1)
Title |
---|
崔颖: "基于攻击图的渗透测试方案自动生成方法", 《计算机应用》 * |
Cited By (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109785224A (zh) * | 2019-01-29 | 2019-05-21 | 华中科技大学 | 一种基于fpga的图数据处理方法和系统 |
CN110413525A (zh) * | 2019-07-29 | 2019-11-05 | 国网新疆电力有限公司电力科学研究院 | 安全测试方法及装置 |
CN111541693A (zh) * | 2020-04-23 | 2020-08-14 | 北京凌云信安科技有限公司 | 面向多类系统的自动化渗透测试与数据取证系统 |
CN112214325A (zh) * | 2020-10-20 | 2021-01-12 | 杭州电子科技大学 | Fpga任务动态编排方法、装置、芯片和存储介质 |
CN112214325B (zh) * | 2020-10-20 | 2024-07-23 | 杭州电子科技大学 | Fpga任务动态编排方法、装置、芯片和存储介质 |
CN112651199A (zh) * | 2020-12-24 | 2021-04-13 | 山东高云半导体科技有限公司 | 质量验证平台和质量验证方法 |
CN112651199B (zh) * | 2020-12-24 | 2023-08-29 | 山东高云半导体科技有限公司 | 质量验证平台和质量验证方法 |
CN113377591A (zh) * | 2021-06-18 | 2021-09-10 | 杭州加速科技有限公司 | 一种提升ate设备芯片测试速度的方法、装置 |
CN113377591B (zh) * | 2021-06-18 | 2022-05-13 | 杭州加速科技有限公司 | 一种提升ate设备芯片测试速度的方法、装置 |
CN113608092A (zh) * | 2021-06-28 | 2021-11-05 | 臻驱科技(上海)有限公司 | 一种双脉冲测试系统 |
Also Published As
Publication number | Publication date |
---|---|
CN108737213B (zh) | 2020-06-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108737213A (zh) | 一种基于fpga的高并行大吞吐量渗透测试系统及方法 | |
CN109995650B (zh) | 基于sdn网络的多维约束下路径计算方法及装置 | |
CN108228724A (zh) | 基于图数据库的电网gis拓扑分析方法及存储介质 | |
CN103685583A (zh) | 一种域名解析的方法和系统 | |
CN112817856B (zh) | Ab实验集成方法及系统 | |
US11681606B2 (en) | Automatic configuration of logging infrastructure for software deployments using source code | |
CN109995580A (zh) | 5g网络切片中基于ga_pso混合算法的vn映射方法 | |
CN108563697A (zh) | 一种数据处理方法、装置和存储介质 | |
Houidi et al. | Dynamic VNF forwarding graph extension algorithms | |
Nguyen et al. | An intelligent parallel algorithm for online virtual network embedding | |
CN112231230A (zh) | 一种测试用例管理方法、装置、电子设备及存储介质 | |
CN109905492A (zh) | 基于分布式模块化数据中心的安全运营管理系统及方法 | |
CN114389792A (zh) | 一种web日志nat前后关联方法及系统 | |
CN104268665A (zh) | 一种管理系统用户行为分析方法 | |
CN108347465B (zh) | 一种选择网络数据中心的方法及装置 | |
CN115297024B (zh) | 网络安全设备的性能测试方法、装置及电子设备 | |
CN108351795A (zh) | 用于映射虚拟机通信路径的方法和系统 | |
CN108574957A (zh) | 演进分组核心网设备智能巡检服务器、巡检系统及方法 | |
CN104391782A (zh) | 基于xml脚本的网络设备管理软件客户端模拟方法 | |
CN109412898A (zh) | 特征数据库生成方法和装置及对应的流量分拣方法和装置 | |
Shahin | Memetic elitist Pareto evolutionary algorithm for virtual network embedding | |
US11526492B2 (en) | Sorted insertion in databases | |
CN1540929A (zh) | 一种分布式网络主动测试结果存储方法 | |
Wang et al. | A cloud-pattern based network traffic analysis platform for passive measurement | |
Pan et al. | Fault Management Platform based on Knowledge Graph in Network Slicing Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |