发明内容
本申请提供一种网络靶场分布式流量生成方法、装置,以可以实现将流量发生程序部署在容器中均有简单高效的特性,为大规模/分布式的流量生成做好铺垫;通过容器集中管理,实现流程生成策略的集中管理,简化管理提升了网络靶场的效率;通过集中的交换管控,实现灵活的场景接入,可支撑复杂场景下的流量构建。
第一方面,本申请提供了一种网络靶场分布式流量生成方法,所述方法应用于网络靶场分布式流量生成系统,所述方法包括:
根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务;
根据所述流量任务和所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量以及配置文件;
根据所述目标靶场任务场景对应的靶场的场景资源信息和所述目标流量发生单元的数量,确定目标流量发生单元;
将所述配置文件和所述流量任务向所述目标流量发生单元发送,以便所述目标流量单元根据所述配置文件执行所述流量任务,得到反馈流量数据;
若所述反馈流量数据满足预设条件,则确定所述目标靶场任务对应的流量任务已完成。
第二方面,本申请提供了一种网络靶场分布式流量生成装置,所述装置应用于网络靶场分布式流量生成系统,所述装置包括:
任务生成单元,用于根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务;
配置确定单元,用于根据所述流量任务和所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量以及配置文件;
单元确定单元,用于根据所述目标靶场任务场景对应的靶场的场景资源信息和所述目标流量发生单元的数量,确定目标流量发生单元;
数据确定单元,用于将所述配置文件和所述流量任务向所述目标流量发生单元发送,以便所述目标流量单元根据所述配置文件执行所述流量任务,得到反馈流量数据;
任务确定单元,用于若所述反馈流量数据满足预设条件,则确定所述目标靶场任务对应的流量任务已完成。
第三方面,本申请提供了一种可读介质,包括执行指令,当电子设备的处理器执行所述执行指令时,所述电子设备执行如第一方面中任一所述的方法。
第四方面,本申请提供了一种电子设备,包括处理器以及存储有执行指令的存储器,当所述处理器执行所述存储器存储的所述执行指令时,所述处理器执行如第一方面中任一所述的方法。
由上述技术方案可以看出,本申请提供了一种网络靶场分布式流量生成方法,所述方法应用于网络靶场分布式流量生成系统,所述方法包括:根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务;根据所述流量任务和所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量以及配置文件;根据所述目标靶场任务场景对应的靶场的场景资源信息和所述目标流量发生单元的数量,确定目标流量发生单元;将所述配置文件和所述流量任务向所述目标流量发生单元发送,以便所述目标流量单元根据所述配置文件执行所述流量任务,得到反馈流量数据;若所述反馈流量数据满足预设条件,则确定所述目标靶场任务对应的流量任务已完成。本申请的方法可以将流量发生程序部署在容器中均有简单高效的特性,为大规模/分布式的流量生成做好铺垫;通过容器集中管理,实现流程生成策略的集中管理,简化管理提升了网络靶场的效率;通过集中的交换管控,实现灵活的场景接入,可支撑复杂场景下的流量构建。
上述的非惯用的优选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
为使本申请的目的、技术方案和优点更加清楚,下面将结合具体实施例及相应的附图对本申请的技术方案进行清楚、完整地描述。显然,所描述的实施例仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
下面结合附图,详细说明本申请的各种非限制性实施方式。
在本实施例中,所述方法可以应用于如图1所示的网络靶场分布式流量生成系统,如图1所示,网络靶场分布式流量生成系统可以包括:控制节点、若干个计算节点、交换机。控制节点中的管理网卡、业务网卡与交换机连接,若干个计算节点中均通过管理网卡和业务网卡与交换机连接,这样,控制节点可以与计算节点通过交换机建立连接,其中,交换机可以为openflow交换机。
控制节点包括场景配置管理模块、流量单元管理模块、交换设备管理模块、流量包管理模块。其中,场景配置管理模块为网络靶场的基本模块,负责场景的构建,包括流量任务的定义,下发到流量单元管理模块、交换设备管理模块配置要求,提供网络靶场和流量的对接,提供流量所需的环境信息、网络接入信息以及任务要求。其中,流量单元管理模块是统筹性功能模块,用于将流量任务进行分解,并细化到每个流量发生单元,形成具体的可执行配置文件,交付给容器管理程序,同时对执行情况进行跟进,接收交换设备管理模块的反馈信息,形成调度更新下发。其中,交换设备管理模块使用openflow协议,和各实体交换机(即交换机)和计算节点中的虚拟交换机建立链接,并同步下流量发生单元的流表,实现流量发生单元虚拟网卡和虚拟交换机的接口定义,以及某个流量发生单元的网络流量到场景虚拟机(假定)的流表定义,同时要对网络流量进行监控,提供流量监控信息反馈给流量单元管理模块;其中,流量包管理模块提供集中的网络PCAP包的远程调用。
每个计算节点,包括流量发生单元、容器管理程序、虚拟机、虚拟交换机,虚拟机包括目标靶场任务场景,流量发生单元、容器管理程序、虚拟机通过虚拟网卡与虚拟交换机(例如openflow交换机)连接。其中,容器管理程序部署在计算节点(宿主机)上,可实现docker容器的管理,比如容器的克隆、创建、启停、运行监控,并下发容器里面程序的配置文件。其中,流量发生单元,指部署了流量发生软件的docker,具备完善的流量发生软件的基本环境(不需要操作系统),可自动加载内部或外部的配置文件,远程调用流量数据包,执行后生成的流量,可通过虚拟网卡发往指定的设备。
其中,核心模块为:流量管理单元模块、容器管理程序、流量发生单元;其他为辅助;其中,场景配置模块在这套系统和场景的关联关系定义,流量包管理模块为存储所需的流量包的服务;其中,交换设备管理模块为网络靶场基本模块,是网络构建的模块。流量管理单元为集中管控、容器管理程序为中间层的执行单元,流量发生单元为直接的流量生成最小单元。
通过流量发生单元(部署流量发生软件的容器docker并配置虚拟网卡)部署在所需的计算节点上,通过SDN交换机实现灵活网络靶场场景接入,通过集中的流量配置管理实现所有流量发生单元的管控,远程调用流量资源中的PCAP数据包,并本地执行流量发生软件生成网络流量,通过监控SDN交换机和计算节点资源,重新进行流量发生单元的灵活调用和分配,实现分布式的流量生成和接入应用。需要说明的是,分布式的流量发生软件执行环境的部署、集中统一的配置和任务管理调度、分布式流量发生后的流量集中接入管控。
通过场景配置管理模块,描述场景所需的流量需求;并下发给流量管理单元模块,通过解析和关联,形成流量生成执行方案,并下发给计算节点的容器管理程序,容器管理程序创建流量发生单元(容器)配置网络并接入虚拟交换机,流量发生单元获取流量执行任务配置文件,并远程获取资源文件(流量包管理模块中的Pcap数据包),交换设备管理模块根据获取的流量发生单元网络接入信息,配置网络接口和流表,实现流量和场景的对接,同时采集场景流量情况反馈给流量管理模块,是否需要进行调整至到任务结束。
本申请的方法可以包括以下步骤:
S201:根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务。
所述网络靶场分布式流量生成系统包括控制节点,其中,所述控制节点中包括场景配置管理模块。具体地,可以利用场景配置管理模块根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务,流量任务可以包括流量类别(背景流量、攻击流量等)、流量类型(背景流量包括web访问、ftp访问、数据库访问等)、流量对象、流量规格。即,所述目标靶场任务对应的流量任务包括:流量类别、流量类型、流量对象和流量规格。
也就是说,如图3所示,可以通过配置靶场任务场景调用流量发生单元实现网络所需流量的生成,定义包括流量类别(背景流量、攻击流量等),流量类型(背景流量包括web访问、ftp访问、数据库访问等),对应到流量包管理模块的内容;流量对象,即网络靶场的受众设备,某个web服务或网关设备或者流量分析设备,实现和受众设备的网络对接;流量规格,即所需要的流量带宽大小、发送的频率、次数等内容。也就是定义:那个场景的什么设备需要流量,需要什么样的流量,以什么方式给。
S202:根据所述流量任务和所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量以及配置文件。
所述网络靶场分布式流量生成系统包括控制节点,其中,所述控制节点中包括流量单元管理模块。具体地,可以利用所述流量单元管理模块对所述流量任务进行分解,并根据所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量,以及,配置文件。也就是说,如图3所示,利用所述流量单元管理模块对所述流量任务进行细化,可以根据每个流量发生单元的预期性能,初步判定需要多少个流量发生单元(即确定目标流量发生单元的数量),调用哪些pcap数据包文件(在什么地方),确定流量中的核心元素(协议类型、IP地址、MAC地址等),对原始的PCAP数据包进行哪些修订,形成pcap提取和修订配置参数,即配置文件。
S203:根据所述目标靶场任务场景对应的靶场的场景资源信息和所述目标流量发生单元的数量,确定目标流量发生单元。
具体地,可以基于所述目标靶场任务场景对应的靶场的场景资源信息,确定与目标靶场的距离小于预设距离的流量发生单元;并根据所述目标流量发生单元的数量,在所述与目标靶场的距离小于预设距离的流量发生单元中确定目标流量发生单元。即如图3所示,可以确定当前的资源可用性,收集所在靶场的场景资源情况,优先就近安排流量生成任务和配置文件,并通知交换配置,便于网络接入。
S204:将所述配置文件和所述流量任务向所述目标流量发生单元发送,以便所述目标流量单元根据所述配置文件执行所述流量任务,得到反馈流量数据。
具体地,可以利用交换机将所述配置文件和所述流量任务向所述目标流量发生单元中的容器管理程序发送;所述目标流量发生单元中的容器管理程序收到所述配置文件和所述流量任务后,启动所述目标流量发生单元根据所述配置文件和所述流量任务,获取对应的流量包管理模块中的PCAP数据包,并根预设修订要求,在流量生成时进行编辑修订,得到反馈流量数据。
也就是说,如图3所示,流量任务和配置文件下发后,启动一个/多个网络流量发生单元,并根据配置任务要求(即配置文件),获取远程的PCAP数据包,并根修订要求,在流量生成时进行编辑修订,得到反馈流量数据,然后发送到虚拟网卡。
S205:若所述反馈流量数据满足预设条件,则确定所述目标靶场任务对应的流量任务已完成。
具体地,若所述反馈流量数据满足预设性能指标,则确定所述目标靶场任务对应的流量任务已完成,例如根据反馈数据核实流量任务达成情况(如性能指标),如存在超过30%的偏差,告警提示可手动增加流量发生单元,直到任务完成。
由上述技术方案可以看出,本申请提供了一种网络靶场分布式流量生成方法,所述方法应用于网络靶场分布式流量生成系统,所述方法包括:根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务;根据所述流量任务和所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量以及配置文件;根据所述目标靶场任务场景对应的靶场的场景资源信息和所述目标流量发生单元的数量,确定目标流量发生单元;将所述配置文件和所述流量任务向所述目标流量发生单元发送,以便所述目标流量单元根据所述配置文件执行所述流量任务,得到反馈流量数据;若所述反馈流量数据满足预设条件,则确定所述目标靶场任务对应的流量任务已完成。本申请的方法可以将流量发生程序部署在容器中均有简单高效的特性,为大规模/分布式的流量生成做好铺垫;通过容器集中管理,实现流程生成策略的集中管理,简化管理提升了网络靶场的效率;通过集中的交换管控,实现灵活的场景接入,可支撑复杂场景下的流量构建。
如图4所示,为本申请所述网络靶场分布式流量生成装置的一个具体实施例。本实施例所述装置,即用于执行上述实施例所述方法的实体装置。其技术方案本质上与上述实施例一致,上述实施例中的相应描述同样适用于本实施例中。本实施例中所述装置包括:
任务生成单元401,用于根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务;
配置确定单元402,用于根据所述流量任务和所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量以及配置文件;
单元确定单元403,用于根据所述目标靶场任务场景对应的靶场的场景资源信息和所述目标流量发生单元的数量,确定目标流量发生单元;
数据确定单元404,用于将所述配置文件和所述流量任务向所述目标流量发生单元发送,以便所述目标流量单元根据所述配置文件执行所述流量任务,得到反馈流量数据;
任务确定单元405,用于若所述反馈流量数据满足预设条件,则确定所述目标靶场任务对应的流量任务已完成。
可选的,所述网络靶场分布式流量生成系统包括控制节点,其中,所述控制节点中包括场景配置管理模块;所述任务生成单元401,用于:
利用场景配置管理模块根据目标靶场任务场景,生成所述目标靶场任务对应的流量任务。
可选的,所述目标靶场任务对应的流量任务包括:流量类别、流量类型、流量对象和流量规格。
可选的,所述网络靶场分布式流量生成系统包括控制节点,其中,所述控制节点中包括流量单元管理模块;所述配置确定单元402,用于:
利用所述流量单元管理模块对所述流量任务进行分解,并根据所述网络靶场分布式流量生成系统中的若干计算节点中的流量发生单元的预设性能,确定目标流量发生单元的数量,以及,配置文件。
可选的,所述单元确定单元403,用于:
基于所述目标靶场任务场景对应的靶场的场景资源信息,确定与目标靶场的距离小于预设距离的流量发生单元;并根据所述目标流量发生单元的数量,在所述与目标靶场的距离小于预设距离的流量发生单元中确定目标流量发生单元。
可选的,所述数据确定单元404,用于:
利用交换机将所述配置文件和所述流量任务向所述目标流量发生单元中的容器管理程序发送;
所述目标流量发生单元中的容器管理程序收到所述配置文件和所述流量任务后,启动所述目标流量发生单元根据所述配置文件和所述流量任务,获取对应的流量包管理模块中的PCAP数据包,并根预设修订要求,在流量生成时进行编辑修订,得到反馈流量数据。
可选的,所述任务确定单元405,用于:
若所述反馈流量数据满足预设性能指标,则确定所述目标靶场任务对应的流量任务已完成。
图5是本申请实施例提供的一种电子设备的结构示意图。在硬件层面,该电子设备包括处理器,可选地还包括内部总线、网络接口、存储器。其中,存储器可能包含内存,例如高速随机存取存储器(Random-Access Memory,RAM),也可能还包括非易失性存储器(non-volatile memory),例如至少1个磁盘存储器等。当然,该电子设备还可能包括其他业务所需要的硬件。
处理器、网络接口和存储器可以通过内部总线相互连接,该内部总线可以是ISA(Industry StandardArchitecture,工业标准体系结构)总线、PCI(Peripheral ComponentInterconnect,外设部件互连标准)总线或EISA(Extended IndustryStandardArchitecture,扩展工业标准结构)总线等。所述总线可以分为地址总线、数据总线、控制总线等。为便于表示,图5中仅用一个双向箭头表示,但并不表示仅有一根总线或一种类型的总线。
存储器,用于存放执行指令。具体地,执行指令即可被执行的计算机程序。存储器可以包括内存和非易失性存储器,并向处理器提供执行指令和数据。
在一种可能实现的方式中,处理器从非易失性存储器中读取对应的执行指令到内存中然后运行,也可从其它设备上获取相应的执行指令,以在逻辑层面上形成网络靶场分布式流量生成装置。处理器执行存储器所存放的执行指令,以通过执行的执行指令实现本申请任一实施例中提供的网络靶场分布式流量生成方法。
上述如本申请图2所示实施例提供的网络靶场分布式流量生成装置执行的方法可以应用于处理器中,或者由处理器实现。处理器可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器可以是通用处理器,包括中央处理器(CentralProcessing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific IntegratedCircuit,ASIC)、现场可编程门阵列(Field-Programmable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
结合本申请实施例所公开的方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。
本申请实施例还提出了一种可读介质,该可读存储介质存储有执行指令,存储的执行指令被电子设备的处理器执行时,能够使该电子设备执行本申请任一实施例中提供的网络靶场分布式流量生成方法,并具体用于执行上述网络靶场分布式流量生成的方法。
前述各个实施例中所述的电子设备可以为计算机。
本领域内的技术人员应明白,本申请的实施例可提供为方法或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例,或软件和硬件相结合的形式。
本申请中的各个实施例均采用递进的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
还需要说明的是,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、商品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、商品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、商品或者设备中还存在另外的相同要素。
以上所述仅为本申请的实施例而已,并不用于限制本申请。对于本领域技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原理之内所作的任何修改、等同替换、改进等,均应包含在本申请的权利要求范围之内。