摘要:为了能够动态测评用户网络空间安全理论和实践水平,基于B/S架构模式,并结合Flask框架和SQLite3数据库技术设计了一种动态测评系统。该系统支持个人和团体的动态测评模式,可以使用户在自己喜好的主题场景中扮演相应的角色,凭借缜密推理和齐心协作,实现网络空间安全动态化的测评。通过动态测评使用户了解自身在网络空间安全知识方面的不足点,帮助用户提升网络空间安全方面的能力。
加入收藏
网络空间安全(cybersecurity)已引起了世界各国高度重视,决定了军事行动的成败,关系到国家的安全。美国多次提出了网络空间安全符合性测试要求,美国国防部在《网络空间安全实施指南》和《网络空间安全测试和评估指南》中提出了详细的信息系统测试和评估程序[1]。这些政策的落实都需要一个虚拟的环境来实施测试和评估工作。目前,我国在网络空间安全测评上还缺少有效的定期考核机制,网络空间安全过份依赖网络安全产品,而对安全从业人员的技术重视不够,不能定期检验从业人员掌握安全技术情况。为了能够动态测评用户的网络空间安全水平,在现有网络空间安全测评系统的基础上,设计并开发了基于B/S架构场景化的网络空间安全动态测评系统。
1、关键技术
1.1FlaskWeb框架
FlaskWeb框架是基于WerkzeugWSGI工具箱和Jinja2模板引擎,使用Python编写的轻量级Web应用框架[1]。Flask主要依赖路由、调试和Web服务器网关接口,子系统由Werkzeug提供,模板系统由Jinja2提供。
Werkzeug是一个全面的WSGI应用程序库。最初是WSGI应用程序中各种实用程序的简单集合,现已成为最高级的WSGI实用程序库之一。Werkzeug支持Unicode,并且不强制执行任何依赖项,且可以选择模板引擎,数据库适配器,甚至如何处理请求[2]。
Jinja2以Django的模板为模型,是一种现代且设计友好的Python模板语言。借助可选的沙盒模板执行环境,可以快速、广泛、安全地使用[3]。
1.2JavaScript
JavaScript是一种非常松散的面向对象语言,也是Web开发中极受欢迎的一门语言。JavaScript是一种全新的动态语言,它植根于全球数亿网民都在使用的Web浏览器之中,致力于增强网站和Web应用程序的交互性[4]。
1.3CTFd框架
CTFd使用Python语言编写,并使用FlaskWeb框架。CTFd框架是夺旗框架,专注于易用性和可定制性。CTFd可自动生成一个记分牌,自动解决平局并支持冻结挑战[5]。CTFd支持两种改变用户或团队得分的模型。如果CTFd框架的功能集不足,则可以通过使用插件和主题控制其外观和功能以及其他方面。
1.4SQLite3
SQLite3是一个自包含的、无服务器、零配置、事务性的SQL数据库引擎。SQLite3是一个C库,它提供轻量级的基于磁盘的数据库,不需要单独的服务器进程,并且允许使用SQL查询语言的非标准变体访问数据库。某些应用程序可以使用SQLite3进行内部数据存储,也可以使用SQLite3对应用程序进行原型设计,然后将代码移植到更大的数据库中,例如PostgreSQL或Oracle。SQLite3是世界上部署最广泛的数据库[6]。SQLite3的代码在公共领域,无论是出于商业目的还是私人目的均可以免费使用。
1.5Docker
Docker是一种运行于Linux和Windows上的软件,用于创建、管理和编排容器[7],是一个用于开发、交付和运行应用程序的开放平台。Docker是一个能够将应用程序与基础架构分开,从而可以快速交付的软件。借助Docker可以用与管理应用程序相同的方式来管理基础架构。通过采用Docker的方法快速交付、测试和部署代码,可极大减少编写代码以及在生产环境中运行代码之间的延迟。Docker提供了在松散隔离的环境(容器)中打包以及运行应用程序的功能。隔离和安全性可以在给定的主机上同时运行多个容器。容器是轻量级的,不需要虚拟机管理程序的额外负载,可直接在主机的内核运行。Docker可以为部署网络空间安全动态测评系统提供良好的部署环境,减少开发前期环境搭建所花费的时间[8]。
2、系统设计
网络空间安全动态测评系统是采用浏览器/服务器(B/S)模式,并使用Flask框架提供由Python编写的轻量级Web应用框架。使用JavaScript编程语言为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。用户操作浏览器发送请求,服务器接收并处理请求后返回结果给用户。网络空间安全动态测评系统分为个人用户模式和团队模式。用户分为普通用户和管理员两类。在系统中,系统平台用户的功能模块如图1所示。
2.1普通用户的功能模块
1)用户注册功能模块。该模块在用户注册账户时启用,检查用户注册账户时,输入的账户名称、密码、电子邮箱等相关注册信息是否符合平台要求,并给予用户可视化的提示信息,为用户提供良好的交互。
2)个人生涯功能模块。记录着用户在平台动态测评的所有数据,这些数据可视化显示在该功能模块中。
3)用户排行榜功能模块。记录所有用户的动态测评记录,根据用户所获得的积分进行排名。将所有用户动态测评数据做成图表形式可视化显示在页面。
图1系统平台用户的功能模块
4)动态测评模块。该模块动态测评内容由平台管理员设计,是平台的核心功能模块。动态测评共有两大不同场景设计,每个场景为各自动态测评题库的主题,用户可自由选择场景进行动态测评。用户的动态测评数据为其他功能模块提供数据上的支持。
网络空间安全动态测评系统的两个子场景分别为红客密室之密室逃脱场景和红客密室之古典图书馆。每个场景都有各自特有的主题,并且各个主题都有鲜明的特点,据此进行区分。当激活到该场景时,在轮播图片上添加文字描述和声音提示,如图2所示。
图2红客密室之密室逃脱场景设计
5)团队注册管理功能模块。为用户组队或加入队伍提供支持,用户可以自行组建团队,组建团队需提供团队名称以及团队密码。用户还可以设置团队队长等其他子功能。用户加入团队需提前向团队成员索要团队账户和密码。
2.2管理员的功能模块
1)平台配置管理功能模块共有7个子功能,分别为平台资料、平台账号、平台基本设置功能、平台电子邮箱、平台时间、平台备份、平台重置。平台资料配置功能可以设置平台的徽标、平台的名称、平台模式的选择、平台页面主题风格设置。平台账号配置功能可以设置用户注册时使用邮箱的白名单、用户是否验证电子邮件、用户是否可以更改用户名。平台基本设置功能有用户测评结果、其他人是否能够查看用户积分,以及账户、注册可见性设置。
2)用户管理功能模块。支持用户名关键字匹配搜索,方便管理员快捷搜索某个用户,可对某个用户进行增加、删除和修改操作。进入某个用户参数页面,可以查看用户动态测评相关记录并且能够修改其测评的相关信息数据;可以查看用户登录记录信息、用户最近登录的时间和IP地址。
3)测评资源管理功能模块。可以增加删除动态测评时所需的相关文件。测评资源的加入,可以使动态测评更加多样性。
4)测评题库管理功能模块。管理员可以对动态测试题库进行增加、删除和修改操作,对动态测试题库的某个测试关卡进行修改,如增加、删除、修改关卡的Flag值、关卡的标签、关卡的提示,设置进入该关卡的前提条件以及关卡的基本参数设置等操作。
5)可视化管理功能模块。平台动态测评信息统计可视化,只允许管理员查看,可视化以多个图表的形式在统计模块中显示,展示平台用户数目,关卡挑战的次数最值、正误提交次数等相关信息。
6)团队管理功能模块。用于增加、删除以及修改团队信息等操作。该功能模块记录团队所有成员动态测评的数据,并用图表的形式显示在该页面。管理员在团队模式下所具有的功能模块是在个人模式的基础上增加许多功能模块。
3、系统实现
3.1环境搭建
在Ubuntu系统上安装Docker、DockerCompose,并使用命令克隆CTFd存储库,修改dockercompose.yml存储库中的文件SECRET_KEY。修改内容如下所示,以CTFd服务为指定环境[9]。
算法1
3.2平台前端
平台前端使用JavaScript为页面增加动态效果,BootStrap4则可以构建响应式的页面,并且移动设备也能为用户提供友好的体验[10]。
3.2.1页面主界面
本动态测评系统平台的主界面分为上下两块区域,上方为导航栏,下方为内容栏。其中导航栏含有平台所有主要的操作按钮,分别为用户注册模块、个人生涯模块、个人设置模块、用户退出模块、平台通知模块、用户信息模块、团队模块、排行榜(记分牌)模块、动态测评(挑战)模块。
管理员用户进入管理模式,功能模块更改为平台统计模块、平台通知管理模块、平台网页管理模块、用户管理模块、团队管理模块、动态测评可视化管理模块、动态测评题库及资源管理模块、用户提交测评记录管理模块、平台配置参数管理模块。
3.2.2动态测评界面
动态测评界面由主场景轮播页面和子场景页面两部分组成。主场景轮播页面是为用户选择所想测评类别的题库;子场景页面是显示动态测评的测试题目的页面。
用户进入所选题库的实现方法如下:使用Bootstrap4框架,为页面添加一个轮播。该轮播由页面两侧按钮、轮播图片以及轮播的指示符组成。为轮播添加脚本,设置轮播次数为两次,并使其手动切换场景,产生轮播图片切换过渡动画效果。在两个子场景中,为场景图片添加链接属性,用户点击图片,页面将会跳转到相应场景的关卡。
3.3页面后端
3.3.1测评过程
前端提交动态测评请求后,后端将接受到用户提交的Flag值和题目的id。然后进入测评过程,整个过程为:(1)用户选择场景类别,前端向后端发送含有该类别的请求;(2)后端接受到该类别的请求,并对接受的请求信息中的URL进行解码;(3)后端解码得到类别,遍历整个该类别的题库,向前端动态返回相关数据;(4)前端接受到该类别的相关题库,在浏览器中显示该类别的子场景页面;(5)在某个子场景页面中,用户提交某个题目的Flag值,前端向后端发送提交请求;(6)后端进行Flag值判断,判断结束后,后端将用户提交的Flag值和题目id记录存储在SQLite3数据库中submissions表中;(7)后端返回判断的结果,如果正确,则会提示“Congratulation!”的文字信息并在几秒后进入下一题。若不正确,则在模态框下方滑出“不正确”文字信息的提示。
3.3.2页面传参,后端返回相关数据的实现方法
1)主场景轮播变化。在主场景轮播中,实现点击轮播图片传递参数,在主场景轮播页面中,为轮播图片添加超链接标签。在该页面脚本中为轮播图片添加click()方法,使其动态的为轮播图片标签添加“href”属性值。
为主场景轮播页面添加getQueryString函数,使用正则寻找以&+url参数名字=值+&,&可以不存在,忽略大小写。找出“?”之后匹配正则的字符串,并对所选的字符串进行解码。获取到scene=后面值,该值赋值为categroy,并动态添加子场景页面显示的类别。
2)子场景主题关卡的变化。由于每个关卡设置了前提条件,读取数据库内容时,只返回未被设置前提条件的关卡。在子场景页面脚本中,遍历challenges字典中的category值是否与页面传参的相等,若相等,则将该challenges索引下的赋值给chalinfo。为子场景添加按钮,并在前端修改按钮的CSS样式。提取user_solves使用indexOf()方法查找chalinfo.id是否存在,不存在,则返回-1。判断用户是否已通过该关卡,若为-1,则正常显示关卡按钮;若非-1,则为按钮添加“Congratulation!”的文字信息。
按钮图片读取方式:首先,从数据库读取图片存放的绝对路径,该字符串存放于response.data并传递出来。其次,在子场景页面脚本文件中,添加jQuery脚本,页面预载时,为id、nosolve-chal标签添加图片。
4、结论
1)采用Flask技术,实现了一个基于B/S架构的场景化网络空间安全动态测评系统,并使用SQLite3数据库作为数据的存储方式,实现了资源共享、用户互动、动态更新、数据备份的功能。
2)为被测评者提供良好的测评环境。动态的题库数据,使测评更有灵活性,并可视化的显示测评的结果,让被测评者直观了解自己的不足,使其在网络空间安全理论和实践方面更加完善。
3)用户测评结果可以为平台后续题库设计提供思路,使平台的测评更加可靠。通过场景化网络安全动态测评系统的建设和应用,可以为行业培养所需专业安全人员,为国家输送网络安全建设专业人才。
参考文献:
[2]米格尔.格林贝格.FlaskWeb开发:基于Python的Web应用开发实践:第2版[M].安道,译.北京:人民邮电出版社,2018:1-20.
[7]NIGELP.深入浅出Docker[M].李瑞丰,刘康,译.北京:人民邮电出版社,2019:15-19.
方立刚,张鹏.场景化网络空间安全动态测评系统设计与实现[J].苏州市职业大学学报,2020,31(02):1-5.
基金:国家自然科学基金资助项目(61672372);江苏省大学生实践创新训练计划项目(201811054024H);赛尔网络下一代互联网技术创新项目(NGII20190113)
分享:
目前,我国采取的粮食储备方案主要包括中央储备、地方储备、农户储备和粮食流通企业储备4种。其中,农户储备的数量占比超过了一半,但农户在粮食储存过程中的损失率也高达约8%,导致每年粮食损耗达到2 000万吨。另外,粮库的储备损失率在5%左右。如果将损失率降低到2%左右,那么每年至少可以多获取几百亿斤粮食。
2025-01-07互联网技术的深入发展,促进了无线通信网络在各个领域的广泛应用,在不同的环境下,改变无线通信网络中的节点分布,搭建符合通信逻辑的层级链路结构,确保指定信息的有效交换。随着人们开始依靠无线通信进行信息交换,通信的安全性和可靠性越来越受到重视。
2024-09-19随着社会的发展,垃圾数量逐年增加。2016—2019年,全国大、中城市生活垃圾产生量年均增长率超过7.7%。随着垃圾产生量的增多,垃圾分类处理变得尤为重要,合理的分类处理方法将直接影响垃圾回收的价值和垃圾处理的效率。当前,我国垃圾分类制度不够完善,人们的垃圾分类意识也较淡薄,缺乏分类的主动性。
2024-07-22随着我国经济的快速发展,人民的生活水平日渐提高,越来越多的人喜欢在家饲养宠物,但因工作需要,可能长期不在家,无法做到及时投喂,从而影响宠物的健康。现有的宠物饲养大多采用一次性投喂足量的食物和水等方式,使食物长期暴露在室外,容易造成细菌感染,也极易造成宠物暴饮暴食,影响宠物健康。
2023-12-19在我国电网企业中,人力资源的合理管理对于高效培养专业领域人才、提高整体资源利用率以及更好地发挥其最高能效均具有重要意义。但由于存在海量的复杂数据,传统的人力资源管理系统无法对相关数据进行准确地分析与判断,因而也无法充分利用各种信息系统所收集的大量数据。
2023-11-02随着计算机网络技术的持续发展,对计算机网络人性化和智能化的需求也更高。但是,因为计算机网络信息安全问题时有发生,网络技术发展还在不断完善,合理使用人工智能技术能够对网络信息进行智能化的绑定和跟踪,使计算机网络信息安全管理工作得以顺利开展进。因此,将人工智能应用到计算机网络技术中尤为重要。
2023-09-15随着网络与信息的交互发展,可穿戴电子设备凭借其诸多便捷实用的功能逐渐应用到人类生活的各个领域。为满足可穿戴电子设备功能的需要,设备对供电装置的性能提出了更高的要求,而传统电池供电方式会带来电池体积增大、质量增重等问题。因此,需要一种新的供电方式来更好地解决设备供电装置的持续供能问题。
2023-09-12基于物联网的智能热网系统应采用B/S架构建设,其中包括数据感知层、数据管理层、数据访问层、业务逻辑层、表示层与终端访问层。数据感知层包括数据集中器、智能仪表等物联网设备,用于收集数据,远程监控。数据管理层包括热力站上位机,用于采集数据,发送控制信号,并对数据进行集中处理。
2023-08-29常见的空气质量检测设备功能单一,各个传感器都是独立、分立的,只能检测一种到两种的空气质量数据,无法多样化检测空气质量浓度数据,没有和云网络平台进行连接,无法远程传输数据。近几年,国内外的研究者对空气质量检测展开了深度研究,其中,文献通过融合多种室内空气质量数据,输出室内火灾发生概率,提出了一种室内火灾预警算法。
2023-08-25随着产业技术复杂度的日益提升,越来越多的创新主体开始突破组织边界,通过开展合作来获取互补性创新资源、降低创新的风险和复杂性,合作创新已经成为组织开展创新活动的重要形式[1]。新能源汽车产业是我国战略性新兴产业之一,由于该产业具有技术更新速度快、创新难度大以及技术溢出效应等特征,合作研发成为该产业技术创新的重要形式。
2023-08-23我要评论
期刊名称:网络安全技术与应用
期刊人气:2249
主管单位:中华人民共和国教育部
主办单位:北京大学出版社
出版地方:北京
专业分类:科技
国际刊号:1009-6833
国内刊号:11-4522/TP
邮发代号:2-741
创刊时间:2001年
发行周期:月刊
期刊开本:大16开
见刊时间:1-3个月
影响因子:1.646
影响因子:0.693
影响因子:0.706
影响因子:1.052
影响因子:0.194
您的论文已提交,我们会尽快联系您,请耐心等待!
你的密码已发送到您的邮箱,请查看!