计算机病毒教学实验系统的构建
2015-02-27刘功申
俞 炯,孟 魁,刘功申
(上海交通大学 电子信息与电气工程学院,上海 200240)
计算机病毒教学实验系统的构建
俞 炯,孟 魁,刘功申
(上海交通大学 电子信息与电气工程学院,上海 200240)
传统的计算机病毒课程教学通常以理论知识教授为主,缺乏与实践的结合,导致学生对知识理解不深,教学效果一般。通过教学实验系统配合理论教学的计算机病毒课程教学模式,可以有效弥补传统教学方式的不足,提升教学质量。该文介绍了计算机病毒教学实验系统的功能设计、内容设计,并给出了实验教学的课时建议。
计算机病毒;教学实验系统;教学模式;构建
伴随着信息时代大潮的来临,信息安全问题引起全社会关注。2002年起,武汉大学、上海交通大学、电子科技大学等国内高校在教育部支持下设立了信息安全专业,开展信息安全专业人才的培养。
计算机病毒是信息安全专业的重要基础课程,也是计算机学科相关专业的重要选修课程。其主要作用是让学生掌握计算机病毒的基本原理、基本技术,通过分析现有计算机病毒案例及充分实践,掌握防范计算机病毒的方法和技术。
1 课程现状
由于计算机病毒课程理论性强、实践能力要求高、技术发展变化快,对学生和教师都存在较大的挑战。首先,课程对学生的综合素质,尤其是动手实践能力有着较高的要求。形形色色的病毒种类,变化万千的攻击手段,晦涩的程序代码,以及跨语言、跨平台的实现方式等,都制约着学生对病毒的深入了解。其次,传统的教学模式也常常止步于走马观花、纸上谈兵式的讲解,不符合了解计算机病毒应有的偏向于实践的特质。同时,单纯理论知识的学习往往使学生对知识印象不深、学了就忘,使得教学效果十分有限。
因此,如何在教学过程中提高学生的学习兴趣,合理地教学重要知识点,如何通过实验、实践,配合理论教学高效地达到教学目的,就成为我们在教学研究中需要解决的主要问题。
在此,本文围绕原理、实践和应用并重的教学思路,提出并开发了一套计算机病毒教学实验系统,配合计算机病毒课程理论教学,通过一系列计算机病毒实验,从理解能力、分析能力、实践能力等不同着重点对学生进行培养。通过边学习、边实践的方式,帮助学生加深对计算机病毒的理解,提高开发能力与科研能力。
2 实验系统介绍
2.1 系统简介
教学实验系统采用B/S(浏览器/服务器)架构,系统在Ubuntu服务器上进行部署。服务器端采用JSP/Servlet+Tomcat+MySQL,可至少支持200人同时在线,足以满足教学需求。
系统以网站的形式向学生开放。服务器开启后,学生只需通过浏览器访问Internet或者服务器所在局域网,就能进入实验系统进行学习与作业。
各个实验的教学课件已集成到系统中,学生可以在系统中轻松找到具体实验对应的基础知识、实验原理及实验步骤。教学课件中所提及的实验所需相关文件、代码等资料,也已在系统中标注并附上链接,学生可自行从服务器下载。另外,学生也可以在系统内完成作业并提交。
实验系统界面如图1所示,左侧为实验目录,右侧为对应的实验内容,包括实验目的、原理、相关演示、步骤以及其他一些参考资料。
图1 学生实验系统界面
教师管理系统的主界面如图2所示。教师进入该系统后,可以查看与管理学生信息,查看实验结果、评分等。
图2 教师管理系统主界面
2.2 实验内容设计
根据不同的实验内容及教学目的,计算机病毒教学实验系统中包括三类实验项目:基础型实验、分析型实验和开发型实验。
基础型实验的主要目的是增进学生对基础知识的理解。此类实验难度不大,教学内容以病毒的基本原理、功能的介绍为主,通过展示、简单的动手操作等方法,使学生对相应的计算机病毒知识有一定的感性认识。
分析型实验侧重于对病毒原理、算法等的分析,主要目的为提高学生的研究能力。实验以学生自主阅读及思考为主,除给出的参考资料外,学生还必须自主查找相关资料并提出想法,对学生今后从事科研工作有重要意义。
开发型实验以提升学生的动手能力为目的。教学中给出一定的实验指导,要求学生实现病毒的感染、查杀等工作。实验使学生在书写代码、配置环境等多方面得到锻炼,并且通过动手加深学生对理论知识的理解。
在计算机病毒教学实验系统中,实验室设计了12个实验项目。
1)引导区病毒实验
①实验目的:了解引导区病毒的感染对象和感染特征;重点学习引导病毒的感染机制和恢复染毒文件的方法;提高汇编语言的使用能力。
②实验内容:引导阶段病毒由软盘感染硬盘实现,Dos运行时病毒由硬盘感染软盘实现[1]。实验中,学生主要通过触发病毒、观察病毒发作的现象和步骤,学习病毒的感染机制;阅读病毒源代码并进行分析。
2)可执行文件区病毒实验
①实验目的:了解病毒感染对象,学习文件感染病毒前后的特征变化;重点学习病毒感染机制和恢复染毒文件的方法;提高汇编语言使用能力。
②实验内容:包括COM病毒以及PE病毒,主要内容包括通过病毒感染实验,学习病毒的感染机制;使用系统提供的杀毒工具,学习恢复染毒文件;阅读和分析杀毒程序代码,并完成习题。
3)宏病毒实验
①实验目的:了解梅丽莎病毒和台湾No.1病毒的运行机制;分别利用两个宏病毒进行感染,观察效果后清除病毒。
②实验内容:学习梅丽莎病毒和台湾No.1病毒的基本运行原理;模拟梅丽莎病毒,利用一个含有恶意代码的Word自动宏,模拟瘫痪邮件服务器的效果;利用台湾No.1病毒,模拟瘫痪用户计算机的效果。
③特色功能:宏病毒的自动感染功能。在梅丽莎病毒和台湾No.1病毒的实验中,用户只需要输入想要的参数(如发作日期、感染目标等),系统就能自动帮助用户实现病毒的植入。
4)脚本病毒实验
①实验目的:理解脚本病毒的感染和传播机制,重点了解新欢乐时光病毒的感染和传播行为;学习病毒的加/解密技术;学习检测和防范脚本病毒的方法。
②实验内容:包括网络炸弹、万花谷、欢乐时光3种脚本病毒[2]。内容主要包括病毒演示,通过单步跟踪病毒发作全过程,学习脚本病毒的感染技术和传播技术;病毒的查杀,修复病毒对系统的恶意修改,修复对象包括注册表、Outlook Express和被感染的脚本文件;病毒的加密与解密实验,根据解密的脚本,推导出加密算法,并对病毒体进行加密;阅读和分析病毒源代码。
③特色功能:网络炸弹的模拟功能,用户只需自行选择弹出窗口的数量、内容,就能进行病毒的模拟;万花谷病毒与欢乐时光病毒的感染与修复功能,对用户屏蔽了相对复杂的感染与修复过程,使其可以更清楚与直观地观察到病毒效果;脚本的加/解密功能,可以根据用户自行定义的种子数字与算法进行加/解密运算,使用户对恶意脚本的施行过程有更加直观的了解。
5)蠕虫病毒实验
①实验目的:研究冲击波病毒如何利用微软RPC漏洞获取目标机器最高权限;了解蠕虫病毒的攻击模式;了解shell以及socket编程原理,并要求能看懂源代码。
②实验内容:了解病毒原理,演示感染后的效果与病毒的查杀,包括U盘蠕虫病毒,为U盘创建autorun.inf文件,利用Windows的自动播放功能触发病毒程序;RPC漏洞蠕虫病毒,利用RPC DCOM漏洞的shellcode,实验需要预先知道攻击机器的IP地址以及机器类型[3]。
6)木马病毒实验
①实验目的:了解木马程序基本原理及其主要工作步骤,即配置、传播、运行、信息获取、建立连接和远程控制等;通过运行源代码,深化理解,同时提高编程能力。
②实验内容:学习木马的基本结构;阅读BO2K源代码,并对源代码的编译;运行其服务器端和客户端程序,尝试使用其基本控制命令。
7)恶意代码远程植入实验
①实验目的:了解木马植入的工作方式;掌握网站挂马的基本原理和实现方法。
②实验内容:了解木马病毒的常见植入手段,常见的首次运行植入以及网站挂马技术等;恶意代码远程植入攻击模拟实验,利用MS06-014漏洞进行远程攻击,获取对目标主机的控制[4]。
8)僵尸网络实验
①实验目的:了解僵尸网络原理与基本工作方式;了解僵尸工具agobot;通过改进agobot源码,加深对其机制的理解,同时提高代码能力。
②实验内容:了解僵尸网络传播、加入和控制3个阶段的运行方式;学习agobot源码并做出改进;运行改进后的agobot源码,观察效果。
9)手机恶意代码实验
①实验目的:了解简单的手机木马的工作方式;重点学习简单Android程序的编写;学习对应模拟器的使用。
②实验内容:配置Android开发环境,启动模拟器调试;参考给出的代码,在模拟器中模拟来电并测试教学代码的功能,实现来电时后台录音,并查看实验结果。
10)Linux系统恶意代码实验
①实验目的:了解Linux脚本型恶意代码的基本编制原理;了解恶意脚本的感染与破坏机制,进一步认识Linux操作系统下的恶意代码;了解Linux 感染ELF可执行文件的病毒的基本编制原理;了解可执行文件病毒的感染、破坏机制。
②实验内容:Linux系统下shell恶意脚本以及ELF病毒的原理学习;根据给出的脚本代码创建测试用脚本文件,观察执行效果;结合文本段之后填充区感染和数据段之后感染技术,利用给出的源码实现一个ELF病毒。
11)恶意代码检测实验
①实验目的:掌握特征码扫描法检测病毒的基本原理;了解病毒文件中常见的特征码。
②实验内容:实验基于开源组织OpenAntivirus提供的软件ScannerDaemon[5]。学生需要下载ScannerDaemon与最新的病毒签名文件,进行配置与安装;启动ScannerDaemon,并通过telnet方式访问;扫描给出的样例文件,观察结果并分析。
③特色功能:利用在服务器后台部署的扫描程序ScannerDaemon的post功能,可以对实验中的样例文件或者用户自行选择的任意文件进行病毒扫描。
12)木马检测实验
①实验目的:了解检测特洛伊木马的常用方法;掌握利用端口号检测木马的基本原理;利用原理实现简单的木马检测。
②实验内容:使用Windows系统中的netstat命令获取本地打开端口的列表,利用开放主机端口号和各个木马程序使用端口间的对应关系,判断主机是否已中木马,中了何种木马,并能根据所中木马的类型进行杀灭[6],包括终止运行中的木马进程、删除木马文件、删除木马在注册表中添加的项以及木马其他文件中添加的自启动项等。
3 实验课时建议
实验系统中的12个实验分属基础型、开发型、分析型,难度深浅也各有不同。本文对各个实验的类型和难易程度等进行了设计,并根据教学经验给出了各实验的课时建议,如表1所示。
表1 各实验模块一览表
教师可以根据课程对象和教学重点的不同,在教学过程中进行相应的组合。在绝大部分学生可以顺利完成的前提下,让部分学有余力的学生可以进一步发挥,既不顾此失彼,又能因材施教,有利于助长学生学习的热情。
4 结束语
计算机病毒课程教学实验系统的出现改变了传统计算机病毒课程单一、刻板的教学模式,不仅有利于教师对原理的讲解和分析,代码的分析和运行,理论教学和实践解析的有效结合,也为学生提供了一个深入实践的平台。在几年的教学实践中发现,通过系统中基础型、开发型、分析型等多种实验类型的实践,可以由浅入深地培养学生的动手实践能力、分析能力和自主科研能力。
此外,该教学实验系统不仅可以支持计算机病毒课程的学习,其他信息安全专业课程也可以选择其中的实验内容作为课程教学的有益补充,对于学生掌握理论知识有相当大的帮助。
[1]胡铮. 网络与信息安全[M].北京:清华大学出版社, 2006.
[2]张仕斌,谭三,易勇,等.网络安全技术[M].北京:清华大学出版社, 2004.
[3]蔡皖东.网络与信息安全[M].西安:西北工业出版社, 2004.
[4]侯整风.网络与信息安全系列课程实践教程[M].合肥:合肥工业大学出版社, 2006.
[5]刘功申.计算机病毒及其防范技术[M].北京:清华大学出版社, 2008.
[6]国家信息化安全教育认证管理中心.信息安全技术[M].广州:广州出版社,2003.
Construction of Experimental Teaching System for Computer Virus
YU Jiong, MENG Kui, LIU Gongshen
(School of Electronic Information and Electrical Engineering, Shanghai Jiao Tong University, Shanghai 200240, China)
The traditional teaching of computer virus is usually based on the teaching of theoretical knowledge. Proper practices are usually ignored, which leads to the students’ limited understanding of knowledge and poor effect in teaching. Therefore, this paper brings up a method of education which combines the use of experimental system and the teaching of theoretical knowledge. It gives the descriptions of the main features of this system and contents of the experiments. Suggestions on the teaching hours are also made. We intend to solve the shortcomings of traditional teaching and enhance the quality of teaching in college.
computer virus; experimental teaching system; teaching mode; construction
2014-04-24;修改日期:2014-05-30
信息网络安全公安部重点实验室开放课题项目(C12609);上海交通大学教学改革项目。
俞 炯(1992 -),男,硕士研究生,主要从事恶意代码防范方面的研究。
Adoi:10.3969/j.issn.1672-4550.2015.06.057