一种网络靶场并发流量动态生成系统及方法与流程

文档序号:30057924发布日期:2022-05-17 19:41阅读:140来源:国知局
一种网络靶场并发流量动态生成系统及方法与流程

1.本发明涉及一种网络靶场并发流量动态生成系统及方法,属于网络安全、计算机软件领域。


背景技术:

2.网络靶场(cyber range)是一种基于虚拟化技术,对真实网络空间中的网络架构、系统设备、业务流程的运行状态及运行环境进行模拟和复现的技术或产品,以更有效地实现与网络安全相关的学习、研究、检验、竞赛、演习等行为,从而提高人员及机构的网络安全对抗水平。
3.真实的网络环境中,每时每刻都不是静止的,每分每秒都有人浏览网页、聊天、刷视频、打游戏等。所以当网络靶场的目标网络生成后,还需要模拟这些行为和活动流量,从而使靶场的网络环境更接近真实的场景。
4.靶场环境中产生的流量分为单向流量和交互流量,单向流量即由流量生成工具生成流量,然后发送到目标机器上即可;交互流量即由节点1发送流量给节点2,节点2收到后回复节点1,需要实现两个节点之间的流量交互。
5.目前网络靶场中产生流量的方式主要有两种,其一是图1所示的单向流量,该流量由靶场平台发送指令给流量执行器,然后由流量执行器生成并发送到目标节点上。其二是图2所示的交互流量,节点1和节点2中分别部署了一套流量执行器,当靶场平台分别向节点1和节点2发送指令后,两个节点中的流量执行器会根据既定的程序进行流量的发送和响应,从而实现两个节点之间交互流量的模拟。
6.这两种方式生成流量目前存在以下几个弊端:一是各自只能生成单向流量或者交互流量,靶场中需要同时生成单向流量和交互流量时,需要同时部署两套系统,资源开销较大。
7.二是这两种方式产生流量,一般都是提前录制好pcap流量包,生成流量时直接回放pcap流量包中的内容,或者通过数学统计模型,模仿真实世界的流量特征来虚拟流量。这就导致生成的流量数据相对比较固定,有一定的主观性,没有真实环境中流量那么随机和灵活。
8.三是交互流量需要每个节点上都部署流量执行器,当靶场网络环境复杂时,可能有成百上千台机器进行流量交互,如果每台机器都部署流量执行器,会对运维和实施造成极大压力。
9.四是流量生成时,由于网卡的限制,没有那么多的ip,无法有效模拟真实场景中批量ip的场景,形成一定规模的流量。


技术实现要素:

10.发明目的:针对以上现有技术存在的问题,本发明目的在于提供一种网络靶场并发流量动态生成系统及方法,可以同时支持单向流量和交互流量的生成,以及支持动态流
量的生成,提高生成流量的随机性、灵活性,部署维护的便捷性,并且进一步地还能够实现一定规模ip的流量模拟。
11.技术方案:为实现上述发明目的,本发明采用如下技术方案:一种网络靶场并发流量动态生成系统,包括靶场平台、资源服务器和流量执行器,所述靶场平台,用于管理流量文件和流量任务,所述流量任务包括静态任务和动态任务;所述静态任务指定流量文件,支持向一个或多个目标节点发送单向流量,以及向一对或多对目标节点发送交互流量;所述动态任务支持根据传入的参数动态生成流量;所述资源服务器,用于存储流量文件;所述流量执行器,用于执行所属靶场环境的流量任务,所述流量执行器上创建有多个虚拟网口,每个虚拟网口分别与靶场环境中的一个网段连通;所述流量执行器中部署有流量生成服务,所述流量生成服务通过与虚拟网口绑定的客户端向流量任务指定的目标节点发送流量,在多个目标节点的网段重复时,通过共享客户端进程的方式进行网口复用。
12.作为优选,所述流量生成服务启动时会开启一个服务端的守护进程,用于管理所有的虚拟网口并监听客户端的流量生成请求;当收到流量任务执行命令后,先创建一个流量执行客户端,客户端根据任务配置文件生成流量执行配置文件,然后将流量生成请求发送给服务端,服务端根据流量执行配置文件生成实际的流量。
13.作为优选,所述靶场平台设有流量文件管理模块,用于管理流量文件,包括pcap流量包和生成流量的脚本文件,所述流量文件供所有靶场环境使用;以及流量任务管理模块,用于管理流量任务,对于静态单向任务,配置任务关联的流量文件和任务运行参数,并选择一个或多个目标节点;对于静态交互任务,配置任务关联的pcap流量包,并选择一对或多对目标节点;对于动态任务,创建任务时选择一个或多个目标节点,执行任务时,配置一个或多个需要生成的流量协议,并填入流量内容。
14.作为优选,所述流量执行器在生成实际的流量时,对于静态单向任务,从资源服务器中下载任务关联的流量文件,执行流量文件,向目标节点发送流量;对于静态交互任务,从资源服务器中下载任务关联的流量文件,根据配置文件分别指定每对目标节点的请求端和响应端,获取任务关联的pcap流量包请求和响应数据,替换数据中的ip,并按顺序发送请求数据和响应数据,来模拟目标节点之间的流量交互;对于动态任务,解析请求中的流量协议和流量内容,然后将流量协议和内容构造成流量数据,向目标节点发送流量。
15.作为优选,对于静态交互任务,当任务关联多个pcap流量包时,采用多线程同时处理的方式生成实际的流量。
16.作为优选,所述流量执行器通过绑定的虚拟网口向目标节点发送流量时,将流量文件的来源ip替换成虚拟网口对应网段的ip,用一个网口或多个网口实现批量ip的并发流量模拟。
17.一种网络靶场并发流量动态生成方法,包括如下步骤:靶场平台接收用户上传的流量文件,并存储到资源服务器;靶场平台接收用户为靶场环境创建的流量任务,所述流量任务包括静态任务和动态任务;所述静态任务指定流量文件,支持向一个或多个目标节点发送单向流量,以及向一对或多对目标节点发送交互流量;所述动态任务支持根据传入的参数动态生成流量;靶场平台向靶场环境的流量执行器下发执行流量任务的指令,流量执行器上的流
量生成服务生成实际的流量,并通过与流量执行器上虚拟网口绑定的客户端向流量任务指定的目标节点发送流量;所述流量执行器上创建有多个虚拟网口,每个虚拟网口分别与靶场环境中的一个网段连通;在多个目标节点的网段重复时,通过共享客户端进程的方式进行网口复用。
18.作为优选,用户创建流量任务时,对于静态单向任务,配置任务关联的流量文件和任务运行参数,并选择一个或多个目标节点;对于静态交互任务,配置任务关联的pcap流量包,并选择一对或多对目标节点;对于动态任务,创建任务时选择一个或多个目标节点,执行任务时,再配置一个或多个需要生成的流量协议,并填入流量内容。
19.作为优选,所述流量执行器在生成实际的流量时,对于静态单向任务,从资源服务器中下载任务关联的流量文件,执行流量文件,向目标节点发送流量;对于静态交互任务,从资源服务器中下载任务关联的流量文件,根据配置文件分别指定每对目标节点的请求端和响应端,获取任务关联的pcap流量包请求和响应数据,替换数据中的ip,并按顺序发送请求数据和响应数据,来模拟目标节点之间的流量交互;对于动态任务,解析请求中的流量协议和流量内容,然后将流量协议和内容构造成流量数据,向目标节点发送流量。
20.有益效果:与现有技术相比,本发明具有如下优点:1. 本发明能够同时支持单向流量和交互流量的生成,简化了系统部署,节省了资源开销。
21.2. 本发明通过对流量生成服务客户端的共享,实现了网口复用,从而可以利用一个网口同时向多个目标节点发送流量,同时由于客户端的共享,使得客户端可以随时接收动态流量执行请求,生成相应的动态流量,实现了流量并发执行的同时,也提升了流量的随机性和灵活性。
22.3. 本发明针对每个靶场环境,可以部署一个或多个独立的流量执行器,靶场环境中的目标节点上不必再单独部署流量生成服务,大大降低了复杂网络场景下运维和实施的压力。
23.4. 本发明使用虚拟网口与目标网络连通,通过修改流量数据来源ip和目标ip以及对网口的复用,可以实现批量ip的模拟,生成一定规模的流量。
附图说明
24.图1为现有单向流量生成系统示意图。
25.图2为现有交互流量生成系统示意图。
26.图3为本发明实施例的并发流量动态生成系统示意图。
具体实施方式
27.下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本技术所附权利要求所限定的范围。
28.如图3所示,本发明实施例公开的一种网络靶场并发流量动态生成系统,主要包括靶场平台、资源服务器和流量执行器等。靶场平台,管理至少一个靶场环境,本发明实施例中主要用于管理流量文件和流量任务;资源服务器主要用于存储不同靶场环境生成流量所
需的流量文件;流量执行器主要用于执行所属靶场环境的流量任务。本发明支持的流量任务包括静态任务和动态任务,静态任务指定流量文件,支持向一个或多个目标节点发送单向流量(静态单向任务),以及向一对或多对目标节点发送交互流量(静态交互任务);动态任务则不需指定流量文件,支持根据传入的参数动态生成流量。
29.用户通过pc浏览器登陆靶场平台对靶场环境进行管理,配置好靶场后,可以启动靶场环境,靶场环境中会有至少一台虚拟机和网络设备,其中的虚拟机都可以作为生成流量的目标节点。靶场环境启动的同时,会启动该靶场关联的流量执行器(也是一台虚拟机),并启动其中的流量生成服务,然后根据靶场环境中虚拟机的网段数量,在流量执行器中创建对应数量的虚拟网口,每个虚拟网口分别与一个网段的网络打通,从而实现流量执行器向靶场环境中各个目标节点发送流量。
30.流量执行器可以接收靶场平台参数,根据配置执行流量文件生成流量,从而实现通过绑定的虚拟网口向目标节点发送流量;同时也可以接收靶场平台传过来的协议信息、流量内容,通过代码动态生成相应的流量信息。通过绑定的虚拟网口向目标节点发送流量时,可以将流量文件的来源ip替换成该网口对应网段的任意ip,通过对网口的复用,可以用一个网口或多个网口实现一定规模ip的并发流量模拟。流量执行器执行流量时,通过对流量执行进程的共享,使得流量执行时,依然可以接收靶场平台的指令,运行流量生成代码,从而可以随时向目标节点添加新的流量信息。
31.具体地,靶场平台设有流量文件管理、流量任务管理等模块。流量文件管理模块,用于用户管理流量文件,可以上传pcap流量包或脚本文件,保存后将流量文件上传到资源服务器,同时靶场平台会保存流量文件信息。流量任务管理模块,用于用户管理流量任务,可以根据需要新建、编辑或执行不同类型的流量任务。流量任务分为静态和动态任务,静态任务是指流量文件已经确定了,生成流量时直接执行对应的流量文件,动态任务指没有固定的流量文件,执行流量任务时,根据传入的参数通过代码动态生成流量。静态任务又分为单向和交互任务,单向任务需要配置流量执行时间、执行时长、关联的流量文件以及目标节点;交互流量任务需要配置流量执行时间、执行时长,关联的流量文件只支持pcap流量包,目标节点可以选择一对或者多对,每对节点关联一个pcap,相互之间使用该pcap流量包模拟流量交互。动态任务只需要配置一个或多个目标节点,用于接收动态生成的流量。
32.基于上述系统,本发明实施例公开的一种网络靶场并发流量动态生成方法,包括:靶场平台接收用户上传的流量文件,并存储到资源服务器;靶场平台接收用户为靶场环境创建的流量任务;靶场平台向靶场环境的流量执行器下发执行流量任务的指令,流量执行器上的流量生成服务生成实际的流量,并通过与流量执行器上虚拟网口绑定的客户端向流量任务指定的目标节点发送流量。
33.具体的用户交互操作可以包括如下步骤:1、上传流量文件。
34.1.1、用户在靶场平台上选择上传流量文件类型。
35.1.2、如果选择的流量文件类型是pcap流量包,直接选择本地pcap流量包上传即可。
36.1.3、如果选择的流量文件类型是脚本,可以直接从本地导入已有的脚本文件,导入成功后,页面上会显示导入的脚本内容,此时可以直接保存脚本。
37.1.4、当页面上显示导入脚本内容时,也可以对该内容再次编辑,然后再保存。
38.1.5、针对脚本流量,有些可能需要传入执行参数,页面上可以输入“执行参数”,以便在执行脚本时传入。
39.1.6、流量文件保存后会上传到资源服务器中。
40.2、创建流量任务。
41.2.1、用户在靶场平台上选择流量任务类型,同时配置任务关联的流量文件,任务运行时间、运行时长等参数。
42.2.2、如果选择的流量任务类型是静态单向任务,还需要选择一个或多个目标节点用来接收生成的流量。
43.2.3、如果选择的流量任务类型是静态交互任务,关联的流量文件只能是pcap流量包,目标节点需要选择一对或多对,每对节点之间模拟流量交互。
44.2.4、如果选择的流量任务类型是动态任务,则只能选择单向流量,不需要关联流量文件,也不需要配置运行参数,只需要选择一个或多个目标节点。
45.2.5、任务配置好后点保存按钮,流量任务会被保存到靶场平台中;3、流量执行。
46.3.1、用户在靶场平台选择要执行的流量任务。
47.3.2、如果流量任务是静态单向或静态交互任务,直接点击执行按钮即可。
48.3.3、如果流量任务是动态任务,需要用户输入一个或多个需要生成的流量协议,同时填入流量内容,然后点击执行。
49.3.4、流量执行器收到执行命令后,根据任务配置参数,生成流量发向目标节点。
50.流量执行器中部署有流量生成服务,流量生成服务启动时会开启一个服务端的守护进程,用于管理所有的网口并监听客户端的流量生成请求,生成实际的流量。当流量执行器收到流量任务执行命令后,会先创建一个流量执行客户端,客户端会根据目标节点ip绑定使用的网口,并根据任务配置文件生成流量执行配置文件,然后客户端将流量生成请求发送给服务端,服务端会根据流量执行配置文件生成实际的流量。这里任务配置文件中主要记载面向应用层的任务配置参数,主要包含用户配置的流量文件、任务类型、任务执行时间、执行时长、目标节点等配置项。对于服务端的一些流量发生工具,若无法直接解析任务配置文件中的参数配置,客户端会进行配置文件的转换,将任务配置文件转换为流量执行配置文件,即生成流量发生工具运行时需要的配置文件,两个文件中的具体的参数含义基本一样,在参数名、参数值、参数配置结构有各自的要求。另外,若流量生成工具的配置文件还有一些自己运行环境相关的配置项,也在流量执行配置文件增加相应配置。
51.基于性能和负载的考虑,每个流量执行器中最多允许创建30个网口(具体数量可根据实际情况而定),所以当靶场网络环境比较复杂时,需要根据网口数量来考虑部署多台流量执行器,多台部署时,为保证每台机器的性能,所有的网口会尽量平均分布到各个机器上。
52.实际运行时,流量执行器收到流量任务执行命令后,会先判断任务类型,针对静态流量任务,会先从资源服务器中下载任务关联的流量文件,然后判断任务是单向还是交互流量;如果是单向流量,流量生成服务会起一个客户端进程,根据配置参数绑定对应网口,然后执行流量文件,向目标节点发送流量;如果是交互流量,流量生成服务会根据配置文件
分别指定一个目标节点为请求端(节点1)和响应端(节点2),然后解析任务关联的pcap流量包,获取pcap流量包中的每条数据,分别过滤出其中的请求和响应数据,将请求数据的目标ip都改为节点2的ip,来源ip都改为节点1的ip,而响应数据的目标ip都改为节点1的ip,来源ip都改为节点2的ip,然后起一个客户端进程绑定对应的网口,再按序号排序先向节点2发送一条请求数据,再向节点1发送一条响应数据,按序号依次执行请求响应数据,来模拟节点1和节点2之间的流量交互,当有多个pcap流量包时,流量生成服务会调用多线程同时处理。这里由于客户端是与网口进行绑定的,所以当多对节点之间有网段重复时,会造成客户端之间的网口竞争,这里通过共享客户端进程的方式,进行网口复用,也就是每个网口和一个客户端进行绑定,当有流量需要使用某个网口时,会先判断当前网口是否有绑定的客户端,有则直接使用,否则就新起一个客户端与其绑定,以此实现流量的并发执行。
53.基于同样的原理,流量生成服务收到动态任务执行请求后,会解析请求中的流量协议和流量内容,然后通过python的scapy将流量协议和内容构造成流量数据,再分析目标节点ip获取需要使用的网口,判断是新建客户端还是使用已有的客户端,将流量数据发送到目标节点上。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1