CN111741134B - 一种网络靶场大规模场景中虚拟机快速构建系统与方法 - Google Patents

一种网络靶场大规模场景中虚拟机快速构建系统与方法 Download PDF

Info

Publication number
CN111741134B
CN111741134B CN202010828396.4A CN202010828396A CN111741134B CN 111741134 B CN111741134 B CN 111741134B CN 202010828396 A CN202010828396 A CN 202010828396A CN 111741134 B CN111741134 B CN 111741134B
Authority
CN
China
Prior art keywords
virtual machine
shooting range
software
virtual
scene
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.)
Active
Application number
CN202010828396.4A
Other languages
English (en)
Other versions
CN111741134A (zh
Inventor
王鹏
谢峥
高庆官
唐海均
高丽彪
程能杰
于靖
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nanjing Cyber Peace Technology Co Ltd
Original Assignee
Nanjing Cyber Peace Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Nanjing Cyber Peace Technology Co Ltd filed Critical Nanjing Cyber Peace Technology Co Ltd
Priority to CN202010828396.4A priority Critical patent/CN111741134B/zh
Publication of CN111741134A publication Critical patent/CN111741134A/zh
Application granted granted Critical
Publication of CN111741134B publication Critical patent/CN111741134B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/34Network arrangements or protocols for supporting network services or applications involving the movement of software or configuration parameters 
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/455Emulation; Interpretation; Software simulation, e.g. virtualisation or emulation of application or operating system execution engines
    • G06F9/45533Hypervisors; Virtual machine monitors
    • G06F9/45558Hypervisor-specific management and integration aspects
    • G06F2009/45595Network integration; Enabling network access in virtual machine instances

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

本发明公开了一种网络靶场大规模场景中虚拟机快速构建系统,主要包括部署在网络靶场控制节点的网络靶场平台和虚拟机调度模块,以及部署在网络靶场计算节点的虚拟机管理模块和快速构建模块。本发明在用户启动网络靶场场景拓扑时,优先将相同依赖软件的虚拟机调度到相同的计算节点上,在虚拟机启动时为虚拟机添加一个CDROM设备;根据虚拟机的快速构建信息,过滤重复的软件包,并下载依赖的软件包,进行iso文件的生成;在虚拟机启动完成时修改虚拟机上挂载的CDROM路径,同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件。本发明可实现网络靶场大规模场景中虚拟机的无代理构建,并且能够支持各类初始化文件,避免网络堵塞。

Description

一种网络靶场大规模场景中虚拟机快速构建系统与方法
技术领域
本发明涉及一种网络靶场大规模场景中虚拟机快速构建系统与方法,属于网络技术领域。
背景技术
网络靶场云平台环境中会预制一些基于基础操作系统的虚拟机模板以及一些工具或其他软件,网络靶场平台会依据这些模板及软件组成网络拓扑场景,在场景拓扑启动的时候需要依据虚拟机模板生成虚拟机,但是虚拟机在网络拓扑不同的位置需要承担的角色不同,安装的软件也不同,在网络靶场场景启动时需要根据虚拟机所在的网络位置动态的安装不同的软件来实现不同的角色。
快速构建即为在网络靶场场景启动时根据所选择的基础操作系统以及不同的软件来快速生成一个全新虚拟机的功能。在目前的云平台环境中,对虚拟机快速构建都是通过cloud-init方案来实现的。如图1所示,首先需要在服务器上启动元数据服务,元数据服务通过HTTP协议提供接口,当虚拟机启动后,会自动启动虚拟机上预先安装的cloud-init客户端软件,cloud-init客户端软件会通过169.254.169.254这个链接地址访问元数据服务提供的接口获取本虚拟机对应的快速构建脚本,并通过执行快速构建脚本来实现对虚拟机的快速构建工作。
对于网络靶场大规模场景中虚拟机的快速构建,现有方案存在如下不足:1. 需要预先在虚拟机中安装cloudinit软件;2. 依赖网络初始化完成才能下载快速构建脚本;3.只能传输快速构建脚本,快速构建依赖的软件包需要通过快速构建脚本去下载;4. 虚拟机网络需要和靶场平台能相互通信,否则无法下载快速构建依赖的软件;5. 大量虚拟机启动时会同时连接元数据服务获取快速构建脚本,并且执行快速构建脚本的时候会同时连接靶场平台下载依赖的软件包,会导致网络堵塞,最终导致快速构建失败。
发明内容
发明目的:针对上述现有技术存在的问题,本发明的目的在于一种虚拟机快速构建系统与方法,不需要在虚拟机中安装快速构建代理软件,也无需等待网络配置完成,即可实现网络靶场大规模场景中虚拟机的无代理构建,并且能够支持各类初始化文件,避免网络堵塞。
技术方案:为实现上述发明目的, 本发明所述的一种网络靶场大规模场景中虚拟机快速构建系统,包括部署在网络靶场控制节点的网络靶场平台和虚拟机调度模块,以及部署在网络靶场计算节点的虚拟机管理模块和快速构建模块;
所述网络靶场平台,用于接收并保存用户创建的网络靶场场景拓扑以及场景中各虚拟机的快速构建信息;
所述虚拟机调度模块,用于在用户启动网络靶场场景拓扑时,根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上;
所述虚拟机管理模块,用于创建调度的虚拟机并在虚拟机启动时为虚拟机添加一个CDROM设备;
所述快速构建模块,用于根据所部署的虚拟机的快速构建信息,过滤重复的软件包,并下载依赖的软件包;为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中;以及在虚拟机启动完成时,修改虚拟机上挂载的CDROM路径为生成的iso文件路径;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件。
作为优选,所述虚拟机调度模块根据如下规则计算不同虚拟机依赖软件的相似度: (SA &SB)/(SA + SB - (SA & SB));其中SA、SB分别表示A虚拟机和B虚拟机快速构建依赖软件的大小;SA & SB表示A虚拟机与B虚拟机快速构建依赖软件相同部分大小。
作为优选,所述虚拟机调度模块,包括:
相似度计算单元,用于计算不同虚拟机间任意两个虚拟机依赖软件的相似度,并保存在二维数组中;以及对指定虚拟机与其他虚拟机间的相似度进行排序得到与指定虚拟机的依赖软件相似度最高的虚拟机;
虚拟机资源计算单元,用于计算用户所启动的网络靶场场景所需要的资源总量,以及每个计算节点资源使用平均值;
以及,虚拟机调度单元,用于根据场景中配置的虚拟机的顺序依次调度虚拟机,并在计算节点资源使用情况小于资源使用平均值时,将与当前所调度虚拟机依赖软件相似度最高的虚拟机调度到同一个计算节点,若计算节点资源使用情况大于等于资源使用平均值,则按顺序将下一个虚拟机调度到下一个计算节点。
作为优选,所述快速构建模块,包括:
软件包括获取单元,用于根据虚拟机快速构建信息过滤重复的软件包,并从文件服务模块下载依赖的软件包;
iso文件生成单元,用于为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件;
iso文件管理单元,用于将虚拟机ID以及对应的iso文件路径以字典形式存储到内存中;
以及,快速构建执行单元,用于在虚拟机启动完成时,根据虚拟机ID获取到快速构建iso文件路径,并修改虚拟机上挂载的CDROM路径为生成的iso文件路径。
作为优选,所述快速构建模块通过监听到虚拟机网卡的DHCP请求流量信息,判断虚拟机是否启动完成,在首次收到某一虚拟机网卡的DHCP请求的流量时,则认为该虚拟机启动完成。
本发明所述的一种网络靶场大规模场景中虚拟机快速构建方法,包括如下步骤:
(1)接收并保存用户创建的网络靶场场景拓扑以及场景中各虚拟机的快速构建信息;
(2)在用户启动网络靶场场景拓扑时,根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上;
(3)创建调度的虚拟机并在虚拟机启动时为虚拟机添加一个CDROM设备;同时根据所部署的虚拟机的快速构建信息,过滤重复的软件包,并下载依赖的软件包;
(4)为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件;
(5)在虚拟机启动完成时,修改虚拟机上挂载的CDROM路径为生成的iso文件路径,由虚拟机系统自动运行autorun.inf配置文件中的配置快速构建脚本,由快速构建脚本安装依赖的软件实现虚拟机快速构建。
作为优选,所述步骤(2)中根据如下规则计算不同虚拟机依赖软件的相似度: (SA&SB)/(SA + SB - (SA & SB));其中SA、SB分别表示A虚拟机和B虚拟机快速构建依赖软件的大小;SA & SB表示A虚拟机与B虚拟机快速构建依赖软件相同部分大小。
作为优选,所述步骤(2)中虚拟机调度的具体步骤包括:
(2.1)计算用户所启动的网络靶场场景所需要的资源总量,以及每个计算节点资源使用平均值;
(2.2)计算场景中每个虚拟机与其他虚拟机快速构建依赖软件的相似度形成一个二维数组;
(2.3)从未调度的第一个虚拟机开始,将虚拟机调度到未调度第一个计算节点;
(2.4)计算当前调度的计算节点资源使用情况,如果资源使用情况大于等于计算的平均值则会将下一个未调度的虚拟机调度到下一个未调度的计算节点,重复步骤(2.4);否则进入(2.5);
(2.5)将当前调度的虚拟机与其他虚拟机的相似度进行排序,选择一个相似度最高的虚拟机调度到同一个计算节点,并将选择的虚拟机从二维数组中删除,防止重复调度;回到步骤(2.4)直到所有虚拟机调度完毕。
作为优选,通过监听到虚拟机网卡的DHCP请求流量信息,判断虚拟机是否启动完成,在首次收到某一虚拟机网卡的DHCP请求的流量时,则认为该虚拟机启动完成。
有益效果:本发明提供的网络靶场大规模场景中虚拟机快速构建系统与方法,与现有技术相比具有如下优点:1. 通过CDROM的autorun进行快速构建软件的安装,不需要在虚拟机中安装快速构建代理软件,并且不依赖网络初始化完成即可执行快速构建操作。2.通过iso文件挂载的方式进行初始化,可以传输任意格式的初始化文件。3. 相同配置的多个虚拟机共用一份快速构建iso文件,可以节省硬盘资源。4. 通过虚拟机调度模块将相同依赖软件的虚拟机调度到相同计算节点,可以节省硬盘资源以及有效降低快速构建依赖软件的下载请求。5. 将快速构建模块分布到计算节点,能够有效分摊虚拟机快速构建请求时网络的压力。
附图说明
图1为现有cloud-init方案虚拟机初始化流程图。
图2为本发明实施例的虚拟机快速构建系统结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整的描述,显然,所描述的实施例仅只是本发明的一部分实施例,而不是全部的实施例。基于本发明的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的其他所有实施例,都属于本发明保护的范围。
本发明基于CDROM的autorun功能来实现无代理初始化。如图2所示,本发明公开的一种网络靶场大规模场景中虚拟机快速构建系统,主要包括部署在网络靶场控制节点的网络靶场平台和虚拟机调度模块,以及部署在网络靶场计算节点的虚拟机管理模块和快速构建模块。其中网络靶场平台主要用于接收并保存用户创建的网络靶场场景拓扑以及场景中各虚拟机的快速构建信息。虚拟机调度模块主要用于在用户启动网络靶场场景拓扑时,根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上。虚拟机管理模块主要用于创建调度的虚拟机并在虚拟机启动时为虚拟机添加一个CDROM设备。快速构建模块主要用于根据所部署的虚拟机的快速构建信息,过滤重复的软件包,并下载依赖的软件包;为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中;以及在虚拟机启动完成时,修改虚拟机上挂载的CDROM路径为生成的iso文件路径。
虚拟机调度模块主要工作是均匀分配虚拟机到各个计算节点上去。输入为场景中各个的虚拟机资源信息,调度完成后然后将虚拟机信息(虚拟机的ID、名称、依赖软件等信息)传输到虚拟机管理模块进行虚拟机创建,并将虚拟机信息传输到快速构建模块进行iso文件的生成及挂载操作。具体地,虚拟机调度模块包括相似度计算单元、虚拟机资源计算单元和虚拟机调度单元。
相似度计算单元用于计算不同虚拟机间任意两个虚拟机依赖软件的相似度,并保存在二维数组中;以及对指定虚拟机与其他虚拟机间的相似度进行排序得到与指定虚拟机的依赖软件相似度最高的虚拟机。虚拟机资源计算单元用于计算用户所启动的网络靶场场景所需要的资源总量,以及每个计算节点资源使用平均值。虚拟机调度单元用于根据场景中配置的虚拟机的顺序依次调度虚拟机,并在计算节点资源使用情况小于资源使用平均值时,将与当前所调度虚拟机依赖软件相似度最高的虚拟机调度到同一个计算节点,若计算节点资源使用情况大于等于资源使用平均值,则按顺序将下一个虚拟机调度到下一个计算节点。
快速构建模块主要包括软件包括获取单元、iso文件生成单元、iso文件管理单元和快速构建执行单元。软件包括获取单元用于根据虚拟机快速构建信息过滤重复的软件包,并从文件服务模块下载依赖的软件包。iso文件生成单元用于为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件。iso文件管理单元用于将虚拟机ID以及对应的iso文件路径以字典形式存储到内存中。快速构建执行单元用于在虚拟机启动完成时,根据虚拟机ID获取到快速构建iso文件路径,并修改虚拟机上挂载的CDROM路径为生成的iso文件路径。
本发明实施例公开的一种网络靶场大规模场景中虚拟机快速构建方法,主要包括如下步骤:
(1)接收并保存用户创建的网络靶场场景拓扑以及场景中各虚拟机的快速构建信息;
(2)在用户启动网络靶场场景拓扑时,根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上;
(3)创建调度的虚拟机并在虚拟机启动时为虚拟机添加一个CDROM设备;同时根据所部署的虚拟机的快速构建信息,过滤重复的软件包,并下载依赖的软件包;
(4)为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件;
(5)在虚拟机启动完成时,修改虚拟机上挂载的CDROM路径为生成的iso文件路径,由虚拟机系统自动运行autorun.inf配置文件中的配置快速构建脚本,由快速构建脚本安装依赖的软件实现虚拟机快速构建。
步骤(2)中虚拟机调度的具体步骤包括:
(2.1)计算用户所启动的网络靶场场景所需要的资源总量,以及每个计算节点资源使用平均值;
(2.2)计算场景中每个虚拟机与其他虚拟机快速构建依赖软件的相似度形成一个二维数组;
(2.3)从未调度的第一个虚拟机开始,将虚拟机调度到未调度第一个计算节点;
(2.4)计算当前调度的计算节点资源使用情况,如果资源使用情况大于等于计算的平均值则会将下一个未调度的虚拟机调度到下一个未调度的计算节点,重复步骤(2.4);否则进入(2.5);
(2.5)将当前调度的虚拟机与其他虚拟机的相似度进行排序,选择一个相似度最高的虚拟机调度到同一个计算节点,并将选择的虚拟机从二维数组中删除,防止重复调度;回到步骤(2.4)直到所有虚拟机调度完毕。
下面结合本发明实施例对网络靶场大规模场景中用户快速构建虚拟机的完整流程做详细说明。
1、用户在靶场平台创建网络靶场场景。
2、用户在场景拓扑中添加虚拟机节点,并配置快速构建信息(需要安装的软件)。
3、点击保存后将拓扑及虚拟机信息保存到数据库中。
4、用户点击启动网络靶场场景拓扑。
5、虚拟机调度模块会根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上去。具体的调度算法如下:
1) 虚拟机调度模块会计算本次场景启动所需要的资源总量,然后根据计算节点数量计算出每个计算节点资源使用平均值;
2)计算每个虚拟机与其他虚拟机快速构建依赖软件的相似度形成一个二维数组,如表1所示:
表1 快速构建信息相似度数组
Figure DEST_PATH_IMAGE001
其中不同虚拟机依赖软件的相似度计算公式为:
(SA &SB)/( SA + SB - (SA & SB))
SA、SB分别表示A虚拟机和B虚拟机快速构建依赖软件的大小;SA&SB表示A虚拟机与B虚拟机快速构建依赖软件相同部分大小;
3)虚拟机调度模块会从第一个未调度的虚拟机开始,将虚拟机调度到第一个未调度的计算节点;
4)虚拟机调度模块会计算一下当前调度的计算节点资源使用情况,如果资源使用情况大于等于第一步计算的平均值则会将后续未调度的虚拟机调度到下一个未调度的计算节点;
5)虚拟机调度模块会将第一个虚拟机与其他虚拟机的相似度进行排序,相似度高的排在前面;
6)虚拟机调度模块会选择一个相似度最高的虚拟机调度到同一个计算节点,并将该虚拟机从二维数组中删除,防止重复调度;
7)再次计算一下当前计算节点资源使用情况,如果资源使用情况小于第一步计算的平均值则重复上一步还有本步骤,如果资源使用情况大于等于平均值则将后续未调度的虚拟机调度到下一个未调度的计算节点;
8)后续计算节点调度算法与第一个计算节点相同,重复第3)-7)步。
6、计算节点虚拟机管理模块创建并启动虚拟机,在启动虚拟机时为虚拟机添加一个CDROM设备;虚拟机管理模块底层通过调用Libvirt接口实现虚拟机的创建和管理。
7、网络靶场平台或者虚拟机调度模块将虚拟机快速构建信息发送给虚拟机对应计算节点的快速构建模块。
8、快速构建模块会过滤重复的软件包,然后向控制节点文件服务(该模块存储有场景图片、依赖软件等虚拟机环境所需要的各类文件)模块请求下载依赖的软件包。
9、快速构建模块根据不同的虚拟机生成快速构建脚本,并和autorun.inf配置文件以及依赖的软件包一起打包到iso文件中,并将iso文件统一保存到本地磁盘,如果虚拟机的快速构建信息相同,只会生成一份iso文件。 autorun.inf是作为CDROM自动启动用的,真正软件安装是通过autorun调用quickinstall.bat脚本来实现软件的安装。quickinstall.bat脚本中对应各个依赖软件的静默安装命令。快速构建信息相同表示虚拟机依赖的软件包相同,所以快速构建的脚本也是相同的,这样只需要共用一个iso文件即可,可以节省磁盘空间。
10、快速构建模块将虚拟机ID以及对应的iso文件路径以字典形式存储到内存中。
11、快速构建模块监听当前虚拟机网卡的流量信息,如果收到DHCP请求的流量则说明虚拟机启动完成。
12、快速构建模块根据虚拟机ID获取到快速构建iso文件路径,并修改虚拟机上挂载的CDROM路径为生成的iso文件路径,如果虚拟机的快速构建信息相同,则这几个虚拟机会共用一个iso文件。
13、虚拟机系统识别到CDROM设备后自动运行autorun.inf配置文件中的配置快速构建脚本。
14、由快速构建脚本去安装依赖的软件实现虚拟机快速构建。
上述步骤涉及到的配置或命令示例如下:
为虚拟机添加CDROM设备:
<disk type='block' device='cdrom'>
<driver name='qemu' type='raw'/>
<source dev=''/>
<target dev='hda'/>
</disk>
虚拟机挂载CDROM命令:
virsh attach-disk instance-00000253 /var/lib/quickcreate/iso/f05d287e-a7ec-41b7-953a-5a319a65b0c0.iso hda --sourcetype block --driver qemu--subdriver raw --type cdrom。
autorun.inf文件示例:
[AutoRun]
Open=quickinstall.bat
Icon=quickinstall.Bmp
quickinstall.bat文件示例:
@echo off
echo "install WinRAR"
WinRAR.exe /S
综上,本发明不需要在虚拟机中安装快速构建代理软件,也无需等待网络配置完成。通过iso文件挂载的方式进行初始化,可以传输任意格式的初始化文件,并且多个虚拟机共用一个iso可以节省硬盘资源。通过虚拟机调度模块,可以有效降低快速构建依赖软件的下载请求。并且将快速构建模块分布到计算节点,能够有效分摊虚拟机快速构建请求时网络的压力。

Claims (9)

1.一种网络靶场大规模场景中虚拟机快速构建系统,其特征在于,包括部署在网络靶场控制节点的网络靶场平台和虚拟机调度模块,以及部署在网络靶场计算节点的虚拟机管理模块和快速构建模块;
所述网络靶场平台,用于接收并保存用户创建的网络靶场场景拓扑以及场景中各虚拟机的快速构建信息;
所述虚拟机调度模块,用于在用户启动网络靶场场景拓扑时,根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上;
所述虚拟机管理模块,用于创建调度的虚拟机并在虚拟机启动时为虚拟机添加一个CDROM设备;
所述快速构建模块,用于根据所部署的虚拟机的快速构建信息,过滤重复的软件包,并下载依赖软件;为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖软件一起打包到iso文件中;以及在虚拟机启动完成时,修改虚拟机上挂载的CDROM路径为生成的iso文件路径;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件。
2.根据权利要求1所述的网络靶场大规模场景中虚拟机快速构建系统,其特征在于,所述虚拟机调度模块,包括:
相似度计算单元,用于计算不同虚拟机间任意两个虚拟机依赖软件的相似度,并保存在二维数组中;以及对指定虚拟机与其他虚拟机间的相似度进行排序得到与指定虚拟机的依赖软件相似度最高的虚拟机;
虚拟机资源计算单元,用于计算用户所启动的网络靶场场景拓扑所需要的资源总量,以及每个计算节点资源使用平均值;
以及,虚拟机调度单元,用于根据场景中配置的虚拟机的顺序依次调度虚拟机,并在计算节点资源使用情况小于资源使用平均值时,将与当前所调度虚拟机依赖软件相似度最高的虚拟机调度到同一个计算节点,若计算节点资源使用情况大于等于资源使用平均值,则按顺序将下一个虚拟机调度到下一个计算节点。
3.根据权利要求2所述的网络靶场大规模场景中虚拟机快速构建系统,其特征在于,所述虚拟机调度模块根据如下规则计算不同虚拟机依赖软件的相似度: (SA &SB)/(SA + SB- (SA & SB));其中SA、SB分别表示A虚拟机和B虚拟机快速构建依赖软件的大小;SA & SB表示A虚拟机与B虚拟机快速构建依赖软件相同部分大小。
4.根据权利要求1所述的网络靶场大规模场景中虚拟机快速构建系统,其特征在于,所述快速构建模块,包括:
软件包获取单元,用于根据虚拟机快速构建信息过滤重复的软件包,并从文件服务模块下载依赖软件;
iso文件生成单元,用于为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖软件一起打包到iso文件中;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件;
iso文件管理单元,用于将虚拟机ID以及对应的iso文件路径以字典形式存储到内存中;
以及,快速构建执行单元,用于在虚拟机启动完成时,根据虚拟机ID获取到快速构建iso文件路径,并修改虚拟机上挂载的CDROM路径为生成的iso文件路径。
5.根据权利要求1所述的网络靶场大规模场景中虚拟机快速构建系统,其特征在于,所述快速构建模块通过监听到虚拟机网卡的DHCP请求流量信息,判断虚拟机是否启动完成,在首次收到某一虚拟机网卡的DHCP请求的流量时,则认为该虚拟机启动完成。
6.一种网络靶场大规模场景中虚拟机快速构建方法,其特征在于,包括如下步骤:
(1)接收并保存用户创建的网络靶场场景拓扑以及场景中各虚拟机的快速构建信息;
(2)在用户启动网络靶场场景拓扑时,根据虚拟机的依赖软件进行调度,优先将相同依赖软件的虚拟机调度到相同的计算节点上;
(3)创建调度的虚拟机并在虚拟机启动时为虚拟机添加一个CDROM设备;同时根据所部署的虚拟机的快速构建信息,过滤重复的软件包,并下载依赖软件;
(4)为所部署的虚拟机生成构建脚本,并和autorun.inf配置文件以及依赖软件一起打包到iso文件中;同一个计算节点上快速构建信息相同的虚拟机共用一个iso文件;
(5)在虚拟机启动完成时,修改虚拟机上挂载的CDROM路径为生成的iso文件路径,由虚拟机系统自动运行autorun.inf配置文件中的配置快速构建脚本,由快速构建脚本安装依赖的软件实现虚拟机快速构建。
7.根据权利要求6所述的网络靶场大规模场景中虚拟机快速构建方法,其特征在于,所述步骤(2)中虚拟机调度的具体步骤包括:
(2.1)计算用户所启动的网络靶场场景拓扑所需要的资源总量,以及每个计算节点资源使用平均值;
(2.2)计算场景中每个虚拟机与其他虚拟机快速构建依赖软件的相似度形成一个二维数组;
(2.3)从未调度的第一个虚拟机开始,将虚拟机调度到未调度第一个计算节点;
(2.4)计算当前调度的计算节点资源使用情况,如果资源使用情况大于等于计算的平均值则会将下一个未调度的虚拟机调度到下一个未调度的计算节点,重复步骤(2.4);否则进入(2.5);
(2.5)将当前调度的虚拟机与其他虚拟机的相似度进行排序,选择一个相似度最高的虚拟机调度到同一个计算节点,并将选择的虚拟机从二维数组中删除,防止重复调度;回到步骤(2.4)直到所有虚拟机调度完毕。
8.根据权利要求7所述的网络靶场大规模场景中虚拟机快速构建方法,其特征在于,所述步骤(2.2)中根据如下规则计算不同虚拟机依赖软件的相似度: (SA &SB)/(SA + SB -(SA & SB));其中SA、SB分别表示A虚拟机和B虚拟机快速构建依赖软件的大小;SA & SB表示A虚拟机与B虚拟机快速构建依赖软件相同部分大小。
9.根据权利要求6所述的网络靶场大规模场景中虚拟机快速构建方法,其特征在于,通过监听到虚拟机网卡的DHCP请求流量信息,判断虚拟机是否启动完成,在首次收到某一虚拟机网卡的DHCP请求的流量时,则认为该虚拟机启动完成。
CN202010828396.4A 2020-08-18 2020-08-18 一种网络靶场大规模场景中虚拟机快速构建系统与方法 Active CN111741134B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010828396.4A CN111741134B (zh) 2020-08-18 2020-08-18 一种网络靶场大规模场景中虚拟机快速构建系统与方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010828396.4A CN111741134B (zh) 2020-08-18 2020-08-18 一种网络靶场大规模场景中虚拟机快速构建系统与方法

Publications (2)

Publication Number Publication Date
CN111741134A CN111741134A (zh) 2020-10-02
CN111741134B true CN111741134B (zh) 2020-12-22

Family

ID=72658532

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010828396.4A Active CN111741134B (zh) 2020-08-18 2020-08-18 一种网络靶场大规模场景中虚拟机快速构建系统与方法

Country Status (1)

Country Link
CN (1) CN111741134B (zh)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112270085B (zh) * 2020-10-26 2021-06-15 广州锦行网络科技有限公司 一种3d网络靶场的动态设计方法
CN112104512B (zh) * 2020-11-02 2021-03-12 南京赛宁信息技术有限公司 实训靶场课程场景的快速切换系统与方法
CN113595772B (zh) * 2021-07-16 2023-08-29 南京赛宁信息技术有限公司 一种多用户的靶场环境中场景复用方法与装置
CN113268206B (zh) * 2021-07-19 2021-10-19 南京赛宁信息技术有限公司 一种网络靶场资源热插拔实现方法与系统
CN113778615B (zh) * 2021-08-06 2022-04-15 北京永信至诚科技股份有限公司 一种快速稳定的网络靶场虚拟机构建系统
CN113973053B (zh) * 2021-10-21 2023-10-27 南京赛宁信息技术有限公司 一种网络靶场的探针管理系统与方法
CN114500047B (zh) * 2022-01-26 2023-06-27 烽台科技(北京)有限公司 一种工业网络靶场异构互联的方法及系统
CN115086250B (zh) * 2022-07-20 2022-11-22 南京赛宁信息技术有限公司 一种网络靶场分布式流量发生系统与方法
CN115086307B (zh) * 2022-08-23 2022-11-22 南京赛宁信息技术有限公司 一种网络靶场数据传输方法与系统
CN116319482B (zh) * 2023-05-22 2023-08-22 南京赛宁信息技术有限公司 网络靶场中基于Wazuh的自定义探针采集系统与方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108055327A (zh) * 2017-12-15 2018-05-18 佛山三维二次方科技有限公司 基于OpenStack的云计算实验平台
CN110362380A (zh) * 2019-06-17 2019-10-22 东南大学 一种面向网络靶场的多目标优化虚拟机部署方法

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7577722B1 (en) * 2002-04-05 2009-08-18 Vmware, Inc. Provisioning of computer systems using virtual machines
CN111478820B (zh) * 2020-06-24 2020-10-09 南京赛宁信息技术有限公司 网络靶场大规模网络环境的网络设备配置系统与方法

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108055327A (zh) * 2017-12-15 2018-05-18 佛山三维二次方科技有限公司 基于OpenStack的云计算实验平台
CN110362380A (zh) * 2019-06-17 2019-10-22 东南大学 一种面向网络靶场的多目标优化虚拟机部署方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
面向取证能力提升的网络靶场训练系统构建;徐国天;《警察技术》;20200507;全文 *

Also Published As

Publication number Publication date
CN111741134A (zh) 2020-10-02

Similar Documents

Publication Publication Date Title
CN111741134B (zh) 一种网络靶场大规模场景中虚拟机快速构建系统与方法
CN108205442B (zh) 边缘计算平台
CN109976774B (zh) 区块链节点部署方法、装置、设备和存储介质
CN108924217B (zh) 一种分布式云系统自动化部署方法
CN110752947B (zh) 一种k8s集群部署方法及装置,一种部署平台
CN107463582B (zh) 分布式部署Hadoop集群的方法及装置
WO2017161984A1 (zh) 数据集群的部署方法、装置、系统及计算机存储介质
CN107896162B (zh) 监控系统的部署方法、装置、计算机设备及存储介质
CN110187912B (zh) 一种节点选择方法和装置
CN110149409B (zh) 云主机元数据服务管理方法、系统、设备及存储介质
Da Silva et al. Internet of things out of the box: using TOSCA for automating the deployment of IoT environments
EP3782061B1 (en) System and method to securely execute datacenter management operations remotely
WO2013107012A1 (zh) 分布式计算任务处理系统和任务处理方法
CN113645071B (zh) 一种集群部署方法、系统、介质及电子终端
CN107193609B (zh) 应用中功能模块调用方法及装置、电子设备
CN103685496A (zh) 一种文件数据的传输方法和设备
JPWO2014171130A1 (ja) 情報処理システム、配備方法、処理装置、及び、配備装置
JP2008541549A (ja) 装置管理システム及びそのシステムにおける設定値セット方法
CN107071043A (zh) 一种网络信息的配置方法和装置
CN103944961A (zh) 一种分享应用的方法、装置及系统
CN113419818B (zh) 基础组件部署方法、装置、服务器及存储介质
CN112860251A (zh) 一种网站前端构建的方法与系统
CN112261125A (zh) 集中单元的云化部署方法、装置及系统
CN114296864A (zh) 一种iso镜像转换成容器镜像的方法及设备
CN115268909A (zh) 一种web前端创建并运行构建任务的方法、系统和终端

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