APP下载

Web安全漏洞仿真实验项目设计

2021-05-10马文静吴建军周家庆

中国信息技术教育 2021年8期
关键词:虚拟仿真

马文静 吴建军 周家庆

摘要:Web安全漏洞是网络安全的主要的威胁之一,网络空间安全专业实验不同于普通实验,安全测试实验不允许在真实网络环境中实施。因此,本文作者通过虚拟仿真项目构建了“真实”的漏洞场景,Docker容器虚拟化技术为仿真提供了低成本、高效率的实验环境,在实验平台的综合协调下,实现了Web安全漏洞实验的线上共享开放教学。项目体现了网络空间安全的特色,符合虚拟仿真项目建设要求。

关键词:虚拟仿真;Web安全漏洞;Docker

中图分类号:G434  文献标识码:A  论文编号:1674-2117(2021)08-0101-04

● 引言

“Web安全基础”是网络空间安全专业的主要专业课程之一,该课程配套的Web安全漏洞实验教学,将Web安全领域典型安全漏洞的渗透测试和对应防御安全威胁的安全开发能力培养相结合,让学生既具有一定的Web安全渗透测试能力,也具有较好的Web软件安全开发能力,体现了本专业的人才培养特色。

网络安全漏洞实验,本身就带有安全漏洞的测试靶机,它们不适合部署在常规的Web服务器容器中。在常规服务器部署安全漏洞靶机,会因渗透实验过程而使整个服务器被攻击利用,无法实现正常的实验教学,一般只适合在用户本地机器进行实验测试。“根据实验教学计划和实际情况,本着‘能实不虚的原则加大虚拟仿真实验教学项目建设力度,探索线上线下教学相结合的新型实验教学模式。”[1]Web安全漏洞仿真实验,基于虚拟仿真实验建设的文件精神,遵循“虚实结合,能实不虚,开放共享”的原则,将“Web安全漏洞实验”通过虚拟化容器管理模式,实现漏洞实验的安全测试,实现了实验教學的过程化管理。它明显优于传统的实验靶机分散本地测试模式,较完善地达到了课程教学目标。

● Web安全漏洞仿真实验平台建设目标

本项目基于Web安全漏洞靶机,以Docker容器虚拟化技术进行部署,在本项目框架平台中实现统一管理和自动测评。部署本项目后,教师可以统一管理实验,学生按相关任务完成并提交实验结果,系统自动给予操作评价,并指出错误原因。

基于Docker容器虚拟化技术的仿真实验系统,每个学生的实验环境都是独立的,不会因为渗透测试行为而使相互之间的实验受到影响;每个学生的实验环境都是封闭的,测试行为不会对部署本项目平台的服务器产生安全影响;每个学生的实验行为和结果都实现了过程化管理,能满足线上线下混合式教学需求。通过实验,主要学习和验证跨站点脚本攻击(XSS)、命令执行漏洞、CSRF跨站请求伪造、SQL注入、Authentication Flaws认证缺陷、Access Control Flaws访问控制缺陷等Web安全漏洞。平台能实现Web安全漏洞仿真实验的有效组织与评价,记录、分析学生的实验学习过程,可全面提交、汇总整个课程实验教学的综合评价结果。

● 仿真实验原理

Web安全漏洞仿真实验不同于传统的计算机软件开发类实验,它首先需要满足安全漏洞靶机在服务器上的安全部署,其次需要解决不同学生的独立实验环境,最后还需要有一个统一的管理平台。为此,该项目由Docker容器虚拟化技术、实验平台与靶机即时信息交互技术,以及实验管理系统三部分组成。

1.Docker容器虚拟化技术

基于Docker容器虚拟化技术,为每个学生构建封闭、独立的实验环境。容器可以按需要构建或销毁,独立的实验环境确保提供自主学习过程。

如图1所示,与传统的主机虚拟化技术相比,Docker具有更高的资源利用率、更低的资源需求、更快的速度、简单的管理。Docker容器虚拟化技术,在完成预设的Image构建后,启动Image,将Docker容器的端口映射到服务器主机端口,使用Docker Run命令执行启动、运行、停止等操作。[2]可以在实验平台管理下快速生成(数秒级)靶机容器,也可以快速销毁容器,可控的Docker容器降低了实验成本,满足了相关的实验要求,并且确保了实验环境的安全性问题不易被带到实际环境中。

本项目基于Docker容器虚拟化技术较好地解决了Web安全漏洞靶机不允许在常规服务器部署、Web安全漏洞禁止在真实网站测试、安全漏洞测试如何反复重现实验等多个矛盾,体现了虚拟仿真的意义。

2.实验平台与靶机信息交互

实验平台在每个学生的实验过程中,即时访问靶机容器,获取实验数据,这是本系统的关键环节。Docker容器运行后,以Web程序方式提供学生实验操作环境,学生的漏洞测试过程通过Web界面操作并提交给Docker容器。Docker容器的Web程序与实验平台(也是一个Web程序)分属不同的Web域,本系统通过学生实验过程中的凭据提交、后台请求响应的方法实现实验数据的获取。

(1)学生开始实验,将本次实验的身份凭据提交给实验平台。

(2)实验平台获得凭据后,实现后台访问Docker容器的Web程序权限,并按需要,随时访问、记录实验数据。

(3)实验平台对实验数据进行汇总、分析,记录实验学习过程,提出改进策略。

Docker靶机设计了测试信息访问接口,并合成于Image,每个容器启动均自动启用访问接口;实验平台获取学生提交的身份凭据,封装为WebRequest提交至Docker靶机,获得访问权限;通过Docker的访问接口,实验平台获得靶机的WebResponse,通过解析存储至实验平台数据库,并按需要提供数据呈现。

3.实验平台管理

实现线上线下相结合、共享开放的新型实验教学模式,是计算机虚拟仿真实验项目建设的一个重要目标。实验平台是整个项目的中心,它基于一个主流的MVC框架开发,以保证自身在线上实验教学过程的安全、稳定运行。

● 实验平台设计

在虚拟仿真实验建设过程中,一定要秉持“虚实结合,能实不虚,共享开放”的原则,有效利用虚拟仿真技术,有效使用线上平台,实现共享开放。Web安全实验不适合在真实网站进行测试学习,Web安全漏洞靶机也不适合在服务器上以真实网站的形式进行部署实验。前者,安全测试可能会导致真实网站的不可逆破坏;后者,会因为漏洞靶机给服务器带来严重的安全后果。本实验平台以Docker容器应用为基础,在安全可控的范围内,低成本、高效率地为每个学生的实验虚拟了独立的漏洞靶机,实验环境是“真实”的,整体达到了虚拟仿真项目的基本要求。

1.系统组成

Web安全漏洞仿真实验平台主要由实验管理平台和Web安全漏洞靶机Docker系统两部分组成(如图2)。对实验用户而言,Docker靶机是透明的,用户面对的就是一个带有Web安全漏洞的真实网站。

整个系统的管理操作包括教学管理、教学信息、实验任务安排、成绩汇总分析等,在实验管理平台完成。实验过程:①学生启动实验后,平台自动发送指令生成Docker靶机;②靶机启动完成后,在实验平台的监控下,自动打开浏览器访问靶机Web程序,整个Web漏洞实验过程是在浏览器中操作完成;③实验过程中,实验平台随时收集实验数据,在实验完成后进行汇总分析,呈现实验结果;④实验完成后,销毁实验靶机。

平台按学生的需要管理Docker靶机等实验资源,自动完成实验数据收集和实验结果呈现。

2.实验平台功能

实验平台是一个完整的实验教学软件,满足了线上虚拟仿真实验共享开放的相关要求。

(1)用户管理与认证授权。系统主要分为管理员、课程组长、教师和学生等角色,在登录后完成授权使用。管理员主要对本系统的教师账户进行创建管理,包括平台数据备份、平台运行等综合性管理。课程组长对实验内容进行管理,可以新增、修改实验任务等。教师是实验教学的组织者,基于实验课程布置任务,检查实验进度,指导学生实验。在本系统中,学生除了完成教师安排的实验任务外,可以自主选择实验进行学习操作;同时,学生个人中心可以展示学生的实验过程和成绩,以及改进实验的方法等。

(2)教学信息。

(3)实验任务管理。

(4)实验帮助与实验过程。作为共享开放的线上实验需求,为用户提供实验帮助是一个重要的辅助形式,帮助内容包括漏洞的成因、危害,以及解決的思路等。

平台的每个实验,均通过Web页面引导完成,每个步骤的操作都是开放的。例如,一个sql注入实验,注入的sql语句可以形式繁多,但最终结果都可以统一实现。这也是本虚拟仿真项目的设计目标之一,即以虚拟的环境实现真实的漏洞测试过程。

(5)实验数据汇总分析。基于本项目实现的平台与靶机之间的信息访问技术,平台随时收集学生在实验过程中的尝试过程,包括失败和成功的测试。在实验结果呈现时,对个人可以呈现每个步骤的每次操作记录,对整个教学班级可以呈现学生的分类信息,较好地体现了教学软件的自动化功能,改进了实验教学成效。

3.实验课程内容

本系统的实验课程参照国际主流的OWASP(Open Web Application Security Project,开放式Web应用程序安全项目)组织公布的Web安全应用Top 10文档[3],同步关注Web安全领域的十大威胁,力争能够激发学生兴趣,培养其安全应用思维和安全开发方法。具体实验内容如上表所示,每次实验为2课时,共18课时。

● 结语

实验教学是培养学生掌握发现、分析和解决问题能力的重要环节。[4]笔者所在学校的Web安全漏洞仿真实验项目开发已初步完成,整个系统基本实现了设计目标。基于本实验平台,学生可在虚拟环境下实施Web安全测试,观察靶机在漏洞利用状况下的受害显示,充分理解Web安全威胁。同时,实验平台对实验行为的数据收集和汇总分析,不仅自动化地实现了实验成绩统计,而且根据学生的实验过程,提出了操作改进,有效地提高了实验教学需求。项目符合虚拟仿真建设要求,基本满足该实验课程的线上共享开发需求。

参考文献:

[1]教育部办公厅.关于2017—2020年开展示范性虚拟仿真实验教学项目建设的通知[Z].教高厅[2017]4号.

[2]高礼, 高昕.Docker技术在软件开发过程中的应用研究[J].软件,2016(03):110-113.

[3]OWASP, OWASP Top 10 2017[EB/OL].http://www.owasp.org.cn/owasp-project/OWASPTop102017v1.3.pdf.

[4]杜晔,陈贺男,黎妹红,等.Web应用安全实验教学探讨与案例评析[J].计算机教育,2015(19):17-19.

基金项目:2019年度浙江师范大学虚拟仿真实验教学项目(ZC303919020)。

猜你喜欢

虚拟仿真
机械电子专业课程的网络教学与实验
面向复杂工程问题的计算机人才创新能力培养体系研究
高职证券专业虚拟仿真实训应用研究
虚拟仿真在飞机维修实训教学中的应用
中职畜禽解剖课程虚拟仿真实训教学资源的建设与应用
浅析虚拟仿真技术在海军院校教学中的应用
虚实结合和科教融合的计算机实验教学体系
数字积分法插补仿真实验教学系统开发
网络虚拟仿真实验中心建设研究与实践
基于虚拟仿真的电路实验教学改革方案探索