这不是一个顺风顺水的夺冠故事。
甚至,腾讯科恩在移动 Pwn2Own 上参赛的第一个项目就遭失利,第一天赛事还未结束,宅客频道见到的报道中,就有其第一个项目“失败”和竞争对手“获胜”的惨烈对比照。
但赛况跌宕起伏,峰回路转。
在移动 Pwn2Own 上,腾讯安全科恩战队“出师不利”,但扭转态势,拿下了总积分 44 分,获得了总冠军 “Master of Pwn(世界破解大师)”的称号。
在这场战役中,这群黑客实现了苹果 iOS 11.1 最新操作系统下 WiFi 和Safari 浏览器的破解,并完成手机重启后仍然保持攻破以及提取内核权限等高级别破解操作,获得赛事主办方的额外奖励。此外,科恩战队还选择挑战了本届赛事公认最难单项,利用堆栈溢出攻破基带。
通向冠军的道路上充满荆棘,童话故事真的不是骗人的。
故事一:赛前一天破解工具“狗带”,又遭遇手机休眠 24 小时
9月1日,队长陈良接到了 主办方 ZDI 发来的破解赛题,今年的破解花样真多:不再是单纯通过浏览器、短信、彩信等夺取手机系统的控制权,而是更强调芯片级的控制。因此,本次比赛出现了一个新项目:攻破机器的基带。
这样的攻击方式有个好处:更隐蔽,用户的感知更小,不像以前,黑客要“诱使”用户点击浏览器,或扫一个二维码,才能夺得机器的系统权限。“事了拂衣去,深藏功与名”,这样的攻击无声无息。
留给选手的准备时间只有两个月,要从最新的系统上找出连厂商都找不出漏洞,想到利用方式,还要寻找合适的设备,保证破解成功率。
横扫世界顶级 CTF 大赛的队员谢天忆被抽调参加基带破解项目。隔行如隔山,挑战不同的研究项目……呃,怎么着也隔了一堵墙吧。
谢介绍,攻破基带小组(以下简称“基组”)以前没破解过基带,想着要不拆开基带看一下结构,再图大计。赛前一个星期,基组终于找到了称手的测试装备,开心地开始拆基带,搞清楚原理、漏洞和利用方法,测试成功了一次后,以为大功告成,只待去日本打比赛。突然,在赛前两天发现测试装备被搞坏了。
凌晨 3 点发现装备已毁的基组的刘穆清吃了一惊,和另外两名队员一起,乘坐了当天早上 6 点从上海飞往深圳的航班,火急火燎地赶到深圳重新买了一台测试装备。
“时间非常紧,其实当时我们最后的代码还没有完全整合完,刚把设备这个地方弄好,又花了很多时间去调试我们攻击代码,最后大概是在比赛前一个到两个小时才把代码跑通,再测试成功了一次。”刘穆清说。
万万没想到,仅在成功测试一次后,手机就出来捣乱了,新测之后的手机启动了防盗机制,机主站在面都都解不开,24小时内不能清空数据。当时基组只有一台同款比赛项目版本的手机,这意味着,接下来没法用这台手机继续测试了。
“但从跑通的情况看,我们的成功率应该能保证是100%。”陈良说,虽然因为工具失利无法继续测试,捏了一把汗,但是他们成功在比赛现场拿下了这个基带破解的“一血”(该项目第一个破解成功)。
故事二:苹果在凌晨发布新版本“补洞”,选手间还有“撞洞”
了解 PWN 类型黑客比赛的人都知道,主办方在比赛时一定会下载最新的系统版本,供参赛选手破解。但参赛选手赛前准备的漏洞、利用方式是既定的,这意味着,一旦手机厂商在比赛前发布了最新系统版本,“不小心”堵上了选手发现的漏洞,那么“功亏一篑”。
手机厂商和选手之间从来不乏这种“猫捉老鼠”的游戏,有些手机厂商甚至会故意打个措手不及——在比赛开始前几个小时发布新版本。
“在比赛前期,写应用的同学比较辛苦,因为经常会出现版本更新,如果在当天上午出现大版本的更新,会造成我们很多利用的细节和漏洞方面出现问题,需要大家一块通宵去完善这个整个方案。”iOS 项目成员、科恩研究员梁伟说。
在这次比赛中,四家手机厂商都做了“类似”的更新。其他厂商提前两三天,或者一个星期进行了更新,苹果做得比较绝,在比赛当天早上更新了11.1。
iOS 项目成员傅裕斌对黑盟(公众号:黑盟)宅客频道表示:当时时间非常紧。比赛前几天我们有一套方案,但不是特别稳定,那时我们在11.0.2上完成了90%,我们预估,比赛前一天苹果会放11.1,结果那天晚上苹果没有放11.1,我们一直等到凌晨两点,因为苹果没有放11.1,稳妥起见,我们下载了11.0.3,也就是当时的最新版。”
傅裕斌评估了一下,发现系统版本从0.2到0.3,变化不是特别大,可能在一个小时之内就能在最新版本上成功应用,当时他心情不错。
结果在比赛当天凌晨,苹果放11.1,进行了大版本更新。当时科恩团队光在苹果手机上,就有两个项目要打,一个是浏览器,一个是Wi-Fi,要把两套移到最新版上,时间已经不多了。
还好,他们在事前准备了四套漏洞及利用方式并在短暂的时间内针对新版本更新,所以苹果的更新对其影响不大。
但另一个“策略”来了。
比赛一共有五个队伍、五个项目和iOS相关,一旦抽签顺序不佳,科恩战队被安排在最后两个,那么前面的队伍如果使用的漏洞与科恩相同且破解成功,那么科恩即使最后也破解成功,“撞洞”会让他们直接失败。
对手之间也在这样“对抗”,利用比赛顺序和规则,尽量压低对手分数。
“如果我们抽签在前,我们就要花一些时间想,用什么漏洞可以把后面选手的漏洞给撞掉,压低他们的分数,这也是保证我们可以拿到冠军的策略。”陈良说。
结果,他们真的把对手 Wi-Fi方案中非常关键的一个漏洞给撞掉了,导致对手被扣了两分。
傅裕斌表示,几乎所有选手在赛前都会剖析对手,预估对方用的是什么偏门的漏洞,从而准备很多方案。由于主办方不会提前告知前面选手的漏洞情况,只会在其官方推特上发布一些推文,因此后面的选手还要根据蛛丝马迹推测对手此前用了什么漏洞,避免自己“撞洞”。
故事三:抽签顺序是把“双刃剑”
有心人会发现,获得比赛冠军的腾讯科恩战队其实在比赛第一天第一场破解项目——三星Galaxy S8浏览器时遭遇失利。
难道是“马前失蹄”?
故事要从主办方配置最新版本和苹果、安卓的“不同”说起。
陈良介绍,苹果官方网站更新了后,会告诉你11.1已经下发,地球上所有用户可以在同一时间拿到11.1,但是安卓不是,如果发布了一个新版本,会优先选出10% 的全球性用户拿到这个更新,其他用户需要等待一到两个星期,或者两到三个星期。
比赛项目针对的手机厂商谷歌和三星会在比赛前几天临时发一个更新,但不能确保这个更新一定到了主办方的手机。比赛当天虽然要求是最新版本,但科恩战队突然发现,比赛用的三星手机上不是最新版本,主办方还没拿到最新版本,但科恩在准备时用的却是最新版本。
虽然不是新版本,但可以主动下载新的,但这一次,科恩却吃了抽签排在前面的亏。
“等抽签下来,到环境搭建只有半个小时,我们第一个上,让它下载的过程里,只有一刻钟,但他们出现了失误,下错了一个版本,到比赛时我们要求主办方调整,已经没有时间了,比赛开始了就不行。”陈良对黑盟宅客频道说。
冯震进一步解释了“配置错误”:“谷歌下发的安卓有两个版本、四个文件,你可以认为是A1、B1、A2、B2,本来A1和B1是一套,A2和B2是一套,结果他们给我们安装的是 A1 加 B2 。”
陈良认为,理论上也不影响后续的所有选手,因为之后的选手在每一场比赛之前,都有一个半小时的休息时间,在这段时间里,通过充分的沟通就可以把这个版本调整过来。所以,抽签顺序是一把双刃剑,如果抽签抽在前,准备时间不足和配置环境沟通可能造成问题。
[来到采访现场的科恩战队队员:傅裕斌、梁伟、谢天忆、陈良、Marco、刘穆清、冯震]
看到这张照片你可能会吃惊:图中的Marco是做什么研究的?
事实上,Marco是一位来自意大利的科恩实验室的研究员,他是上述基带漏洞的发现者。
Marco 告诉黑盟,本来他在意大利好好做着研究,有一天,在YouTube上看到了陈良的一则演讲视频,深受感动,受到“内心的感召”,一心想加入这个团队,于是小伙子直接联系了某次大会上认识的科恩实验室成员,与陈良建立了联系。
科恩安排 Marco 在中国玩了一天,双方聊得实在很愉快,于是 Marco 就留在了科恩实验室。
编者手记
动笔前,一位同行问我,这次比赛好像没什么新鲜点:你看,都是补洞、撞洞、掉链子什么的,每次比赛不都这样吗?
其实,在与科恩的对话中,他们曾回答比赛之于自己的意义——
陈良:一年没有几次这样的漏洞可以破解,你在探索一个未知世界,当一个完全不可控的东西变得逐渐可控,最后这个东西被你远程攻破,我很享受这样一种体验。
傅裕斌:我觉得主要是兴趣。对这个东西挺感兴趣的,这是从一个什么都没有到最终能够在舞台上呈现出一个非常好的效果的过程,研究整套攻击的流程是一个非常美好的事情。
梁伟:通过打比赛,我学到了很多东西,在整个过程中看到他们一次又一次创造了很多奇迹,我们也会通过努力实现目标,增强自己的信心。现在在做很多事的时都会想,这么难的事我们都做到了,现在的事情也不算什么。
谢天忆:打比赛会学到很多东西,最后这个东西能不能打成,还是有一些运气在里面,通过研究这个东西,总归能学到新的东西,特别当你涉足一个未知领域,比赛可能会强制驱动你去学习,这些东西可能是平时自己想学,但觉得非常痛苦的东西。
冯震:我刚来科恩实验室第一年时,没有参加这种比赛。但是,我们都会转发一些朋友圈消息。当时我转发之后,吴老板(指科恩实验室负责人吴石)在我朋友圈点了个赞,而且对我说——我看好你,那时吴老板直接把我调到了别的组研究浏览器。我当时想,我一定要搞成,不要让老板失望。在某种程度上,吴老板像我的师傅一样,第一次比赛特别紧张,特别害怕撞洞,吴老板告诉我,你不要紧张,就算你成功了,你也只是运气好而已,但既使是失败了,你觉得你明年还会再失败吗?我运气比较好,第一年就成功了。时间久了,现在我更把比赛当成是一个大家享受、团结合作的乐趣,没有人喜欢失败,但是大家更看重的是团队的成功,在这种氛围下,已经超越了个人利益,大家一起努力,才能获得最好的成功。
我想,上述三个故事就是这些感想的承载。只有真的热爱与拼尽全力,才会去挽救赛前“失控”的工具,才会在外界环境不如人意时争分夺秒,面对对手时绞尽脑汁要赢。
他们的对手,从来都是自己,他们要超越的,也是每一次的自己。
这样的故事,我从来不嫌多,你呢?
想了解更多网络安全内容?欢迎关注黑盟旗下微信公众号:宅客频道(letshome)。
黑盟原创文章,未经授权禁止转载。详情见转载须知。