本发明涉及一种CTF在线竞赛平台(OJ平台)的在线环境智能部署系统和方法,属于信息处理技术领域。
背景技术:
CTF(Capture The Flag)中文一般译作夺旗赛,是一种流行的信息安全竞赛形式。其大致流程是,参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。为了方便称呼,我们把这样的内容称之为“Flag”。CTF竞赛模式主要有三类,解题模式,攻防模式和混合模式。
一、解题模式(Jeopardy)
在解题模式CTF赛制中,参赛队伍可以通过互联网或者现场网络参与,这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。
二、攻防模式(Attack-Defense)
在攻防模式CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(因为比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。
三、混合模式(Mix)
结合了解题模式与攻防模式的CTF赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。
其中解题模式一般为在线竞赛,各种CTF在线竞赛平台应运而生,现有CTF在线竞赛平台采用题目、平台松耦合机制,需求环境的题目需提前部署题目环境,录制题目内容,在比赛中使用CTF在线竞赛平台引导用户访问现有内容和环境进行答题。这种方式主要有几个弊端,一是每次重新使用题目需要重新环境,无法有效复用,因为是CTF安全问题,每次部署需要大量人工时间去验证和核实环境;二是比赛过程种参赛选手访问的环境是同一个环境,互相会有干扰,导致有干扰项的CTF题目类型无法实现在线解答,不能完全对实际环境进行仿真。
技术实现要素:
发明目的:针对现有技术中存在的问题,本发明提供一种CTF在线竞赛平台的在线环境智能部署系统和智能部署方法,实现题目环境的智能生成和回收,提高部署效率,并有效保证题目环境的独立性和网络的独立性。
技术方案:为实现上述发明目的,本发明采用如下技术方案:
一种CTF在线竞赛平台的在线环境智能部署系统,包括:在线竞赛平台服务端、反向代理服务端、虚拟机管理平台服务端以及若干由虚拟机管理平台创建的运行题目环境的虚拟机;所述反向代理服务端接入公网环境,所述在线竞赛平台服务端、反向代理服务端、虚拟机管理平台服务端以及在线环境虚拟机通过内网通信;
所述在线竞赛平台服务端设有环境生成模块和环境回收模块,所述环境生成模块用于根据用户的在线环境题目请求向虚拟机管理平台服务端下发生成题目环境的指令,并通知反向代理服务端配置代理端口,在环境和端口就绪后拼接访问地址返回给用户;所述环境回收模块用于根据用户的回收环境指令或在环境需回收时通知虚拟机管理平台服务端和反向代理服务端回收环境;
所述虚拟机管理平台服务端用于根据题目配置信息创建运行题目环境的虚拟机;所述反向代理服务端用于进行端口代理,使得用户可以通过公网IP加端口的方式访问到题目环境虚拟机。
作为优选,所述环境回收模块设有环境运行时间监控单元,用于判断在线环境运行时间是否达到设定的自动回收时间来确定是否需要自动回收题目环境。
一种CTF在线竞赛平台的在线环境智能部署方法,包括生成环境步骤和回收环境步骤,所述生成环境步骤包括:
(A1)在线竞赛平台接收到用户发出的申请在线环境类题目的请求时,向虚拟机管理平台服务端下发生成题目环境的指令;
(A2)虚拟机管理平台服务端收到指令后,下载题目信息,根据题目配置信息调用安装脚本生成题目环境,并反馈已就绪信息给在线竞赛平台;
(A3)在线竞赛平台收到虚拟机管理平台服务端环境已就绪的信息,通知反向代理服务端配置代理端口;
(A4)反向代理服务端配置代理端口并反馈给在线竞赛平台;
(A5)在线竞赛平台收到代理端口后拼接访问地址返回给用户;
所述回收环境步骤包括:
(B1)在线竞赛平台接收到用户发出的回收环境指令或主动发现环境需回收时,通知虚拟机管理平台服务端回收题目环境,并通知反向代理服务端回收代理端口;
(B2)虚拟机管理平台服务端回收题目环境,反向代理服务端回收代理端口。
作为优选,所述回收环境步骤中,在线竞赛平台通过判断在线环境运行时间是否达到设定的自动回收时间来确定是否需要自动回收题目环境。
作为优选,所述自动回收时间可以根据用户发出的延时申请进行延长。
有益效果:与现有技术相比,本发明通过智能部署提高了部署效率,题目可自由复用,并保证了题目初始环境的纯粹和无干扰的。
附图说明
图1为本发明实施例的在线环境智能部署系统示意图。
图2为本发明实施例中题目环境生成和回收的方法流程示意图。
具体实施方式
下面结合具体实施例,进一步阐明本发明,应理解这些实施例仅用于说明本发明而不用于限制本发明的范围,在阅读了本发明之后,本领域技术人员对本发明的各种等价形式的修改均落于本申请所附权利要求所限定的范围。
CTF题目有多种类型,通常可归纳为三类:文本说明类,附件下载类和在线环境类,本发明主要实现了在线环境类题目的实时智能部署。如图1所示,本发明实施例公开的一种CTF在线竞赛平台的在线环境智能部署系统,主要包括:在线竞赛平台服务端、反向代理服务端、虚拟机管理平台服务端以及若干由虚拟机管理平台创建的运行题目环境的虚拟机。反向代理服务端配有公网IP,接入公网环境,在线竞赛平台服务端、反向代理服务端、虚拟机管理平台服务端以及在线环境虚拟机分配设有内网IP,通过内网通信。在线竞赛平台服务端可选择配置公网IP或通过反向代理服务端接入公网。
在线竞赛平台服务端设有环境生成模块和环境回收模块,环境生成模块用于根据用户的在线环境题目请求向虚拟机管理平台服务端下发生成题目环境的指令,并通知反向代理服务端配置代理端口,在环境和端口就绪后拼接访问地址返回给用户;环境回收模块用于根据用户的回收环境指令或在环境需回收时通知虚拟机管理平台服务端和反向代理服务端回收环境。
虚拟机管理平台服务端用于根据题目配置信息创建运行题目环境的虚拟机。反向代理服务端用于进行端口代理,使得可以通过公网IP加端口的方式访问到题目环境虚拟机。
在具体应用时,可采用OpenStack虚拟机管理平台和Nginx反向代理服务器,与传统的CTF在线竞赛平台相比,本实施例的方案主要具备如下几个特点:
1.实时环境部署和智能回收
可采用最新的OpenStack虚拟化方案,用户请求题目环境时,根据用户信息和题目配置,题目配置文件主要包括题目源文件,题目的安装脚本,与用户信息相关的flag接收脚本,监听端口列表等,后台动态虚拟化一份对应的虚拟机模板,调用题目的初始化安装脚本,生成一份全新的独立环境,完全避免了不同用户访问同一环境带来的操作干扰。并将用户和环境的配置信息保存在数据库,这样在环境回收前,用户可以随时访问他的独立题目环境。在实际使用过程中,还考虑到用户可能因为各种原因忘记主动关闭环境,一个题目环境的长期运行必然会影响服务的性能和体验。因此设计了环境的自动回收时间,用户可以通过在线申请延时延长环境的存活时间。
2.漏洞环境部署时和内网隔离
由于题目预置了可利用漏洞,黑客可以轻松攻破题目环境所在虚拟机,因此,虚拟机所在网络必须和其他网络完全隔离,这样即时黑客入侵了题目虚拟机依旧无法突破网络层的隔离,无法影响正常网络的运行。
3.有限公网ip下多环境的访问
在OpenStack中dhcp必须为一个独立的ip,如果OpenStack外其他网络能够访问的话必须配置floating_ip(即动态ip),动态为公网地址(内网可连接的情况下,动态地址为内网地址即可),但是由于公网地址价格昂贵,公网ip有限,无法为每个虚拟机都配置一个独立ip,需要对题目中配置的题目使用端口进行代理,在内网中我们采用一台Nginx配置公网地址作为前置虚拟机,将题目端口代理出来,这样就可以通过访问这台前置虚拟机的不同端口访问不同的题目。根据公网IP数量可选择将在线竞赛平台服务端(即OJ平台)也通过Nginx-Server做反向代理。
如图2所示,本发明实施例公开的一种CTF在线竞赛平台的在线环境智能部署方法,其生成环境主要包括:
1.用户通过OJ平台下发生成题目的指令。
2.OJ平台对OpenStack-Server下发生成题目环境的指令。
3.OpenStack-Server收到指令,根据指令要求下载题目对应配置,根据题目配置,依次调用安装脚本生成题目环境,并反馈已就绪信息给OJ平台。
4.OJ平台收到OpenStack-Server环境已就绪的信息,根据题目配置的监听端口列表,通知Nginx-Server代理端口信息。
5.Nginx-Server收到需代理的端口,读取本地可用端口并配置代理信息,将信息反馈给OJ平台。
6.OJ平台收到代理端口,拼接地址给返回给用户。
7.环境生成完成,用户通过获取的访问地址访问题目在线环境。
回收环境主要步骤为:
8.用户通过OJ平台下方回收环境的指令。OJ平台也可以根据环境存活时间判断是否需要回收来主动发起环境回收。
9.OJ平台通知OpenStack-Server回收环境。
10.OJ平台通知Nginx-Server回收代理端口。
环境回收后,若用户再访问环境时将重新生成题目环境。
本发明实施例使用了最新的OpenStack虚拟化技术实时智能部署题目环境,通过有限公网地址机器上部署Nginx反向代理访问题目环境,同时配置了题目环境网络独立,既保证了环境可访问,又隔离了环境,保证了其他财产的安全。