高 见,刘 晨,苏鹏冲
(中国人民公安大学(团河校区)网络安全保卫学院,北京100076)
摘要:网络攻防课题已经为越来越多的高校所重视,国内越来越多的CTF网络攻防竞赛也是愈演愈烈。文章提出将CTF的比赛模式应用于网络安全的教学过程,以提高学生在学习过程中的积极性,同时阐述竞赛平台总体结构、后台数据库关系以及主要题目类型的归纳设计。
教育期刊网 http://www.jyqkw.com
关键词 :CTF;网络安全;竞赛平台设计
文章编号:1672-5913(2015)17-0047-04 中图分类号:G642
基金项目:中国人民公安大学基本科研业务费项目( 2015JKF01435)。
第一作者简介:高见,男,讲师,研究方向为网络安全,gaojianbeijing2006@163.com。
1 C语言实验情况现状
CTF(capture the flag)即夺旗竞赛。在网络安全领域,经常以CTF的形式举行比赛以展示自己的网络安全技能。1996年的DEFCON全球黑客大会首次使用夺旗竞赛的形式,代替之前黑客们互相真实攻击进行技术较量的方式。CTF发展至今,已经成为全球范围网络安全圈流行的竞赛形式。2013年,全球举办了超过50场国际性CTF赛事;而DEFCON作为CTF赛制的发源地,DEFCON CTF也成为目前全球最高技术水平和影响力的CTF竞赛,类似于CTF赛场中的“世界杯”。夺旗竞赛可以增加比赛的趣味性和竞争性,因此将其借鉴到各高校的C语言实验教学过程中,可以提高学生对课程的学习兴趣,使学生在游戏中学习,在竞赛中提高。
2 竞赛模式种类
2.1 解题模式
在解题模式( jeopardy) CTF赛制中,参赛队伍可以通过互联网或者现场网络参与。这种模式的CTF竞赛与ACM编程竞赛、信息学奥赛类似,以解决网络安全技术挑战题目的分值和时间排名,通常用于在线选拔赛。题目主要包含逆向、漏洞挖掘与利用、Web渗透、密码、取证、隐写、安全编程等类别。
2.2 攻防模式
在攻防模式(attack-defense)CTF赛制中,参赛队伍在网络空间互相进行攻击和防守,通过挖掘网络服务漏洞并攻击对手服务得分,通过修补自身服务漏洞进行防御以避免丢分。攻防模式CTF赛制可以实时通过得分反映出比赛情况,最终也以得分直接分出胜负,是一种竞争激烈、具有很强观赏性和高度透明性的网络安全赛制。在这种赛制中,不仅仅是比参赛队员的智力和技术,还比体力(因为比赛一般会持续48小时及以上),同时也比团队之间的分工配合与合作。
2.3 混合模式
混合模式( mix)是结合了解题模式与攻防模式的CTF赛制。参赛队伍通过解题可以获取一些初始分数,然后通过攻防对抗进行得分增减的零和游戏,最终以得分高低分出胜负。采用混合模式CTF赛制的典型代表如iCTF国际CTF竞赛。
3 竞赛平台设计
竞赛平台结构分为网络攻防竞赛网站和网络攻防竞赛平台靶机服务器。网络攻防竞赛网站搭建于真实服务器上,用于参赛队员答题以及浏览比赛事项。竞赛题目存放于网络攻防竞赛平台服务器的虚拟机环境中。比赛过程中会出现队员互相攻击的情况,为了避免网站资源受到攻击而产生崩溃,在虚拟环境中可以利用快照备份当前的漏洞环境。
网络攻防靶机服务器提供3台靶机,均存放于服务器虚拟机中。铜牌靶机、银牌靶机、金牌靶机均在同一网段上。竞赛平台体系结构如图1所示。
该设计平台采用PHP+MySQL的方式进行搭建,后台数据库表的关系如图2所示。
其中,Student表中存放选手的基本信息,包括学号、姓名、年级、区队、登录密码和Salt;Chapter表中,存放题目类型的ID号和类型的名称;Examination表中存放每道题的唯一ID号、题目对应的类型号(通过外键连接)、题干内容、题目所涉及的文件和题目对应的分数;Result表中存放选手答题的结果,其中包括每道题的ID(通过外键连接)、选手的ID(通过外键连接)、提交的答案和代码;Score表中存放选手答题的成绩,其中包括每道题的ID(通过外键连接)、选手的ID(通过外键连接)和题目对应的分数;Answer表中存放题目的标准答案,包括每道题的ID(通过外键连接)、选手的ID(通过外键连接)和题目对应的答案。选手的ID号可以为空,如果对于同一道题目每个学生的答案是唯一的,那么记录中就只有题目ID和题目的答案;如果对于同一道题目每个选手的答案可能是不唯一的(如写出每个学生学号后4位对应的16进制数),那么记录中要有题目ID和学生ID及答案。
4 实验内容设计
4.1 Web安全题目设计
根据Web应用程序安全项目(OWASP,open web application security project)近几年公布的OWASP top 10 Web安全威胁,我们总结目前主流的Web安全漏洞有以下几方面。
(1)注入漏洞。目前主流的注入漏洞为SQL注入漏洞以及OS命令注入漏洞。这一类漏洞发生在开放者未对用户输入的字符进行充分的安全检查,导致用户输入的数据会被当作命令或者查询执行,致使注入漏洞产生。
(2)跨站脚本攻击(XSS)。截至2015年,XSS漏洞是继SQL注入以后第2个严重的Web安全威胁。它利用开发者或浏览器对用户输入字符未加过滤的疏忽,通过JavaScript代码实现恶意攻击。
(3)跨站请求伪造(CSRF)。跨站请求伪造是用户在权限认证后,攻击者将伪造好的钓鱼页面发送给用户,用户点击后触发CSRF进行一系列操作。
(4)中间人攻击(MITM)。目前,中间人攻击( MITM)的安全威胁主要来自局域网环境,因为网络上普遍采用Http协议传输数据,但这种协议传输的数据是未经加密的。当用户与攻击者同处于一个局域网环境下,攻击者通过劫持网关,可以嗅探到用户通过Http协议发送的账号以及图片或视频的数据流。
4.2 加密解密题目设计
加密解密题目通常采用较为冷门的加密算法对文件或文本字符串进行加密,要求答题者对各类算法有一定的了解。应用程序的加密解密往往涉及汇编、逆向等知识。考虑到答题者中存在未学习过此类课程的学生,因此加密解密的题目可出两道题,分别为应用程序加密解密、字符串加密解密。
4.3 Wi-Fi破解及数据分析题目设计
本题由Wi-Fi破解及数据分析两部分组成。首先,搭建一个局域网环境,包含A服务器以及B服务器。A服务器开启无线连接,该无线连接密码由WPA密钥加密,密码强度为纯数字。答题者只有通过相关的Wi-Fi破解工具穷举出Wi-Fi密码才能够得到连接密码。在整个过程中,A服务器总是向B服务器发送UDP数据包,其中包含题目的FLAG。答题者需要在连入Wi-Fi后,通过嗅探工具截取发送数据并通过分析得到FLAG,完成本题。
4.4 取证分析题目设计
取证分析作为比赛题目的重点,在设计过程中也是难度最大的,因为网络安全专业课培养方案中有取证分析的课程,主要介绍目前公安取证的基本方法和技术,而在网络攻防竞赛平台的设计中,无法将课程中使用的取证大师等工具移植到平台。为了使取证题目更具实战意义,教师可将题目设计为分析系统日志,将日志设计为一台已经被入侵服务器的系统日志。被入侵服务器的系统为Windows XP SQL系统,系统被黑客人侵后留下系统日志,答题者需要在审计日志后得到黑客入侵的IP地址,通过找到对应的端口得到黑客的服务器;黑客服务器中搭建一个Web服务器并创建一个网站,网站功能为验证答题者在系统审计过程中得到的信息。只有完成所有问题,才能够得到题目的FLAG。
5 虚拟靶机设计
虚拟靶机作为网络攻防竞赛平台中最重要的题目,由于更加贴近实战角度,因此设计时应更多考虑到实战环境因素。靶机平台搭建在服务器的虚拟机中,它们有不同的系统环境。虚拟机采用的是Vmware workstation 9.0软件,它的好处在于可以方便地编辑网络环境,快速组建可用有效的虚拟局域网。靶机平台在网络攻防竞赛平台中不仅只扮演靶机的角色,而且也对其他题目进行支持。因此,在设计靶机系统的同时要考虑到虚拟系统的负载能力,避免因系统线程过多导致系统死机,影响比赛的进行,可以采用虚拟机的快照功能保存当前系统环境;在比赛过程中出现问题时,可以利用快照随时还原系统,保障比赛进度。
靶机系统的主要考查点包括3个:系统漏洞的发现与利用、系统网络服务漏洞的发现与利用、网站漏洞的发现与利用。这3个主要考查点的背后同样包含着大量的考查节点,它们组合在一起形成3台靶机系统。铜牌、银牌、金牌分别由简单到困难的程度定义,在系统中利用漏洞的难度也不断提高。为了保证大部分学生能够攻破铜牌靶机,教师在设计之初,可将铜牌靶机定义为只含有系统漏洞和输入法漏洞的靶机。这两种漏洞的利用方法都很简单,可以提高参赛队员的信心,令学生对剩下的银牌靶机和金牌靶机有攻破的欲望。教师可将靶机平台所占分数设定为不超过总分数的40%,将铜牌靶机定为200分、银牌靶机定为300分、金牌靶机定为500分。
5.1 铜牌靶机
铜牌靶机设定为易得分题,靶机系统为Windows XP系统。靶机的漏洞为系统层漏洞MS08-064。为了增强题目的灵活性,教师可在增加系统漏洞的同时增加网络服务漏洞。IIS 6.0漏洞多种多样,可以给答题者提供更多的答题思路。
5.2 银牌靶机
银牌靶机难度较铜牌靶机更大,考查答题者对网站整体入侵思路的掌握。在设计网站之初,银牌靶机为PHP代码编写的赌博网站。网站中可设计多处漏洞,如XSS漏洞、SQL漏洞、任意文件读取漏洞。答题者需要在渗透进入服务器并远程连接服务器后在某个文件夹内得到加密的RAR压缩包,通过暴力破解得到题目的FLAG。
5.3 金牌靶机
金牌靶机的难度较大,为附加题目。金牌靶机系统为Linux系统,默认安装有Apache以及PHP环境,网站为PHP代码编写的诈骗网站。诈骗网站结构简单,仅有部分功能可以供答题者利用,其他页面均为静态页面。答题者需要在页面中寻找线索,才能够得到网站的后台地址。通过工具穷举爆破,可以登录网站后台。网站后台仅有上传功能并且利用白名单进行过滤,答题者需要在绕过白名单后才能够利用后门继续渗透服务器。FLAG文本文件具有系统权限,因此答题者只有在对Linux系统提权的情况下,才能够得到FLAG完成此题。目的分值比如设为10分,当前5位学生得到正确答案后,该题目的分数自动降为9分,当有10位学生得到正确答案时,分值再自动减少,一直减少到6分(及格分)为止。这样可以激励学生在短时间内迅速思考,并将最先做完的学生的分数和最后做完的学生的分数进行区分。
6 结语
随着国家大力发展网络安全教育,相信一定会有越来越多的人投入学习网络安全的队伍中。在目前的发展趋势下,单一的课本技能已经不能解决日益复杂的网络安全问题,需要一个可以贴近实战的平台对学生所学的知识进行整理和实践。网络攻防竞赛平台的设计便是以此为初衷,它的设计在于提高学生对于网络安全的学习热情,通过比赛也能更好地选拔网络安全人才,对网络安全人才的培养非常有意义。网络攻防竞赛平台的设计参考了目前国内主流的CTF网络安全竞赛的规则设计,其中加入了一些公安业务需要的技能考核元素,对学生了解更多的网络安全知识起到很好的铺垫作用。
教育期刊网 http://www.jyqkw.com
参考文献:
[1]宾浩斯.心理大师手则:记忆的奥秘[M].北京:北京理工大学出版社,2013: 56-57.
[2]黄龙军.游标在Online Judge中的应用[J].绍兴文理学院学报,2012,32(8): 26-29.
[3]丁琦,汪德宏,基于工作过程的高职课程教学模式探讨[J].职教论坛,2010(2): 45-46.
[4]王霞,顾勋梅,潘祝山,离散数学教学改革及课程建设研究[J].计算机教育,2011(6): 8-10.
(编辑:宋文婷]