CTF赛题在“1+X”证书制度下的教学实践
2021-10-30宋超吴明
◆宋超 吴明
CTF赛题在“1+X”证书制度下的教学实践
◆宋超 吴明
(江苏联合职业技术学院 无锡旅商分院 江苏 214000)
随着“1+X”网络安全类证书的大力推广,围绕证书的教学实施成了“1+X”政策落地的关键,传统的网络安全类课程以理论为主,内容相对孤立,实践操作不足,学生在解决实际问题时缺乏动手能力;CTF竞赛作为当前网络安全界热门比赛,旨在提高参赛人员分析和解决网络安全类问题的能力,具有很强的实战性,将它的引入课堂教学有助于学生对知识的掌握、激发学生的学习兴趣。
CTF;“1+X”;教学实践
1 引言
网络安全是当今社会的热点,习近平总书记曾指出“没有网络安全就没有国家安全”,“网络空间的竞争,归根到底是人才的竞争”。我国的网络安全人才的培养虽然经历了数十年发展,但整体缺口较大,结构不尽合理,能力和素质有待加强[1]。随着2019年国务院关于职业教育“1+X”资格证书制度的大力推广[2-4],网络安全类企业踊跃参与,网络安全人才建设进入了快车道,与此同时,陈旧的教学内容和传统的教学模式却成了学生迅速踏入职场、适应社会需求的一大制约。CTF(Capture The Flag)是近些年网络安全圈非常流行的竞赛形式,赛事兼具技术性和竞争性、门槛相对低、深受广大青年人的喜欢,目前国内外CTF每年比赛数以百计,从无差别组到专门面向在校学生的比赛,众多的网络安全公司在入职员工时也会考虑CTF的积分和排名[5],正是如此本文将CTF赛题融入“1+X”证书制度下课堂教学中,利用CTF赛题将原有的网络安全类课程内容重新组织和串联,继而提高学生的学习效率。
2 CTF介绍
CTF夺旗赛,是网络安全技术人员进行技术竞技的一种比赛,现在已经成为全球网络安全非常流行的竞赛形式,深受广大青年学生的欢迎。CTF比赛一般分为三种形式:解题模式、攻防模式、混战模式。在解题模式下参加比赛的人员以小组为单位,通过在线做题获得分值,并进行实时排名;在攻防模式下则要求比赛队伍进行相互攻击,挖掘对方系统服务漏洞提交flag得分,同时修补自身服务漏洞避免丢分,具有很强的竞技性;混合模式则结合了解题模式和攻防模式,参赛队伍通过解题获得初始分数,通过攻防进行分数的增减。
CTF赛题涉及范围广,主要包括Web渗透,逆向工程,PWN二进制漏洞、Crypto密码攻防、Mobile移动安全和Misc安全杂项,常用的技术有逆向技术、数据包分析、代码审计、脚本编写、Web注入、系统提权、信息隐写、数据库渗透等。
3 网络安全类“1+X”标准
截至2020年初,网络安全类“1+X”证书有北京奇虎测腾科技有限公司的网络安全评估证书、中科软科技公司的网络安全运维证书、上海海盾的企业网络安全防护证书等。证书内容如下表1所示:
表1 网络安全类“1+X”证书内容
其中证书内容涉及的课程有计算机组成、编译原理、计算机网络技术、网站开发技术、计算机语言、数据库原理、密码学、操作系统配置与管理,网络安全技术、信息安全概论等。
虽然“1+X”证书制度试点已超过三年,但“1+X”下的课程实施却是一个值得思考的问题。笔者在高职院校中从事网安类课程教学多年,深刻地感受到目前网安类课程存在设置相对独立、缺乏内在联系的问题;教材内容理论为主,缺乏动手环节;考核形式比较陈旧、实践课程缺乏系统考虑等问题,而将CTF赛题引入“1+X”课程有助于提高学生学习的兴趣,增强学生对课程知识的内化以及解决实际问题的能力。
4 CTF赛题在“1+X”证书制度下的教学实践
CTF赛题内容与“1+X”网安类课程存在着很强的对应关系如图1所示,在长期的教学实践中,笔者将CTF赛题融入各个课程中,并收到了良好的效果。
图1 “1+X”证书课程与CTF课程对应表
4.1 CTF赛题在网站开发课程中教学实践
网站开发课程是“1+X”网安类课程的基础,但在教学实施中一些概念如网站前后台的联系、网站数据传递原理以及网站开发语言的基本特点往往会使学生产生混淆。
如图2所示,这是一道简单的Web渗透题,采用了PHP编码,由此在实际的课程教学中先从讲解PHP语言的基本语法入手如、变量定义和使用、大括号的作用等内容;接着由Web渗透题中的“flag.php”讲解PHP文件包含函数include,指明在PHP网页同一级目录下存在flag.php文件;然后由代码中if判断中的内容,引出网页传递信息采用的GET形式,说明GET和POST在网页信息传递上的不同;最后从“echo flag”引出本题CTF题正确解法,在URL中输入...?num=flag,继而出现了flag值“I love Webctf!”。可见一道典型的CTF Web渗透题能将大量的网站开发知识串联在一起,学生通过动手和思考能更好掌握课程内容。
图2 CTF Web渗透题
4.2 CTF赛题在编译原理课程中的教学实践
逆向技术是一种对目标产品设计再实现的过程,在CTF比赛中逆向题往往是把一个应用程序(exe)利用工具还原成汇编、C等代码程序,再对这些代码进行分析,找出原作者在编写程序时的关键算法。逆向技术在“1+X”课程体系中属于编译原理的范畴,涉及程序的开发、编译、生成等相关知识,现实教学中编译原理却是一门理论性强,相对枯燥的课程。
如图3所示,这是一道CTF逆向题,题目要求找出应用程序reg.exe中注册码“hello”对应的序列号,教学中首先利用IDA软件对reg.exe进行反编译,由编译原理可知应用程序的编译分为词法分析、语法分析、语义分析、中间代码产生、优化、目标代码生成五个阶段,在IDA软件中可以看应用程序的汇编代码,按F5将汇编语言转成C语言,查找关键函数GetDlgItemTextA,这时找到了应用程序加密的关键算法:把输入注册码中每个字符的序号(从 0 开始算)与这个字符的ASCII码的平方相乘,然后整体再加上序号,得到的和继续对 0x42 求余,最后将结果加上 33 ,转为ASCII码,再将上述结果连接在字符串“Happy@”之后构成注册码。利用Python语言复现该算法,最后得到“hello”对应的序列号为“Happy@!GAOU”,从而弹出flag值“I love ctf!”。可见解决CTF逆向题的过程就是能把编译原理中学习到的知识点进行灵活运用的过程。
图3 CTF逆向题
4.3 CTF赛题在密码学课程的教学实践
密码学是网安类“1+X”课程的核心,它是研究编制和破译密码的技术科学,在数据通信、信息隐藏、数字签名等领域有着广泛的应用。密码学分为密码分析和加密技术两部分,加密技术又分为:对称加密和非对称加密。密码学和数学理论关系密切,但在教学中学生面对大量的推导公式往往显得不知所措很难理解。
如图4所示,这是一道CTF信息隐藏题,要求通过test.jpg找到隐藏的背后的flag值。在实际教学中,首先利用notepad++打开test.jpg文件,会发现在图片文件源代码中隐藏了一串“fomo{dew@1jrz}”字符,由此猜想这段字符可能是通过古典加密后的密文,接着利用kali Linux中的foreomost工具对test.jpg进行分解,会发现图片中隐含着一个zip文件,解压之后会发现有key.jpg图片,打开图片可看到“administrator”字符串,结合前面密文(fomo{dew@1jrz})和key(administrator),判断密文可能是通过维基尼亚加密获得的,由密码学知识可知,维基尼亚加密一种简单的多表加密方法,明文通过计算与密钥的距离进行移位得到密文,密文反过来也能得到明文。此时密文“fomo{dew@1jrz}”对应的密钥为“admi{nis@1tra}”(维基尼亚加密要求密钥长度和明文、密文一致且只对小写字母有效),计算字母f与a的距离为5,所以明文为a向后移动5:f,字母o与d的距离为11,所以明文为a向后移动11 :l,以此类推,其中字母d与n的距离为-10,所以明文为a向前移动10:r(26个字母首尾相连),最后得到明文为flag{qwe@1qaz}。通过CTF实例能进一步巩固课堂所学知识,让枯燥的理论知识生动起来。
图4 CTF信息隐写题
5 结束语
本文将CTF赛题与“1+X”网安类课程相融合,从教学内容的角度指明CTF题能有效巩固学生课堂所学的理论知识,同时让学生体验到获得flag值、解开题目的快乐,此外,CTF赛题融入也会给学生评价方式带来变化,如以提交writeup作为成绩考核依据,或者以团队攻防成绩为评价依据等。
[1]葛昕,马立新.基于CTF竞赛的网络安全课程教学研究[J].教育教学论坛,2020,11(46).
[2]曾德生,庞双龙,陈晓丹,唐玉芳,邵翠.“1+X”证书背景下高职计算机网络技术专业人才培养改革研究[J].工业和信息化教育,2020(04).
[3]贾铁刚深度产教融合下物流管理“1+X”书证融通人才培养模式研究[J].工业和信息化教育,2020(04).
[4]曾晓琴,王利华.基于“1+X”证书制度的高职学分银行建设的问题与对策[J].教育与职业,2020(08).
[5]张国防,陈雪利.基于红蓝对抗的网络安全技术教学设计研究[J].网络安全技术与应用,2021(04).
2020年无锡市职业教育创新发展专项研究课题(“1+X”融合下的五年制高职网络安全课程的教材开发与实践,课题编号8202013)