一种贴近真实网络环境的CTF攻防对抗系统及方法与流程

文档序号:16062512发布日期:2018-11-24 12:20阅读:820来源:国知局

本发明涉及网络空间安全领域,尤其涉及一种贴近真实网络环境的ctf攻防对抗系统及方法。

背景技术

ctf(capturetheflag)中文称作夺旗赛,是网络安全技术人员之间进行技术竞技的一种比赛形式,参赛团队在比赛环境中,通过网络攻防对抗、程序逆向分析等,从给出的题目中获得指定的字符串(flag),从而得分。

ctf的竞赛模式可分为以下三类:

1.解题模式

在解题模式ctf赛制中,参赛队伍通过互联网或者现场网络参与,这种模式的ctf竞赛与acm编程竞赛、信息学奥赛比较类似,以解决网络安全技术挑战题目的分值和时间来排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、web渗透、密码、取证、隐写、安全编程等类别。

2.攻防模式

在攻防模式ctf赛制中,参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。攻防模式ctf赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈,具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,也比体力(比赛一般都会持续48小时及以上),同时也比团队之间的分工配合与合作。

3.混合模式

结合了解题模式与攻防模式的ctf赛制,比如参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负,采用混合模式ctf赛制的典型代表如ictf国际ctf竞赛。

但是,目前举办的ctf比赛出题质量不高,以脑洞类题目居多,比赛脱离实战,详细描述如下:

1.题目质量不高

题目考查点单一,比较简单,或者题目考查点单一,但解题难度很高,这类题目也并非是一种高质量的题目,参赛选手花更多的经历在这种题目上,在有限的比赛时间内会占用其它题目的解题时间,难以有效测评一个参赛选手的安全能力。

2.脑洞类居多

ctf题目有许多是脑洞类题目,需要选手具备联想和开阔思维的能力,通过利用多个解题细节和提示信息才能解出题目,更多侧重解题技巧,有过比赛经验的参赛选手会非常熟练ctf比赛的规则和解题思路。

3.脱离实战

缺乏实战类比赛,一些比赛在决赛的时候会涉及到选手之间的对抗,因为选手少,网络环境也好配置,但在也都在内网中进行,网络结构简单。有一些比赛是选手互相进攻的,通过占领彼此的服务器进行得分,很多时候一个直到比赛结束都没法被发现的后门是致胜的关键,此种模式也难以对选手安全技能进行有效评估。

导致上述缺点的原因主要是虚拟机的网络结构简单,甚至没有任何网络拓扑结构,无法构建复杂网络拓扑环境下的比赛,而实际运行环境下的服务器是处于复杂网络结构下的。由于比赛环境的限制,通常ctf比赛的题目是单个的虚拟机环境实例,而现实的网络环境纷繁复杂,通常会具备路由器、交换机、防火墙、nat、内外网环境等,导致ctf比赛与实际运行环境中的业务系统差别较大。贴近实战的比赛对举办比赛的难度要求高,需要网络环境搭建、权限控制等,一些稍微复杂的比赛具备两层以上的网络隔离,但也都在内网环境下展开,无法有效模拟真实的网络环境。

鉴于此,需要设计一种贴近真实网络环境的ctf攻防对抗系统及方法,构建复杂网络环境的方法,模拟一个贴近实战的ctf网络环境,基于复杂的网络环境组建贴近实际运行环境的系统,进而评估和选拔在贴近真实网络环境中具备攻防技能和经验丰富的参赛选手。



技术实现要素:

本发明针对现有技术中存在的问题,提供一种贴近真实网络环境的ctf攻防对抗系统及方法,本发明的贴近真实网络环境的ctf攻防对抗系统及方法基于kvm、docker等节点虚拟化技术输入节点清单列表,自动化构建ctf赛题节点,并结合网络虚拟化技术和网络划分算法自动化构建复杂的网络拓扑环境,进而基于复杂的网络拓扑环境部署贴近生产运行环境业务的ctf赛题,对ctf参赛选手进行实战能力的考察和人才选拔。

为实现上述目的,本发明提供的技术方案如下:

一种贴近真实网络环境的ctf攻防对抗系统,所述系统包括ctf节点管理单元、网络虚拟化单元以及硬件虚拟化单元,所述ctf节点管理单元与所述网络虚拟化单元通信连接,所述网络虚拟化单元与所述硬件虚拟化单元通信连接;其中

所述ctf节点管理单元包括服务管理模块以及运行管理模块,所述服务管理模块用于ctf节点服务注册管理、服务发现管理,所述运行管理模块用于ctf节点状态管理、运行日志管理;

所述网络虚拟化单元包括网络组件模块、网络划分模块、网络拓扑模块、端口映射模块;

所述硬件虚拟化单元包括cpu、内存、磁盘以及i\o接口。

进一步地,所述网络组件模块包括虚拟网桥、虚拟交换机、虚拟路由器、虚拟防火墙。

进一步地,所述网络划分模块采用fast-newman算法构建网络拓扑结构。

一种贴近真实网络环境的ctf攻防对抗方法,其特征在于,所述方法包括:

构建ctf赛题服务器节点的步骤;

构建复杂网络拓扑结构的步骤;

在复杂网络拓扑结构中部署贴近真实业务系统的ctf赛题的步骤。

进一步地,所述构建ctf赛题服务器节点的步骤中,采用kvm虚拟化方式,构建kvmctf赛题服务器节点。

进一步地,所述构建ctf赛题服务器节点的步骤中,采用docker虚拟化方式,构建dockerctf赛题服务器节点。

进一步地,所述构建复杂网络拓扑结构的步骤中,采用虚拟网络划分算法构建复杂网络拓扑结构,所述虚拟网络算法包括kernighan-lin算法、gn算法、laplace谱二分算法、fast-newman算法。

进一步地,所述采用fast-newman算法构建复杂网络拓扑结构的具体方法包括:

输入节点列表、连接关系、网路划分数n;

初始化节点矩阵eij,生成划分列表;

计算连接网络i与网络j的边数cij;

计算节点间模块化度变化量q=2*(eij-aiaj);

选择q最大的节点进行合并;

判断现有网络规模是否等于划分数,如果是,则更新网络划分列表,如果否,则返回重新初始化节点矩阵eij,生成划分列表;

输出虚拟网络拓扑及其连接关系。

与现有技术相比,本发明提供的贴近真实网络环境的ctf攻防对抗系统及方法,基于kvm、docker等节点虚拟化技术输入节点清单列表,自动化构建ctf赛题节点,并结合网络虚拟化技术和网络划分算法自动化构建复杂的网络拓扑环境,进而基于复杂的网络拓扑环境部署贴近生产运行环境业务的ctf赛题,解决了传统的ctf竞赛中出题质量不高,以脑洞类题目居多,比赛脱离实战的缺陷。

附图说明

图1为本发明的贴近真实网络环境的ctf攻防对抗系统的结构示意图;

图2为本发明的贴近真实网络环境的ctf攻防对抗方法的流程图;

图3为本发明的采用fast-newman算法实现虚拟网络划分的流程图;

图4为本发明的网络拓扑结构的结构示意图。

具体实施方式

下面结合附图和实施例,对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。

如图1所示,为本发明贴近真实网络环境的ctf攻防对抗系统的一种实施例,该系统包括ctf节点管理单元10、网络虚拟化单元20以及硬件虚拟化单元30,所述ctf节点管理单元10与所述网络虚拟化单元20通信连接,所述网络虚拟化单元20与所述硬件虚拟化单元30通信连接;其中

所述ctf节点管理单元10包括服务管理模块11以及运行管理模块12,所述服务管理模块11用于ctf节点服务注册管理、服务发现管理,所述运行管理模块12用于ctf节点状态管理、运行日志管理;

所述网络虚拟化单元20包括网络组件模块21、网络划分模块22、网络拓扑模块23、端口映射模块24;

所述硬件虚拟化单元30包括cpu31、内存32、磁盘33以及i\o接口34。

所述网络组件模块21包括虚拟网桥、虚拟交换机、虚拟路由器、虚拟防火墙。

所述网络划分模块采用fast-newman算法构建网络拓扑结构。

本发明系统包含的主要部分有硬件虚拟化单元、网络虚拟化单元、ctf节点管理单元。其中,硬件虚拟化单元包含cpu、内存、硬盘、i/o等的虚拟化,网络虚拟化单元包含网络组件、网络划分、网络拓扑、端口映射等,硬件虚拟化单元、网络虚拟化单元用于构建复杂的网络拓扑环境。基于复杂的网络拓扑环境的基础设施,进行ctf节点的管理。ctf节点管理单元包含服务管理模块和运行管理模块,服务管理模块具有服务注册、服务发现等功能,运行管理模块具有节点状态管理和运行日志管理等功能。贴近真实业务系统的ctf赛题部署内容来源于对真实网络环境中的线上系统,通过对这些系统进行攻防模拟演练,进而考察选手的实战能力。

如图2所示,为本发明贴近真实网络环境的ctf攻防对抗方法的一种实施例,该方法包括:

s100,构建ctf赛题服务器节点的步骤;

s200,构建复杂网络拓扑结构的步骤;

s300,在复杂网络拓扑结构中部署贴近真实业务系统的ctf赛题的步骤。

自动化构建ctf赛题服务器节点通过提供节点清单列表,采用kvm、docker两种虚拟化方式,构建kvmctf赛题服务器节点和dockerctf赛题服务器节点。

kvm(kernel-basedvirtualmachine)基于linux内核,可以将linux内核转化为一个hypervisor,在具备intelvt或amd-v功能的x86平台上运行,也被移植到s/390,powerpc与ia-64平台上。在linux内核3.9版中,加入arm架构的支持。依赖qemu-kvm创建kvm虚拟机,作为虚拟机上层控制和界面。

docker是实现轻量级的操作系统虚拟化的解决方案,docker基于linux容器(lxc)技术,在lxc的基础上进行了进一步封装,让用户不需要去关心容器的管理。用于应用的快速部署,主要涉及镜像、容器和仓库,镜像是一个将系统打包封装好的可以拷贝的文件,包含应用及应用运行所需的环境,是构建容器的基础,容器为应用提供运行环境,仓库是镜像的集合,为镜像提供存储和使用环境,支持使用dockerfile的形式化描述文件方式自动完成容器的部署。

虚拟网络节点清单文件采用形式化文件进行描述,形式化文件描述使用json数据格式,json是一种轻量的描述语言,以键值对的形式记录数据,以文本的形式保存,使用简单灵活,部分形式化拓扑描述如下:

link:[{‘all’:[(1,2),(1,27),(2,27),(6,7),(6,28),(7,28),(27,28)},

{‘b_b’:[(27,28)},

{‘b_h’:[(1,27),(2,27),(6,28),(7,28)},

{‘h_h’:[(1,2),(6,7)}]

all表示所有节点间的链路集合,b_b表示虚拟网桥间的链路集合,b_h表示虚拟网桥与虚拟主机之间的链路集合,h_h表示虚拟主机间的链路集合。

现实中的系统大多以复杂网络的形式存在,为了构架复杂的网络拓扑环境,需要建立复杂网络拓扑模型,影响网络模型拓扑复杂度的因素有攻防对抗数据类型、题目难易程度、目标对象的选择,这些数据以清单列表的形式输入复杂网络拓扑构建系统。其中,攻防对抗数据的类型有web、pwn、逆向、密码学、misc,题目的难易程度设为初级、中级、高级,目标对象有在校学生、求职面试人员、网络安全从业者。复杂网络拓扑构建的表现为网络规模、拓扑深度、子网划分,其中,网络规模指的是网络拓扑环境中的节点总数,拓扑深度指的是网络划分的网络层次数,子网划分是指具体哪个节点位于哪层网络的哪个子网中。

通过虚拟网桥、虚拟交换机、虚拟路由器、虚拟防火墙等网络组件,利用虚拟网络划分算法,自动化构建复杂的网络拓扑结构。在复杂的网络结构中,可分为拓扑分析网络和流分析网络两类,其结构如图4所示。

拓扑分析网络中,网络节点的边密度高于划分网络的边密度,流分析网络通过发现网络的某种流动因素形成网络,常见拓扑分析网络划分算法下表所示:

fast-newman网络划分适用于百万级别的网络规模,在网络划分过程中,n表示节点规模,在n个节点中,i、j代表其中的任意两个节点,δ(ci,cj)代表i和j是否处于同一网络划分,δ(ci,cj)=1时表示i和j处于同一网络划分,反之δ(ci,cj)=0,s表示n*r矩阵。

sir=1时,表示节点i属于网络划分r,则有:

δ(ci,cj)=∑sirsjrij

q表示网络模块化程度,m表示节点间的连边,2m表示图的度,当i和j相连时,aij=1,反之aij=0,于是有:

公式(2-2)中,模块化矩阵b的计算如下:

参考图3,采用fast-newman算法构建复杂网络拓扑结构的具体方法包括:

输入节点列表、连接关系、网路划分数n;

初始化节点矩阵eij,生成划分列表;

计算连接网络i与网络j的边数cij;

计算节点间模块化度变化量q=2*(eij-aiaj);

选择q最大的节点进行合并;

判断现有网络规模是否等于划分数,如果是,则更新网络划分列表,如果否,则返回重新初始化节点矩阵eij,生成划分列表;

输出虚拟网络拓扑及其连接关系。

输入形式化描述文件对于虚拟网络的拓扑关系的内容描述,搜索所有可能的网络划分,计算q的增加趋势,不断合并网络,得到q值最大时的网络划分,其时间复杂度为o(m(m+n))。fast-newman考虑了每个网络内节点的连边数与期待值之差,设计该算法之初是为了对网络划算法进行评估,对给定网络的连接关系进行处理,因评价指标适用于常用的网络划分,逐渐成为网络划分的通用方法。

本发明提供一种贴近真实网络环境的ctf攻防对抗系统及方法,利用kvm、docker等主流虚拟化技术快速构建ctf赛题虚拟节点;利用虚拟化的网桥、交换机、路由器、防火墙等网络组件,结合虚拟网络划分算法,构建包含内外网环境的复杂ctf网络拓扑环境;在复杂的网络拓扑环境中部署贴近真实网络环境业务系统的赛题,通过解答攻破赛题的方式,体现参赛选手的实战能力。解决了传统的ctf竞赛中出题质量不高,以脑洞类题目居多,比赛脱离实战的缺陷。

以上所述仅为本发明的较佳实施例,并不用于限制本发明,凡在本发明的精神和原则内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1