APP下载

基于 WebGoat 的渗透测试教学平台开发与应用

2015-08-07董晓露王小军谢于宁

大众科技 2015年3期
关键词:漏洞信息安全网络安全

董晓露 王小军 王 玥 王 聪 孙 雯 谢于宁

(杭州电子科技大学,浙江 杭州 310018)

基于 WebGoat 的渗透测试教学平台开发与应用

董晓露 王小军 王 玥 王 聪 孙 雯 谢于宁

(杭州电子科技大学,浙江 杭州 310018)

当前信息安全形势下,大部分高校开设了网络安全课程,其中渗透测试技术的学习举足轻重。文章分析了各类常用的渗透测试工具,并着重对WebGoat这一开源的渗透测试平台进行研究。从课程改进和关键界面汉化这两部分着手,使WebGoat能更好地应用于实践教学,让学生在实践操作中更高效地学习掌握相关技术。

WebGoat;渗透测试;教学应用

随着互联网的不断发展,信息化已成为社会发展的必然趋势。而开放的网络环境让人们在享受便利的同时也感受到信息的安全性和保密性所遭受的强烈冲击。2013年,棱镜门事件的曝光让大至国家,小到个人都开始重新审视自身的信息安全现状。2014年2月,我国首次成立中央网络安全和信息化领导小组,将信息安全上升到国家战略高度。因此,国家和社会迫切需要高素质、有实战能力的信息安全类专业人才。

渗透测试是网络安全实践教学研究的重要内容。渗透测试的目的在于深入目标网络内部,检验一个系统网络能否接受住黑客的攻击[1]。由于渗透测试模拟了真实的攻击者,所以很可能对网络的正常运行造成损害,那就必须要减小或消除渗透测试本身对网络运行的消极影响。并且现今的 Web 应用架构出现了新的变化,Web应用不仅可以实现动态页面,而且往往跟数据库操作系统进行捆绑[2],使得存在威胁的环节增多,即使相关厂家不断的更新补丁来加固安全,其漏洞仍然大量存在,导致应用开发人员和漏洞检测人员对于新漏洞的学习成本不断增加。WebGoat 应运而生,从根本上解决了这两大困扰。

1 渗透测试

1.1 渗透测试的概念

心理学上有换位思考的说法,将其应用到计算机安全上就衍生出了渗透测试技术。渗透测试是一种通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全性能的方法。[3]这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动分析,这个分析是从一个攻击者可能存在的位置来进行的,并且从这个位置有条件主动利用安全漏洞。

渗透测试是以入侵者的思维方式,使用黑客入侵所使用的探测和入侵工具,以成功入侵网络系统为目的,其整个思路、过程和黑客入侵行为一致[4]。但与黑客的攻击相比,渗透测试选择不影响业务系统正常运行的方法进行攻击,发现漏洞和系统缺陷,并不对系统本身造成危害,即仅仅通过一些信息搜集手段来探查系统的弱口令、漏洞等脆弱性信息,提出安全解决方案,了解系统和网络的安全强度。

1.2 常见渗透测试工具

主流商业扫描器有ISS Internet Scanner、Core Impact、NSFOCUS极光扫描器等,常用端口扫描器有 Nmap、Superscan,溢出工具应用最广泛的是 Metasploit,WEB 漏扫工具有AppScan、WebInspect、Nikto,此外还有THC Hydra、Cain & Abel等破解工具。

以AppScan为例,它是IBM公司出的一款Web应用安全测试工具,采用黑盒测试方式,扫描常见的web应用安全漏洞。

AppScan功能齐全,支持登录并且拥有十分强大的报表。并且在扫描结果中,AppScan不仅让用户能够看到扫描的漏洞,还提供了详尽的漏洞原理、修改建议、手动验证等功能。但是作为一款商业软件,其昂贵的价格让众多学习者望而却步。

这些常用的渗透测试工具中,一些是专业领域用户使用,一些为商业软件,有些可能并不适用于一般的学生。

2 WebGoat渗透测试平台的概述

2.1 WebGoat简介

WebGoat是OWASP(Open Web Application SecurityProject)组织研制出的一个基于J2EE架构,用于演示Web应用程序中典型安全漏洞的应用平台,是 OWASP旗下的开源项目中比较著名的一个元老级计划之一。WebGoat旨在应用程序安全审计的上下文中系统条理地讲解如何测试和利用这些安全漏洞。WebGoat本身是一系列教程,其中设计了大量的Web缺陷,这些漏洞并非程序中的 bug,而是设计用来讲授Web应用程序的安全课程,指导用户如何去利用这些漏洞进行攻击,同时也指出如何在程序设计和编码时避免这些漏洞。当前提供30多项训练课程,其中包括:跨站点脚本攻击(XSS)、访问控制、线程安全、操作隐藏字段、操纵参数、弱会话cookie、SQL盲注、数字型SQL注入、字符串型SQL注入、Web服务等。

2.2 WebGoat的教学方式

WebGoat本身独特的教学方式为人称道。学习者首先需要具备相应漏洞的基础知识。虽然WebGoat应用程序本身提供了有关的简介,但是很可能需要查找更多的资料才能了解该漏洞的原理、特征和攻击方法,甚至要自己去找攻击辅助工具,所以,它对于激发安全测试人员和开发人员来的学习兴趣和提高安全知识的理解及动手能力方面,都非常有帮助。

3 WebGoat渗透测试平台的开发

WebGoat在漏洞的整理分类归纳方面显示了一定的局限性,30多个课程并不能完全满足广大用户对于渗透检测学习的需求。因此本文着重介绍添加的“HTTP参数污染”和“Flash XSS”两项教学内容。其余课程用户可以结合用户手册学习操作。

3.1 HTTP参数污染实验

3.1.1 技术主题

该实验的主要目的在于介绍如何进行HTTP参数污染攻击测试。

3.1.2 技术原理

HPP是HTTP Parameter Pollution的缩写。这个漏洞由S.diPaola与L. Caret Toni在2009年的OWASP上首次公布。这也是一种注入型的漏洞,攻击者通过在HTTP请求中插入特定的参数来发起攻击。如果Web应用中存在这样的漏洞,可以被攻击者利用来进行客户端或者服务器端的攻击。

3.1.3 总体目标

能够通过修改 http 参数来对提交的结果进行一定的干涉修改。

3.1.4 操作方法

借助工具Firefox的插件TamperData.在页面图1所示点击survey按钮。

图1 HTTP头部操作界面

然后Tamper Data截获请求查看如图2所示。

图2 Tamper Data操作界面

在这里可以看到其提交请求的URL里面,course_id这个参数正好是第一步提交的course_id的参数。所以可以考虑对这个参数进行注入。利用Tamper Data拦截在第一步选择课程时提交的参数,course_id的值改为1%26survey_result%3Dgood,如图3所示。

图3 修改course_id字段

提交后就可以看到课程已经识别到了我们已经成功注入了这个参数,这时候,不管选择的评价是好还是坏,最后的结果都会是好。

图4 提交成功界面

3.2 Flash XSS跨站漏洞实验

3.2.1 技术主题

该实验的主要目的在于介绍 flash 中与 JavaScript交互部分使用不当造成的 XSS 攻击测试。

3.2.2 技术原理

Flash中的编程语言为AS,但是AS代码之中如果借助JS与页面进行通信,而且没有对传入的参数进行过滤的话就容易导致XSS;例如:ExternalInterface.call()可以调用外部的JS函数,但是比如在ExternalInterface.call (param1,param2)中param1或者2是由外部传入而且没有做过滤就会导致 XSS。

3.2.3 总体目标

学生实际构造XSS,使自己的JS语句能够被反射执行。

3.2.4 操作方法

如图5所示,笔者在反编译本页面的falsh源码之后,发现并没有对传入的参数进行过滤,存在函数ExternalInterface.call(root.loaderInfo.parameters.js,”helloworld”);发现参数1处并没有被有被过滤直接调用。

图5 课程实例界面

如图6所示输入alert之后可以直接覆盖原来的函数执行alert函数。

图6 输入 alert 函数被执行

改变输入的内容就可以灵活的去执行指定的JS语句了。

3.3 关键模块和界面的汉化

对于中国用户而言,WebGoat最大的不足便是全英文的版本让多数人无从下手。如图7为关键页面汉化的效果。

图7 WebGoat关键页面汉化效果图

4 WebGoat应用于教学研究的价值

2001年,我国第一个信息安全本科专业于武汉大学建立,目前80多所大学设立相关专业,并在个别院校开设其专业的硕士博士研究生点。但总体来说我国在信息安全技术方面的起点还较低,技术人才匮乏。为了培养应用型工程人才,国内各大高校近年来大幅度提升实验实践项目要求,以锻炼学生理论联系实际的能力、实际动手能力和创新能力。作为信息安全专业的本科学生,笔者对此现象就有很切身的感受和体会。

众所周知,网络领域知识更新换代速度极快,与国外教材相比,目前我们的课本使用周期长,再版时间久,时效性不强,可能导致课程学习和实际需要的脱节。网络渗透技术作为一门专业限选课,同学们普遍反映课堂上大多时间都是老师讲授理论知识,学习兴致不高。授课教师也认为课本理论知识与实际应用联系不够紧密,缺乏合适的训练课程和模拟教学的应用平台。 WebGoat渗透测试教学平台能在较大程度上缓解此教学困境。作为一款开源并且对操作环境要求不高的软件,WebGoat易于安装使用,关键界面汉化更能适用于国内学生的实践学习。此外老师也可结合教学目标,布置对WebGoat相关课程实践的课外任务,提高学生实际操作能力的同时培养学生的自学意识,调高教学质量。学生可通过有针对性的案例实践操作,更高效地掌握相关理论基础知识和创新实践能力。

5 总结

当前,渗透测试自身的破坏性使实验教学的开展受到很大局限,而实践又是检验理论掌握技术的必经之路,这就导致了网络安全实践教学面临各种困境。WebGoat渗透测试教学平台通过在虚拟网络环境下设置各类训练课程让学生理解了渗透测试的流程和手段。文中两项新添加的实验能让学生更好地掌握HTTP参数污染和XSS跨站漏洞的知识,同时关键界面的汉化也为学生实践提供了便利。

[1] Frank Lam,朴辉.渗透测试技术在计算机网络安全中的应用[J].安防科技,2003,(3):58-59.

[2] 郑炯.WEB应用安全漏洞挖掘的研究与实现[D].成都:电子科技大学,2011.

[3] 常艳,王冠.网络安全渗透测试研究[J].信息网络安全, 2008,(11):3-4.

[4] 王晓聪,张冉,黄赪东.渗透测试技术浅析[J].计算机科学, 2012,(39):86-88.

The development of penetration testing teaching platform and application based on WebGoat

In the current information security fields, network security is a necessary curriculum in most universities and the learning of penetration test technology play a decisive role. Analysis of commonly used penetration testing tools and focus on WebGoat which is an open-source penetration testing platform, were presented in this paper. Begin with the improvement of curriculum and Chinesization of key interface part, so that WebGoat can be better applied in practical teaching. Therefore, college students can be more efficient learning and mastering the relevant technologies.

WebGoat;Penetration testing;Application of teaching

TP393

A

1008-1151(2015)03-0131-03

2015-02-11

董晓露(1993-),女,杭州电子科技大学通信工程学院信息安全专业本科生。

猜你喜欢

漏洞信息安全网络安全
漏洞
网络安全
信息安全专业人才培养探索与实践
网络安全人才培养应“实战化”
上网时如何注意网络安全?
保护信息安全要滴水不漏
高校信息安全防护
三明:“两票制”堵住加价漏洞
漏洞在哪儿
保护个人信息安全刻不容缓