购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

1.2 CTF竞赛的主要内容

1.2.1 CTF竞赛题目形式

CTF竞赛的考查范围很广,理论上所有的网络空间安全问题都可以出现在CTF竞赛中。从CTF竞赛中的常见题型来看,主要可以分为Web(网络攻防)、Reverse(逆向工程)、Pwn (二进制漏洞利用)、Crypto(密码学)及Misc(安全杂项)5类。

① Web:主要包括Web安全中常见的漏洞利用,如SQL注入、XSS、CSRF、文件包含、文件上传、代码审计、PHP弱类型等,Web安全中常见的题型及解题思路,以及相应工具的使用等。

② Reverse:主要包括逆向工程中的常见题型、工具平台、解题思路,进阶部分则包含逆向工程中常见的软件保护、反编译、反调试、加壳、脱壳技术。涉及Windows、Linux以及 Android 平台的多种编程技术,要求利用常用工具对源代码及二进制文件进行逆向分析等。

③ Pwn:主要包括对二进制漏洞的发掘和利用,需要对计算机操作系统底层有一定的了解。在CTF竞赛中,Pwn题目主要出现在Linux平台上。

④ Crypto:主要包括古典密码学和现代密码学两部分内容,古典密码学趣味性强,出题思路广阔,种类繁多;现代密码学安全性高,对算法的考查要求较高,主要是分析密码算法和协议,计算密钥和进行加解密操作等。

⑤ Misc:主要包括信息搜集、编码分析、隐写分析、取证分析等,内容不局限于一项或一类技术,常常跨越若干安全技术,形式多样、方式灵活,是初学者比较容易接触的一类题目。

另外,从网络空间安全学科的角度看,CTF竞赛的题目主要涉及系统安全、软件安全、密码学及安全杂项4个方面。

① 系统安全:主要涉及操作系统和Web系统安全,包括Web网站多种语言源代码审计分析(特别是PHP)、数据库管理和SQL操作、Web安全漏洞挖掘和利用(如SQL注入和XSS)、服务器提权、编写代码补丁并修复网站安全漏洞等安全技能。

② 软件安全:主要包括对C、C++、Python、PHP、Java、Ruby、汇编等程序语言的掌握,对格式化字符串、缓冲区溢出、UAF 等常见二进制程序漏洞的分析,对32位及64位Windows/Linux操作系统平台下二进制程序漏洞的挖掘,以及shellcode的编写及利用等。

③ 密码学:主要涉及密码编码学和密码分析学,包括古典密码、分组密码、序列密码、公钥密码、哈希函数等内容。

④ 安全杂项:主要涉及信息搜集能力、安全编程能力、移动安全、云计算安全、可信计算、隐写术和信息隐藏、计算机取证技术和文件恢复技能、计算机网络基础及对网络流量的分析能力等。

1.2.2 CTF竞赛模式

随着CTF竞赛的不断发展,出现了以下几种竞赛模式。

(1)解题(Jeopardy)模式

解题模式的CTF竞赛与信息学奥林匹克竞赛、ACM竞赛等传统的计算机学科竞赛类似,参赛者通过网络现场或远程接入比赛,根据参赛者所解答的竞赛题目的分值和所用的时间来对参赛者进行排名。题目类型包括 Web 渗透、逆向工程、漏洞分析与利用、密码学、安全杂项、安全编程等。由于解题模式的对抗性相对较弱,因此目前这种模式主要在线上选拔赛(预选赛)中使用。

(2)攻防(Attack with Defense,AwD)模式

在攻防模式的 CTF 竞赛中,参赛者在特定的网络空间中进行攻击和防守,通过挖掘网络服务的安全漏洞并利用这些安全漏洞攻击对手的服务来得分,通过修补自己服务的安全漏洞进行防御来避免失分。攻防模式是一种零和游戏,体现了攻防技术之间的激烈竞争,参赛者的实时分数可以直接反映出攻防的情况及对抗的胜负,挖掘到一个新的安全漏洞很有可能会带来分数的暴涨甚至逆转胜负,因此极具观赏性。攻防模式的对抗性极强,因此通常在线下赛中使用,它不仅要求参赛者具有较为全面的技术能力,而且对参赛者的体力和精力也是一种极大的挑战(比赛常常会持续36~48 h甚至更长时间),同时也非常考验参赛队员之间的分工与合作。

(3)混合(Mix)模式

混合模式是一种结合了解题模式与攻防模式的 CTF 竞赛模式。参赛者首先通过解题获得一些初始分数,然后再通过攻防对抗进行得分增减的零和游戏,最后以分数的高低来评判胜负。UCSB iCTF是采用混合模式的CTF竞赛的典型代表。

(4)抢山头(King of Hill,KoH)模式

抢山头模式是一种新兴的 CTF 竞赛模式,这种竞赛模式有点类似于攻防模式。在抢山头模式的 CTF 竞赛中,参赛者面对的是同一个黑盒目标,要先挖掘并利用安全漏洞控制该目标,并将自己的标识(token或flag等)写入指定的文件中,再对该目标进行加固,以阻止其他参赛者攻击。赛事的组织者会定期检查标识文件,并根据文件中的标识来判定得分。可以看出,抢山头模式是一种对抗极为激烈的竞赛模式,参赛者不但要具备极强的攻击和防御能力,而且还要比拼解题速度和攻防策略。

(5)战争分享(Belluminar)模式

战争分享模式也是一种较新的CTF竞赛模式。这种模式的CTF竞赛一般是由主办方邀请水平相近的参赛队伍参加,各参赛队伍相互出题挑战,并在比赛结束后分享赛题的出题思路、解题思路及学习过程等。最后根据出题得分、解题得分和分享得分对参赛队伍进行综合评判,得到竞赛的排名。战争分享模式不仅要求参赛者具有扎实的解题能力,而且要求参赛者具有拟制赛题和分享经验的能力,是一种非常有利于参赛者安全技术水平提升的竞赛模式。WCTF 是战争分享模式的 CTF 竞赛的典型代表。关于战争分享模式的更多信息可以参考Belluminar官方网站。

(6)真实世界(Real World)模式

真实世界模式同样是一种较新的CTF竞赛模式,2018年开始出现。这种模式的CTF竞赛重在考查参赛者在真实环境下的漏洞挖掘与利用能力,所有赛题全部来源于对真实世界软件的修改或二次开发,并以现场展示攻击效果的方式来评判赛题的完成情况。真实世界模式是最贴近实战的 CTF 竞赛模式,由于不存在参赛者之间的直接对抗,因此考查的是参赛者独立进行漏洞挖掘及实现对安全漏洞的稳定利用的能力。RWCTF是真实世界模式的CTF竞赛的典型代表。

(7)人工智能挑战模式

人工智能挑战模式是一种特殊的 CTF 竞赛模式,又可以分为类似解题模式、针对特定任务的比赛和类似攻防模式、具有一定对抗性的比赛两类。前者的比赛任务包括漏洞挖掘、密码破译、恶意流量识别、自动化渗透测试等,主要由竞赛组织者给出测试环境或数据集,参赛者据此完成智能体的设计和开发,在比赛时由智能体自主开展工作,并根据任务完成情况在智能体之间决出胜负。后者由参赛者事先设计并开发用于安全攻防的智能体,在比赛时,参赛者将智能体放入特定的平台中,由智能体进行自动化攻击与防守,获取其他智能体的flag并阻止其他智能体获取自己的flag,以此在智能体之间或智能体与人类战队之间展开角逐。与其他竞赛模式不同,人工智能挑战模式不仅需要参赛者深入地了解安全技术,而且非常考验参赛者设计、开发、运用人工智能技术解决安全问题的能力。目前人工智能挑战模式的CTF竞赛还不太成熟,但它代表了CTF竞赛未来的一种发展趋势。

1.2.3 CTF竞赛组织方式

从组织方式的角度看,可以将CTF竞赛分为两类。

(1)线上赛

在以线上赛形式组织的CTF竞赛中,参赛者通过竞赛组织者搭建的竞赛平台线上注册、线上解题并提交flag。在所有的竞赛模式中,线上赛通常采用解题模式和战争分享模式来进行,其他模式的线上赛较为少见,但也不是绝对没有。线上赛因组织难度相对较小、时间灵活、参赛方便而受到CTF社区的青睐,往往作为小型CTF竞赛及大型CTF竞赛的预选赛或分站赛的组织形式。从参赛者的角度看,线上赛对抗性较弱,赛题难度较小,参赛要求较低,使得参赛者可以将精力集中在对赛题本身的学习和研究上,非常适合日常学习和训练,因此受到广大CTF爱好者的欢迎。

(2)线下赛

顾名思义,线下赛要求参赛者前往指定的比赛场地,现场接入比赛网络来参赛。线下赛大多采用攻防模式或攻防模式与其他竞赛模式相结合的方式进行,比较强调对抗性和竞技性,因此观赏性很高。大型 CTF 竞赛的总决赛通常会采用线下赛的组织形式,线下赛的参赛队伍数量从开始时的20、30逐步提高到100以上。尽管如此,相对于动辄数以千计的参赛队伍,线下赛的支撑能力仍然显得有限,因此一些好的 CTF 竞赛往往需要采取分级淘汰的赛制来限制线下赛的参赛队伍数量。从参赛者的角度看,线下赛难度较大,对抗性强,对参赛者技术和综合能力的考查更为全面,因此高水平的参赛者通常非常重视线下赛,将其视为对自己的一种考验和挑战。 5iQuILw92KossbVAr9/XsBVJExzNlm71hlDPFqNpl7F2nddoGoswYkx0ykHXeYl2

点击中间区域
呼出菜单
上一章
目录
下一章
×