基于Django大学生网络空间安全攻防实践教学平台的设计与研究
2022-10-31李双远李其昌
李双远,李其昌
(1.吉林化工学院 信息化建设办公室,吉林 吉林 132022;2.吉林化工学院 信息与控制工程学院,吉林 吉林 132022)
随着互联网技术的不断发展,人工智能、云计算、大数据、移动互联等技术深度融合[1].信息产业在高速发展的同时,也面临着更加多样化的安全隐患和攻击威胁,像基于Web的权限设定、WEB的安全服务控制和窃取、篡改及删除关键数据等[2],因此网络安全已成为信息时代国家安全的战略基石,习近平总书记多次指出:“没有网络安全就没有国家安全.”网络空间安全是国家安全的重要组成部分,已经上升到与政治安全、经济安全、领土安全并驾齐驱的战略高度.目前,国家、军队及企业都十分重视网络安全人才的培养,因此国家急需培养更多适应当前网络安全形势的网络安全人才.高校作为人才培养基地,也正积极探索适合培养网络安全人才的方案[3].培养出学生要以满足社会需求为标准,那么实践能力是非常重要的环节,网络安全人才的培养更需要紧跟技术前沿,更需要高水平对抗实战训练[4],然而网络安全相对于其他学科具有其特殊性,它需要一个相对专业的训练平台来进行实战学习研究,此平台可以模仿真实的网络环境.因此,对于网络空间安全人才培养的需求,并且结合各CTF大赛实践经验,在进行充分调研后,迫切需要建设由学生参与动手实践,教师负责实践管理的基于网络空间安全的大学生攻防实践教学平台,平台的设计涵盖攻防实训、CTF在线解题、在线攻防对抗、可视化教学和大数据分析教学情况,意在培养学生学习兴趣和动手操作能力,同时为教师实践教学提供创新的教学方法,为高校网络空间安全人才培养提供良好的环境支撑.
本平台采用Django架构进行搭建,Django是一个基于MVC构造的框架.MVC特点是将业务逻辑聚集到一个部件中,即Model数据模块、View视图模块和Controller控制器模块,通过这3个模块之间的相互配合,不用重复编写业务逻辑.MVC在开发系统过程中具有低耦合性、高重用性和可使用性,并且可以快速部署,具有较高的可维护性等优势.在开发时,创建Django项目,根据系统功能创建相应的3个模块,如交流模块的发帖功能,创建Model、View、Controller模块,并进行逻辑关系的创建,实现功能的完整性.Django框架在实现系统功能的过程中,可对模块分别进行创建,并可进行多次调用,加强代码的逻辑性、减少代码的重复性、提高效率等,因此,利用Django架构可高效实现系统的开发设计工作.
1 技术路线
选择适合的技术和开发工具是完成平台设计的基础,基于网络空间安全大学生攻防实践教学平台的开发采用Django框架、B/S架构实现的Web程序,其功能完善、要素齐全、拥有强大的数据库操作接口、自带强大后台、有丰富模板语言.前端整体采用HTML+CSS+JavaScript等网页开发技术,后端以Python实现数据的可视化.Python语言开源、可扩展、可嵌入、语法简单、解释性强.使用Python写的脚本语法简单,同时,可大大提高服务器端处理速度.并且,Python与MySQL相结合,在数据处理上更加的便捷稳定[5].题目环境和攻防对抗采用Docker进行部署,Docker是基于Go语言实现的开源容器项目,可以实现轻量级的操作系统虚拟化解决方案.容器不依赖于任何编程语言、框架或者系统,相互之间没有任何接口,所以性能开销很小,可以很容易地在主机或者数据中心运行.Django是用Python创建的开源Web框架.它采用MVC框架模式,MVC分别为模型、视图、控制.Django框架有4个部分:用于创建模型的对象关系映射,一套完整的管理界面的设计与实现,URL设计,设计器模板语言和缓存系统[6].Django框架具有自主管理后台,用户几乎不用写一行代码就能够拥有一个完整的后台管理界面,它的Model层自带数据库ORM组件,Django使用正则表达式管理URL映射,灵活性高,并且Django的App理念很好,App可插拔,对系统的更新升级非常友好,让开发更加的高效,并且与MySQL数据库兼容性较好,因此采用MySQL数据库管理相关数据.
2 需求分析
2.1 系统业务需求
基于网络空间安全,大学生攻防实践教学平台主要实现网络安全知识的在线答题考核,攻防对抗模块可进行两队之间的在线对抗,并且能够满足网络空间安全相关资讯管理、学生的管理、题目的管理、数据的查看及导出.平台的整体业务为完善用户信息、发布资讯、发布题目、学生启动靶场环境、进行答题、提交答案、攻防对抗、管理员查看并导出成绩等步骤.
2.2 用户功能需求
网络空间安全大学生攻防实践教学平台的用户模块分为管理员用户和学生用户,管理员和学生的所有功能权限均在前端进行操作,管理员和用户的具体功能如表1~2所示.
表1 管理员用户功能表
表2 学生用户功能表
2.3 系统性能需求
2.3.1 系统实用性要求
系统应具有较高的实用性,充分考虑到学生实践能力,提升实践教学质量,并且具有简洁的交互体验,从而能够提升用户的使用效率.
2.3.2 系统安全性要求
系统必须能够保证题目的完整性与机密性,并且保证系统的安全性和数据库的安全性,确保平台开发过程中编程的严谨性,平台数据加密机制.
2.3.3 系统稳定性要求
平台必须保证在服务器和用户客户端稳定运行,用户访问时能在多种浏览器中使用.
2.3.4 系统兼容性可扩展性要求
平台设计过程中要充分考虑以日后的更新升级,系统预留API接口,方便平台功能扩展[7].
3 基于网络空间安全大学生攻防实践教学平台具体实现
3.1 总体实现
系统总体包含在线解题系统,攻防对抗系统和个人信息统计系统3个模块,其中在线解题系统主要为教学服务,CTF答题模拟练习,Web平台服务和在线答疑服务;攻防对抗系统主要为CTF比赛练习,练习时可实时展示赛况并进行积分排名;个人信息统计系统主要为教学服务,统计个人成绩等信息.系统整体结构如图1所示.
系统包含两种用户,因此需要对不同用户的功能分别进行实现.用户分为管理员和学生用户,管理员功能有注册登录、用户管理、资讯管理、题目管理、数据统计及成绩查看导出模块,其中资讯管理模块的功能有发布资讯、修改资讯、删除资讯等;题目管理模块的功能有增加题目、上传题目、修改题目、删除题目等;数据统计模块有用户登录数据和用户答题数据查看及导出;成绩模块有按个人或班级成绩查看、按班级成绩导出等.学生用户功能有注册登录、资讯浏览、答题、交流平台、攻防对抗平台、排行榜,其中资讯浏览模块的功能包括查看详情、评论、点赞、收藏等;交流平台模块的功能包括发布帖子、评论、回复、删除帖子等;攻防对抗平台模块功能包括组队、邀请对手、在线对抗等.网络空间安全大学生攻防实践教学平台具体功能如图2~3所示.
3.2 详细功能设计实现
根据总体设计,基于网络空间安全的大学生攻防实践教学平台功能模块较多,管理员和学生分别包含6个模块.本文以在线答题、攻防对抗平台和交流平台模块为例进行详细功能设计的介绍.
3.2.1 在线答题平台设计实现
在线答题功能主要流程为开启环境、进行答题和提交答案并销毁环境.本平台采用Docker部署容器,实现快速开启和销毁环境,答题流程的实现采用Django的MVC框架,创建对应的Model、View、Controller模块,并将答题数据写入数据库中,提交答案后直接在数据库中查询正确答案与之比对,进行判断给出分数.
3.2.2 攻防对抗平台设计实现
攻防对抗平台主要为攻防对抗、实时展示赛况和积分排名.攻防对抗采用Docker虚拟技术,为每个团队分配一台服务器,所有团队服务器存在相同的漏洞,在服务器中通过相关技术修复自身漏洞并寻找到其他团队的Key,并提交为攻击成功获得积分.赛况展示主要利用动态效果,在得分或被攻击时触发相应动画来展示赛况.攻防对抗将打开服务器、提交Key值等功能利用Django框架分别创建3个模块实现.积分排名采用动态刷新实时进行积分的更新,并对积分进行由高到低的排名.
3.2.3 交流平台模块设计实现
交流平台的功能主要有发布帖子、评论、回复和删除帖子等功能,评论和回复可写在一起,采用Django的MVC框架分别对发布帖子、评论和回复、删除帖子创建对应的Model、View、Controller模块,将帖子内容存入数据库,并将对应帖子的评论和对应评论的回复写入数据库,利用相应字段进行表的关联,从而实现删除帖子时可删除此帖相关的评论回复.
3.3 数据库设计
根据功能的设计实现来设计数据库,要考虑各个功能模块之间的联系,明确每个模块需要的数据类型及大小,创建大小合适、读取率高的数据模型.数据库的概念模型一般使用E-R图进行描述.E-R图包含3个结构:实体、联系和属性,本文所描述的系统数据库有管理员、学生、资讯内容、题目信息、帖子信息、成绩和登录信息7个实体,可借助E-R图对实体和属性之间的关系进行表示.实体关系E-R图,如图4所示.
4 测 试
平台搭建完成后,为了保证平台的设计达到了用户的需求,可参照CTF比赛的模式,让学习网络安全的学生进行环境及平台的测试.测试包括靶机运行是否稳定[8],并验证各功能是否正常实现,最终得到该攻防平台能否满足实战训练及考核的要求.
攻防实战平台可模拟各种安全威胁的实际操作,并且能对不同的攻击防御模式进行针对性模拟还原,并且提供题库,可根据不同的分类进行在线的练习,但可扩展性较差,而且练习后的总结分析和回溯推演能力较弱[9].该平台是针对高校实践教学特点进行设计的,充分发挥已有攻防实战平台优点,同时,便于高校教师管理并进行课后的总结和数据分析,让高校教师对其课程的管理更加方便.
5 结 论
本文简述了基于网络空间安全大学生攻防实践教学平台的设计与研究的必要性,介绍了开发本平台所需要使用的技术,并且对本平台所需设计实现的功能进行了描述.本系统意在为当下国家对网络安全人才培养的需求而设计,有利于培养学生的实战操作能力,构建本平台的难点也是重点为对各题目靶场环境的搭建并进行维护,这直接影响到用户的使用.因此,本平台需在完成各个功能的基础下,加强对靶机的维护,根据高校服务器资源情况,可使用校内物理机搭建或云服务器进行相关搭建.通过大数据技术应用在“攻防实践教学平台”中,可进行教师和学生全程分析,例如:学生实训过程分析、掌握程度分析、难易程度分析、答题成绩分析,并生成可视化数据报告,为教务、相关专业提供网络空间人才培养过程中分析数据.本平台系统的开发与设计,能够有效解决高校在网络安全教学中缺乏实战性的缺点,更加利于高校对网络安全人才进行培养,推动高校网络安全人才培养的快速发展,为国家输送更多的网络安全人才,从而全面提高我国网络安全的保障能力.