“Web安全基础”实验教学探讨

来源 :中国信息技术教育 | 被引量 : 0次 | 上传用户:zhoulei1964
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:Web安全实验体现了网络空间安全的特色,作者围绕网络安全的教学思维,以多门软件开发课程为基础,结合互联网主流安全漏洞的攻防技术,综合成熟的安全攻防实验平台和学生自有的代码项目,实现了进行安全测试与防御,举例解析了实验课程项目。
  关键词:Web安全;实验项目;漏洞;攻击;防御
  中图分类号:G434 文献标识码:A 论文编号:1674-2117(2019)08-0103-04
  引言
  “Web安全基础”(Web Security foundation)是网络空间安全专业的主要专业课程之一,笔者所在学校该本科专业的开课时间为第五学期。通过对Web应用系统各层次存在的安全隐患和安全威胁的教学,让学生建立Web安全总体概念,熟悉相关技术的基本原理,掌握相应的方法手段,提高Web安全应用意识和安全开发能力。作为应用型本科专业的培养,该课程配套的实验教学,应注重将Web安全领域的针对主要安全漏洞的攻击技能应用和对应预防安全威胁的安全开发能力培养相结合,也就是既具有一定的Web安全渗透测试能力,也具有较好的安全开发技能,以体现本专业的人才培养特色。
  教学资源准备
  Web安全实验不同于传统的计算机软件开发类实验,它直接与当前互联网应用的各类安全问题紧密相连,是多门专业课程的综合应用。为此,笔者所在学校首先从教师自身的网络安全实践应用能力培养与提高入手,专门安排该课程相关教师进入国内知名的网络安全公司开展为期半年到一年的实践学习与研究。
  同时,与国内多家网络安全公司及安全教育公司密切合作,签署教育部产学研合作协同育人项目,引入多个安全攻防教学平台,为网络安全实践教学提供了较丰富的校内在线资源。
  实验课程设计
  本课程的主要预修课程包括操作系统、数据库应用、Web系统开发等,基于合作引入的网络安全攻防平台,合理地组织现有资源,并针对本校学生特点,设计具有系统性和开放性的实验课程内容。
  “Web安全基础”课程的理论课主要讲述了客户端脚本安全、Web服务端应用安全以及安全运营等内容[1],可供参考的思维导图如下页图1所示。
  配套的实验课以上述理论课为线索,参照国际主流的OWASP(Open Web Application Security Project,开放式Web应用程序安全项目)组织公布的Web安全应用Top10文档[2],同步关注Web安全领域的十大威胁,力争构建能激发学生兴趣、培养其安全应用思维和安全开发方法。具体实验内容如下页表所示,每次实验为2课时,共18课时。
  实验项目示例
  本课程实验的基本過程主要包括如下内容:漏洞现象验证及相关工具应用、安全漏洞利用、漏洞防御、进阶应用。根据理论课已讲述的内容,配合必要的工具软件,完成漏洞现象验证,实现基本的感性认识,结合相关安全事件,认识到漏洞带来的威胁。在配套的安全实验平台,可以完成进一步的漏洞利用(攻击)过程,在模拟的目标平台,实现漏洞利用,如获取Web应用的账户信息。漏洞防御主要与程序开发相关,结合以往专业课,对之前不安全代码进行改进,实现防御目标。进阶应用环节可以在课后继续学习中完成。下面,列举两个实验项目给予分析。
  1.XSS漏洞的危害、攻击与防御
  (1)XSS漏洞现象验证
  ①从网络安全实验平台验证。通过平台提供的基础案例,很快能从中验证XSS(Cross-site Scripting)跨站脚本攻击现象,如反射型XSS被执行时的弹窗现象。
  ②从学生以往课程实验中验证。如前文所述,Web系统开发是前驱课程,学生重新打开之前的实验项目,在调试中输入XSS代码测试,可以更显著地发现跨站脚本执行的结果。例如,一个基于JSP开发的数据库存取实验项目,在提交数据的表单中,填写包含如下脚本:
  
  原代码并未做XSS防御处理,将上述脚本直接保存至数据库。而后,在数据库读取显示的页面中,当访问上述记录时,直接把当前浏览用户的cookie信息发送到了攻击者的指定地址http://192.168.0.169:8007/XSS_savecookie.asp,从而发生了存储型跨站脚本攻击。特意设计了攻击者收集cookie信息的网站使用asp技术,以示接收信息的平台类型不受限制。学生从自己以往的实验项目中发现了Web安全漏洞,体会更加深刻。
  (2)利用XSS的攻击
  攻击过程可以根据需要,使用合作公司的实验平台或OWASP开放的WebGoat安全测试项目,也可以在学生自建虚拟机环境中测试。通过XSS漏洞利用,获取受害者cookie信息后,攻击者可以无需账号密码直接登录到相关网站。如果该账户权限是管理员,那么攻击者就获取了该网站的最高权限,危害很大。
  (3)XSS防御
  防御环节是最重要的,发现安全漏洞后,要通过适当的防范给予防御,这是本专业的主要培养方向。例如,在该实验项目中,学生对带有存储型XSS漏洞的Web项目进行了HTTP only设置。之后,在攻击者获取的信息中,就无法读取cookie信息,从而对该项目实现了有效的加固。当然,也让学生意识到防范的措施并不是单一的,也不是不计成本的。
  (4)XSS进阶
  进阶学习既有攻击方面的内容,也有防御方面的内容。给学生提供适当的进阶学习方向,如构建更隐蔽的XSS代码实现攻击,或采用更先进的Web框架开发技术,都可以有进一步的攻防学习进阶。进阶学习成果可以安排学生在课堂中讨论。   2.SQL注入的危害、攻击与防御
  (1)SQL注入现象验证
  ①从网络安全实验平台验证。通过平台提供的基础案例,可以提供快速验证。例如,可以通过SQL注入,获取数据库中更多的信息显示。
  ②从学生以往课程实验中验证。与XSS相似,以往Web开发课程中的SQL存取并未注意防范注入问题。如图2所示,结合使用WebScarab拦截工具,对用户登录的密码进行SQL注入,修改password字段内容为“a’ or 1=1 --”后提交请求,登录成功。它不仅绕过了用户密码,还避开了网页前端使用JavaScript脚本检测密码字符串规则。
  (2)SQL注入的危害分析与注入语句设计
  SQL注入直接发生在Web服务器上,可以篡改数据库以及提权等攻击,危害巨大。在学生构建SQL注入语句时,借用SSMS(SQL Server Management Studio)是一个直观的方法。使用SQL Server数据库管理平台,构建实验数据库,在其“新建查询”窗口,可以给予SQL语法,构建各类注入语句,并在实验数据库中完成测试。
  在传统的数据库课程学习中,并未构建包含诸如“a’ or 1=1 --”的SQL语句,而在当前的SQL注入实验中,需要配合Web页面中的场景,实现注入攻击。在SSMS中调试成功的注入语句,可以更好地让学生理解其中的原理。
  (3)SQL注入的防御
  同样,SQL注入的防御,也可以在学生自有项目中进行调试,实现加固。例如,在JSP中使用预编译语句:
  String name=request.getParameter("curname");
  String query="SELECT addr FROM userInfo WHERE username=?";
  PreparedStatement pdst=
  connection.prepareStatement(query);
  pdst.setString(1, name);
  ResultSet results=pdst.executeQuery();
  使用预编译SQL语句,语义不会发生改变。上述代码中,字段值的变量用“?”表示,攻击者无法改变SQL的结构,即使插入类似于上文“a’ or 1=1”的字符串,也只会把该字符串作为username的值进行查询,而不会发生注入攻击。
  (4)SQL注入的进阶
  SQL注入的基本原理在于开发者违背了“数据与代码分离原则”,在需要“拼接”的地方必须进行安全检查。[3]在进阶攻击中,攻击者可以构建功能更多的SQL语句,实现数据库数据的下载或篡改;还可以通过SQL注入在数据库中创建触发器,实现持续性攻击;还可以通过进一步的手段实现提权,控制整个Web服务器。理解攻击者更多的手段,是安全开发的必要准备。
  结语
  实验教学是培养学生掌握发现、分析和解決问题能力的重要环节。[4]笔者所在学校的Web安全实验整理了多方面的教学资源,从通用性的网络安全实验平台学习验证问题的现象,结合自身开发的项目代码分析问题的原因与适当的解决方法,进而综合各种资源提升学生的学习兴趣与成效。同时,结合《中华人民共和国网络安全法》的教育,培养有技术、知法守法的专业人才,通过几届学生的教学实践,教学效果良好。
  参考文献:
  [1][3]吴翰清.白帽子讲Web安全[M].北京:电子工业出版社,2014.
  [2]OWASP.OWASP Top 10 2017[EB/OL].http://www.owasp.org.cn/owasp-project/OWASPTop102017v1.3.pdf.
  [4]杜晔,陈贺男,黎妹红,等.Web应用安全实验教学探讨与案例评析[J].计算机教育,2015(19):17-19.
  基金项目:本文获得浙江师范大学“《软件安全》课程仿真实验项目建设”(SJ201823)资助。
其他文献
摘要:MOOC自发展以来,对我国高等教育产生了重要的影响。本文通过分析MOOC教学资源设计中存在的问题,以理查德·迈耶(Richard E.Mayer)所著《多媒体学习》一书中多媒体学习理论为理论基础、多媒体设计原则为指导,对中国大学MOOC网的“‘互联网 ’时代教师个人知识管理”MOOC教学资源进行了设计与开发,建立了基于多媒体学习理论MOOC课程教学资源设计模式,优化教学效果,促进课程的发展与
编者按:一直以来,教育信息化都是一个超越教育科学的话题,不仅驱动着教育领域的改革,同时也是我国在当前社会转型期背景下,社会结构从农业化社会向工业化社会转型重构的重要支撑点。教育信息化的理论与应用研究必须超越教育科学领域的一隅之地,从整个自然科学和社会科学角度着眼切入研究。2017年,我们将关注教育数据挖掘和学习分析领域的国外研究新进展,试图通过数据科学引领,推动教育科学在教育信息化这一教育深层改革
关于“学历案”  “学历案”是在班级教学情境下,基于学生立场,围绕某一具体的学习内容(主题、单元),从期望“学会什么”出发,设计并展示“学生何以学会”的过程,以便学生自主建构或社会建构经验与知识的专业方案。南京市第一中学正进行着一场以“指向深度学习的学历案研究”为抓手的教学变革,传统学习文本的编写已经发生改变。笔者以《打开编程之门》一课为例,为大家呈现一种新型的学习文本。学习《打开编程之门》一课共
以“想象、创作、分享”为主题的Scratch,趣味性、易学性、实践性、创新性都适合中小学生,特别是作为简单易学的编程工具,用拖动指令块代替敲代码,学生可以避开程序设计语言语法的学习和调试,集中精力对问题进行求解,这为学生计算机思维的培养提供了便利条件。笔者以《大鱼吃小鱼》一课为例,就如何培养学生的计算思维同大家一起探讨。学生此前已经学会了Scratch中常见的指令块,本节课是Scratch的综合应
摘要:信息技术应用能力是信息化社会教师必备的能力之一。本研究设计“特殊教育教师信息技术能力调查问卷”,对浙江省四所特殊学校教师信息技术能力进行调查,分析得出特殊学校教师的信息技术应用能力在计划与准备、评估与诊断、学习与发展三个维度上存在的问题,进而从设计评价体系、开展自评、制订培训方案三方面提出相应的培训建议,以期为特殊教育教师信息技术培训的发展提供实证依据,也为浙江省推进信息化环境下特殊教育教师
摘要:在科技快速发展的今天,创客教育在培养创新人才的现代教育趋势下不断发展。Scratch作为创客教育中重要的教学内容,开发一套符合学生认知发展和培养学生创新能力的Scratch课程很有必要。本文基于创客教育思想,设计了Scratch趣味编程、Scratch创意编程、Scratch互动编程、Scratch硬件编程四个层次的编程课程。  关键词:创客教育;Scratch课程;Scratch编程  中
先讲一个2000多年前的故事:说有三个上帝,一个叫有象,一个叫无形,一个叫浑沌。有象和无形家住在南边和北边,经常到住在中间的浑沌家做客。浑沌非常善良好客,弄得有象和无形总不好意思。两个人商量为这善良的白痴做点什么,有象和无形都长着鼻子、耳朵、眼睛,浑沌七窍未分化,有象和无形于是就帮忙用了七天七夜为浑沌凿出了七窍,但等到第七天浑沌张开双眼,一下子就死了。这个故事收录在《庄子》一书中,只不过我将故事的
读《草根教师的微课程教学法实践之路》,你会深受感动。  作者周才萍,是苏州市吴中区木渎实验中学化学教师、教科室主任,一位初试微课程教学法的实验者。她的这篇文章,向我们展现的是一名課程改革路上的探索者,在历经彷徨、找到方向之后的兴奋、磨练、沉浸与感悟,由此成就教师发展,也成就学生发展。  记得周才萍听过马莉莉老师分享的“微课程教学法实验体验”之后,通过QQ找到我,提出了一系列的困惑,表达了对了解微课
摘要:动漫是人们喜闻乐见的一种艺术形式,它以其生动、幽默、形象的特点吸引着越来越多的人。那在中小学生的书包、课桌、口袋里装的是什么动漫?这些作品到底能给他们带来什么?是正面的积极引导,还是负面的消极诱导?本文以中小学生的动漫课堂教学实践为例,探究如何促进动漫教学的有效开展。  关键词:中小学;动漫;教学  对于动漫教学,在前些年,还只是在职业学校和高等院校里才开设,如今动漫教学走进了中小学课堂,给
“热力环流”是江苏省木渎高级中学马莉莉老师在武汉市常青第一中学执教的翻转课堂异地公开课课题。《实验·问题·参与·建构》一文,全称《实验·问题·参与·建构——“热力环流”翻转课堂教学的设计与反思》,反映了马老师武汉教学归来的感悟。  马老师的教学是一次较为典型的微课程教学法实践,其中一个显著的特点是:贯彻了目标管理思想。因此,这不仅保证了学生自主学习的质量,而且促进了教师职业行为转型,即从讲授者转化