这世间所有的工作,大概都是“寻找”。
雕塑家要寻找的,是那尊本来就藏在石头中的完美的维纳斯。
文学家要寻找的,是那些拥有让人热泪盈眶魔力的文字排列方式。
黑客们要寻找的,是在黑暗的逻辑空间中,那条被他们所坚信的,通向自由的道路。
据此,有人把顶级黑客比作“老司机”,大概分这么两类:
1、有一类是喜欢真实路况的“城市赛车手”,在川流的车海中寻找到那条转瞬即逝的缝隙。他们的战场,是如真实的城市一般复杂的 Windows、MacOS、Safari、Chrome 等等平台软件。如 TK、袁哥、吴石等大牛正是“城市司机”的典范。
2、另一类是喜欢封闭赛道的“赛场赛车手”,在每一次奔袭中都寻找最为精确的过弯角度。他们的战场,是经过精心构建的代码世界。这类黑客喜欢做的事情,像一次解谜的智力盛宴,更像一场华丽的密室逃脱。赛博世界中的“密室逃脱”,就是 CTF 大赛。
什么是 CTF
说到 CTF 大赛,雷锋网宅客频道有必要做个简单的科普:
CTF,全称 Capture The Flag,意为夺旗赛。
简单来说,正如密室逃脱一样,参赛的黑客需要在规定的时间内,利用自己的黑客技巧攻破主办方(一般是其他著名的安全机构或黑客团队)构建的诸多难题,从而取得相应分数。
CTF 最先起源于1996年的美国顶级黑客大会 DEFCON。这种玩法的出现说来不难理解,老司机如果随意上二环飙车,容易吃罚单。拳击手如果随意上街打架,容易进局子。黑客们如果随意攻击别人家的网络系统,容易被警察蜀黍查水表。所以 CTF 这种安全的竞赛形式迅速席卷世界,成为了全世界年轻黑客挥洒荷尔蒙的首选。
在 CTF 世界,中国拥有几支老牌战队,包括蓝莲花(blue-lotus)、0ops、AAA 等等。
天忆正是 CTF 界的大咖。2017年,他和小伙伴们成立了一支新队伍:鹅鹅鹅战队(eee战队)。
之所以战队选择这样的画风,有一个简单的原因,那就是所有的小伙伴都来自“鹅厂”腾讯。看来,为了鹅的自由和荣耀,这支战队打算拼了。
说到这里,你一定想知道这些黑客的样子,不过天忆表示,低调是安全研究员的属性。所以,我们还是脑补一下吧:
虽说战队很年轻,不过队员们却都是久经沙场的黑客。例如,在成立不久,鹅鹅鹅战队就拿下了亚洲知名 CTF 赛事——在日本举行的 SECCON 大赛的季军。
鹅鹅鹅战队访谈
雷锋网(公众号:雷锋网)宅客频道和鹅鹅鹅战队队长谢天忆进行了一次对谈,他为我们讲述了战队的背后故事。以下是访谈实录。
宅客:战队选择“鹅鹅鹅”这个名字,有什么特别的原因吗?
天忆:一开始我们想成立一个战队,但是想了很久都没有合适的名字。后来我们突然想到,既然腾讯被称为“鹅厂”,我们都是“鹅民”,那么叫“鹅鹅鹅”应该是一个很有趣的名字。
【翻译成英语,就变成了“eee战队”】
宅客:CTF 比赛,大概是一种怎样的状况,请科普一下。
天忆:对于 CTF 比赛来说,不同比赛的具体赛制会有一些不同。基本的规则就是,主办方会设计题目,战队的核心使命就是在24小时或48小时内尽可能多地解开题目,和其他队伍进行竞赛。
题目的类型一般包括:
二进制漏洞利用——Pwnable
逆向工程和逆向分析——Reversing
web安全——Web
密码学——Cryptology
编程类——ACM
取证分析——Forensic
杂类——MISC
既然是主办方出的题,就会涉及到出题人的水平高低——所谓好的题目可能会融入最前沿的黑客技术和新的研究成果。作为安全研究员,可以从里面找到灵感,也许会在实际研究中发现一些从来没有的东西。
例如,主办方可能会用某个软件的经典漏洞,把其中的模型抽象出来,重新做到一个新的框架里,考验解题人能不能想到用同样的思维去利用这个漏洞。
例如,在密码学的方向,某个最新论文里的学术成果,或者某种新的破解、分析方法,都可能被主办方包装成一道题目。
所以,对于参赛者来说,可能绝大多数题目都是从未研究过的。对于每一道题目都必须从零开始临场发挥。你所能依赖的,只有自己的学习能力。
宅客:很多人都听说过黑客界的著名破解大赛 Pwn2Own,CTF 比赛和 Pwn2Own 这样的破解大赛会有什么不同?
天忆:我本人在科恩实验室也参与 Pwn2Own 的比赛。
和 CTF 主办方负责出题不同,Pwn2Own 是不出题的比赛。它的比赛规则是选手赛前对目标系统,例如 Edge、Chrome 浏览器进行充分的研究,找到可以利用的 0Day 漏洞(厂商未知的漏洞),在赛场上更倾向于做 0Day 漏洞的攻防演示。
而 CTF 的题目千奇百怪,涉及的知识也更广泛。作为选手要现场看题,比较偏重于临场发挥和应变。当然,既然是题目,一定是有解的,不需要用 0Day 漏洞。两种比赛技术要求不太一样。各自有难点和乐趣所在。
宅客:作为鹅鹅鹅战队的队员,都有什么独门绝技?
天忆:鹅鹅鹅战队目前有十个人左右,其中三四个核心主力来自腾讯科恩实验室,其他的主力也有来自腾讯玄武实验室、微信事业群,工程技术事业群的等等,大家都是喜欢网络安全的同事。
我个人毕业于上海交大,曾经担任交大的老牌战队“0ops”的队长。我擅长的方向是:二进制漏洞利用。
另外,我们还有其他的小伙伴们擅长:逆向工程、Web 安全、密码学、编程等等,对于 CTF 比赛所需要的技能来说,还是比较全面的。
我们鹅鹅鹅战队的导师,是科恩实验室的负责人吴石。吴石曾经发现过上百个微软系统和浏览器方面的漏洞,是享誉国际的大牛黑客,所以在技术上和方法论上,他可以给我们很多的帮助。
这个战队最初是我们自发组织的,所以在吸收队员方面,其实没有那么严格。只要腾讯的小伙伴对安全技术有热情,有过硬的技术能力,能参加比赛,我们都欢迎。
宅客:我很好奇,你们参加比赛的现场,是什么样子的?
天忆:CTF 的比赛分为两种,线上赛和线下赛。
有些比赛只有一场,就是在线上进行比赛,一般是周六、周日两天48小时。
有些比赛分为两场,线上的选拔赛和线下的决赛。
对于线上赛来说,主办方不会限制每个队的参赛人数,由于我们战队的成员来自腾讯的各个部门,所以肉身在北上深等不同的城市,参赛的时候只能线上沟通。由于每个成员都负责不同的方向,所以我们大多数时候都是各自在线解题的状态。如果遇到实在搞不定的题目,或者需要配合解题的情况,我们会在线上进行沟通。
由于比赛时间有限,所以虽然是线上赛,我们也不能丝毫放松。睡觉是一个比较纠结的事情。如果两天之间完全不睡觉,第二天的体力会透支严重,非常影响发挥。所以我们会强制自己睡四五个小时。
线下赛一般会在指定的场地中进行,会有一个大屏幕显示每个队伍的实时得分,不过真正比赛的时候,我们也顾不上看分数。对于线下赛来说,由于往往会限制参赛人数,所以题目也会相应减少。总体感觉线下线上区别不大。
宅客:线下赛的时候,有什么有趣的事情可以分享?
天忆:因为打比赛的时候,一般都是通宵,所以对于我们来说可乐零食和红牛这类东西是必不可少的。我个人非常喜欢喝可乐,每当遇到困难、思路不清楚的时候,我就用喝可乐这种方法来整理思路。
我们战队里还有一个童鞋非常喜欢吃。我们于是规定,如果打得好,结束之后就去吃大餐,用这种“威逼利诱”的方法提升士气。
【鹅鹅鹅战队参加日本 SECCON CTF 现场的“必胜祈愿牌”】
宅客:鹅鹅鹅战队刚刚组建,就已经参加了2017年1月日本的 SECCON CTF 比赛,可以说说参加这次比赛的情况吗?
天忆:SECCON CTF 是日本规模最大的面向全球的比赛,它是由日本网络安全协会举办的,算是亚洲范围内规模比较大的比赛了。今年是 SECCON 面向全球招募参赛队伍的第三年,这几年中,每年都会吸引全球知名的 CTF 战队参加。
2016年底,我们参加了 SECCON 的线上预赛。
线上预赛采用的就是解题模式,有900多支队伍参加。我记得总共有27道题目,经过48小时的战斗,我们解开了其中的14道,最终以十多名的排名晋级决赛。其实这个名次我并不是很满意,因为赛后来看,很多应该解开的题目,我们当时却没有解出来。不过,一切还好,我们有了去日本参加线下决赛的资格。
线下决赛在 2017年一月28-29号举行。一共有24支队伍参加,其中9支来自日本国内,另外15支来自全球各地。每个战队只允许派出4个人参加,总共有六道题目。而且比赛采用了一种独特的计分规则:King of the hill(占山为王)。
所谓 King of the hill,就是针对同一个目标(同一道题),如果一个队伍首次解出,可以一次性获得100分的“攻击得分”;但是,对同一个题目还有“防守得分”,也就是说,很多队伍同时解答出了同一个题目,如果你的解答是“最优的”,那么你还会获得20分防守分。评价的标准是一个可量化的指标,例如:同样的解答,可能代码最短者为最优。防守得分每十分钟评价一次,所以要取得最高分,不仅要做出题目,而且要给出“最好的”解答。
【比赛现场最终分数排名】
宅客:这次比赛你们最终拿到了第三名,其中有什么惊险时刻吗?
天忆:这次比赛拿到第三名,还是挺“惊险”的。
比赛还剩半小时结束的时候,我们已经解开了五道题,排在第三名。但是我们面临一个严峻的问题,那就是我们的每一轮的防守分没有第四名多。也就是说,我们虽然解开了五道题目,但有些的解答并不是“最优”。按照这个情况下去,我们很可能被第四名反超。
不过就在结束前几分钟,我们奇迹般地解开了第六道题。正是这样一道题,才保住了我们第三的位置。
这是一道 Web 安全方面的题目。之前我们就一直尝试解开,但是方法一直都不太对。现在想想,幸亏 Web 题目需要在现场连接服务器,没有办法熬夜通宵去做,最终解出这道题的同学第一天晚上休息得很充分。也许正是因为休息充足的原因,才能在最后时刻灵光乍现,哈哈。
作为一个新成立的战队,能够战胜国际老牌战队PPP、Shellphish、Dragon Sector 等等,还是非常不错的。我觉得,我过去的大赛经验确实帮了忙。
另外我还听说,SECCON 正在和2020年东京奥运会组委会沟通,会把 CTF 作为这届奥运会的表演项目之一,如果真的如此,我想我们还是有机会参与的。
【SECCON CTF 比赛现场】
宅客:作为一支名字很特别的新队伍,未来有什么厉害的发展计划呢?
天忆:我们鹅鹅鹅战队有一个非常明确的目标,那就是希望打入今年 DEFCON CTF 总决赛。DEFCON CTF 是 CTF 的鼻祖,也是 CTF 中难度最高的比赛,相当于 CTF 界的“世界杯”。
我个人曾经作为 0ops 和 b1o0p(蓝莲花和 0ops 联队)的队员在最近两年都参加过 DEFCON 总决赛,并且获得最高第二名的成绩。作为新成立的鹅鹅鹅战队,我们计划尽力参与 DEFCON 四月底举办的在线预选赛,或者外卡赛。凡是有可能晋级决赛的方式,我们都会尽量参与,我觉得进入 DEFCON 总决赛对鹅鹅鹅来说“有难度,有挑战,有希望”。
为了这个目标,我们需要做很多训练。虽然战队的成员都有自己的本职工作,但是每周我们都会抽出半天或一天时间讨论题目。我们会找来历届 CTF 大赛的“真题”进行训练,在线上合作解答。
而且就在今年,腾讯联合实验室也要举办我们自己的 CTF 比赛,到时候我们也会给全球的战队出题目,希望我们战队可以通过这些方式和世界顶尖战队切磋交流,秀出“鹅厂”安全的技术能力。
后记·采访手记
解谜是我们的天性。
有些人觉得解开别人设计的谜题,只是一种智力的自娱自乐。雷锋网宅客频道却想起了曾经读到的一个故事。
20世纪初,美国谜题天才萨姆洛伊德发明了一种数学卡片游戏,名字叫做“14-15”,游戏目标就是通过滑动把棋盘上的14和15两张卡片交换位置(类似于华容道)。这款游戏让整个美国万人空巷,有记载这样说:
人们被这个游戏弄得神魂颠倒,一些店主忘了打开店门;知名的牧师竟会整个冬夜助理在路灯下苦苦思索着他曾经完成的那个步骤;轮船驾驶员差一点触礁,火车司机把火车开过了站。
正是这样一个对日常生活看起来无用的谜题,启发了很多科学家的思维,促生了数学上“不变量”思想的应用,最终为数学科学的发展做出了重要的贡献。
正如逆天的围棋手阿法狗,在它超越人类棋艺的路途上,最重要的基石就是自己和自己的博弈训练。对于天忆和鹅鹅鹅战队来说,解开全世界黑客精心营造的谜题所做的每一次努力,都让自己距离那扇“自由之门”更近了一步。
。
原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/84442.html