本文作者:雷锋网,李勤,关注网络安全和黑科技。
这是一个月前的故事,直到现在“绝密内情”才浮出水面。
美国时间 7月26日,离黑客界的最盛大比赛 DEF CON CTF 2017 正式开始还有 2 天。
今年刚刚从浙江大学大学毕业,依然担任浙江大学 AAA 战队队长的刘耕铭作为 A*0*E 战队的一员,到达了拉斯维加斯。下机的那一刻,由于长途旅行疲惫,刘颇有困意。
这不是刘耕铭第一次作为决赛队伍的选手逐鹿 DEF CON CTF,也不是他第一次到国外打比赛,所以,他没有什么可紧张的。
刘的指导老师,蔡亮可就不一样了。今年,浙江大学有 5 名学生进入由腾讯 eee 战队、上海交大 0ops 战队、复旦大学******战队以及浙江大学 AAA 战队组成的联合战队 A*0*E 。AAA 战队今年在腾讯举办的TCTF 比赛中一举拿下了新人赛的冠军,现在,又组队来参加 DEF CON CTF。
这是近年来 AAA 战队成绩最好的一次。浙大的领导给这次参赛的学生拨了专项参赛基金,支持他们参赛,前不久蔡老师又从学校争取了一个机房给 AAA 战队做专门训练之用。
蔡说,这是比学校给拨款更显支持力度的一件事。不出点好成绩,他压力山大。
蔡亮比刘耕铭迟一天到达拉斯维加斯,到达会场时,气温并没有那么高,他的掌心却有点冒汗了。
留给刘耕铭的准备时间并不多。
为了不让选手使用已有的工具,DEF CON CTF 从去年开始设置了一个新对战系统,在比赛前一天对参赛选手开放。也就是说,这 24 小时是紧张地熟悉系统及开发新工具的时间。
因为比赛不限定人数,这次 A*0*E 联合战队联合了 约 30 名队员,其中,一些队员专门负责开发工具。AAA 战队此次派出了 5 个队员,还有一个主力队员最后因为签证问题没有参加比赛。
其实,联合战队并不是 A*0*E 的独创。今年参加比赛的台湾地区战队事实上也是一支联合战队,由几支战队组成,平时各自训练,独立参赛,只有在重大赛事来临,才会联合团战。在去年 DEF CON CTF 中获得第二名的中国战队也是一支联合战队。甚至,在早几年,刘耕铭与蓝莲花战队联合也参加过 DEF CON CTF 的决赛。
随着赛事逐年开展,越来越多的战队已经学“聪明”:联合实力强大的选手组团参赛,获得更好成绩。
这次比赛一共有 9 道题,全部是二进制题目,但题目并不是同时放出来。
因此,这支由 4 支战队联合的队伍以原来的小队伍为单位,按照题目类型和队伍优势同时在线做题。
在做题的紧张氛围中,解题能力和战术同样关键。
“主办方提供一些程序,这些程序是有漏洞的,你需要做的就是发现这些程序里面的漏洞去攻击人家,同时还要把这些漏洞补上,因为别人也有可能用这个漏洞来攻击你,你需要把这个漏洞给补上。你把漏洞补上之后,你补完后的程序,实际上其他队伍都可以看得到的,所以有一些队伍可能自己觉得自己补不好,就直接抄强队补好的程序。”刘耕铭介绍。
拿过多次世界冠军的美国 PPP 战队想出了一个招:在他们补的程序里面加上自己的后门,如果其他队伍抄了他补好的这个程序,实际上相当于有了他的后门,又可以直接通过后门来攻击抄了的这个队伍。
螳螂捕蝉,黄雀在后。
刘耕铭说:“今年比赛第一天,我们发现 PPP 的分数涨得特别特别快,当时就怀疑他有后门。但是,我们 2013年就参加 DEF CON,都是最老队员,比较有经验,知道 PPP 会放后门在里面,都没有抄。但发现有很多可能第一次参加的队伍都抄 PPP 的程序,就中招了,很多队伍都有这样问题。”
PPP 战队今年再把老招拿出来用, A*0*E 又生了一计。
比赛第二天,PPP战队的人跑过来对 A*0*E 的队员发出警示:你们千万不要用韩国队补好的程序,程序里面有后门。
因为前年韩国队伍夺冠,韩国队和 PPP 是实力最强的两支队伍,PPP 担心韩国队也借用这一招反超,所以想趁机“帮助”A*0*E ,制约韩国队。
刘耕铭一乐,其实 A*0*E 早就知道有这个后门,而且发现了其他队伍也来抄 A*0*E 的,所以干脆“借力打力”,借别人家的“后门”再拿下别的队伍的分数。
还有一个巧妙的策略是,在拿下一道题目的“一血”(第一个解出一道题)后,往往可以打时间差,对别的队伍发起进攻。但是,如果打击强队,强队可以在攻击流量中分析出解题思路,从而迅速补好自己的漏洞。这样,可能打不了多久。
因此, A*0*E 决定,先攻击 12 支其他队伍,剩下两支强队最后攻击,尽量放大一血的优势。
第一天比赛暂时结束后, A*0*E 在积分榜上名列第四,与第三名韩国队差距不大,相隔1000多分。
但是,到了第二天,所有分数不再显示,大家成了“盲打”。
蔡老师有点焦虑了:不行,怎么样都要拿到第三名,至少要把韩国队拉下马。
第一天比赛结束后,A*0*E 先汇合聊了下比赛的后续打法,蔡老师拉着 AAA 战队的小伙子又开了个小会。
第二天,AAA 和另外一个小分队的同学一起做这道题,当时没成功。
因为这道题是全程一直对抗,这个漏洞没有办法补上,只能做限制:你看对方做限制,你就要想办法绕过这个限制,我写出一个攻击脚本,对方上一个新的补丁,我再根据这个补丁,再写一个攻击脚本,就一直这样来回对抗。
“到第二天结束时出了一个补丁,这个补丁出来后, A*0*E 所有的攻击都打不了。小伙伴觉得可能写不出攻击脚本,我们就去找其他漏洞了。悲剧的是,到了第三天,很多队伍都上了这个补丁,果然攻击没法展开。”大家有些着急了。
在比赛结束前两个小时,一心想拿下好名次的刘耕铭咬了咬牙,不想放弃,于是和小分队的同学陷入了头脑风暴中,在最后一小时终于写出了攻击脚本。
结果,这个脚本写出来后可以攻击大多数队伍。同时,另外两道题也写出了攻击新脚本。在最后关键的一个小时内, A*0*E 涨了很多分。此时,他们才惊险地“干掉了”韩国队,拿下了DEF CON CTF 的第三名。
比赛结束当天,蔡老师请三天两夜没有睡觉的 AAA 战队吃了大龙虾。
刘耕铭此时已经大学毕业一个月,他成为了腾讯科恩实验室的一名安全研究员,队长一职马上就要移交给接棒的研二的学长朱梦凡了。
刘耕铭很开心,因为 AAA 战队没有在这个时刻经历人才断层。
回想到刘耕铭刚进入浙江大学在校内信息安全大赛上拿到第二名时,蔡老师得知刘耕铭才上大一,非常激动。
蔡老师告诉雷锋网编辑,其实 AAA 战队经历了一期和二期。AAA 战队一期中走出了何淇丹(现在腾讯科恩)、张凯和秦宇峰(现在安恒科技)、张智宇(现在阿里云)、陈宇森和张酉夫(现在长亭科技)……
然后,AAA 战队就经历了人才断层。
找到好苗子不容易。在那段时间里,整个 AAA 战队只有刘耕铭一个人。“那时我大二,接触信息安全的时间也不长,也没打过几场比赛,但战队的元老们都毕业了,忙着工作、创业,不可能经常参加比赛,我只能一个人上。”一个人的战队,成绩很“惨烈”,那段时间在国内的 CTF 比赛上,AAA 战队几乎再没有打进过前二十。
因为一些同学私自对学校网络进行“渗透测试”,蔡亮还经常被其他学院的老师找过来。“我们只好跑到其他学院,把人家机器给恢复好之类。反正有一些就有证据,人家找上来说是我们队员搞的,还有一些没有证据的,最后学院也没有办法。”蔡老师哭笑不得,类似几起事件发生后,AAA 战队一直处在和学校关系紧张的低谷期。
后来,在白洪欢、蔡亮等老师的支持下,刘耕铭开始当队长并为 AAA 招新人。
“白老师有一整个学期每周五都给我们队员上课,给我们讲逆向方面的知识,包括上课的时候也会推荐他发现的不错的同学加入我们战队,来上信息小组的课,做一些东西。”刘耕铭说。
刚开始也有女生加入 AAA 战队,可是因为要经常训练,还要没日没夜的打比赛,这些女生一个个都走了,AAA 成了一支纯汉子队伍。刘耕铭想了想,她们没坚持下来还是因为这个过程太难了,夜以继日的比赛,熬夜很伤皮肤。
以后,刘耕铭可能就要以另一重身份——科恩的安全研究员迈向另外一个战场了。在这个战场中,刘耕铭面对的对手将是来自网络安全世界的真正攻击者。
蔡亮很欣慰,也看开了——这几年阿里、百度、腾讯等公司都来抢战队的学生,凭着学校的条件好像也抢不过来。还好,现在成绩越来越好,学校批了实验室给AAA 战队进行专门训练,跟学校达成的授权渗透测试合作也快下来了。
送走老队员,迎来新队员,第一课就要告诉他们:兔子不吃窝边草,这次安心地给学校进行授权测试吧。
本文作者:雷锋网,李勤,关注网络安全和黑科技。