这不是一个顺风顺水的夺冠故事。
甚至,腾讯科恩在移动 Pwn2Own 上参赛的第一个项目就遭失利,第一天赛事还未结束,宅客频道见到的报道中,就有其第一个项目“失败”和竞争对手“获胜”的惨烈对比照。
但赛况跌宕起伏,峰回路转。
在移动 Pwn2Own 上,腾讯安全科恩战队“出师不利”,但扭转态势,拿下了总积分 44 分,获得了总冠军 “Master of Pwn(世界破解大师)”的称号。
在这场战役中,这群黑客实现了苹果 iOS 11.1 最新操作系统下 WiFi 和Safari 浏览器的破解,并完成手机重启后仍然保持攻破以及提取内核权限等高级别破解操作,获得赛事主办方的额外奖励。此外,科恩战队还选择挑战了本届赛事公认最难单项,利用堆栈溢出攻破基带。
通向冠军的道路上充满荆棘,童话故事真的不是骗人的。
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,变化不是特别大,可能在一个小时之内就能在最新版本上成功应用,当时他心情不错。