《亲爱的,热爱的》开播后,网安圈诞生了一个新梗:你打篮球像 CXK,你打 CTF 像 HYT。
XSWL。
上述饭圈用语,请读者自行搜索其中内涵。
本来,大家以为网络安全的春天到了,竟然都有偶像剧以网络安全领域大的“CTF”为背景偷偷摸摸谈恋爱了啊。
这个行业要火!
没料到,电视剧其实是高端黑。
国内顶尖 CTF 战队、腾讯某战队一位不愿透露姓名的 CTFer 小 A 对黑盟吐槽:“怎么办,我已经入行远远超过六年,我是不是要干不下去了?”
不靠谱的电视剧,你知道你伤害了多少 CTFers 的心吗?
太多梗了,我们不一一吐槽,本文的目的是好好科普一下,什么是真正的 CTF 和真正的 CTF 选手。白帽黑客教主 TK 曾来黑盟(公众号:黑盟)直播讲课,好好地科普了一下 CTF,我们先重温一下:
CTF 是什么?
这个概念是从欧美传过来的,字面上是“夺取旗帜”,原本是西方的一种传统户外游戏,相当于我们的丢沙包或者跳大绳。原始的 CTF 每个队伍真的有一面旗帜。比赛目标就是夺取位于对方“基地”的旗帜,并带着旗子安全返回自己的基地,当然,实际规则还要更复杂一些,比如还有“监狱”的概念。
后来,“夺旗”的概念也被引入信息安全攻防比赛。因为在比赛中,选手需要通过解开题目,或攻破目标夺得“Flag”。
现在,我们用 CTF 来代指信息安全领域的夺旗比赛。
CTF 的比赛形式有以下几种:
1.真的是“题目”的解题模式,包含逆向、漏洞利用、密码学、web、杂项,难度不一,分值不一,越难的题目分值越多。
逆向题一般是一个二进制程序,Flag 就藏在这个文件里,需要选手有高超的逆向技巧,找出 Flag。
漏洞题一般也是给二进制程序,选手需要从程序中找出漏洞,并写出漏洞利用的攻击代码。虽然做漏洞题一般也需要逆向技巧,但对漏洞技术要求更高,用写出的漏洞利用代码实际攻击成功,才能取得 Flag。
算法题是指算法分析题,给你一段某种算法处理过的数据,选手需要对付一个或多个算法。
审计题给出的文件就多种多样了。可能是一张隐藏了信息的图片,看起来像风景照或者人像,但其中有线索指向某个 Flag 。也有可能给你一个网络数据包,包含大量网络通信数据,需要你分析。
还有一些难以归类的题目,或者由几类题型组合的题,称为综合题。
解题模式是比较常见的模式,不少 CTF 都选择这种模式,特别是在预赛阶段。
2.攻防模式。
这个模式更加热闹和刀光剑影。因为,它真的是队伍之间进行攻防。攻防模式一般可以分为三种:
第一种,每一支队伍一同攻击同一个目标,考验攻击能力;
第二种,所有参赛队伍进行防守,遭受攻击,考验防守能力;
第三种,结合前两种,综合考验攻防能力。这种模式对技术、战术、策略要求更高。一般是回合制,一个回合五分钟。可以按照自己的策略选择优先攻击或防守,打谁不打谁,队伍自己决定,一个回合暂停一次。
还有一种模式,这种模式在国内不常见,称为“King of The Hill”,我把它叫做“山大王”——大家同时攻击一个服务器,比谁占领服务器的时间长,保持自己的控制权,不被别人干掉。这其实和传统夺旗更像,守好自己抢夺的东西,也被人称作“懒人的 CTF”,因为占领方有很大优势,有时候可以打得比较悠闲。
CTF 现状
近几年,国际、国内的CTF种类越来越多。举办CTF的组织方各有目的,有些有政府背景,比如,韩国的 Codegate CTF;有些是战队办的,比如,PPP 的 PlaidCTF,这种比较常见;有些是企业办的,比如腾讯的 TCTF ;有些是安全会议牵头办的,比如著名的 DEF CON CTF,实际具体操办的也是战队。DEFCON CTF是目前还在办的历史最悠久的CTF。最早一届DEFCON CTF 是1996年办的。
刚才提到的这些都是公开的 CTF。还有一类是不公开的 CTF,不会公开征集报名,开展预赛之类。比如,有些国内、国外企业会举办面向内部员工的 CTF。
另外,从公开信息可以了解到,美国国防部从 2014 年开始举办名为“CyberStakes”的 CTF 。美国国防部有一个网络安全人才的培养计划,目标是花3年时间在美国军队里培养 4000 名安全专家。而且标准很具体,要求会挖漏洞,会写Exploit。训练的一个环节就是CyberStakes”。而且他们邀请了 David Brumley 教授来授课。这位教授是 2016 年 CGC 最后 7 支入围队伍之一 ForAllSecure 的创始人。CGC 是 CTF 历史上的转折点,不再只是人和人打,而是和机器打。他们招募了一些队伍设计了一套系统,和人类战队打 CTF。就像阿法狗与人类下围棋一样。不过,CGC 最后的战胜队还是人类队伍。虽然机器队伍没有横扫千军,但也不是最后一名,还是有两支人类队伍输给了机器。
在安全攻防领域,至少在 CTF 领域,目前人类虽然依然保持优势,但毕竟也有两支失败的队伍,所以,大家要努力。
学习 CTF 的好处
研究安全技术过程中训练出来的思维能力是很有用处的,即使以后不去做网络安全。我经常跟大家讲的一个案例是,1996 年成立的黑客技术团体“w00w00”的成员中至少包括:
WhatsApp 的联合创始人
Jan KoumNapster(世界最早的音乐共享平台) 的联合创始人
Shawn FanningArbor Networks 的联合创始人
Dug SongNmap 的开发者
Gordon Fyodor LyonCounterTack 的 CTO Michael A. DavisGoogle 元老
David McKayYammer 安全主管
Josha BronsonAccuvant Labs 的 Joshua J. Drake
Veracode 的 Andrew Reiter
这个团体不是特别大,却出了这么多人才。有些人后来虽然没有从事网络安全的工作,但在自己的工作岗位上做得非常出色。
如果,你不但对安全感兴趣,而且想未来从事安全工作,那么就要明白,CTF中的技术对安全工作来说一部分,不是全部。工作中遇到的有些问题可以用 CTF中涉及的知识解决。还有很多问题则需要用到 CTF 之外的技能。
打 CTF 是非常好的安全技术能力训练方式,优秀 CTF 选手在从事安全技术工作时也会有很大优势。不过大多数现实中的安全技术工作其实没有 CTF 中的问题那么困难,但会复杂得多。另外,打 CTF 的目标是得分,处理现实安全问题的时候要考虑更多因素,比如,解决问题的同时还要保持业务运行。
除了和 CTF 相关的技术能力,从职业的角度看,通用能力也很重要。比如,很基本的三点:能想清楚、能写清楚、能讲清楚,这体现了你逻辑是否严密、语句是否通顺、表达是否清晰。有些通用能力对专业能力提升也有帮助,比如分析能力、判断能力、规划能力、搜集能力、学习能力、提炼能力。无论以后你想从事什么工作,在学生时代加强这些能力的培养,对你整个人生都会有很大的帮助。
CTF 常用术语和行规
CTF上的“一血”是什么?
“一血”指在 CTF 及相关衍生比赛最先解出一道新赛题的“动作”。在一些比赛中,拿下一道赛题的“一血”,可能有加分,但更多地是,证明了此题有解,且第一个解题者思维敏捷,是荣誉的象征。在2017年6月此次的 TCTF 中,先拿下“一血”的选手会夺得一枚红色的“旗帜”,随后成功解答者会夺得绿色的旗帜。
“一血”出来后,其他尚未解出题目的队伍也会盯上这道题。“彩旗飘飘,红旗不倒”在这里,绝对是句好话。
解出一道题后,为什么选手得到的分数越来越少……
是的,让人大跌眼镜的是,一道题被你解出后,如果其他高手也解出了这道题,那么你获得的分数会按相应比例减少……你要问了,相应比例是多少?看主办方心情和偏好。
“赛棍”和“搅屎棍”
业内人士把经常参加 CTF 大赛的选手称为“赛棍”,此称呼无褒贬,纯属调侃。
一般 CTF 有常见的两种比赛模式,一是攻防对战模式,就是高手PK,看谁先攻下对方的“老巢”,还有一种解题模式,虽然也是高手对决,看谁分数最多。
还有一种就是“搅屎棍”,指在参赛过程中对平台发起攻击的的选手,这种攻击通常属于搞破坏。为此,在 CTF 等赛事的比赛过程中,要有维护人员“震场子”,及时发现“搅屎棍”的蛛丝马迹,维护平台稳定和赛事的正常进行。
“潜规则”
纳尼?黑客高手对决也有“潜规则”?是的!
正经的规则是,在 CTF 中,黑客赛队对决之前不会像武林高手那样“互报名号”,甚至不会交流。直接在赛题中“厮杀”。
“潜规则”之一是,虽然在 CTF 比赛中,DEFCON CTF 比赛不限制战队选手数量,其他一些比赛会限制赛队选手人数,比如,4名。
但是,一般 CTF 比赛时常从 24 小时—36 小时不等,几个“老司机”在短时间内也无法解出一些很难的赛题,因此,在线上比赛时,请外援也无法知道。线下比赛时,有时选手会传送题目请外援。
这种被有些主办方默许,还有一些主办方当然是拒绝的。比如,曾经有个战队在某次比赛中因为请了“外援”,本来取得了第一名的成绩,被发现后取消了部分成绩,艰难地成为了……第二名。
“端茶倒水”是干吗?
如果对手实在很强,解出了自己所不能解答的题,你不需要像武林高手那样低头认输,只要说为对方“端茶倒水”“摇扇子”即可,“端茶倒水”即表示膜拜。
无论攻防还是解题:一定有一个不眠夜
无论是 24 小时、48 小时,甚至挑战选手体力极限的 72 小时,在比赛中间的夜晚,一定是一个“继续参赛”的不眠夜。
真实 CTFer 快问快答
黑盟:你们有队服吗?有专车吗?真的都戴着耳机、耳麦坐在舒服的电竞椅上吗?
小 A:肯定不是的啊,我们一般最多派出4名队员坐镇现场打比赛,其他人都在酒店房间窝着,穿着拖鞋打比赛,队服,呵呵。。。我们不化妆、也不做头发的。耳机嘛,可能会戴的,但是是大家嫌弃现场环境太吵,戴上耳机听歌来着,戴耳麦就有点夸张了,我们一般都现场交流,要么线上沟通战况,我们也不坐电竞椅,不过主办方要是热情,可以优化一下配置。
哦,队服是有的,只在合影时穿一下。
黑盟:真的可以三行阻挡对服务器的攻击吗?
小 A:记住电视剧里的那三行命令,可以扫描自己的端口(围笑脸),其实如果真的要防的话用一行
iptables -I INPUT -p tcp -s 192.168.233.0/24 --dport 10000 -j DROP。
黑盟:片尾显示的三个 CTF 顾问的名字,我从来没听说过,你呢?
小 A:我也没有(围笑脸)。
黑盟:真实的 CTFer 真的要早上起来集训跑步吗?
小 A:我只能说,那是一类比较健康的 CTFer,我都通宵打比赛了,头发也没梳,脸也没洗,我们都是轮流睡觉,你说呢?
小 A 的若干群友:
“加班才是福报”
“bug 都修不完还锻炼”
“以后写个wp,下面没准有人评论,这是我家爱豆写的exp,请单推哦”
参考文章:黑客高手对决常用术语及行规,一般人我不告诉他
白帽黑客教主 TK 告诉你,黑客的游戏 CTF 究竟是什么 | 硬创公开课总结文+视频
黑盟原创文章,未经授权禁止转载。详情见转载须知。