CN110730161B - 网络靶场实现方法、装置、设备、介质及系统 - Google Patents

网络靶场实现方法、装置、设备、介质及系统 Download PDF

Info

Publication number
CN110730161B
CN110730161B CN201910857535.3A CN201910857535A CN110730161B CN 110730161 B CN110730161 B CN 110730161B CN 201910857535 A CN201910857535 A CN 201910857535A CN 110730161 B CN110730161 B CN 110730161B
Authority
CN
China
Prior art keywords
title
component
questions
access instruction
generating
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.)
Expired - Fee Related
Application number
CN201910857535.3A
Other languages
English (en)
Other versions
CN110730161A (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.)
Guangtong Tianxia Network Technology Co ltd
Original Assignee
Guangtong Tianxia Network 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 Guangtong Tianxia Network Technology Co ltd filed Critical Guangtong Tianxia Network Technology Co ltd
Priority to CN201910857535.3A priority Critical patent/CN110730161B/zh
Publication of CN110730161A publication Critical patent/CN110730161A/zh
Application granted granted Critical
Publication of CN110730161B publication Critical patent/CN110730161B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/02Network architectures or network communication protocols for network security for separating internal from external traffic, e.g. firewalls
    • H04L63/0272Virtual private networks
    • 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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • H04L63/083Network architectures or network communication protocols for network security for authentication of entities using passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/14Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic
    • H04L63/1408Network architectures or network communication protocols for network security for detecting or protecting against malicious traffic by monitoring network traffic
    • H04L63/1416Event detection, e.g. attack signature detection
    • 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/45587Isolation or security of virtual machine instances
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3236Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using cryptographic hash functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本发明公开了一种网络靶场实现方法,涉及计算机安全技术领域,用于解决现有各题型难以在一个平台实现的问题,该方法包括以下步骤:接收题目及用户id;判断题目是否可复用:当题目可复用时,将题目下发至PaaS,并生成做题环境;当题目不可复用时,判断当前做题人数:当前做题人数超过预设人数时,进入排队;当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;生成题目的访问指令。本发明还公开了一种网络靶场实现装置、电子设备、计算机存储介质和系统。本发明通过PaaS化实现了Linux和Windows系统不同题型的同平台实现。

Description

网络靶场实现方法、装置、设备、介质及系统
技术领域
本发明涉及计算机安全技术领域,尤其涉及一种网络靶场实现方法、装置、设备、介质及系统。
背景技术
随着全球信息安全问题的增多,计算机安全防御技术变得越来越重要,因此,出现了网络攻防靶场平台,通过搭建漏洞环境,或者提供CTF题目,供用户进行网络安全防御的训练。
目前常用的攻防靶场平台的构建方式有三种,通过物理机、虚拟机或者Docker容器的方式完成平台的搭建。
物理机部署漏洞攻防场景,存在部署不灵活,费用昂贵,场景复现困难,题目场景权限监控管理困难;漏洞环境全部通过虚拟机实现,过于重量级,造成大量非必要开销,场景复原不友好,管理不友好;通过Docker容器技术进行部署,常常需要重复使用中间件,且对于windows内核的环境不支持。
目前要搭建漏洞环境,或是CTF题目涉及到各种底层平台、技术栈,对于Linux和Windows跨系统的做题场景难以通过一个平台实现。
发明内容
为了克服现有技术的不足,本发明的目的之一在于提供一种网络靶场实现方法,其通过将底层环境PaaS化,进而搭建出网络靶场。
本发明的目的之一采用以下技术方案实现:
一种网络靶场实现方法,包括以下步骤:
接收题目及用户id;
判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
所述的PaaS通过第一组件、第二组件、第三组件及第四组件搭建,所述第一组件用于通过Docker生成Linux内核题型的镜像环境,所述第二组件用于通过Vagrant生成Windows内核题型的虚拟机环境,第三组件用于通过Docker生成Linux内核且需要IO转发题型的镜像环境,第四组件用于通过Windows生成Windows内核且需要IO转发题型的镜像环境;
生成题目的访问指令。
进一步地,所述第一组件包括Docker和Nginx中间件,所述第二组件包括Vagrant和用于连接题目网络环境的VPN,所述的第三组件包括Docker和Golang认证转发模块,所述第四组件包括Windows和AppJailLauncher认证转发模块。
进一步地,生成题目的访问指令,包括以下步骤:
当题目为基于Linux内核的题型时,调用第一组件,Nginx作为中间件,根据题目和用户id生成哈希值,根据该哈希值构造子域名,将根域名加上子域名作为题目的访问指令;
当题目为基于Windows内核的题型时,调用第二组件,生成连接至VPN的随机账号密码,所述VPN为连接题目网络环境的VPN,所述的随机账号密码作为题目的访问指令;
当题目为基于Linux内核且需要IO转发的题型时,调用第三组件,生成哈希值口令,通过Golang将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令;
当题目为基于Windows内核且需要IO转发的题型时,调用第四组件,生成哈希值口令,通过AppJailLauncher将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令。
进一步地,生成题目的访问指令之后,还包括以下步骤:
将访问指令返回给用户id对应的操作界面;
接收所述操作界面输入的访问指令;
验证所述的访问指令:
当题目为基于Linux内核的题型时,访问指令为根域名和子域名,验证成功,则通过Nginx反代到题目镜像环境中;
当题目为基于Windows内核的题型时,访问指令为随机账号密码,验证成功,则匹配对应的VPN,通过该VPN访问题目;
当题目为基于Linux内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
当题目为基于Windows内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
验证失败,则返回错误信息到所述操作界面。
进一步地,当做题时间超过预设时间或接收到提交结果指令时,回收题目的访问指令;当题目不可复用时,还要回收题目的容器,并根据下一个排队的用户id及题目,将题目下发至PaaS,并生成做题环境。
进一步地,接收题目及用户id,还包括以下步骤:
根据题目,匹配题目库中的题目类型、题目名称、题目描述及题目得分。
本发明的目的之二在于提供一种网络靶场实现装置,其通过将底层环境PaaS化,进而通过一个平台实现跨系统的做题场景。
本发明的目的之二采用以下技术方案实现:
一种网络靶场实现装置,其特征在于,其包括:
接收模块,用于接收题目及用户id;
环境生成模块,用于判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
指令生成模块,用于生成题目的访问指令。
本发明的目的之三在于提供执行发明目的之一的电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,所述计算机程序被处理器执行时实现上述的网络靶场实现方法。
本发明的目的之四在于提供存储发明目的之一的计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述的网络靶场实现方法。
本发明的目的之五在于提供一种网络靶场实现系统,其包括:客户端和远程服务器;
其中,所述客户端用于发送所选题目及用户id;所述远程服务器用于:
接收题目及用户id;
判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
生成题目的访问指令。
相比现有技术,本发明的有益效果在于:
本发明通过四个组件搭建底层PaaS,实现了各种跨系统、全题型的兼容,实现了题目场景的高效部署,并降低了攻防靶场的开发成本,并通过排队实现了题目的复用机制。
附图说明
图1是实施例一的网络靶场实现方法的流程图;
图2是实施例二的底层PaaS架构图;
图3是实施例三的访问指令验证方法的流程图;
图4是实施例四的网络靶场实现装置的结构框图;
图5是实施例五的电子设备的结构框图。
具体实施方式
以下将结合附图,对本发明进行更为详细的描述,需要说明的是,以下参照附图对本发明进行的描述仅是示意性的,而非限制性的。各个不同实施例之间可以进行相互组合,以构成未在以下描述中示出的其他实施例。
实施例一
实施例一提供了一种网络靶场实现方法,旨在通过根据底层PaaS生成做题环境。
PaaS是Platform as a Service的缩写,是指平台即服务。把服务器平台作为一种服务提供的商业模式,通过网络进行程序提供的服务称之为SaaS(Software as aService),而云计算时代相应的服务器平台或者开发环境作为服务进行提供就成为了PaaS。PaaS的兼容性高,可以通过使用Docker等作为技术栈完成搭建。
根据上述原理,搭建PaaS,利用PaaS的兼容性,根据Linux和Windows涉及到的各种题型,完成底层PaaS环境的搭建。
请参照图1所示,一种网络靶场实现方法,包括以下步骤:
S110、接收题目及用户id;
具体地,接收题目及用户id,还包括以下步骤:
根据题目,匹配题目库中的题目类型、题目名称、题目描述及题目得分。
题目类型、题目描述等可以让用户更直观的了解到所选题目的信息,方便用户有针对性的进行题目的选择。
S120、判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
由于题目权限的不同,会出现可复用与不可复用的题目,通常,只有查看权限的题目,由于做题时不会破坏题目环境,因此可以复用,而需要较大权限的题目,例如需要修改其中内容的题目,会破坏题目的环境,因此这些题目不可复用。
预设人数可以根据实际题目数量进行确定,例如对于一个不可复用的题目,只配置了一个容器环境,那么预设人数就为一人,只有当该容器被回收后,下一个排队者才可以做题。
所述的PaaS通过第一组件、第二组件、第三组件及第四组件搭建,所述第一组件用于通过Docker生成Linux内核题型的镜像环境,所述第二组件用于通过Vagrant生成Windows内核题型的虚拟机环境,第三组件用于通过Docker生成Linux内核且需要IO转发题型的镜像环境,第四组件用于通过Windows生成Windows内核且需要IO转发题型的镜像环境;
题目上线到PaaS后,根据编写好题目、底层环境和技术栈就可以实现横向多份拷贝。
具体地,基于Linux内核的题型,例如web题型、需要IO转发的密码学题型等,通过每个题目对应的Dockerfile生成Docker题目的镜像文件,Dockerfile是事先编写好的题目配置文件;基于Windows内核的题型,对于不需要IO转发的题型,例如综合渗透等,通过Vagrant构建虚拟机环境,利用Vgrant集群概念,根据每个节点配置好的虚拟机网络,生成快照,每次启动和关闭以集群为单位进行操作;需要IO转发的题型,例如PWN、RE题型等,则通过Windows完成题目环境镜像文件的生成。即PaaS底层环境中,第一组件由Docker容器组成,第二组件由Vagrant组成,第三组件由Docker容器组成,第四组件由Windows组成。
S130、生成题目的访问指令;
访问指令相当于给到用户该题目的访问方式,用户通过输入收到的访问指令就可以连接到选择的题目中。
本实施例通过底层PaaS的四个组件实现了Linux内核和Windows内核全题型的兼容。
实施例二
实施例二是在实施例一基础上进行,其主要对四个组件的构成及其作用进行了解释和说明。
请参考图2所示,显示了底层PaaS的架构,第一组件包括Docker和Nginx中间件,第二组件包括Vagrant和用于连接题目网络环境的VPN,第三组件包括Docker和Golang认证转发模块,第四组件包括Windows和AppJailLauncher认证转发模块。
此外,底层PaaS还包括IIS、MSSQL、Apache、Python、Node.js等用于题目运行或驱动的常规工具/模块。
在实施例一中,已对Docker、vagrant及Windows的作用作了说明,以下将通过访问指令的生成过程,对Nginx、VPN、Golang和AppJailLauncher的作用进行解释和说明。
需要说明的是,本实施例中出现的“调用”都是自动调用,因为每道题目在存储时通过分类字段进行了标识,因此接收到题目后,就可以根据分类字段自动判断出题目类别和题型,匹配并调用对应的组件。
生成题目的访问指令,包括以下步骤:
当题目为基于Linux内核的题型时,调用第一组件,Nginx作为中间件,根据题目和用户id生成哈希值,根据该哈希值构造子域名,将根域名加上子域名作为题目的访问指令;
此类题目为Web题型,根据用户id和题目生成随机的哈希值,由于不同用户的id不同,因此该哈希值就可以作为该题目的唯一值,且哈希值不容易被猜测到,通过在根域名的基础上使用该哈希值作为子域名就可以达到区分不同用户,且防止他人根据根域名进行做题,保证做题的环境是隔离且独立的,使用Nginx作为中间件就可以实现通过解析根域名和子域名连接到题目的IP/端口。
当题目为基于Windows内核的题型时,调用第二组件,生成连接至VPN的随机账号密码,所述VPN为连接题目网络环境的VPN,所述的随机账号密码作为题目的访问指令;
现有技术通常使用虚拟机加noVNC的方式构建此类题目的环境,即通过noVNC实现远程浏览器访问虚拟机的Windows桌面,但是此类方法限定了工具的使用范围,且无法进行复制粘贴。
通过VPN访问的方式,即通过VPN下的网络环境实现做题功能,用户能使用各种工具,不会限定解题思路,且可以进行复制粘贴,用户的体验更好。
当题目为基于Linux内核且需要IO转发的题型时,调用第三组件,生成哈希值口令,通过Golang认证转发模块将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令;
当题目为基于Windows内核且需要IO转发的题型时,调用第四组件,生成哈希值口令,通过AppJailLauncher将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令。
对于需要IO转发(IO交互)的题目,根据内核(Windows或Linux)驱动题目,将题目转发到TCP端口,由于系统不一样,因此对于Linux内核的题目,使用Golang(GO语言)实现题目的转发,对于Windows内核的题目,使用AppJailLauncher进行题目的转发,使用AppJailLauncher是CTF题目常用的方式,转发至TCP端口也可以避免用户访问题目以外的其它内容。
实施例三
实施例三是在实施例一和实施例二的基础上进行的,主要对访问指令的验证及做题完成后的回收做了解释和说明。
请参照图3所示,生成题目的访问指令之后,还包括以下步骤:
S210、将访问指令返回给用户id对应的操作界面;
S220、接收所述操作界面输入的访问指令;
S230、验证所述的访问指令:
当题目为基于Linux内核的题型时,访问指令为根域名和子域名,验证成功,则通过Nginx反代到题目镜像环境中;
当题目为基于Windows内核的题型时,访问指令为随机账号密码,验证成功,则匹配对应的VPN,通过该VPN访问题目;
例如,题目A需要在网络C下进行答题,当用户选择开始题目A,则组件会自动生成一个随机的hash账户密码配置到VPN,并使该VPN仅能访问网络C,这个随机的hash再返回给用户。
此时用户通过账号密码连接至该VPN,就能访问到题目A。
当题目为基于Linux内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
当题目为基于Windows内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
对于需要转发到TCP端口的题目,通过GO(Golang)语言或者AppJailLauncher实现TCP转发功能,例如,有题目A,IP/端口为:127.0.0.1:8080,根据用户、题目和时间生成一个hash,Golang(认证转发模块)对外提供0.0.0.0:80,用户通过TCP连接工具(例如nc工具)到IP后,输入hash,则Golang将转发到8080端口,用户就可以进入题目。
验证失败,则返回错误信息到所述操作界面。
本发明通过回收的方式实现题目的复用以及排队机制。
当做题时间超过预设时间或接收到提交结果指令时,回收题目的访问指令;当题目不可复用时,还要回收题目的容器,并根据下一个排队的用户id及题目,将题目下发至PaaS,并生成做题环境。
通过回收题目的访问指令可以防止题目完成后,用户根据同样的指令再次进入题目,对于不可复用的题目,因为容器数量有限,且不可复制,所以还需要收回容器,根据快照或者镜像再次生成题目环境,使排队者得以进入做题。
通过回收访问指令,可以防止题目再次被用户编辑或使用,回收容器则实现了不可复用类型题目的再次使用。
实施例四
实施例四公开了一种对应上述实施例的网络靶场实现方法对应的装置,为上述实施例的虚拟装置结构,请参照图4所示,包括:
接收模块310,用于接收题目及用户id;
环境生成模块320,用于判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
指令生成模块330,用于生成题目的访问指令。
优选地,所述第一组件包括Docker和Nginx中间件,所述第二组件包括Vagrant和用于连接网络环境的VPN,所述的第三组件包括Docker和Golang认证转发模块,所述第四组件包括Windows和AppJailLauncher认证转发模块。
优选地,生成题目的访问指令,包括以下步骤:
当题目为基于Linux内核的题型时,调用第一组件,Nginx作为中间件,根据题目和用户id生成哈希值,根据该哈希值构造子域名,将根域名加上子域名作为题目的访问指令;
当题目为基于Windows内核的题型时,调用第二组件,生成连接至VPN的随机账号密码,所述VPN为连接题目网络环境的VPN,所述的随机账号密码作为题目的访问指令;
当题目为基于Linux内核且需要IO转发的题型时,调用第三组件,生成哈希值口令,通过Golang将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令;
当题目为基于Windows内核且需要IO转发的题型时,调用第四组件,生成哈希值口令,通过AppJailLauncher将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令。
生成题目的访问指令之后,还包括以下步骤:
将访问指令返回给用户id对应的操作界面;
接收所述操作界面输入的访问指令;
验证所述的访问指令:
当题目为基于Linux内核的题型时,访问指令为根域名和子域名,验证成功,则通过Nginx反代到题目镜像环境中;
当题目为基于Windows内核的题型时,访问指令为随机账号密码,验证成功,则匹配对应的VPN,通过该VPN访问题目;
当题目为基于Linux内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
当题目为基于Windows内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
验证失败,则返回错误信息到所述操作界面。
当做题时间超过预设时间或接收到提交结果指令时,回收题目的访问指令;当题目不可复用时,还要回收题目的容器,并根据下一个排队的用户id及题目,将题目下发至PaaS,并生成做题环境。
优选地,接收题目及用户id,还包括以下步骤:
根据题目类型,匹配题目库中的题目名称、题目描述及题目得分。
实施例五
图5为本发明实施例五提供的一种电子设备的结构示意图,如图5所示,该电子设备包括处理器410、存储器420、输入装置430和输出装置440;计算机设备中处理器410的数量可以是一个或多个,图5中以一个处理器410为例;电子设备中的处理器410、存储器420、输入装置430和输出装置440可以通过总线或其他方式连接,图5中以通过总线连接为例,本实施例描述的电子设备主要用于网络靶场的实现,包括题目环境的搭建及向用户端下发题目。
存储器420作为一种计算机可读存储介质,可用于存储软件程序、计算机可执行程序以及模块,如本发明实施例中的网络靶场实现方法对应的程序指令/模块(例如,网络靶场实现方法装置中的接收模块310、环境生成模块320、指令生成模块330)。处理器410通过运行存储在存储器420中的软件程序、指令以及模块,从而执行电子设备的各种功能应用以及数据处理,即实现上述实施例一至实施例三的网络靶场实现方法。
存储器420可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需的应用程序,例如存储有Linux操作系统、Windows操作系统及四个组件搭建的底层PaaS;存储数据区可存储根据终端的使用所创建的数据等,例如存储有各种题型的题目。此外,存储器420可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他非易失性固态存储器件。在一些实例中,存储器420可进一步包括相对于处理器410远程设置的存储器,这些远程存储器可以通过网络连接至电子设备,例如存储有不同题目的远程存储器,通过处理器410对题目完成环境的搭建、下发等处理工作。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
输入装置430可用于接收输入的用户身份信息、选择的题目等。输出装置440可包括显示屏等显示设备,例如向用户展示选择的题目,供用户进行答题等。
实施例六
本发明实施例六还提供一种包含计算机可执行指令的存储介质,该存储介质可用于计算机执行网络靶场实现方法,该方法包括:
接收题目及用户id;
判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
所述的PaaS通过第一组件、第二组件、第三组件及第四组件搭建,所述第一组件用于通过Docker生成Linux内核题型的镜像环境,所述第二组件用于通过Vagrant生成Windows内核题型的虚拟机环境,第三组件用于通过Docker生成Linux内核且需要IO转发题型的镜像环境,第四组件用于通过Windows生成Windows内核且需要IO转发题型的镜像环境;
生成题目的访问指令。
当然,本发明实施例所提供的一种包含计算机可执行指令的存储介质,其计算机可执行指令不限于如上所述的方法操作,还可以执行本发明任意实施例所提供的基于网络靶场实现方法中的相关操作。
实施例七
本发明实施例七还提供一种网络靶场实现系统,其包括:客户端和远程服务器;
其中,所述客户端用于发送所选题目及用户id;所述远程服务器用于:
接收题目及用户id;
判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
生成题目的访问指令。
客户端为用户做题时的终端,通常为计算机,远程服务器可以为云服务器,也可以是一个或多个物理服务器。
本实施例所提到的PaaS,其架构及功能参照实施例一至实施例三的网络靶场实现方法。
通过以上关于实施方式的描述,所属领域的技术人员可以清楚地了解到,本发明可借助软件及必需的通用硬件来实现,当然也可以通过硬件实现,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如计算机的软盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(RandomAccess Memory,RAM)、闪存(FLASH)、硬盘或光盘等,包括若干指令用以使得一台电子设备(可以是手机,个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述的方法。
值得注意的是,上述基于网络靶场实现方法装置的实施例中,所包括的各个单元和模块只是按照功能逻辑进行划分的,但并不局限于上述的划分,只要能够实现相应的功能即可;另外,各功能单元的具体名称也只是为了便于相互区分,并不用于限制本发明的保护范围。
对本领域的技术人员来说,可根据以上描述的技术方案以及构思,做出其它各种相应的改变以及形变,而所有的这些改变以及形变都应该属于本发明权利要求的保护范围之内。

Claims (10)

1.一种网络靶场实现方法,其特征在于,包括以下步骤:
接收题目及用户id;
判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
所述的PaaS通过第一组件、第二组件、第三组件及第四组件搭建,所述第一组件用于通过Docker生成Linux内核题型的镜像环境,所述第二组件用于通过Vagrant生成Windows内核题型的虚拟机环境,第三组件用于通过Docker生成Linux内核且需要IO转发题型的镜像环境,第四组件用于通过Windows生成Windows内核且需要IO转发题型的镜像环境;
生成题目的访问指令。
2.如权利要求1所述的网络靶场实现方法,其特征在于,所述第一组件包括Docker和Nginx中间件,所述第二组件包括Vagrant和用于连接题目网络环境的VPN,所述的第三组件包括Docker和Golang认证转发模块,所述第四组件包括Windows和AppJailLauncher认证转发模块。
3.如权利要求2所述的网络靶场实现方法,其特征在于,生成题目的访问指令,包括以下步骤:
当题目为基于Linux内核的题型时,调用第一组件,Nginx作为中间件,根据题目和用户id生成哈希值,根据该哈希值构造子域名,将根域名加上子域名作为题目的访问指令;
当题目为基于Windows内核的题型时,调用第二组件,生成连接至VPN的随机账号密码,所述VPN为连接题目网络环境的VPN,所述的随机账号密码作为题目的访问指令;
当题目为基于Linux内核且需要IO转发的题型时,调用第三组件,生成哈希值口令,通过Golang将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令;
当题目为基于Windows内核且需要IO转发的题型时,调用第四组件,生成哈希值口令,通过AppJailLauncher将所述的哈希值口令及题目转发至TCP端口,所述哈希值口令作为题目的访问指令。
4.如权利要求3所述的网络靶场实现方法,其特征在于,生成题目的访问指令之后,还包括以下步骤:
将访问指令返回给用户id对应的操作界面;
接收所述操作界面输入的访问指令;
验证所述的访问指令:
当题目为基于Linux内核的题型时,访问指令为根域名和子域名,验证成功,则通过Nginx反代到题目镜像环境中;
当题目为基于Windows内核的题型时,访问指令为随机账号密码,验证成功,则匹配对应的VPN,通过该VPN访问题目;
当题目为基于Linux内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
当题目为基于Windows内核且需要IO转发的题型时,访问指令为哈希值口令,验证成功,则转到题目对应的TCP端口;
验证失败,则返回错误信息到所述操作界面。
5.如权利要求4所述的网络靶场实现方法,其特征在于,当做题时间超过预设时间或接收到提交结果指令时,回收题目的访问指令;当题目不可复用时,还要回收题目的容器,并根据下一个排队的用户id及题目,将题目下发至PaaS,并生成做题环境。
6.如权利要求1所述的网络靶场实现方法,其特征在于,接收题目及用户id,还包括以下步骤:
根据题目,匹配题目库中的题目类型、题目名称、题目描述及题目得分。
7.一种网络靶场实现装置,其特征在于,其包括:
接收模块,用于接收题目及用户id;
环境生成模块,用于判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
所述的PaaS通过第一组件、第二组件、第三组件及第四组件搭建,所述第一组件用于通过Docker生成Linux内核题型的镜像环境,所述第二组件用于通过Vagrant生成Windows内核题型的虚拟机环境,第三组件用于通过Docker生成Linux内核且需要IO转发题型的镜像环境,第四组件用于通过Windows生成Windows内核且需要IO转发题型的镜像环境;
指令生成模块,用于生成题目的访问指令。
8.一种电子设备,其包括处理器、存储介质以及计算机程序,所述计算机程序存储于存储介质中,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的网络靶场实现方法。
9.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至6任一项所述的网络靶场实现方法。
10.一种网络靶场实现系统,其特征在于,其包括:客户端和远程服务器;
其中,所述客户端用于发送所选题目及用户id;所述远程服务器用于:
接收题目及用户id;
判断题目是否可复用:
当题目可复用时,将题目下发至PaaS,并生成做题环境;
当题目不可复用时,判断当前做题人数:
当前做题人数超过预设人数时,进入排队;
当前做题人数未超过预设人数时,将题目下发至PaaS,并生成做题环境;
所述的PaaS通过第一组件、第二组件、第三组件及第四组件搭建,所述第一组件用于通过Docker生成Linux内核题型的镜像环境,所述第二组件用于通过Vagrant生成Windows内核题型的虚拟机环境,第三组件用于通过Docker生成Linux内核且需要IO转发题型的镜像环境,第四组件用于通过Windows生成Windows内核且需要IO转发题型的镜像环境;
生成题目的访问指令。
CN201910857535.3A 2019-09-09 2019-09-09 网络靶场实现方法、装置、设备、介质及系统 Expired - Fee Related CN110730161B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910857535.3A CN110730161B (zh) 2019-09-09 2019-09-09 网络靶场实现方法、装置、设备、介质及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910857535.3A CN110730161B (zh) 2019-09-09 2019-09-09 网络靶场实现方法、装置、设备、介质及系统

Publications (2)

Publication Number Publication Date
CN110730161A CN110730161A (zh) 2020-01-24
CN110730161B true CN110730161B (zh) 2020-08-04

Family

ID=69218027

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910857535.3A Expired - Fee Related CN110730161B (zh) 2019-09-09 2019-09-09 网络靶场实现方法、装置、设备、介质及系统

Country Status (1)

Country Link
CN (1) CN110730161B (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111209089B (zh) * 2020-02-28 2023-08-22 杭州师范大学 一种ctf竞赛在线环境类题目安全部署方法
CN111274002A (zh) * 2020-02-28 2020-06-12 深圳市赛为智能股份有限公司 支撑paas平台构建方法、装置、计算机设备及存储介质
CN111651242B (zh) * 2020-08-10 2020-12-01 南京赛宁信息技术有限公司 网络靶场实战演练场景的操作机调度系统与方法
CN111711557B (zh) * 2020-08-18 2020-12-04 北京赛宁网安科技有限公司 一种网络靶场用户远程接入系统与方法
CN112184855A (zh) * 2020-09-23 2021-01-05 广州锦行网络科技有限公司 一种基于网络靶场的安全设备建立方法
CN112217904A (zh) * 2020-10-28 2021-01-12 西安四叶草信息技术有限公司 一种在线网络安全比赛方法及装置
CN115225410B (zh) * 2022-08-30 2022-12-09 四川安洵信息技术有限公司 一种独立动态的网络安全靶场系统、设备及其应用方法

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801696A (zh) * 2011-05-25 2012-11-28 胡积献 一种获得互联网上精确信息的方法及系统
CN108898903A (zh) * 2018-06-07 2018-11-27 广州大学 一种泛ctf网络安全人才培养系统以及基于此系统的出题方法和做题方法
CN109286611A (zh) * 2018-08-24 2019-01-29 赛尔网络有限公司 一种网络靶场云平台系统、构建方法、设备和介质
CN110022311A (zh) * 2019-03-18 2019-07-16 北京工业大学 一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104468395B (zh) * 2014-10-20 2018-11-06 广州华多网络科技有限公司 直播间的频道访问方法和系统
US10672289B2 (en) * 2015-09-24 2020-06-02 Circadence Corporation System for dynamically provisioning cyber training environments
CN107179939B (zh) * 2017-05-12 2021-01-12 北京理工大学 一种信息安全竞赛题目可用性检测方法
CN109147447A (zh) * 2017-06-16 2019-01-04 云南电网有限责任公司信息中心 一种基于虚拟化技术的网络攻防靶场实战系统
CN108021428A (zh) * 2017-12-05 2018-05-11 华迪计算机集团有限公司 一种基于Docker实现网络靶场的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102801696A (zh) * 2011-05-25 2012-11-28 胡积献 一种获得互联网上精确信息的方法及系统
CN108898903A (zh) * 2018-06-07 2018-11-27 广州大学 一种泛ctf网络安全人才培养系统以及基于此系统的出题方法和做题方法
CN109286611A (zh) * 2018-08-24 2019-01-29 赛尔网络有限公司 一种网络靶场云平台系统、构建方法、设备和介质
CN110022311A (zh) * 2019-03-18 2019-07-16 北京工业大学 一种基于攻击图的云外包服务数据泄露安全测试用例自动化生成方法

Also Published As

Publication number Publication date
CN110730161A (zh) 2020-01-24

Similar Documents

Publication Publication Date Title
CN110730161B (zh) 网络靶场实现方法、装置、设备、介质及系统
CN110096857B (zh) 区块链系统的权限管理方法、装置、设备和介质
US11307969B2 (en) Methods for improved web application testing using remote headless browsers and devices thereof
CN110764871B (zh) 一种基于云平台的拟态化应用封装与控制系统和方法
WO2020019475A1 (zh) 虚拟演练网络的创建方法和装置
US10846377B2 (en) Secure file sharing using semantic watermarking
WO2015165358A1 (en) Chat information transmission method and apparatus, and chat information push method and server
WO2020211377A1 (zh) 防火墙验证方法、装置、计算机设备和存储介质
CN106603567B (zh) 一种web管理员的登录管理方法及装置
CN111859881A (zh) 数据处理方法、装置、电子设备及介质
US20210026674A1 (en) Secure incident investigation workspace generation and investigation control
US11899766B2 (en) User authentication using original and modified images
CN105790975A (zh) 一种业务处理操作的执行方法及装置
CN115774742A (zh) 私有云的数据存储新增方法、装置、设备、介质及产品
KR102254693B1 (ko) 네트워크 저작기능을 갖는 사이버 보안 훈련 시스템
CN114499984A (zh) 基于ai和rpa的身份认证方法、装置、设备和介质
CN113420133A (zh) 一种会话处理方法、装置、设备及存储介质
CN111460408A (zh) 一种平台个人用户的注册方法、装置、介质及电子设备
CN111596953A (zh) 版本管理系统、开发数据传输控制方法及相关装置
CN114339420A (zh) 一种拉流方法、装置、电子设备及存储介质
US20200076749A1 (en) Providing contextual alerts
CN111953637A (zh) 一种应用服务方法与装置
EP4184326A1 (en) Local service provision method and apparatus, device, and storage medium
CN113590415B (zh) 深度学习训练平台的端口管理系统、方法、设备及介质
CN117271482B (zh) 历史数据迁移方法、装置、电子设备及存储介质

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
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20200804