李秋贤 石云升 周全兴
摘 要:针对当下网络安全人才紧缺、网络信息安全攻防平台无法满足学校开展实践训练的问题,提出了采用Python的Django框架、MySQL+Redis数据库、基于Docker容器的信息安全攻防平台。重点介绍了平台的开发思路与实现过程,对学习信息安全知识和技能、了解网络攻防竞赛以及系统开发具有较大帮助。
关键字:Docker;信息安全;网络安全;攻防平台
中圖分类号:TP309 文献标识码:A 文章编号:2096-4706(2021)02-0114-05
Abstract:In response to the current shortage of network security talents and the network information security attack and defense platform that cannot meet the practical training of schools,this paper proposes an information security attack and defense platform based on Python Django framework,MySQL+Redis database and Docker container. It focuses on the development ideas and implementation process of the platform,which is of great help to learning information security knowledge and skills,understanding network attack and defense competitions,and system development.
Keywords:Docker;information security;network security;attack and defense platform
0 引 言
随着计算机技术和网络技术的不断发展,移动支付让人们走进了“无现金”社会,各种APP成为生活中不可或缺的一部分。人们在享受便利的同时,也时刻受到网络诈骗、隐私泄露等威胁;全球网络安全事件频发,使信息安全技术和人才受到各国高度重视[1]。目前大部分院校开设有信息安全相关专业,培养信息安全技术人才,但网络安全人才仍有巨大缺口[2]。信息化的快速发展,网络安全问题更加突出。习总书记在国家网络安全宣传周指出提升全民网络安全意识和技能,坚持网络安全教育、技术、产业融合发展,形成人才培养、技术创新、产业发展的良性生态[3]。目前商用的信息安全训练平台有实验吧(https://www.shiyanbar.com)、攻防世界(https://adworld.xctf.org.cn/)等,相关赛事有夺旗赛(Capture The Flag,CTF)、“西普杯”等。目前商用网络攻防平台由于其技术保密、自定化程度低等,不利于开展教育教学活动和学习最新技术。研究基于Docker容器的信息安全攻防平台对学校信息安全人才培养、教育教学实训都具有重大意义。
1 总体设计
1.1 功能需求分析与设计
目前主流网络攻防竞赛平台基本都是线上比赛,提供线上赛前培训,比赛题干类型主要有Web安全、逆向分析、移动安全、密码学、电子取证和杂项等。其中,Web安全主要围绕Web服务来进行渗透测试;逆向分析包含PWN(黑客语法,意思是砰,实为二进制溢出),使用C/C++、Java等编写的程序通过反汇编代码来理解其功能,并分析其开发过程中不安全设计导致的漏洞[4];移动安全主要分析Android应用程序的漏洞;密码学主要对已知漏洞的加密方式进行破解;电子取证主要对入侵行为进行证据获取、分析等行为;杂项包含隐写术、以及图片视频修复等。本文所实现的攻防平台除包含以上内容,还需满足以下目标:
(1)由于平台有大量涉及信息安全相关的操作,且用户可上传相关脚本和环境,平台须具有足够的安全性;
(2)平台采用Docker进行部署题目,便于管理员进行管理;
(3)平台应具有简洁美观、人性化交互的个人界面,用户上手快;
(4)平台管理员有超级管理员、社区管理员、用户管理员、题库管理员四种,除超级管理员之外其他管理员权限各不相同,以更好管理平台。
1.2 开发语言环境与架构设计
平台基于Python的Django框架进行开发,分为后台模块、社区模块、用户模块、题库模块。其中后台数据库使用MySQL、采用Redis作为缓存,使用Vue.js和Element-pro来作为前端框架,题库环境使用Docker进行部署。Docker是基于LXC(全称为Linux Container,是一种内核虚拟化技术)的高级容器引擎,由客户端(Docker Client)、守护进程(Docker Daemon)、镜像(Docker Image)和容器(Docker Containers)组成[5],其目的是利用LXC来实现类似VM(VMware,虚拟机)的功能,其运行原理如图1所示。
2 平台详细设计与实现
2.1 功能模块设计
平台基于B/S(Browser/Server,浏览器/服务器)模式,由前端和后台组成,如图2所示。平台需要注册、登录后使用,前端页面包括首页、安全热点、攻防演练、排行榜、社区、个人空间等模块,后台系统主要有平台设置、服务器管理、系统监控、用户管理、文案管理、社区管理、题库管理和积分商城管理等模块。
2.2 用户注册与登录
游客通过注册之后成为平台用户,登录之后可以使用平台完整功能;管理员通过后台登录界面进行登录,登录之后才能对平台进行管理。注册与登录如图3、图4所示。
2.3 题库模块设计
题库模块主要含自我学习和攻防演练。自我学习主要是掌握信息安全理论知识,提升用户的网络信息安全意识和法律法规知识学习。在攻防演练中,分为练习模式、个人模式以及夺旗模式。练习模式提供了大量信息安全相关知识和攻防技能训练,帮助用户成长;个人模式为单人闯关类,题目难度会逐步增大,但积分也相应增多;夺旗模式定期开始,平台用户均可参加,分为单人夺旗和团队夺旗,根据最后获取的分数进行排名,不同名次积分各不相同。其中练习模式和个人模式包含Web安全、逆向分析、移动安全、密码学、电子取证和杂项等题型。
2.4 攻防演练设计
练习模式和个人模式网络环境类似,其模型如计算机网络拓扑图。用户进入练习模式和个人模式的实验操作过程如图5所示。
对于夺旗模式,分为单人夺旗和团队夺旗,网络拓扑如图6所示,团队夺旗在单人夺旗基础上增加操作机。
夺旗模式每个人(或者团队)都有一台服务器,所有人服务器均有相同隐患,在服务器上存在key,操作机上存在加密的score文件,score文件与对手一一对应,获得分数的方式为将对手的key与对应的score文件提交至Lock服务器,正确即可获得分数。比如有6组选手,以其中一组来看,其获取分数过程如图7所示。
2.5 后台管理
管理员登录之后进行访问,对平台进行管理。超级管理员可列出所有管理员,可添加、删除其他管理员,角色管理,文案管理,进行平台公告、文案的撰写以及发布。题库管理员在夺旗模式管理中可以添加、删除和修改比赛题目,并按时启动夺旗模式。社区管理员可对社区版主进行管理,发布社区任务。用户的管理和积分商城的物品管理由用户管理员进行管理设置。后台系统控制台及系统监控如图8所示。
2.6 数据库设计
平台数据使用MySQL进行存储,通过Redis来保存Session,并且Django自带的model可以很方便处理这些烦琐的存储过程。数据库连接代码为:
#MySQL数据库连接
DATABASES={
default':{
ENGINE':'django.db.backends.mysql',
'NAME':'yunaon',
'USER':'root',
'PASSWORD':'123@Sys.com',
'HOST':'localhost',
'PORT':'3306', }
}
#Redis数据库连接
CACHES={
'default':{
'BACKEND':'django_redis.cache.RedisCache',
'LOCATION':'redis://localhost:6379/1',
'OPTIONS':{
'CLIENT_CLASS':'django_redis.client.DefaultClient',
'PASSWORD':'fd23!@,)56aSY', }
}
}
平台中部分数据库表如表1、表2和表3所示。
3 结 论
本文介绍基于Docker容器的信息安全攻防平台的设计思路和实现过程,对信息安全攻防平台的搭建和网络实践平台建设具有一定参考价值。平台使用Python+Django进行开发,基于Docker进行攻防平台设计,实时更新网络信息安全相关知识和技术,在提升用户的网络信息安全意识同时,又降低了培养相关专业技术人才的成本,平台采用积分商城的方式提高用户的黏性和积极性,对推广和应用具有较大帮助。
参考文献:
[1] 杨路.用于网络攻防教学的AWS+Docker网络实训平台设计——以安徽公安职业学院为例 [J].云南警官学院学报,2020(3):35-40.
[2] 李金磊.网络安全人才缺口高达140万 如何缓解缺口? [EB/OL].[2020-09-15].http://it.people.com.cn/n1/2020/0915/c433780-31861783.html.
[3] 马浚洋,马建光.落实“四个坚持”的原则 提升全民网络安全意识和技能 [EB/OL].[2019-09-23].http://www.81.cn/gnxw/2019-09/23/content_9632076.htm.
[4] 冯一凡,朱文龙,杨双双.基于Docker的分布式网络安全攻防平台设计与实现 [J].计算机产品与流通,2020(3):47.
[5] 雷惊鹏,朱小娟.Docker技术在惡意代码检测环境部署中的应用 [J].西昌学院学报(自然科学版),2020,34(3):47-49+69.
作者简介:李秋贤(1992—),女,汉族,河南焦作人,中级工程师,硕士,研究方向:密码学、博弈论;石云升(1998—),男,汉族,贵州毕节人,本科在读,研究方向:计算机科学与技术;通讯作者:周全兴(1987—),男,汉族,贵州遵义人,讲师,学士学位,主要研究方向:信息安全、数据分析。