北京时间2015年3月19日,第九届Pwn2Own黑客大赛在加拿大温哥华拉开帷幕。由于6个比赛项目中IE、Adobe Flash、Adobe Reader的难度大幅提升,被媒体冠以“史上最难的一次黑客大赛”的称号。开赛仅6小时,中国安全研究团队Keen Team率先攻破Adobe Flash并取得系统最高权限,紧接着拿下Adobe Reader同样取得了系统最高权限,实现在该项赛事上的三连冠。这也是Keen Team三年来夺得的第五个冠军。
4月23号,Keen Team攻破Adobe Flash的主攻手Peter Hlavaty带着《代码保护 [案例:内核]》登上了QCon2015(北京)全球软件开发者大会的讲台,以下是我们对Peter和Keen Team参加Pwn2Own的采访。
InfoQ: Keen Team何时萌生参加Pwn2Own这个想法?为什么没有选择其他黑客大赛?
KeenTeam:2013年我们第一次参加了在东京举行的Mobile Pwn2Own 2013,主要是展示自己的研究实力、将年轻研究员推向世界。选择Pwn2Own因为它的历史和地位都是业界第一。
InfoQ:参加Pwn2Own的流程大概是怎样的?亚洲团队在Pwn2Own上的整体表现如何?
KeenTeam:需要先在官网注册报名,缴纳每人上万元注册费。Pwn2Own以Chrome、IE、Safari、Firefox等常见浏览器以及IE的Flash和PDF插件作为主要攻击目标。
今年的奖金如下:
Google Chrome: 7.5 万美元
Microsoft IE 11:6.5 万美元
Adobe Reader(运行于 IE11 环境):6 万美元
Adobe Flash(运行于 IE11 环境):6 万美元
Mozilla Firefox:3 万美元本届同项目的不同队伍根据抽签决定上场顺序,只有首先攻破的才能获得Full Prize,第二个攻破的只能获得Half Prize,如果获得Windows下的系统权限,还可以额外获得2.5万美元奖金[注]。
在Pwn2Own2015之前,除了Keen Team没有其他亚洲团队参赛。今年有三支亚洲队伍参赛,分别是Keen Team、360Vulcan、以及以个人身份参赛的韩国人。其中,Keen Team 分别攻破Flash和Adobe Reader及2个系统权限,获得总计14万美元奖金;360Vulcan攻破IE获得3.5万美元奖金,韩国人Jung Hoon Lee攻破了Chrome及系统权限、IE、Safari,获得总计22.5万美元奖金。在此前的2届Pwn2Own中,Keen Team共获得3个冠军,加上本届比赛一共5次夺魁。
InfoQ:历年大赛中爆出的漏洞最后会流向哪里?厂商对这类漏洞的态度一般是怎样的?能举例说明一下吗?
KeenTeam:漏洞会在现场提交给相关厂商,厂商会在最快时间内处理漏洞并修复,保护广大用户利益。根据厂商内部的工作流程,最快的在一个月内就能处理完毕,比如本次PwnOwn上爆出的Adobe Flash漏洞。在厂商发布漏洞补丁之前,所有相关信息都会严格保密。
InfoQ:历届Pwn2Own获奖名单中个人身份占据了一半,这个现象很有意思。为什么会这样?
KeenTeam:Pwn2Own是对同目标的比拼而非像CTF一样对抗的性质,个人参赛者可以凭借资深的积累和钻研找到攻破的方案。但是随着Pwn2Own比赛规则的变化,团队协作无疑有其很大的优势。
InfoQ:2012年规则的改变造成Charlie Miller退赛,2015年规则再变Chaouki Bekrar退赛,Keen Team是如何看待和应对规则变化的?
KeenTeam:Pwn2Own比赛整体趋势是越来越难的,规则的变化会带来准备的难度。要做的就是根据比赛规则的变化,调整准备方案。
InfoQ:从历年来的比赛项目来看分了3个层级,操作系统/手机操作系统(Windows、Mac OS、Ubuntu/BlackberryOS、Symbian、Windows Phone、iOS、Android)、浏览器(Internet Explorer、Chrome、Firefox、Safari)、浏览器插件(Quicktime、Flash、Adobe Reader)。从技术层面来说,哪个层级的产品更容易攻破?能简单描述一下各个比赛项目的区别吗?
KeenTeam:Pwn2Own以Chrome、IE、Safari、Firefox等常见浏览器以及IE的Flash和PDF插件作为主要攻击目标,参赛的黑客们通常会以参赛项目的奖金额以及获取权限的程度,也就是最后能够拿到多少奖金,来作为最终评判赛事难易度的一个可量化衡量标准。
规则规定,参赛黑客需要发现并攻破上述软件及其对应操作系统的漏洞,获胜者将会获得不同层次的奖金,攻破Chrome最难,获得的基础奖金最高。其次就是攻破IE浏览器及其Flash和PDF插件,三个目标都运行在64位下并且打开了EPM:
Microsoft Internet Explorer 11 (64-bit with EPM-enabled)
Adobe Reader running in Internet Explorer 11 (64-bit with EPM-enabled)
Adobe Flash (64-bit) running in Internet Explorer 11 (64-bit with EPM-enabled)所以在Chrome之后,这三项的基础难度最高。Firefox 因为是上面这些挑战中唯一没有沙箱的,所以奖金最少。而在此基础上,如果参赛者攻破底层操作系统获得系统级的更高权限,可以每个项目额外获得多达2.5万美元的奖金。
InfoQ:Peter Hlavaty是怎样加入Keen Team的?Keen Team的目前的组织架构是怎样的?
Peter:去年我在Syscan会议上碰到了Keen的Samuel和Daniel。之前我在Pwn2Own上听到Keen Team时,以为这只是几个人组成的小团队。经过交谈,我才发现原来他们是一个公司!而且他们的思考方式、工作目标以及研究的方向都是我多年以来追求的。对我来说,这是一个很好的机会。我和我的太太Julia热爱和练习中国武术已经有很多年。在过去三年里我们每年都来中国旅游一个月,了解中国文化,并学习武术。Keen团队的工作地点在上海,而我们很喜欢的一个武术运动员彭傲枫(他现在是我们的师傅!)也是在上海。
…就这样,我们来到了这里。现在我在这个出色的团队里工作,参加各种非常好的培训,享受这里精彩的生活。
InfoQ:Peter Hlavaty能谈谈你的DBI framework for fuzzing和Mini Hyper Visor这两个项目吗?
Peter:DBI Fuzz Framework 主要基于虚拟化技术,可以在对用户模式应用程序以及内核模式驱动程序进行模糊测试时提供追踪功能。这个框架与其他类似技术不一样的地方在于它不采用侵入性的方法来追踪代码,因此不会影响目标的运行状态。此外,这个框架可以对感兴趣的地方进行回调,而且具备在分页表的级别上对内存进行操作的能力。
InfoQ:本次参加QCon2015北京站的演讲主题是内核代码保护,能简单解释下为什么选择这样一个话题吗?
Peter:内核是操作系统最关键的部分。内核代码的一个bug可以突破所有防护机制并控制整个系统。众所周知,内核的开发人员一般都是顶级程序员,但是即使是顶级程序员有时候也可能缺少对安全的理解和经验。通过介绍内核编程的安全性,我们希望可以为未来的内核开发提供安全保护。