0 引 言
网络安全通常会让人联想到“黑客”和“黑客技术”,容易激发学生对网络安全的学习热情,但也会产生一个误区,即网络安全就是学习黑客技术。事实上,黑客技术是以网络安全课程为基础,主要包括密码学和认证技术、病毒、木马、防火墙、入侵检测、无线安全等知识,这些知识点理论性较强,如密码学和消息认证技术,涉及很多数论知识,容易让学生失去学习的激情和兴趣。因此,在基础教学中,加入趣味性的实践内容,激发和保持学生的学习兴趣,从而让学生由“被动”学习转为“主动”学习。毫无疑问,CTF(Capture The Flag)比赛的流行及本身具有的趣味性和挑战性,能够作为辅助教学的绝佳平台。在教学中结合CTF的赛题,甚至举办一些校内的CTF竞赛,让学生在比赛中进步,提高其安全实战能力,培养国家需要的应用性人才。
1 CTF介绍
CTF,即夺旗赛,其大致流程:参赛团队之间通过进行攻防对抗、程序分析等形式,率先从主办方给出的比赛环境中得到一串具有一定格式的字符串或其他内容,并将其提交给主办方,从而夺得分数。[1]
1.1 CTF竞赛模式
CTF竞赛模式主要有解题模式、攻防模式、混合模式3种模式:①解题模式(Jeopardy),常见于线上选拔赛,主要包括密码学(Crypto)、安全杂项(Misc)、Web、逆向工程(Reverse)、PWN等类别,根据解题的总分和时间来排名;②攻防模式(AWD,Attack With Defence),参赛队伍在网络空间互相进行攻击和防守,挖掘网络服务漏洞并攻击对手服务来得分,修补自身服务漏洞进行防御来避免丢分。可实时通过得分反映比赛情况,最终也以得分直接分出胜负,是一种竞赛激烈极具观赏性和透明性的网络安全赛制;③混合模式(mix),结合解题模式和攻防模式,参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。
此外,还有国内首次引入韩国 POC SECURITY团队开创的BELLUMINAR CTF(战争与分享)赛制[2]。战争与分享赛制是由受邀参赛队伍相互出题挑战,并在比赛结束后对赛题的出题思路、学习过程以及解题思路等进行分享,战队评分依据出题得分、解题得分和分享得分进行综合评价并得出最终的排名。目前,采取该赛制的有2016年诸葛建伟的XMan夏令营分享赛以及同年的“百度杯”CTF比赛。
1.2 CTF比赛和训练平台
CTF比赛,国际比赛有Defcon、Plaid、RuCTF、Codegate等,国内知名赛事主要有XCTF、AliCTF、XDCTF、HCTF、TCTF等。
CTF训练平台,有i春秋、XCTF实训平台、实验吧、Pwnhub、南京邮电大学网络攻防训练平台等。
2 现状分析
网络安全作为网络工程专业的专业课,是一门综合性很强的交叉学科,涉及计算机网络、通信、密码学、数据库、操作系统、数学、法律等学科。目前,三明学院信息工程学院采用理论和实践“2+1”模式,实践课时不够充足,也缺乏一个完整的实践教学体系,实验主要由任课老师进行设计。以密码学为例,分为古典密码和现代密码,古典密码包括替代和移位,内容比较简单,但单纯讲解理论会枯燥无味,如果结合古典密码学的一些应用案例和故事,如影视剧或者是CTF比赛,则会激发学生的兴趣。目前,古典密码的实验设计为“利用编程实现加密和解密的实验”;对于现代密码部分,包括对称和非对称密码,实验有“PGP软件的使用”,由于学生对非对称密码的两种模式(加密模型和认证模型)缺乏思考和理解,导致实验中出错却无法自己解决。“PGP软件的使用”实验涉及知识较多,包括RSA算法和MD5、SHA256等哈希算法,这些算法对数论要求较高,难以理解,如果结合CTF相关赛题会让学生更加容易理解和产生兴趣。
基于当前的教学现状,可以从3个方面分析:教学环境;教学中学生的现状及其原因;本次教学改革已经具备的条件,包括课程设置、协会、以往比赛经验。
1)教学环境。
目前,学院还没有自己的平台,对于结合CTF教学,可以利用现有的CTF训练平台进行教学和训练;在攻防训练环节,学院会逐步搭建自己的训练平台,便于开展校内CTF比赛,以赛促学,形成良好的网络安全学习氛围。
2)学生缺乏兴趣、两极分化严重。
传统的网络安全课程教学,单纯讲解理论,学生很难理解其具体应用导致缺乏兴趣,CTF比赛的趣味性可以很好地解决这个问题。有少数同学通过接触CTF比赛,对此产生浓厚的兴趣,并会花时间去学习研究,也在CTF比赛中取得了比较好的成绩,他们往往会对网络安全有更深刻的认识,在就业时也会考虑从事相关工作;对于其他学生,兴趣不是很大,仅仅是粗略学习该课程,获得了一些基础性知识和概念,对CTF比赛也是知之甚少,更不可能作为其就业的选择。
3)教学改革已具备的条件。
网络安全方面主要有网络安全和网络攻防2门课程,采取先学习网络安全基础知识(包括密码学、认证技术、防火墙、入侵检测等),再学习网络攻防技术,循序渐进提高学生的网络安全知识和技能。在网络安全基础课程中,主要结合CTF解题模式,激发学生对网络安全的兴趣,也为后续的网络攻防课程和CTF比赛打下基础;在网络攻防课程中,可以结合CTF的解题模式和攻防模式进行教学,进一步调动学生的积极性,从而可以获得较好的教学效果。
此外,学院在2017年创办了“网络安全协会”,协会成员约40人,覆盖了各个专业,协会创办以来,一直坚持每周上课、分享,形成了比较好的氛围,协会1/4的成员有多次参加CTF比赛的经验,目前获得了“百越杯”三等奖、“黑盾杯”三等奖、“西普铁人三项”二等奖的成绩。
3 教学改革
3.1 解题模式
在教学中引入CTF解题模式,包括密码学、认证技术、信息隐藏等。密码学是网络安全的基石,也是教学内容的第一部分,可以结合CTF的密码学题目,带领学生进入网络安全和CTF的世界。
1)密码学。
密码学的首要目的是隐藏信息的涵义,并不是隐藏信息的存在[3]。密码学分为古典密码和现代密码,古典密码主要有恺撒密码、摩斯密码、栅栏密码、猪圈密码、键盘布局加密等。在CTF题目中,还包括出题人自定义的密码。以古典密码学为例,教学流程如图1所示。
(1)案例引入:以摩斯密码作为密码学的导入。摩斯密码在影视剧中有广泛的应用,通过观看影视片段,了解摩斯电码它由两种基本信号和不同的间隔时间组成,短促的点信号“·”(滴);保持一定时间的长信号“—”(嗒)[4]。在《泰坦尼克号》中,国际求救信号“SOS”利用无线电报发出,被成功接收,最终救出了705名幸存者,自此以后,“SOS”才被广泛使用。另外,在现实中,摩斯密码也有很多应用,在北京邮电大学校园内,就有一条“摩斯码”道路,几十米长的灰白色路面上,镶嵌着或长或短的黑色地砖,组成了一组摩斯码,翻译过来就是北邮的校训“厚德博学,敬业乐群”。
(2)CTF题目引入:实验吧(围在栅栏中的爱,),题目为“最近一直在好奇一个问题,QWE到底等不等于ABC?”
-.- .. --.- .-.. .-- - ..-. -.-. --.- --. -. ... --- ---
flag格式:CTF{xxx}
解题步骤:①很明显,这是一串摩斯密码,通过查询摩斯密码表,或者利用摩斯密码转换工具,转换为“KIQLWTFCQGNSOO”;②由提示“QWE到底等不等于ABC”,利用电脑键盘排序。
通过查QWE表得“rhasbenvaoylii”;③由题目提示“围在栅栏里的爱”,即应该包含“love”,发现步骤②的串中包含了“love”中的4个字母,但并没有连续,因此,通过栅栏密码,构造连续的“love”,通过尝试,当栅栏密码分组为2得到“rabnayihsevoli”,这是一个倒叙的“love”,因此倒叙为“iloveshiyanbar”,即flag为“CTF{iloveshiyanbar}”。本题涉及了摩斯密码、QWE密码、栅栏密码。可以得知,密码其实就是一种编码方式,也可以自定义密码,对于古典密码,主要就是替换和置换两种变换,安全性较低,更易于破解。
(3)现代密码:现代密码学可分为对称密码和非对称密码,密码学的大部分内容仍然以数学知识为基础,难以给学生以直观感受,在有限课时情况下使学生掌握密码算法有一定难度,因此,密码学课程的实验课效果往往不佳[5]。常用的对称密码有DES、3DES、AES等算法,公钥密码算法有RSA、ELGamal、ECC等算法,算法复杂度较高,可以从以下2点降低学习难度:一是在讲解过程中,重视讲解其算法思想、原理和特性,弱化数学公式的讲解,通过与其他算法对比深化学习;二是通过“学以致用”,让学生了解该算法在实际中的应用,比如在银行系统、微信支付、支付宝支付等。具体实现,比如在SSL网站交互过程中,SSL握手期间的非对称加密,在创建安全连接后,会话期间使用对称加密。在一次实际SSL交互中,通过wireshark抓包分析交互流程。对现代密码基本了解后,也可以做一些CTF相关题目,如实验吧(),在挑战自我的过程中进一步巩固知识和提升能力。
2)认证技术。
主要包括一些哈希算法(如MD5、SHA-1、SHA-256等),用于确保信息传输的完整性。可以结合生活中的案例,如借钱、签订合同等,说明哈希算法用于防止信息伪造和篡改的必要性,即数字签名的应用,其实现结合了哈希算法和公钥密码。另外,也可做一些CTF相关题目,如实验吧()。MD5、SHA-1其实已经不安全了,可以利用彩虹表进行破解,让学生查资料,说明有哪些方法可以增强MD5算法的安全性,避免彩虹表攻击。
3)信息隐藏。
信息隐藏就是将秘密信息隐藏于另一非保密的载体之中,载体可以是图像、音频、视频、文本,也可以是信道,甚至编码体制或整个系统,信息隐藏的方法主要有隐写术、数字水印技术、可视密码、潜信道、隐匿协议等[6],信息隐藏无处不在,如藏头诗、隐写墨水。隐写术中比较常用的是把信息隐藏在图片中,而不影响其视觉效果,一可以直接在图片结束标志后添加要隐藏的数据;二可以用一些隐写算法,如LSB、F5、guess等。隐写术在CTF比赛中也是比较常见的题型,可以结合CTF题目进行讲解,比如以实验吧“想看正面?那就要看仔细了!”这题为例,给出一张图片,是一个美女的背影,那信息到底隐藏在哪里呢,会激发学生的好奇心,活跃课堂,以达到好的教学效果。稍微隐写复杂一点的如题目“男神一般都很低调很低调的!!”,需要通过隐写工具Stegsolve得出答案,以这种由易到难、循序渐进的方式能帮助学生增强信心,激发挑战欲。另外,让学生尝试去隐写信息,让其他同学破解是一种既有趣又能提升能力的方法,只有学会出题,才更能理解别人出题的思路,也才能更好地应对比赛。
为了让学生更全面的了解网络攻防技术,了解CTF解题中的各个知识点,包括密码学、web、隐写术、安全杂项、逆向,关于web、逆向方面主要让学生课后自学,让学生3人一组自由组队,每个知识点出3题,该类比赛对平台要求并不高,仅web类题目需要搭建服务器,最终按照解题总分和时间排序,完成比赛后,每个题目可以让成功解出的组分享解题思路,确保学生能在竞赛中学到知识。
3.2 攻防模式
在教学中引入攻防模式,CTF攻防模式是线下形式,如果要在教学中模拟,一是可以利用现有的一些CTF训练平台(如实验吧的综合渗透模块等),模拟一次攻防渗透,但这种方式只能用于教学演示或学生练习,不能举办自己的攻防比赛;二是学院搭建自己的CTF训练平台,则可灵活设置题目、模拟演示、举办比赛。
防火墙、入侵检测都属于网络安全体系中不可缺少的设施,但其功能不同,各司其职,可以类比现实中的场景,如保安和摄像头的作用。防火墙主要是监控进出网络内部的数据流,可以用Cisco Packet Tracer软件设置简单的网络拓扑,通过配置ACL(Access Control List,访问控制列表)掌握防火墙实现的原理。在CTF攻防比赛中,每个队都有自己的一台linux服务器,一方面要对自己的服务器进行加固,修补漏洞;另一方面,要寻找对方服务器可利用的漏洞,进行渗透攻击。在加固时,往往要配置linux防火墙iptables,如关闭一些不必要的服务、访问控制、限制IP连接数和连接速率以及过滤一些异常报文。在教学中,也可在linux下用iptables进行安全配置,演示其配置前后的区别。
通过攻防比赛,可以使学生对网络攻防的一些工具和漏洞有所了解,可以使比赛成绩优异的小组分享漏洞发现和漏洞利用的原理和过程。另外,通过校内比赛可以选拔出优秀的队员代表学校去参加一些知名CTF比赛。
3.3 其他方式
除了结合CTF竞赛,本次改革还将以项目化的课程设计进行驱动教学。除了直接以CTF分组作为项目小组,课程设计题目还可以指定一些题目让学生自选,但需经老师认可。小组通过分工合作,最终需要提交的文档包括需求分析文档、课程设计报告、项目源代码等材料。通过课程设计,培养学生进行文献资料搜索的能力、动手编写安全程序的能力、解决实际信息安全应用问题的能力。在课程考核方面,除了理论考核,平时的CTF比赛、课程设计也作为考核的一部分。
4 结 语
笔者针对目前网络安全课程的重理论轻实践、理论知识难度大及实践部分缺乏趣味性等现状,结合当前流行的CTF竞赛进行教学改革,激发了学生的学习兴趣,提高了学生的学习效率,促进了应用型人才培养质量的提高;从当前网络安全课程的教学现状和学情两个方面进行分析,笔者进一步确定了结合CTF竞赛教学的必要性。结合CTF的解题模式和攻防模式,在密码学、认证技术、隐写术等理论教学中贯穿CTF相关题目,并举行相应的比赛。经过CTF解题的训练,进一步提高了学生的实战能力,还引入CTF攻防训练和比赛,达到“以赛促学”的目的;通过引入课程设计作为项目驱动教学,进一步提升了学生的自学能力和网络安全应用系统设计能力。
基金项目:教育部产学合作协同育人项目“Linux安全课程体系建设”(201701044018);三明学院教育教学改革项目“信息安全技术课程实践教学改革探索”(J150615)。
第一作者简介:刘莉,女,讲师,研究方向为网络安全、无线通信,liuli_5617@126.com。
参考文献:
[1] 百度百科. CTF(夺旗赛)[EB/OL]. [2018-08-13]. https: //baike. baidu. com/item/ctf/9548546.