- 收藏
- 加入书签
容器技术在高校实训平台安全靶场建设实践
摘要:本文主要介绍基于开源软件Docker容器技术构建一套免费、实用且可具定制化的教育教学靶场实训平台和基地。为高校教学平台实验环境的建设提供可行的、可定制的、价格低廉的解决方案。
关键词: Docker容器;靶场;信息安全;教学平台
一、概述
1.1背景
近年来,国内外安全形势日益严峻,网络安全问题日益凸显。前有燃油运输管道被堵,后有全球最大肉食品供应商被黑客入侵,这标志着越来越多的国家级关键基础设施提供方,特种行业,以及大型公共服务业被黑客当作攻击目标,加大对信息安全保障的投入迫在眉睫。除了软硬件技术设备的投入之外,专业的安全人才重金难求已是公认的事实,据统计,2021年我国信息安全人才缺口高达140万。
网络与信息安全是一个以实践为基础的专业,因此,建设网络安全实训靶场,不仅仅让靶场成为一个知识的学习中心,更是一个技能实践中心,一个技术研究中心。网络攻防实训靶场平台的建设,不仅要关注培训教学业务的支撑建设,更要关注网络与信息安全技能综合训练场的建设。以支撑受训人员课上课下的学习、攻防技能演练、业务能力评估、协同工作训练和技术研究与验证,以保证能贴近不同培训业务的需要,并支持多维度量化每个参与者的各种能力,有计划地提升团队各个方面的技术能力。因此,建设一套实战性强、知识覆盖全面、综合型的集培训、网络攻防演练及竞赛、测试于一体的网络靶场是非常有必要的。利用网络靶场可以体系,规范,流程化的训练网安人才的特点打造属于企业自己的安全维护队伍是大势所趋。
1.2专业人才培养存在的问题
作为培养信息安全人才重要基地的高职教育,一直缺乏专业的训练平台和基地。在高校信息化教学实践中,商业化信息安全实践教学平台应用过程中存在诸多的问题,不仅价格昂贵,而且难以根据实际的教学情况进行定制。
设计基于完全开源软件Docker容器技术搭建高校信息化安全教学平台,课程开发人员将完成的平台功能打成包,使用Dockerfile构建镜像,操作和维护人员不必在集群中的每台服务器上安装测试环境,而是直接使用提供的镜像文件进行部署,同时相比较于采用虚拟机的方式,Docker容器具有速度快和资源占用少的优点,一台普通服务器能运行数百个容器,更适合于目前普通高校的下教学资金紧张的情况。
本文主要介绍基于开源软件Docker容器技术构建一套免费、实用且可具定制化的教育教学靶场实训平台和基地。为高校教学平台实验环境的建设提供可行的、可定制的、价格低廉的解决方案。
二、Docker基本概念
Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的Linux或Windows操作系统的机器上,也可以实现虚拟化,容器是完全使用沙箱机制,相互之间不会有任何接口。 Docker 适用于服务器环境,包括 Linux 的多种变体和 Microsoft Windows Server 2016 及更高版本。 许多云(包括 Azure)都支持 Docker,是开发人员和系统管理员使用容器开发、部署和运行应用程序的平台。使用Linux容器来部署应用程序称为集装箱化。使用docker轻松部署应用程序。Docker容器集装箱化具有以下的几方面优点:
灵活:即使是复杂的应用程序也可封装。
轻量级:容器利用并共享主机内核。
便携式:您可以在本地构建,部署到云上并在任何地方运行。
可扩展性:您可以增加和自动分发容器副本。
可堆叠:您可以垂直堆叠服务并及时并及时堆叠服务。
2.1 体系结构
Docker 使用客户端-服务器 (C/S) 架构模式,使用远程API来管理和创建Docker容器。Docker 容器通过 Docker 镜像来创建。容器与镜像的关系类似于面向对象编程中的对象与类。
Docker 平台包含多个用于生成、运行和管理容器化应用程序的组件,包括引擎、客户端、服务器和对象几个部分。
Docker 引擎:包含配置为客户端-服务器实现的多个组件,其中,客户端和服务器在同一主机上同时运行。 客户端使用 REST API 与服务器通信,该 API 还让客户端能够与远程服务器实例通信。
Docker 客户端:是一个名为 docker 的命令行应用程序,它为我们提供了一个命令行接口 (CLI),用于与 Docker 服务器进行交互。 docker 命令使用 Docker REST API 将指令发送到本地或远程服务器,并作为用于管理容器的主要接口。
Docker 服务器:是一个名为 dockerd 的守护程序。 dockerd 守护程序通过 Docker REST API 响应来自客户端的请求,并且可以与其他守护程序进行交互。 此外,Docker 服务器还负责跟踪容器的生命周期。
Docker 对象:创建并配置多个对象以支持容器部署。 这些对象包括网络、存储卷、插件和其他服务对象。 我们不会在这里介绍所有这些对象,但请记住,我们可以根据需要创建和部署这些对象。
2.2 Docker与传统虚拟机比较优势
容器使用LINUX系统内核中的实现进程组之间的隔离,是一个共享内核的虚拟化技术,传统虚拟化通过Hypervisor层实现安装多个客户OS,每个OS都有自己的内核,每个OS相互之间完全隔离。以下具体比较两者之间的差别:
数据隔离:传统虚拟机要和特定IP或者宿主机绑定,可以多台虚拟机(单独包含完整副本)在单台设备上运行。 Docker容器通过隔离的方式共享操作系统内核。
性能比较:将 Docker与传统虚拟化相比较,前者资源损耗相对要要小很多,从而提高服务器的利用效率并降低许可成本。
系统安全性:要从传统虚拟机方式的系统寻找漏洞并目攻击到宿主机或其他虚拟机,必须先要突破隔离层,这样安全性较高。Docker 容器则将应用程序彼此隔离并从底层基础架构中分离出来,这样安全性较低。
三、网络靶场
网络靶场是支撑试验和训练的综合性平台,通过虚拟化、虚实结合仿真、安全编排、测试评估等技术,构建可控、逼真的仿真环境及培训、演练、测试等各类场景,可用于完成人才培养、竞赛考核、实战攻防演练、应急演练、系统测试、验证评估等任务。
3.1网络靶场建设背景与意义
网络安全人员要就攻防技术进行训练、演练;一项新的网络技术要试验,不能在互联网上进行(造成不可逆的破坏),于是需要建立网络靶场,把网络的要素虚拟到网络靶场。
(1)支撑安全人员学习
当前,网络安全威胁层出不穷,攻防技术越来越复杂,国家、各行业对网络安全人才培养需求日益迫切,安全人员需要可用于实操学习训练的非真实生产环境。
(2)提供测试验证、演练环境
关键系统在线生产环境的可靠性、准确性要求较高,未经测试的调整(例如新增设备、更新补丁、配置调整等)易引起设备故障或系统崩溃;在生产环境中进行演练,容易对业务带来负面影响,造成不可控的损失。
在网络靶场中进行网络安全活动,不仅可以避免对现实资源的占用和消耗,还可以做到对资源的反复利用。每一次安全试验造成的伤害程度都是可控的、可检测的,试验结束后还能够对收集的试验数据进行分析和研究。网络靶场在不影响真实环境的情况下可以提高网络安全从业人员的技术,也可以发现安全产品的漏洞从而提升安全产品的性能与安全性。
3.2网络靶场热点趋势
(1)基于自动化程度提高的效率优化;
(2)逼真性与可扩展性的提高,包括SDN、docker技术的深度应用以及对新型协议(例如工控)、新型安全领域(例如虚拟化安全)、新型目标领域(例如卫星通信、武器平台)的覆盖;
(3)标准化与分布式,包括虚拟化平台统一、内外部API标准化、异地分靶场互联与资源共用;
(4)基于交互式流量回放的用户行为仿真;
(5)实战化、体系化,使训练对抗强度贴近实网,训练状态不局限于对某项技术和武器的验证评估,训练任务不局限于事先规划好的。
四、教学靶机平台实践
4.1容器云建立实训平台的优势
使用容器技术构建平台层,将利用容器技术的优势大大提高大量学生并发进行实验室操作时的效率,并降低实验室硬件投入。容器虚拟化只是为运行提供的一个依赖的环境。没有GuestOS,容器的运行效率高而安全性较低。Docker容器在实训教学中的优势包括以下几个方面:
资源占用少:容器相对于物理宿主机计算能力几乎没有损耗,而传统虚拟机的计算能力占用50%左右。用一个云平台进行多种课程教学。在具体教学过程中。建立教学资源,完善动手操作,成为教师关注的焦点,而不是教学环境。
环境启动快,授课更高效:学生关注实训课程的实际动手操作,不必过多关注后台资源;教师在教学过程中,只需要关注专业的教学质量与过程,保证教学计划的高效完成。
管理工作简化:采用Docker容器技术有利于扩展资源简单高效。云计算与其他专业实训想结合,既提升管理效率,又方便管理。
4.2靶场拓扑图
4.2.1搭建实验靶场环境
实验靶场环境使用honeyd软件实现低交互模拟蜜罐,同时添加多台具有不同类型漏洞的docker容器虚拟系统,以及具有漏洞学校站点类型的Web网站系统,要求能够模拟主机、服务、漏洞和网络拓扑。
4.2.2,靶场渗透测试
使用扫描工具对网络靶场进行探测扫描,获取主机信息,分析发现漏洞信息,使用metasploit等攻击工具对网络靶场进行攻击,达到获取管理员权限、进程操作、窃取数据库密码、篡改管理员密码、被迫蓝屏、等攻击效果
4.2.3靶场攻击检测
Docker容器上部署入侵检测工具snort,检测并采集攻击信息,通过日志文件、告警文件等方式进行记录分析
4.3部署过程
Vulnhub是一个漏洞靶场平台,里面含有大量的不同类型的靶场模拟器,提供了 Docker 镜像,只需要下载容器镜像,可以使用 Docker 直接启动靶场,大大简化了渗透测试人员在搭建各种漏洞靶场时的步骤。以其中一台主机为例子,介绍环境部署过程。
主机基本配置:
CentOS7.9 ,1 核 4 G 内存 60G 硬盘,为了靶场运行流畅一点,可以增加主机内存。
安装 docker:直接下载可执行文件,也可以通过 pip 安装。
yum -y install docker-ce-18.06.1.ce-3.el7
clone 仓库:
git clone https://github.com/vulhub/vulhub
启动靶场:
docker-compose build
docker-compose up -d
可以看到 0.0.0.0:8080->8080/tcp, :::8080->8080/tcp,直接访问虚拟机 ip + port。
五、结论
实训教学是高职学校提高学生动手能力的方法和工具,教学平台建设是信息化教学的重要组成部分,为教学提供软件支撑,实训教学水平高低和现代化程度是学校教学和管理水平的重要衡量标准之一。通过Docker技术将靶场的功能打包、然后构建成容器,实现了多节点集群上的部署,与传统的方式,部署更加简单,后期维护成本更低。
利用容器技术,学校可以实现科学地安排实训课程,节省资源,提高管理效率。教学平台使用镜像进行部署,为高校教学平台建设提供了可行的技术方案。
参考文献
[1]彭勇,谢剑,童遥,等.一种基于Docker的数据中心云平台实现方法及系统[J].中兴通讯技术.2017(02):60-62
[2]杨路. 用于网络攻防教学的AWS+Docker网络实训平台设计——以安徽公安职业学院为例[J]. 云南警官学院学报. 2020(03)
[3]谢超群.Docker容器技术在高校数据中心的应用[J].贵阳学院学报(自然科学版).2015(04):27-29
[4]宣乐飞. 高校网络空间安全靶场设计与实现[J].科技视界.2019(11)
周安石 1979.10 男 汉族 高级工程师 硕士研究生 苏州工业园区服务外包职业学院 研究方向:计算机网络通信教学研究、网络与信息安全
张书锋 1980.10 男 汉族 副教授 硕士研究生 苏州工业园区服务外包职业学院
研究方向: WEB安全


京公网安备 11011302003690号