一种网络安全训练场景模拟系统及方法与流程

文档序号:20267946发布日期:2020-04-03 18:38阅读:125来源:国知局
本发明涉及网络安全领域,尤其涉及一种网络安全训练场景模拟系统及方法。
背景技术
::随着信息化的发展,网络安全已经成为了人们越来越关注的问题,为了保证信息的安全性,网络安全从业人员需要进行网络攻防操作或者网络安全测试。但是网络攻防操作或者网络安全测试工具通常具有一定的破坏性,例如,若是在生产环境中部署网络安全测试工作可能会对生产环境的安全性和可用性造成威胁,而且影响范围通常难以控制。因此,在进行网路安全实战培训或者进行网络安全测试时,一般情况下会搭建一个与外界适度隔离的实验环境即网络安全训练环境。随着网络安全技术的不断发展,自动化的搭建网络测试场景的训练环境已经逐渐取代了手工搭建,但是随着测试环境、测试工具或者测试方法的不断丰富,安全训练场景越来越呈现出多样化、网络规模化、场景复杂化的特点,然而,现有技术中难以同时满足这些特点所需达到的逼真度、资源开销和生成时间。技术实现要素:有鉴于此,本发明实施例公开了一种网络安全训练场景模拟系统及方法,实现了满足逼真度的同时,降低资源开销从缩短了生成时间的目的。本发明公开了一种网络安全训练场景模拟系统,包括:中心控制模块、模拟组件模块和节点监控模块;所述中心控制模块,用于生成场景模拟需求信息,将所述场景模拟需求信息转换为场景模拟指令,并将所述场景模拟指令发送到所述模拟组件模块;所述场景模拟需求信息包括预设的多种虚拟化技术;所述模拟组件模块,用于接收所述场景模拟指令,依据所述场景模拟指令,调用多种虚拟化技术进行场景模拟;所述节点监控模块,用于在模拟组件模块进行场景模拟时,对场景模拟的虚拟节点的运行环境进行监控。可选的,所述多种虚拟化技术包括:vmwarevsphere虚拟化技术、kvm基于内核的虚拟机虚拟化技术、qemu虚拟化技术以及docker虚拟化技术。可选的,所述场景模拟指令包括:虚拟节点生成指令、虚拟节点销毁指令、虚拟网络生成指令、虚拟网络销毁指令、虚拟节点电源控制指令、虚拟节点快照管理指令、虚拟节点远程控制指令、客户操作系统命令执行指令、客户操作系统文件管理指令。可选的,所述中心控制模块,包括:场景可视化控制模块,用于生成用户需求的网络拓扑图,并将所述网络拓扑图转换成预设的标准格式的场景模拟需求;场景模拟需求解析模块,用于解析所述预设的标准格式的场景模拟需求,并验证解析后的所述场景模拟需求是否符合预设规定;场景模拟资源调配模块,用于接收解析后的所述场景模拟需求,基于当前的资源使用情况,采用预设的网络映射算法生成场景模拟资源分配方案;场景模拟调度模块,用于接收所述场景模拟资源分配方案,并将所述场景模拟资源分配方案转换为场景模拟指令;场景数据库模块,用于存储场景模拟的相关数据。可选的,所述模拟组件模块,包括:指令接收模块、节点模拟模块、链路模拟模块和数据采集模块;所述指令接收模块,用于接收场景模拟指令,并将所述场景模拟指令转发到节点模拟模块、链路控制模块和/或数据采集模块;所述节点模拟模块,用于依据相应的场景模拟指令,调取所述场景模拟指令相对应的虚拟化技术进行虚拟节点的场景模拟;链路控制模块,用于接收与网络链路相关的场景模拟指令,依据所述与网络链路相关的场景模拟指令通过sdn技术生成或者销毁所述虚拟节点之间的网络链路;数据采集模块,用于接收与数据采集相关的场景模拟指令,并执行所述与数据采集相关的场景模拟指令。可选的,所述节点监控模块,包括:节点控制代理模块和节点控制插件;所述节点控制代理模块,用于接收所述场景模拟组件发送的监控指令和初始化指令,对所述系统进行初始化,监控当前节点的运行环境,并确定节点控制插件;所述节点控制插件,用于接收所述节点控制代理模块发送的命令,并执行所述命令。本发明实施例公开了一种网络安全训练场景模拟方法,包括:生成场景模拟需求,并将所述场景模拟需求转换成场景模拟指令;所述场景模拟需求信息包括预设的多种虚拟化技术;依据所述场景模拟指令调用预设的多种虚拟化技术;依据所述多种虚拟化技术执行所述场景模拟指令,进行虚拟化节点的场景模拟;在对所述虚拟化节点进行场景模拟时,对所述虚拟化节点的运行环境进行监控。可选的,所述多种虚拟化技术包括:vmwarevsphere虚拟化技术、kvm基于内核的虚拟机虚拟化技术、qemu虚拟化技术以及docker虚拟化技术。可选的,所述生成场景模拟需求,并将所述场景模拟需求转换成场景模拟指令,包括:生成用户设计的场景模拟需求,并将所述用户设计的场景模拟需求转换为预设的标准格式的场景模拟需求;解析所述场景模拟需求;验证解析后的所述场景模拟续期是否符合预设的规定;依据所述解析后的场景模拟需求和当前的资源使用情况,采用预设的网络映射算法生成场景模拟资源分配方案;将所述场景模拟资源分配方案转换为场景模拟指令。可选的,所述依据所述多种虚拟化技术执行所述场景模拟指令,进行虚拟化节点的场景模拟,包括:依据相应的场景模拟指令,调取所述场景模拟指令相对应的虚拟化技术进行虚拟节点的场景模拟;依据与网络链路相关的场景模拟指令通过sdn技术生成或者销毁所述虚拟节点之间的网络链路。本发明实施例公开了一种网络安全训练场景模拟系统及方法,该系统包括:中心控制模块、模拟组件模块和节点监控模块;其中,中心控制模块,用于生成场景模拟需求信息,将场景模拟需求信息转换为场景模拟指令,并将场景模拟指令发送到模拟组件模块;场景模拟需求信息包括预设的多种虚拟化技术;模拟组件模块,用于接收场景模拟指令,依据场景模拟指令,调用多种虚拟化技术进行场景模拟;节点监控模块,用于在模拟组件模块进行场景模拟时,对场景模拟的虚拟节点的运行环境进行监控。通过在一个场景模拟中采用不同层级的虚拟化技术,不仅提高了场景模拟的逼真度,也降低了资源开销、缩短了资源虚拟化的生成时间。进一步的,通过采用vmwarevsphere虚拟化技术和kvm虚拟化技术生成提高了场景模拟的逼真度;采用qemu虚拟化技术以及docker虚拟化技术降低了资源开销、缩短了资源虚拟化的生成时间。附图说明为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。图1示出了本发明实施例提供的一种网络安全训练场景模拟系统的结构示意图;图2示出了中心控制模块的结构示意图;图3示出了本发明实施例提供的模拟组件模块的结构示意图;图4示出了本发明实施例提供的节点监控模块的结构示意图;图5示出了本发明实施例提供的一种网络安全训练场景模拟方法的流程示意图;图6示出了本发明实施例提供的一种网络安全训练场景模拟方法的又一流程示意图。具体实施方式下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。参考图1,示出了本发明实施例提供的一种网络安全训练场景模拟系统的结构示意图,在本实施例中,该系统包括:中心控制模块100、模拟组件模块200、节点监控模块300;其中,中心控制模块100,用于生成场景模拟需求信息,将所述场景模拟需求信息转换为场景模拟指令,并将所述场景模拟指令发送到所述模拟组件模块;所述场景模拟需求信息包括:进行虚拟节点模拟所需的多种虚拟化技术。其中,不同的虚拟节点可以对应于不同的虚拟化技术,用户预先设置了需要模拟的节点所需使用的虚拟化技术。其中,生成虚拟节点所需的多种虚拟化技术包括:vmwarevsphere虚拟化技术、kvm(英文全称:kernel-basedvirtualmachine,中文全称:基于内核的虚拟机)虚拟化技术、qemu虚拟化技术以及docker虚拟化技术等。模拟组件模块200,用于接收所述场景模拟指令,依据所述场景模拟指令,调用多种虚拟化技术进行场景模拟;节点监控模块300,用于在模拟组件模块进行场景模拟时,对场景模拟的虚拟节点的状态进行监控。除此之外,销毁安全网络训练场场景在执行销毁指令的同时,要维护底层链路资源使用情况。其中,通过采用vmwarevsphere虚拟化技术和kvm虚拟化技术生成提高了场景模拟的逼真度;采用qemu虚拟化技术以及docker虚拟化技术降低了资源开销、缩短了资源虚拟化的生成时间。由此,本实施例中,通过在一个场景模拟中采用不同层级的虚拟化技术,不仅提高了场景模拟的逼真度,也降低了资源开销、缩短了资源虚拟化的生成时间。参考图2,示出了中心控制模块的结构示意图,在本实施例中,该模块包括:场景可视化设计模块101、场景模拟需求解析模块102、场景模拟资源调配模块103、场景模拟资源调度模块104以及场景数据库模块105。场景可视化设计模块101,用于生成用户需求的网络拓扑图,并将所述网络拓扑图转换成预设的标准格式的场景模拟需求。本实施例中,场景可视化设计模块101,可以为用户提供网络拓扑的绘制功能,例如,用户可以在绘制界面中通过拖拽的方式绘制所需的网络拓扑图。其中,用户绘制的网络拓扑图包括:网络拓扑结构、节点配置、网络配置。为了实现对场景的自动化模拟,将用户绘制的网络拓扑图转换为预设的标准格式的场景模拟需求。其中,预设的标准格式的场景需求可以是任意一种可用于自动化执行的格式,例如,该预设的标准格式可以为标准xml格式。举例说明:转换成的场景拓扑xml的dtd包括:<!elementtopo(node*,link*)><!attlisttopoversioncdata#required><!elementnode(port*,config*)><!attlistnodeidid#required><!attlistnodetemplatecdata#required><!attlistnodeemulation(qemu|kvm|docker|switch)"kvm"><!elementport(config*)><!attlistportindexcdata#required><!elementlink(config*)><!attlistlinkidid#required><!attlistlinknode1idref#required><!attlistlinknode2idref#required><!attlistlinkport1cdata#required><!attlistlinkport2cdata#required><!elementconfigany><!attlistconfignamecdata#required><!attlistconfigunitcdata>。其中,topo元素表示整个拓扑,包含若干个node和link子元素,在toop的属性中,version属性表示当前格式版本,以便于描述格式随需求演进而修改。node元素表示网络拓扑中的一个节点,包含若干个port和config子元素,分别表示网卡和节点配置信息。在node属性中,id在文档中表示节点的唯一标识;template属性表示当前节点所采用的节点模板;emulation表示当前节点所采用的模拟方式,必须是预设的虚拟化技术中的一种,例如是qemu、kvm、docker、vmwarevsphere中的一种。link元素表示网络拓扑中的一条网络链路,包含若干link作为子元素。在link的属性中,node1和port1分别表示连接源端的节点和网卡;node2和port2则分别表示另一端的节点和网卡。config元素表示node、port或者link的配置信息,通常包含一个属性名(元素属性name)、配置单位(元素属性unit)和text子元素。config元素的name取值范围随父元素的不同而不同。其中,以node为父元素时,name的取值可以包括cpucount(cpu个数)、ram(内存容量,unit属性可取值为mb、gb)、routetable(路由表)、dnstable(dns表)等;以port为父元素时,name的取值可包括ip(ip地址)、netmask(子网掩码);以link为父元素时,name取值可包括bandwidth(传输带宽,unit元素取值可为kbps、mbps、gbps)、lossrate(丢包率,0-100)、delay(平均时延)等。场景模拟需求解析模块102,用于解析所述预设的标准格式的场景模拟需求,并验证解析后的所述场景模拟需求是否符合预设规定。场景模拟资源调配模块103,用于接收解析后的所述场景模拟需求,基于当前的资源使用情况,采用预设的网络映射算法生成场景模拟资源分配方案;本实施例中,场景模拟资源的调配可以通过改进的模拟退火算法,具体的,定义映射方案得分为其占用的物理资源向量的加权和;定义结束条件为温度足够低或者得分足够高;定义只有一个节点映射不同的两个解决方案在解空间中相邻,集通过替换现有解决方案的某一个节点映射来获得相邻映射方案。其中,为了避免资源碎片化造成的搜索空间受限问题,设计了犯规数概念,即设计了某个映射方案不满足约束条件的个数。并且,为了解决高负载情况下,求解率低的问题,在搜索过程中允许非可行解作为新的搜索起点。除此之外,为了加快算法收敛,犯规数超过1的解也参与概率接受更差解的计算过程。场景模拟调度模块104,用于接收所述场景模拟资源分配方案,并将所述场景模拟资源分配方案转换成场景模拟指令。本实施例中,场景模拟指令可以表示为实现模拟资源分配方案的命令信息,在本实施例中,场景模拟指令可以为有向无环图的形式。本实施例中,可以包括多种场景模拟指令,具体的可以包括:虚拟节点生成指令,表示生成指定配置的虚拟节点;虚拟节点销毁指令,表示销毁指定虚拟节点;虚拟网络生成指令,表示销毁指定配置的虚拟网路;虚拟网络销毁指令,表示销毁指定虚拟网络;虚拟节点快照管理指令,表示实现对指定虚拟节点快照的创建、回复、删除;虚拟节点远程控制指令,表示实现对指定虚拟节点的远程接入控制,包括图形界面接入控制和命令行接入控制;客户操作系统命令执行指令,表示实现在指定虚拟节点内部客户操作系统中的命令;客户操作系统文件管理指令,表示指定虚拟节点内部客户操作系统中文件的管理。其中,虚拟节点生成(vnode.create)模拟指令最为复杂,主要用于通知模拟组件模块102生成指定配置的虚拟节点。该模拟指令需要提供虚拟节点的配置信息,包括场景id、节点id、所用仿真技术(docker、kvm、vsphere等)、节点模板、基础硬件配置、网卡配置、附加客户操作系统配置等。场景数据库模块105,用于存储场景模拟的相关数据。举例说明:场景模拟的相关数据可以包括:存储节点模块、场景实例、物理资源等场景模拟相关的各类数据。参考图3,示出了本发明实施例提供的模拟组件模块的结构示意图,在本实施例中,该模块包括:指令接收模块201、节点模拟模块202、链路模拟模块203、数据采集模块204;其中,指令接收模块201,用于接收场景模拟指令,并将场景模拟指令转发到节点模拟模块202、链路控制模块203和/或数据采集模块204。本实施例中,将与节点相关的模拟指令发送到节点模拟模块202,将与网络链路相关的指令发送到链路控制模块203。节点模拟模块202,用于依据相应的场景模拟指令,调取所述场景模拟指令相对应的虚拟化技术进行虚拟节点的场景模拟;本实施例中,根据上文的介绍可知,与虚拟节点相关的指令包含多种,例如包含对虚拟节点的生成和销毁,其中虚拟节点的生成较为复杂,本实施例中,用户在配置虚拟网络需求时,配置了生成虚拟网络节点所需的虚拟化技术,因此,生成不同的虚拟网络节点,可以调用不同的虚拟化技术。本实施例中,对docker虚拟化技术和kvm的虚拟化技术进行介绍:docker虚拟化技术的虚拟节点的生成过程可以包括:1)创建容器:具体可以是调用container.create创建容器,包括创建基础镜像、资源限制、网络配置等信息。2)运行容器:调用container.start运行容器,并等待启动完毕;3)执行内部配置,调用container.put传输配置程序和配置文件,调用container.exec运行配置程序,等待运行完毕,调用container.get获取执行结果。kvm的虚拟化技术的虚拟节点的生成过程包括:1)创建虚拟机,调用vm.clone从模板克隆实例虚拟机;2)配置虚拟机,调用vm.config配置cpu、内存等基础硬件,调用vm.net_config配置网卡并连入指定虚拟网络;3)运行虚拟机,调用vm.power_on运行虚拟机,调用vm.query_guest_state轮训虚拟机运行状态,等待客户操作系统启动(kvm通过特定串口服务状态探测,vsphere通过接口尝试调用vmwaretools);4)执行内部配置,调用vm.put_file/create_dir/exists等接口完成配置程序和配置文件的写入,调用vm.exec执行配置程序,调用vm.get_file/exists等接口来判断执行是否结束并获取结果。其中,其它接口按类似方法分情况处理。链路控制模块203,用于接收与网络链路相关的场景模拟指令,依据所述与网络链路相关的场景模拟指令通过sdn技术生成或者销毁所述虚拟节点之间的网络链路。本实施例中提到的虚拟化技术可以生成虚拟节点,但是这些节点是孤立的,还需要sdn技术生成这些虚拟节点的网络链路。本实施例中,可以包括:vlan(virtuallocalareanetwork,虚拟局域网)、gre(genericroutingencapsulation,通用路由协议封装)、vxlan(virtualextensiblelocalareanetwork,虚拟扩展局域网)三种虚拟网络和链路生成方法。对于单集群内部,采用基于vlan的虚拟网络生成方案,在本地二层物理交换网络的支撑下,实现跨物理服务器的虚拟网络生成。对于跨集群的训练场景联合生成,则依据部署条件选用gre/vxlan技术,实现跨越模拟集群网络边界的训练网络生成。若一个虚拟网络中的所有虚拟节点均属于统一个节点或存在实物节点,则采用vlan技术生成该虚拟网络,以提供较好的性能;若虚拟网络中存在来自不同阵地的虚拟机,则采用gre/vxlan技术生成该虚拟网络。此外,当机遇vlan的虚拟网络超过4090个时,则所有新生成网络全部基于gre/vxlan技术的生成方案。数据采集模块204,用于接收与数据采集相关的场景模拟指令,并执行所述与数据采集相关的场景模拟指令;其中,数据采集模块用于实现节点内部文件的管理、对节点内部操作系统的配置以及节点内部行为的监控。参考图4,示出了本发明实施例提供的节点监控模块的结构示意图,在本实施例中,该节点监控模块包括:节点控制代理模块301和节点控制插件302;所述节点控制代理模块301,用于接收所述场景模拟组件发送的监控指令,监控当前虚拟节点的运行环境,并确定节点控制插件;所述节点控制插件302,用于接收所述节点控制代理模块发送的命令,并执行所述命令。本实施例中,通过节点监控模块,对节点的运行环境进行监测,保证了场景模拟的正常执行。参考图5,示出了本发明实施例提供的一种网络安全训练场景模拟方法的流程示意图,在本实施例中,该方法应用于网络安全训练场景模拟系统,该方法包括:s501:中心控制模块生成场景模拟需求,将所述场景模拟需求转换成场景模拟指令,并将所述场景模拟指令发送给模拟组件模块;所述场景模拟需求信息包括预设的多种虚拟化技术;s502:模拟组件模块依据所述场景模拟指令调用预设的多种虚拟化技术,并依据所述多种虚拟化技术执行所述场景模拟指令,进行虚拟化节点的场景模拟;s503:节点监控模块在对所述虚拟化节点进行场景模拟时,对所述虚拟化节点的运行环境进行监控。其中,多种虚拟化技术包括:vmwarevsphere虚拟化技术、kvm基于内核的虚拟机虚拟化技术、qemu虚拟化技术以及docker虚拟化技术。场景模拟指令包括:虚拟节点生成指令、虚拟节点销毁指令、虚拟网络生成指令、虚拟网络销毁指令、虚拟节点电源控制指令、虚拟节点快照管理指令、虚拟节点远程控制指令、客户操作系统命令执行指令、客户操作系统文件管理指令。具体的,s501包括:生成用户设计的场景模拟需求,并将所述用户设计的场景模拟需求转换为预设的标准格式的场景模拟需求;解析所述场景模拟需求;验证解析后的所述场景模拟续期是否符合预设的规定;依据所述解析后的场景模拟需求和当前的资源使用情况,采用预设的网络映射算法生成场景模拟资源分配方案;将所述场景模拟资源分配方案转换为场景模拟指令。具体的,s502包括:依据相应的场景模拟指令,调取所述场景模拟指令相对应的虚拟化技术进行虚拟节点的场景模拟;依据与网络链路相关的场景模拟指令通过sdn技术生成或者销毁所述虚拟节点之间的网络链路。具体的,s503包括:接收所述场景模拟组件发送的监控指令和初始化指令;对所述系统进行初始化,监控当前节点的运行环境,并确定节点控制插件。除此之外,销毁安全网络训练场场景在执行各个指令的同时,要维护底层链路资源使用情况。本实施例中,若是对安全训练的模拟场景进行销毁,具体的过程包括:s601:中心控制模块接收场景销毁指令;s602:中心控制模块从数据库中查找所述待销毁的场景实例,并将场景销毁指令发送给模拟组件模块;s603:模拟组件模块接收场景销毁指令,将与节点相关的场景销毁指令转换为对应节点虚拟化解决方案的第一控制命令,并依据该第一控制命令销毁对应的虚拟节点;s604:模拟组件模块将与网络链路相关的场景销毁指令转换为网络虚拟化解决方案的第二控制命令,并依据该第二控制命令,销毁相应的虚拟网络和链路。除此之外,销毁安全网络训练场场景在执行销毁指令的同时,要维护底层链路资源使用情况。模拟组件模块将与所述场景销毁指令转换为相应的虚拟化节点的销毁方案,并将所述销毁方案转换为销毁命令;本实施例的方法,通过在一个场景模拟中采用不同层级的虚拟化技术,不仅提高了场景模拟的逼真度,也降低了资源开销、缩短了资源虚拟化的生成时间。需要说明的是,本说明书中的各个实施例均采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似的部分互相参见即可。对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本发明。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本发明的精神或范围的情况下,在其它实施例中实现。因此,本发明将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。当前第1页1 2 3 当前第1页1 2 3 
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1