十五年以前,如同现在一样闷热的夜晚,人们屏气凝声,守在电视机前听萨马兰奇说出:“The city of Beijing”。
彼时年轻的我们之所以雀跃,是因为确信,可以从此平等地分享人类的荣光。
从邀请全世界顶级运动员到中国拼体力,到邀请全世界顶级黑客到北京拼智力,中间经过了漫长的十五年。并不算晚,世界黑客大师赛(WCTF)如约而至。
【WCTF 现场】
通常来说,希望举办奥运会的国家,都品尝过金牌的滋味。举办世界黑客大师赛的 360Vulcan 团队,也曾经多次在世界顶级黑客大赛中“虎口拔牙”。
拔牙者名为 MJ。
此人并不是Michael Jordan,也不是Michael Jackson。不过在黑客圈,很可能有人并不认识打球或唱歌的 MJ,只认识这位 MJ0011。他是十年前周鸿祎“三顾茅庐”邀请加盟 360 的少年黑客;在顶级黑客大赛上17秒攻破 IE,11秒攻破 Chrome 的明星;著名安全团队 360Vulcan 的老大。
黑客小白在打出他的名字之前,需要先恭敬地擦掉键盘上的灰。
360 Vulcan 是最早走出中国的黑客团队之一。从2009年开始,MJ 本人曾经六次在韩国举办的 POC 黑客大会上做主题分享,而 360Vulcan 团队也连续两年赴温哥华参加全球最著名的黑客大赛 Pwn2Own,这些经历不仅让 MJ 在国外拥有众多铁粉,也让他和其他国家的顶尖黑客熟识并成为好友。
MJ笑称,这次 WCTF 能够邀请到世界前五名的黑客战队,“刷自己这张脸”还是有作用的。
【MJ0011】
所谓 CTF,简单来说可以理解为黑客界的奥数比赛。这个领域有很多专业战队,他们如同学霸一样,职业生涯的重头戏就是“刷积分”“刷排名”。
十支队伍,每支队伍出两道题。除去自己的,每支队伍面对十八道题。
两天时间,用任何方式解题。解出来,得分。解不出,零蛋。
第三天,每支队伍上台分享自己出题的思路,裁判打分,计入总成绩。
这就是 WCTF 的全部规则,简单,残酷。
比赛请到的十支队伍如下:
dcua,来自乌克兰基辅,参加 WCTF 时排名世界第一。
KeyResolve,美国 PPP 战队(世界排名第二)和韩国 DEFKOR 战队组成的联队,拥有韩国黑客神童 Lokihardt(剧透:此人极其凶悍,是后文大 BOSS)。
Dragon Sector,波兰战队,世界排名第三。
HITCON,中国台湾战队,宝岛最著名的黑客团体。
LCBC,俄罗斯战队,国际大赛夺魁无数。
!SpamAndHex,匈牙利战队。
GoN,来自听起来像蓝翔,实际上叼炸天的韩国科学技术院(KAIST)的战队
CyKOR,韩国神童 Lokihardt的前战队。
0ops,来自上海交大的战队,曾出战众多国际大赛。
蓝莲花(blue-lotus),来自清华大学的老牌战队,中国人最为熟知的一支队伍。
让世界顶尖的黑客来相互出题,略微挑战人类的极限。这也是 MJ 和评委们在赛前最担心的事情之一。比赛从第一天早上九点开始,第二天下午三点解说。算上夜里闭赛的时间(你仍然可以在宾馆里折腾)也只有三十个小时。三十个小时,你可以坐飞机环游地球一周,可以参禅打坐顿悟宇宙的秘密,但是远不够解开由世界顶级黑客一手炮制的18道题。
其中一些题目,包括我在内的很多评委都觉得很难。
赛后,还没有时间研究完所有题目的 MJ 如此感慨。
说这是世上难度第二大的 CTF 比赛,估计没有比赛敢宣称第一。有一点几乎可以肯定,那就是来参加“WCTF”的战队都在心中默念很多次“WTF”。
【中国战队 Oops】
在比赛之前,各个团队都做了长时间的准备,他们手里都握有自己的弹药——漏洞。然而,不同的漏洞有不同的威力,有的是38mm口径子弹,有的是榴弹炮,而有的则是核武器。0Day漏洞无疑就是核武器。高质量的 0Day 漏洞往往可以直接打穿系统所有的防护,让黑客如同上帝一般俯视整个赛博世界。毫不夸张地说,某些 0Day 漏洞可以用在国家间的对抗中。MJ 站在如今的高度,正是因为他脚下踩着诸多 Windows、Chrome、Adobe 的 0Day 漏洞。
出题人本身就是黑客,他们当然知道对手也在拼命积攒漏洞。于是 !SpamAndHex 战队在编写题目时祭出了杀手锏——一套自己编写的操作系统。这道题直接把其他九个战队拉到同一起跑线上,因为所有的黑客们都是第一次见到这货,根本不可能提前研究什么 0Day 漏洞。
而 Dragon Sector 采用了同样的策略,他们的题目运行在一种名为 AI64 的CPU上,这款坑爹的英特尔处理器架构已经几近淘汰,连网络上的技术资料都非常稀有。根本没有人会购买这样的 CPU 进行研究,因为即使研究出成果,也没有很大的卵用。Dragon Sector 花重金购买了使用这款 CPU 的服务器,并且让其他黑客现场破解。显然,其他战队临时打车到中关村攒一台带有这样CPU的服务器不太现实(中关村根本没得卖好不。。。),所以只能在现场用代码模拟这种 CPU 的架构。这酸爽,让雷锋网听上去都觉得生不如死。
除了这种根本不能用 0Day 漏洞解决的问题,还有一类正与其相反——必须用 0Day 漏洞解决的问题。(没错,就是这么惊悚)
例如 HITCON 编写的一道题目。如果其他战队奢望解开,就必须利用一种之前没有任何人注意到的系统缺陷。“严格来说,这也是一种 0Day。”MJ说。
而韩国神童 Lokihardt 则把几个月前刚刚提交给微软的 0Day 漏洞进行了修改,用同样的原理在 Chrome 上进行了复现。这种攻击的方式极其复杂。MJ 告诉雷锋网,“如果用两天的时间解这一道题,或许有人可以成功,但是比赛的赛制是看谁解出更多的题,最终没有人去尝试解开它。”
!SpamAndHex 编写的另外一道题,并不太幸运。他们为这道题设置了千回百转的解题路径,意欲让对手迷失在地狱一般的迷宫中。然而,HITCON 并不这么想,因为他们掌握一种独特的web漏洞利用方法,根本不理会出题人千回百转的良苦用心,直接绕到迷宫之外取出了密钥,分分钟解开了这道题目。
值得一提的是,韩国神童 Lokihardt 居然彪悍地用正常的方法解开了这道题。
请注意,前方高能,因为接下来就到了 Lokehardt 的个人 Show 的时间。
大家正在比赛,Lokihardt 跑过来,问评委是不是可以用 0Day 漏洞来解题。得到许可之后,他就直接用 0Day漏洞绕过了一道很有难度的题目。
MJ 回忆道。
【Lokihardt】
整个WCTF 比赛,大名鼎鼎的韩国神童 Lokihardt 就像一枚超大号的钻石,光芒四射。
从开赛到结束,三十个小时的时间,我没有看到他离开自己的座位,没有吃饭,没有喝水,没有休息。其他队友吃饭的时候,只有他自己坐在座位上。
“老司机” MJ 被这个韩国神童震惊了。
Lokihardt 所在的韩美联队总共解开了9道题,狂甩第二名的 CyKOR几条街。后者解开了5道题,大概是第一名的一半。故事的高潮是,Lokihardt 的队友们加在一起只解了3道题,而神童本人单枪匹马爆掉6道题。
也就是说,如果只有神童一个人来参赛,他也是第一名。
MJ 感慨。“从比赛结束到各支队伍分享,直到第二天神童离开赛场赶飞机之前,他一直拿着电脑不断地敲。我特地问他在做什么,他告诉我他在解剩余的九道题。”
这个被韩国举国追捧的偶像级神童只有21岁。虽然瘦弱的神童看上去像个高中生,和 MJ 的体型形成了强烈的反差。但他是 MJ 的劲敌。他们带领各自的队伍在 Pwn2Own 上数次交锋,就在今年的比赛中,他们各自赢取了十几万美金的奖金。
在邀请 Lokihardt 来中国参加 WCTF 之前,MJ 并没有如此长时间地接触他。MJ对雷锋网说:
一直有传说,说神童实际上是一个普通人,而他的成就都是背后的韩国政府团队在支持。在现场亲眼看着它解开这些题目之后,我确信 Lokihardt 果然身手不凡。比赛开始一个半小时的时候,Lokihardt 就解出了他的第一道题。而全场有人再解出题目的时候,已经到了比赛的第六小时了。
【WCTF 最终比赛成绩】
值得一提的是,这次大赛设置了十万美金的奖金,由前三名分享。这些钱来自于 360Vulcan 团队几个月前在 Pwn2Own 大赛上的斩获。
这些奖金让 WCTF 毫无悬念地成为了历史上奖金最高的一届 CTF比赛。但是 MJ 觉得,这并不是黑客们参加比赛的主要动力。
对于这些成名的黑客,想要赚到几万美金并不难。例如神童 Lokihardt,在 Pwn2Own 上一个人就赚到了十几万美金,而在 WCTF 上虽然拿了第一,却还要和队友们平分这五万美金的奖励。
这十万美金,对于掏钱的 360Vulcan 和得奖的战队来说,似乎都并没有那么重要。这有点出人意料,却在情理之中。
我记得很清楚,就在比赛距离结束还有一分钟的时候, Dragon Sector 战队突然疯狂地喊起来了,因为他们在最后一刻,成功解开了两道题。
有一件事不言而喻:除了钱,还有很多更能让人为之痴狂的事情。
WCTF,就是这样的一件事。