邬晓钧,郑宁汉,陈永强,李山山
(清华大学 计算机科学与技术系,北京100084)
随着信息技术的发展,网络已全方位地融入我们的学习、工作和生活中。国内网络安全问题时有发生,“棱镜计划”等国外黑客行动不断曝光,使人们越来越意识到网络空间安全的重要性。“互联网+”时代下的创新人才应该具有基本的网络安全意识、知识与技能。为了在网络安全方面加强计算机创新人才的培养,满足学生对网络空间安全的学习需求,清华大学计算机实验教学中心经过精心准备,于2014年开始,在夏季学期面向计算机科学与技术系本科大三年级学生开设“网络安防”实践课程。对此学生反响强烈,课余量在选课一开始就被一抢而空。学生完成课程学习后,对课程给予了高度评价,也提出了不少建议。课程教学小组对这一实践课程不断地进行反思和改进,逐步形成了一整套软硬件结合的课程实验体系,取得了良好的教学效果。
本课程名为“网络安防”,属于计算机科学与技术系大三年级夏季学期“计算机专业实践”课程的专业方向之一。“计算机专业实践”课程有若干专业方向,组成并行的多个子课程,学生选择其中一个专业方向进行为期5周的实践学习。课程设立的初衷就是提高学生对已学专业知识的综合运用能力和实践能力,通过课程实践培养和锻炼学生的研究能力、创新能力和团队合作能力[1]。
与其他专业方向相比,“网络安防”有其特点。在整个清华大学计算机系课程体系中,直接与网络安全相关的课程较少,许多学生虽然学习了程序设计、操作系统、网络原理、数据库等课程,但没有选修过网络安全相关课程,网络安全仍然带着神秘的面纱。因此“网络安防”实践课程承担着启蒙的责任,需要普及网络安全的基本意识、基础知识和基础技能,引导学生从网络安全的角度看待以前所学,把以前所学综合起来应用;在此基础上,需要引导和培养学生对网络安全方向的兴趣,鼓励有兴趣的同学选择网络安全作为今后的科研方向。
相对于成熟的网络安全产品使用来说,掌握网络安全核心知识、方法和技能更为重要。因此我们并没有像一些高校那样将操作系统的安全配置和管理、防火墙的配置管理、数据库的安全配置和管理,以及一些安全产品的应用等作为实验内容[2-5],而是借鉴网络安全技能竞赛的经验。网络安全技能竞赛又称为夺旗赛(Capture the Flag,CTF),有在线解题和现场攻防两种模式。在线解题模式在网络上部署了精心设计的题目,这些题目并不是简单地点几下鼠标,或者查询某种用户手册进行相应配置就可解决的,而是要具体问题具体分析,综合利用网络安全知识和技能,有时还需要一些想象和推理,来找到题目中隐藏的答案文本。以这种形式的题目作为实验内容,能够让学生关注核心的网络安全知识与技能,更注重知识与技能的实践应用。
网络安全技能竞赛在线模式的题目一般分为密码学、网页渗透、逆向工程、漏洞利用、编程和杂项几类,其中杂项常常涉及网络信息收集、取证分析、隐写等内容。本课程的实验内容就围绕除编程以外的5个主题类别来开展,整合各个主题相关的教学资料,设计相应的基础实验,同时也设计了提高性和综合性的实验,从而形成基础实验和提高实验两个层次。这些实验题目都部署在一个在线实验平台上,供学生在线解题。
解题模式的实验也有其局限性。由于题目是事先设计好的,解题者往往要沿着出题者的思路逐步寻找隐藏信息。在解题的某些阶段,特别是在一些需要猜测的环节,为了避免解题者无头绪地多方尝试,出题者往往会给出一些引导提示信息,使得解题过程像是在解谜。这种被动运用知识技能的模式固然有利于针对性地训练,但也限制了解题者的主动性。为了更有效地锻炼学生灵活运用的能力和实践创新能力,需要设置有挑战性的开放实验。
正如文献[6]中所总结的,网络安全的开放实验应在一定条件下给予学生最大的自主性,保证学生具有较大的思维空间和活动空间,实验过程甚至实验结论和实验评价都是开放的,同时开放实验应该在理论或实践上有研究价值,具备一定的创新空间。为此我们设置了学生自主出题的开放实验环节,教师会对学生设计的题目给出修改意见,并帮助学生部署在实验平台上。
考虑到物联网是新一代信息技术的重要组成部分,物联网中的智能硬件是近几年网络空间安全的研究热点,同时学生也强烈要求有机会在真实硬件上进行网络安全实验,我们选择智能卡、网络摄像头、无线路由器等生活中经常接触到的智能硬件作为网络安全硬件实验的对象,其中智能卡既有基础实验,也有开放实验,其他硬件为开放实验。学生需要完成基础硬件实验,自由选择开放的硬件实验。
综上,课程形成了一整套软硬件实验体系,其中软件实验包括基础实验、提高实验和开放实验,硬件实验包括基础实验和开放实验,软件基础实验是提高实验和开放实验的前提。不同层次软硬件实验的关系如图1所示。软件基础实验帮助学生通过实践掌握课程要求的基本知识与技能,提高实验在深度与综合性上扩展,开放实验进一步要求加入创新思维形成创新方案。硬件基础实验以观察分析为主,开放实验则要求应用学到的所有知识与技能进行开放式探索。
图1 实验体系中不同层次软硬件实验的关系
本课程采用学生自主学习、合作学习和基于问题学习的模式。教师仅对几大类知识进行提纲挈领式的简介,同时为软件基础实验部分提供详细的讲义、实验指导书和参考书目,为硬件基础实验和开放实验提供部分参考资料,组织学生观看网络安全专题讲座视频。在提高实验和开放实验过程中,学生遇到新的问题,需要自己去查找资料进行研究,然后尝试实践。在实验时间的安排上,教师在两周内逐步开放所有实验,所有实验的截止日期都为课程结束日。在此期间,所有软件实验都可在线进行,所有硬件实验的硬件因为体积小携带方便,也都交由学生保管。因此学生除了要求白天到实验室上课外,回宿舍后也能继续实验。课程要求学生每2~3人组成一个小组,以小组为单位完成软件的开放实验和所有硬件实验。课程还专门挑选出一些软件实验组成一套实验题,以学生小组为单位开展为期两天的教学实验竞赛。除了学生自发在小组内外的交流讨论外,教师也定期组织课堂上的交流,以促进学生间的合作学习。
课程借鉴网络安全技能竞赛的在线模式建设了一个B/S架构的在线实验平台,平台上部署了所有软件实验。为激发学生的学习动力,平台实现了多项激励手段。首先,每个实验题目成功解题的前三名直接显示在实验题目描述下方。其次,每个实验根据难度大小都设置了一个分值,学生成功解题就能将实验题目对应的分值加入个人的积分。在线实验平台有实时积分排名,学生能够随时查看。最后,实时积分排名页面还能看到每人完成了哪些实验题目,学生可以优先尝试无人解出的题目争取在题目描述下留名,当解题遇到困难时也可以知道向哪些同学求教。图2和图3分别是题目描述页面和实时积分排名页面。
图2 实验题目描述页面
图3 学生积分排名页面
平台上有些网页渗透和漏洞利用的实验需要访问在线服务,这些实验实际上部署在单独的虚拟机中。利用虚拟机技术来搭建和部署网络安全实验是近几年常用的方式,既节省购买和维护真实设备所需的大量资金,又方便搭建和修改网络拓扑结构,还能做到设备的隔离和避免破坏。使用较多的虚拟化软件有VMware[5,7-9]和KVM[10-12],也有使用 Xen[13-14]、QEMU[15]和 Hyper-V[16]的。课程使用VMware ESXi,虚拟了两个路由器,分别负责网页渗透和漏洞利用两类虚拟机服务的端口映射。网页渗透和漏洞利用实验有时因为学生访问破坏导致服务瘫痪,教师可以利用虚拟机快照快速恢复。
教师以管理员身份登录实验平台后,可以对学生账号、实验题目进行管理,可以组织教学实验竞赛、查看系统日志,从而对学生实验情况进行分析。
目前在实验平台上已部署了150多个软件实验,实验类别与数量如表1所示。基础实验一般不超出教师提供的教学材料,或者很容易从网上找到相关信息。提高实验中有不少内容超出了教学材料,需要学生自己找资料深入学习和研究。综合不同类别知识与技能的实验也归入杂项类提高实验。教学实验竞赛的题目从表1所列的软件实验中选取,并且大部分都是提高实验。
表1 软件实验类别与数量 个
软件实验的开放实验内容是小组自主设计实验题目。教师与学生就题目细节进行讨论,把握题目的难度与合理性。学生完成的开放实验成果也部署在在线实验平台上,使得软件实验的整体数量不断增加。
在线实验平台在课程一开始就允许学生注册账号,并自主选择实验题目去做,直到课程结束才会关闭。在实际教学中,5个主题类别的教学材料是在前两周逐步发布的,大部分学生会依照课程的进度,选择相应类别的基础实验和提高实验,但也有个别学生完全基于问题学习,他们从实验题目出发,自己找资料学习研究,实验进度快于正常的教学进度。教学实验竞赛安排在第4周上半周,软件开放实验安排在课程最后两周,目的是让学生能够先保证一定数量基础实验和提高实验的练习。在实验课程期间,定期组织学生交流讨论,主要由学生对一些百思不得其解的实验题目提出问题,其他学生给出建议的思路,或者提醒需要关注的细节。
在硬件实验中,智能卡相关实验共有3个,一个是基础实验,所有小组都要求完成;另两个是开放实验,与其他两个硬件开放实验一起供小组选择完成。智能卡基础实验要求学生利用Arduino UNO和RFID-RC522模块自制读卡器,尝试读取身份证、带闪付的银行卡、公交一卡通、校园一卡通、校园打水卡、校园洗澡卡、各类门禁卡,以及实验提供的空白M1卡。实验要求学生尝试读取这些智能卡的卡号和数据,分析比较各自的安全性。实验还提供了安全卡套,要求学生通过实验比较使用安全卡套前后自制读卡器隔空和隔物读取智能卡信息的距离。实验要求学生自己在网上查找读卡原理,读卡程序可以参考开源的MFRC522程序库。
智能卡开放实验建立在基础实验的基础上,一项实验是利用空白的M1卡实现安全的校园一卡通方案,要求与学籍相关联,具有控制门禁、闪付支付等功能;另一项实验是编程实现对银行卡闪付信息的读取。前者需要从不同的用户角度对卡使用时的安全性和便利性进行推敲,确定最终方案并实现;后者需要根据特定的不同层次的协议,实现与卡的通讯,进行数据解析。另两个硬件开放实验分别是破解网络摄像头和破解无线路由器,课程提供的网络摄像头是TP-LINK的TL-SC3130G,提供的无线路由器有LINKSYS的 WAP54G、TP-LINK的 TL-WR881N和 TLWR842N、NETGEAR的JNDR3000。学生也可以尝试其他网络摄像头或无线路由器。
智能卡基础实验安排在课程的第二周,但考虑到大部分学生没有接触过Arduino编程,所以课程在第一周时就发放了Arduino UNO的开发板,并且提供LED灯和蜂鸣器,推荐了一个网上入门教程的网址,让学生提前熟悉。第二周初发放RFID-RC522模块,公布实验内容。智能卡基础实验的操作可以在2天内完成,实验报告在课程结束日前提交即可。
硬件开放实验在智能卡基础实验2天后公布,并且在第二周周末前要求各学生小组选定要做的开放实验(每组选一个即可)。此后每3个工作日(不计教学实验竞赛所在的工作日)一次,组织各小组交流汇报实验进展情况。课程结束前组织每个小组进行展示与答辩。
“网络安防”实践课程的实验体系很好地调动了学生学习的积极性。图4是2016年夏季学期学生往在线实验平台提交实验题目答案的日志按小时统计的结果(不计教学实验竞赛相关的提交),从图中可以看到,下午下课后的5~8点、晚上10点到第二天凌晨1点间是学生提交最活跃的时间段,凌晨1~6点间也有不少的提交,上课时间内由于安排了各类学习和交流活动,提交反而较少。不考虑用于教学实验竞赛的题目,在线实验平台积分最多的学生正确解答的实验题目数量超过100个。在软件开放实验中,学生展现出许多创新之处,有的在实验设计中融入了其他知识,如信号处理原理、古音韵学、旗语、音乐知识等,有的用到了课程内容之外的网络安全知识与技能,如加入花指令防反编译、构建极小的Linux虚拟机镜像等,还有的将实验做成了互动游戏,如密室逃生、回合闯关等。
在硬件实验方面,在智能卡基础实验之前和之后以随堂方式安排了相同内容的智能卡知识测试。测试包括两项,第一项是以不定项选择的方式为各种卡标注所属类别,第二项是以简答方式按安全性由强到弱给各种卡排序。测试满分为10分,智能卡实验之前学生的平均得分为5.7分,智能卡实验之后平均得分为7.6分。学生在硬件开放实验方面也取得了不错的成果。学生在读取银行卡闪付信息的实验中,发现了开源的MFRC522库中一个错误,与原作者联系并提交了修正代码;在研究破解无线路由器时,深入研究常见弱密码的规律,开发了可配置的弱密码生成软件,总结了安全使用路由器的方法;在破解网络摄像头时,验证了网上可搜索到的固件漏洞及修补情况,还发现了额外的漏洞,提出了固件漏洞的修补建议。
课程收集到的学生反馈主要集中在以下几个方面:①课程很好地弥补了本科期间网络安全方面的教学,使得学生对安全的知识与认识提升了一个台阶;②课程实验是对大学三年学习知识的综合应用,加深了对以前所学内容的理解,同时也进一步锻炼了编程能力;③课程实验题目数量多,设计得非常好,真正体会到了实践出真知,付出越多收获越大;④学到了许多东西,学习过程充满乐趣、挑战和收获,体会到了团队合作的强大力量;⑤今后愿意从事网络安全方面的学习和研究。
图4 在线实验平台提交日志统计
由于课程内容的特殊性,在教学过程中需要反复宣传和强调相关法律法规,引导学生树立正确的价值观,提醒学生注意实验的网络环境,避免影响正常的网络运行。有的学生在实验过程中出于学习研究的目的,会自发实现一些网络攻击程序,例如密码破解、ARP欺骗等,要提醒学生注意不要传播。
由于采取小组合作学习的模式,出现个别学生“抱大腿”混成绩的现象,要在今后的教学实践中,结合具体的实验内容,加强对小组每个成员的考查与评价。
参考文献:
[1]汤志忠. 清华“计算机专业实践”课程的创新与实践[J]. 计算机教育, 2006(7): 7-9.
[2]汪永生, 李岩. “互联网+”时代高校网络安全实验室建设的探究[J]. 浙江工商职业技术学院学报, 2016, 15(1): 82-86.
[3]陆世尧. 高校信息安全实验室的建设探讨[J]. 无线互联科技, 2016(19): 115-116.
[4]李秦. 计算机网络安全课程实验教学的研究与设计[J]. 电脑与电信, 2015(z1): 79-80.
[5]洪允德, 高强. 计算机网络安全课程实验教学探索[J]. 中国教育技术装备, 2014(22): 146-148.
[6]郭凤海, 贾春福. 信息安全开放实验探讨[J]. 计算机教育, 2010(10): 119-122.
[7]Yuan D. Developing a hands-on cybersecurity laboratory with virtualization[J]. Comput. Sci. Coll., 2017, 32(5): 118-124.
[8]Tunc C, Hariri S,Montero F D L P. CLaaS: Cybersecurity Lab as a Service-Design, Analysis, and Evaluation [C]//Proceedings of 2015 International Conference on Cloud and Autonomic Computing. Boston: MA, 2015: 224-227.
[9]刘利萍. 浅谈利用VMware搭建网络安全虚拟实验平台[J]. 黑龙江科技信息, 2016(31): 191.
[10]李蒙, 张蕾妮, 张德民. 基于虚拟化技术的信息安全实验平台构建[J]. 电子技术与软件工程, 2017(1): 207-207.
[11]胡逸云, 辛阳, 陈树国. 信息安全实验教学平台中KVM虚拟机性能测试与优化[EB/OL]. [2016-11-02]. http://www.paper.edu.cn/releasepaper/content/201611-19.
[12]鲁先志, 胡海波. 基于开源架构的虚拟网络安全实验平台[J]. 实验技术与管理, 2015(7): 120-123.
[13]周东. 虚拟化网络安全实验室的规划与建设[J]. 南京广播电视大学学报, 2016(4): 85-88.
[14]吴迪, 薛政, 潘嵘. 基于XEN云平台的网络安全实验教学[J]. 实验室研究与探索, 2013, 32(7): 62-66.
[15]苏杉. 虚拟环境下网络安全实验系统的构建问题探析[J]. 科技与创新, 2016(8): 30-31.
[16]马志欣, 王远. Hyper-V在网络安全实验教学中的应用——以基于ARP欺骗的DNS欺骗测试为例[J]. 福建电脑, 2016, 32(7): 51-53.