掌桥专利:专业的专利平台
掌桥专利
首页

一种在线网络安全比赛方法及装置

文献发布时间:2023-06-19 09:32:16


一种在线网络安全比赛方法及装置

技术领域

本公开涉及计算机技术领域,尤其涉及一种在线网络安全比赛方法及装置。

背景技术

随着网络安全技术的飞速发展,网络安全能力考核逐渐被提上日程,在网络安全技术相对特殊的背景下,夺旗赛(CTF,Capture The Flag)逐渐成为大众认可的网络安全技术评比和能力检验的方式,CTF是利用所掌握的计算机技术,发现系统存在的所有安全风险,既要从开发者角度分析代码还要从发现故障bug的角度去发现漏洞,甚至还会使用一些逆向技术。CTF根据不同场景分为互联网赛和线下赛,大部分夺旗赛为了保证公平公正一般会在线下举办。但近年随着互联网的普及和网络的打通,互联网端的夺旗赛模式也被提出作为极大的市场需求。

但是,现有的夺旗赛从线下往互联网迁移存在如下三个问题点:

其一、一般用户所拥有的互联网资源是有限的,集中体现在IP、域名、云服务器资源;

其二、线上夺旗赛时,为了公平和公正,夺旗赛的环境不能共享,否则会出现一个参赛者渗透利用完成后导致环境被破坏,剩余参赛者无法再继续夺旗;

第三、如果使用IP地址访问极容易出现恶性竞争模式下的干扰,导致比赛受影响,极度严重情况下,比赛可能直接无法正常进行。

发明内容

本公开实施例提供一种在线网络安全比赛方法及装置,能够解决现有技术中用户互联网资源有限,以及容易出现恶性竞争的问题。所述技术方案如下:

根据本公开实施例的第一方面,提供一种在线网络安全比赛方法,该方法包括:

获取M个赛题,其中,所述M≥1;

根据所述M个赛题创建对应的M个基础镜像;

根据所述M个基础镜像创建N个参赛者的M*N个容器,其中,所述N≥1;

将所述M*N个容器与M*N个子域名地址绑定,并将所述M*N个子域名地址发送给对应的所述N个参赛者。

本公开实施例提供的在线网络安全比赛方法,首先获取M个赛题,其中M≥1;根据M个赛题创建对应的M个基础镜像;根据M个基础镜像创建N个参赛者的M*N个容器,其中N≥1;将M*N个容器与M*N个子域名地址绑定,并将M*N个子域名地址发送给对应的N个参赛者。本公开通过Docker创建独立的靶标环境,通过域名泛解析绑定独立的域名,能够给参赛者提供足够的互联网资源,且能够达到夺旗赛需要的公平公正。另外,Docker占用资源少,极大的节约了资源,降低了成本。

在一个实施例中,在所述根据所述M个赛题创建对应的M个基础镜像之前,所述方法还包括:

对所述M个赛题进行编码,获得M个编码赛题;

相应的,所述根据所述M个赛题创建对应的M个基础镜像包括:

根据所述M个编码赛题创建对应的M个基础镜像。

在一个实施例中,所述将所述M*N个容器与M*N个子域名地址绑定包括:

将所述M*N个容器映射出M*N个容器的端口;

将所述M*N个容器的端口与所述M*N个子域名地址绑定。

本公开实施例通过上述方法,使得M*N个容器映射出M*N个容器端口,并将容器端口与子域名地址进行绑定,使参赛者获得足够的网络资源。

在一个实施例中,所述将所述M*N个容器的端口与所述M*N个子域名地址绑定包括:

将所述M*N个容器的端口与所述M*N个子域名地址形成一对一的映射关系;

根据所述映射关系对所述M*N个容器的端口和所述M*N个子域名地址进行绑定。

本公开实施例通过上述方法,使得每个参赛者的每个赛题都具有独立的子域名地址,保证了比赛的公平公正。

在一个实施例中,在所述将所述M*N个容器与M*N个子域名地址绑定之前,所述方法还包括:

获取主域名;

对所述主域名泛解析生成所述M*N个子域名地址。

本公开实施例通过上述方法,能够获取随机的M*N个子域名地址。

根据本公开实施例的第二方面,提供一种在线网络安全比赛装置,包括获取模块、创建模块、绑定模块和发送模块;

所述获取模块,用于获取M个赛题,其中,所述M≥1;

所述创建模块,用于根据所述M个赛题创建对应的M个基础镜像,并根据所述M个基础镜像创建N个参赛者的M*N个容器,其中,所述N≥1;

所述绑定模块,用于将所述M*N个容器与M*N个子域名地址绑定;

所述发送模块,用于将所述M*N个子域名地址发送给对应的所述N个参赛者。

本公开实施例提供的在线网络安全比赛装置,包括获取模块、创建模块、绑定模块和发送模块;获取模块获取M个赛题,其中M≥1;创建模块根据M个赛题创建对应的M个基础镜像,并根据M个基础镜像创建N个参赛者的M*N个容器,其中N≥1;绑定模块将M*N个容器与M*N个子域名地址绑定;发送模块将M*N个子域名地址发送给对应的N个参赛者。本公开通过Docker创建独立的靶标环境,通过域名泛解析绑定独立的域名,能够给参赛者提供足够的互联网资源,且能够达到夺旗赛需要的公平公正。另外,Docker占用资源少,极大的节约了资源,降低了成本。

在一个实施例中,上述装置还包括编码模块,用于对所述M个赛题进行编码,获得M个编码赛题。

在一个实施例中,绑定模块包括第一映射单元和绑定单元;

所述第一映射单元,用于将所述M*N个容器映射出M*N个容器的端口;

所述绑定单元,用于将所述M*N个容器的端口与所述M*N个子域名地址绑定。

本公开实施例通过上述设置,使得M*N个容器映射出M*N个容器端口,并将容器端口与子域名地址进行绑定,使参赛者获得足够的网络资源。

在一个实施例中,绑定单元,具体用于将所述M*N个容器的端口与所述M*N个子域名地址形成一对一的映射关系;根据所述映射关系对所述M*N个容器的端口和所述M*N个子域名地址进行绑定。

本公开实施例通过上述设置,使得每个参赛者的每个赛题都具有独立的子域名地址,保证了比赛的公平公正。

在一个实施例中,上述装置还包括子域名生成模块,用于获取主域名,对所述主域名泛解析生成所述M*N个子域名地址。

本公开实施例通过上述设置,能够获取随机的M*N个子域名地址。

根据本公开实施例的第三方面,提供一种在线网络安全比赛设备,所述在线网络安全比赛设备包括处理器和存储器,所述存储器中存储有至少一条计算机指令,所述指令由所述处理器加载并执行以实现上述任一项所述的在线网络安全比赛方法中所执行的步骤。

根据本公开实施例的第四方面,提供一种计算机可读存储介质,所述存储介质中存储有至少一条计算机指令,所述指令由处理器加载并执行以实现上述任一项所述的在线网络安全比赛方法中所执行的步骤。

应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本公开。

附图说明

此处的附图被并入说明书中并构成本说明书的一部分,示出了符合本公开的实施例,并与说明书一起用于解释本公开的原理。

图1是本公开实施例提供的一种在线网络安全比赛方法的流程图;

图2是本公开实施例提供的一种在线网络安全比赛方法的流程图;

图3是本公开实施例提供的一种在线网络安全比赛的流程图;

图4是本公开实施例提供的一种在线网络安全比赛方法中使用docker构建容器的流程图;

图5是本公开实施例提供的一种在线网络安全比赛方法中子域名生成的流程图;

图6是本公开实施例提供的一种在线网络安全比赛装置的结构示意图;

图7是本公开实施例提供的一种在线网络安全比赛装置的结构示意图;

图8是本公开实施例提供的一种在线网络安全比赛装置的结构示意图;

图9是本公开实施例提供的一种在线网络安全比赛装置的结构示意图。

具体实施方式

这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本公开相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本公开的一些方面相一致的装置和方法的例子。

本公开提供一种在互联网场景下的在线夺旗赛方法,以解决在线互联网举办和组织夺旗赛时存在的弊端。

在非互联网模式下的夺旗赛,因为IP地址的随意配置不受限制,可以设置一个C段或者整个B段作为靶标环境的实例化的地址池。并且在线下办夺旗赛,场地、硬件等资源是举办的首要条件。因此基本不会成为瓶颈。

在迁移到互联网后,由于互联网段公开的IP地址在每个用户是有限的,有的用户可能只有一个互联网IP地址或者甚至没有互联网IP地址。在此模式下要启动多个夺旗题目、分配多个入口地址、调用多个地址等问题均无法实现。

本公开主要解决如下三个问题:

IP地址有限:入口地址单一的问题,如果设置了多道夺旗赛题目,则需要多台云主机资源并且还需要多个公网IP地址,在有限资源的情况下,无法实现。

IP地址容易暴露:把多有靶机环境端口全部映射到入口,例如内部靶机192.168.10.10的80端口,映射到互联网地址x.x.x.x的801端口,内部如果与20个靶机,则映射出20个端口,对于夺旗赛参赛者可很快把所有题目遍历一遍,并且还可能存在恶意竞争,分布式拒绝服务(DDoS:Distributed Denial of Service)映射的端口导致比赛终止。

夺旗环境共享容易受影响:在有限资源的情况下,夺旗环境不能做到每个参赛者独立时,可能存在第一个参赛者解答题目后,后续的参赛者解答时难度降低或者无法解答。例如文件上传利用获取计算机壳层shell的考点夺旗题目,如果第一个参赛者解答,上传了shell.php的木马,其他参赛者可能在很短时间能就利用该木马破解题目。

基于此,本公开实施例提供了一种在线网络安全比赛方法,如图1所示,包括以下步骤:

步骤101、获取M个赛题,其中M≥1;

步骤102、根据M个赛题创建对应的M个基础镜像;

在一个实施例中,在根据M个赛题创建对应的M个基础镜像之前,上述方法还包括:

对M个赛题进行编码,获得M个编码赛题;

相应的,根据M个赛题创建对应的M个基础镜像包括:

根据M个编码赛题创建对应的M个基础镜像。

具体的,比赛组织人员赛前设计好夺旗题目并进行编码,使用Docker构建基础镜像,比如,比赛组织人员准备10个题目,即10个夺旗靶标环境,则Docker创建10个基础镜像。

步骤103、根据M个基础镜像创建N个参赛者的M*N个容器,其中N≥1;

本公开实施例中,当夺旗赛开始时,N个参赛者触发启动Docker构建的基础镜像,实例化运行容器,即可创建N个参赛者的M*N个容器。接上例,若有20个参赛者,则每个参赛者能够获得创建的10个容器。

步骤104、将M*N个容器与M*N个子域名地址绑定,并将M*N个子域名地址发送给对应的N个参赛者。

在一个实施例中,将M*N个容器与M*N个子域名地址绑定包括:

将M*N个容器映射出M*N个容器的端口;

将M*N个容器的端口与M*N个子域名地址绑定。

具体的,M*N个容器自动映射出M*N个容器的端口服务,与M*N个子域名地址进行绑定。

本公开实施例通过上述方法,使得M*N个容器映射出M*N个容器端口,并将容器端口与子域名地址进行绑定,使参赛者获得足够的网络资源。

在一个实施例中,将M*N个容器的端口与M*N个子域名地址绑定包括:

将M*N个容器的端口与M*N个子域名地址形成一对一的映射关系;

根据映射关系对M*N个容器的端口和M*N个子域名地址进行绑定。

实际使用中,M*N个容器的端口服务与M*N个子域名地址形成一对一的映射关系,并进行绑定,这样,M*N个子域名地址返回给对应的N个参赛者,参赛者即可通过对应的子域名地址访问夺旗题目。

本公开实施例通过上述方法,使得每个参赛者的每个赛题都具有独立的子域名地址,保证了比赛的公平公正。

在一个实施例中,在将M*N个容器与M*N个子域名地址绑定之前,上述方法还包括:

获取主域名;

对主域名泛解析生成M*N个子域名地址。

具体的,在域名服务商(阿里云、万网等)购买域名,然后在域名解析机构(阿里云、dnspod等)添加泛解析记录,然后在IP地址所在的机子运行映射代理程序,当某个随机子域名访问解析到该IP地址时,将对应的服务转发为请求内部Docker容器上对应的端口。

本公开实施例通过上述方法,能够获取随机的M*N个子域名地址。

本公开实施例提供的在线网络安全比赛方法,首先获取M个赛题,其中M≥1;根据M个赛题创建对应的M个基础镜像;根据M个基础镜像创建N个参赛者的M*N个容器,其中N≥1;将M*N个容器与M*N个子域名地址绑定,并将M*N个子域名地址发送给对应的N个参赛者。本公开通过Docker创建独立的靶标环境,通过域名泛解析绑定独立的域名,能够给参赛者提供足够的互联网资源,且能够达到夺旗赛需要的公平公正。另外,Docker占用资源少,极大的节约了资源,降低了成本。

本公开另一实施例提出了一种在线网络安全比赛方法,如图2所示,包括以下步骤:

步骤201、获取M个赛题,其中M≥1;

步骤202、对M个赛题进行编码,获得M个编码赛题;

步骤203、根据M个编码赛题创建对应的M个基础镜像;

步骤204、根据M个基础镜像创建N个参赛者的M*N个容器,其中N≥1;

步骤205、将M*N个容器映射出M*N个容器的端口;

步骤206、获取主域名;

步骤207、对主域名泛解析生成M*N个子域名地址;

步骤208、将M*N个容器的端口与M*N个子域名地址形成一对一的映射关系;

步骤209、根据映射关系对M*N个容器的端口和M*N个子域名地址进行绑定;

步骤210、将M*N个子域名地址发送给对应的N个参赛者。

应用本公开进行在线网络安全比赛时,如图3、图4所示,参赛选手直接访问互联网的唯一入口地址http://xxx.xxx.com,进入不同的夺旗靶标环境,触发启动构建好的基础镜像,实例化运行容器,接着自动映射出容器的端口服务,直接指向随机分配的子域名,返回对应的域名地址,选手即可访问夺旗题目。

其中,随机分配的子域名,如图5所示,需要在域名服务商(阿里云、万网等)购买域名(一般企业有对外展示业务一般均有),然后在域名解析机构(阿里云、dnspod等)添加泛解析记录,然后在IP地址所在的机子运行映射代理程序,当某个随机子域名访问解析到该IP地址时,将对应的服务转发为请求内部Docker容器上对应的端口。然后将生成的随机子域名返回给操作参赛选手,则参赛选手即可解答题目。

本公开利用Docker的容器特性,快速实例化容器,实现独立环境,并且使用虚拟化技术科实现内网地址任意分配和使用却不影响其他业务,利用域名泛解析技术保证题目的私密性和专属性。本公开可以实现在互联网环境下举办夺旗赛,并且还可实现每个参赛者独立环境、独立域名,互不影响。还可以避免比赛题目、IP、环境等泄露或者容易猜测导致比赛不公平不公正。

基于上述图1和图2对应的实施例中所描述的在线网络安全比赛方法,下述为本公开装置实施例,可以用于执行本公开方法实施例。

本公开实施例提供一种在线网络安全比赛装置,如图6所示,该在线网络安全比赛装置30包括:获取模块301、创建模块302、绑定模块303和发送模块304;

获取模块301,用于获取M个赛题,其中,M≥1;

创建模块302,用于根据M个赛题创建对应的M个基础镜像,并根据M个基础镜像创建N个参赛者的M*N个容器,其中,N≥1;

绑定模块303,用于将M*N个容器与M*N个子域名地址绑定;

发送模块304,用于将M*N个子域名地址发送给对应的N个参赛者。

本公开实施例提供的在线网络安全比赛装置,包括获取模块301、创建模块302、绑定模块303和发送模块304;获取模块301获取M个赛题,其中M≥1;创建模块302根据M个赛题创建对应的M个基础镜像,并根据M个基础镜像创建N个参赛者的M*N个容器,其中N≥1;绑定模块303将M*N个容器与M*N个子域名地址绑定;发送模块304将M*N个子域名地址发送给对应的N个参赛者。本公开利用Docker的容器特性,快速实例化容器,实现独立环境,并且使用虚拟化技术科实现内网地址任意分配和使用却不影响其他业务,利用域名泛解析技术保证题目的私密性和专属性。本公开可以实现在互联网环境下举办夺旗赛,并且还可实现每个参赛者独立环境、独立域名,互不影响。还可以避免比赛题目、IP、环境等泄露或者容易猜测导致比赛不公平不公正。

在一个实施例中,如图7所示,上述装置还包括编码模块305,用于对M个赛题进行编码,获得M个编码赛题。

在一个实施例中,如图8所示,绑定模块303包括第一映射单元3031和绑定单元3032;

第一映射单元3031,用于将M*N个容器映射出M*N个容器的端口;

绑定单元3032,用于将M*N个容器的端口与M*N个子域名地址绑定。

本公开实施例通过上述设置,使得M*N个容器映射出M*N个容器端口,并将容器端口与子域名地址进行绑定,使参赛者获得足够的网络资源。

在一个实施例中,绑定单元3032,具体用于将M*N个容器的端口与M*N个子域名地址形成一对一的映射关系;根据映射关系对M*N个容器的端口和M*N个子域名地址进行绑定。

本公开实施例通过上述设置,使得每个参赛者的每个赛题都具有独立的子域名地址,保证了比赛的公平公正。

在一个实施例中,如图9所示,上述装置还包括子域名生成模块306,用于获取主域名,对主域名泛解析生成M*N个子域名地址。

本公开实施例通过上述设置,能够获取随机的M*N个子域名地址。

基于上述图1和图2对应的实施例中描述的在线网络安全比赛方法,本公开另一实施例还提供一种在线网络安全比赛设备,该在线网络安全比赛设备包括处理器和存储器,存储器中存储有至少一条计算机指令,该指令由处理器加载并执行以实现上述图1和图2对应的实施例中所描述的在线网络安全比赛方法。

基于上述图1和图2对应的实施例中所描述的在线网络安全比赛方法,本公开实施例还提供一种计算机可读存储介质,例如,非临时性计算机可读存储介质可以是只读存储器(英文:Read Only Memory,ROM)、随机存取存储器(英文:Random Access Memory,RAM)、CD-ROM、磁带、软盘和光数据存储装置等。该存储介质上存储有至少一条计算机指令,该计算机指令由处理器加载并用于执行上述图1和图2对应的实施例中所描述的在线网络安全比赛方法,此处不再赘述。

本领域技术人员在考虑说明书及实践这里公开的公开后,将容易想到本公开的其它实施方案。本申请旨在涵盖本公开的任何变型、用途或者适应性变化,这些变型、用途或者适应性变化遵循本公开的一般性原理并包括本公开未公开的本技术领域中的公知常识或惯用技术手段。说明书和实施例仅被视为示例性的,本公开的真正范围和精神由下面的权利要求指出。

应当理解的是,本公开并不局限于上面已经描述并在附图中示出的精确结构,并且可以在不脱离其范围进行各种修改和改变。本公开的范围仅由所附的权利要求来限制。

相关技术
  • 一种在线网络安全比赛方法及装置
  • 一种基于Internet的在线网络安全比赛方法和系统
技术分类

06120112208146