纪实|孤胆英雄Project Zero:Google精英黑客团队如何应战全球数字威胁
今年2月份的一个周五下午,留着褐色平头的安全研究员Tavis Ormandy正在加州山景城Google总部的一张办公桌前进行着常规的代码测试,希望能通过测试发现软件可能存在的问题。整个过程进行的十分顺利——直到他在数据集中发现了一些问题。这太奇怪了,他自忖着。他发现的这个问题和以往受到损坏的数据并不一样,而且相应的数据配置也跟预期的相去甚远——数据集中到处散落着内存块。于是,他进一步对这个数据集进行了挖掘。
在收集了足够的信息之后,Ormandy把这件事告诉了其他的安全研究员。这个专门负责Google Project Zero的团队很快就意识到了这个问题到底是什么:一家位于旧金山的名为Cloudflare的公司正在发生大规模的数据泄露。Cloudflare在绝大部分时间中能够处理全球十分之一的互联网流量,而且鲜少出现故障。但Ormandy发现,这家公司的服务器在网络中泄露了大量用户的私人信息,而且这种信息的泄露情况已经持续了好几个月了。
Ormandy并不认识Cloudflare的内部人员,也不想冒然在三天小长假的前一天以电话的方式告知。于是,他就采用了一种所能想到的最好的办法:将这个信息发布在Twitter上,至少他还有成千上万的粉丝能够看到这条消息。
“请Cloudflare的安全人员尽快联系我,十万火急!”
这条推文是在美国西部时间下午5:11发布的。
Ormandy并没有“@”Cloudflare的官方Twitter——他也不需要。因为Ormandy在这个热心的信息安全社群里有着很高的声望,所以在他点击“发送”按键之后的15分钟内,所有需要知道这条信息的人就都已经看到了。
在当地时间凌晨1:26,Cloudflare的首席技术官John Graham-Cumming插在床头充电的手机把他从睡梦中吵醒了。他揉着眼睛迷迷糊糊的拿起手机,屏幕上显示有一个未接来电——来电者是少数几个可以在午夜之后打电话给他的人之一。这位CTO赶紧给这个同事发了一条短信,想知道到底发生了什么。
这个同事几乎立刻就回复了短信:“非常严重的安全问题。”
Graham-Cumming看到后立即坐了起来,回复道:“我现在马上上网看。”
紧接着,Graham-Cumming起身下床,下楼到地下室里拿起了专门应对这种情况的突发事件袋——里面装着充电器、耳机和多余的电池。他启动了笔记本电脑,并迅速和远在加州Cloudflare总部的同事一起加入到Google Hangout(视频聊天应用)中。
安全团队向Graham-Cumming简要说明了事态目前的发展情况:Google的Project Zero团队在Cloudflare的后台发现了一个漏洞——很糟糕的那种。Cloudflare的服务器能够帮助600多万用户网站正常运营,其中包括FBI、Nasdaq和Reddit等知名网站。而现在,这个服务器正在发生信息泄露。这也就是说,在某些情况下,任何能够登录Cloudflare所支持的网站的人都可以获取用户在其他网站——如Uber、1Password、OKCupid和Fitbit——的用户名密码、Cookie、私人信息等详细信息。
对于稍微懂点行的人来说,这些个人信息简直可以说唾手可得。更糟糕的是,搜索引擎和其他的网络爬虫将这些泄露的信息存储在缓存里已长达数月之久,所以单纯地修复这个漏洞并不能彻底的解决这个问题。
“我把这次事件比作石油泄漏,”Graham-Cumming says说道,“泄露石油的洞口轻易就能堵住,但你还有一大片的海床需要清理。”
很快,一支由安全主管Marc Rogers(他同时也担任美剧《黑客军团》的顾问)负责、Cloudflare的工程师组成的团队开始着手解决这个问题。不到一个小时,他们就推出了用以修复全球范围内漏洞的升级包。紧接着,几小时后,这群技术人员又对导致这个漏洞的功能进行了修复。在Ormandy发布推文7个小时候,Cloudflare的工程师设法找到了几家主要引擎公司——Google、Microsoft和Yahoo,清除了他们网页中的缓存数据。
这个漫长的周末才刚刚开始,他们还需要在剩下的时间里评估此次泄露的数据量、程度以及涉及信息。
一开始,Cloudflare团队的反应速度让Google的Project Zero拍手称赞,而且Google团队也知道Clouflare在处理安全问题上一向秉持着公开透明的原则。但是,两支团队在之后就什么时候向公众宣布泄露信息的具体内容进行讨论时产生了分歧。经过协商,两家公司暂定于2月21日周二宣布这一消息。然而,随着时间的临近,Cloudflare又称需要更多的时间来完成善后工作,于是,周二推到周三,周三又推到周四。最后,Google方面下达了“最后通牒”:无论Cloudflare有没有完成评估、有没有将泄露信息从网页缓存中彻底清理干净,两家公司必须在周四下午正式公布此次信息泄露——Ormandy将其称为“云出血”(Cloudbleed)——的细节。
两家公司在2月23日正式发布了消息。紧随其后的是长达一周的网络恐慌。
哪怕你不是Project Zero的成员,你应该都知道网络安全危机正在全球范围内不断加剧。几乎所有的公司都变身成为了科技公司,这也让黑客活动成为越来越稀松平常的事情,窃取公司账户、监视内部人员、干扰选举等事件接连上演。还有这样给我们敲响警钟的头条新闻:超过10亿的Yahoo账户遭到泄露;数千万美元通过SWIFT的金融网络被盗;2016年美国总统大选之前,民主党全国委员会成员的无数私人邮件遭到曝光。
据Identity Theft Resource Center统计,美国公司和政府机构在2016年遭遇的安全危机事件比2015年多了40%——这还是只是保守估计。与此同时,研究机构Ponemon Institute开展的一项由IBM资助的研究显示,数据外泄所耗费的平均成本高达360万美元。
无论源于程序员的失误还是某国黑客的攻击,数据泄露已然成为了一种新常态。公司高管也逐渐意识到,真正合算的方法是在问题变得更严重、更复杂之前,将编码问题的萌芽扼杀在摇篮里。
但真实情况并没有这么简单。很多公司要么不重视安全问题,要么把它当做产品开发和正常交货的阻碍。据今年早些时候被CA Technologies收购的一家应用程序安全公司Veracode称,在接受调查的500名IT经理中,有83%承认他们在发布代码之前根本没有测试是否存在漏洞或者解决安全问题。另外,网络安全的相关人才也非常紧缺。据Cisco估计,全球有100万个安全岗位仍处空缺,Symantec也预测,到了2019年,这一数据将增长至150万。还有一些人估计,这一数据到2021年会增至350万。
即使公司拥有足够的资金、主动性和声望来寻求恰当的安全人员,也不能完全避免其后台产生有缺陷的代码。即便是质量最好的程序和最敏捷的开发过程都不能找到并消除系统中的每一个漏洞。
包括Microsoft和Apple在内的很多公司都有自己的内部安全研究团队来对自己的软件进行安全性核查,但是鲜有团队能够关注其他公司的软件是否存在安全问题。这也是Google与众不同的原因。对于Ormandy和其他十来个组成Google Project Zero的顶尖电脑高手来说,他们的权限并没有受到制约——毕竟任何与互联网有关的东西对大家来说都是公平的。监管网络空间不仅对人类有好处,而且对商业活动大有裨益。
Google在2014年正式成立了Project Zero,但这个项目组的真正起源应该要追溯到5年前。在遇到紧急情况时,大多数公司都会以非常认真的态度对待安全问题。而当时的Google所遭遇的紧急事件正是Operation Aurora。
2009年,一个与中国政府有关的网络间谍组织入侵了Google和其他一些科技巨头的服务器,窃取了他们的知识产权,并试图对他们的用户进行监视。这场信息掠夺激怒了Google的高管,以至于公司最终退出了中国这个世界上最大的市场。
这一事件尤其让Google的联合创始人Sergey Brin感到十分不安。计算机取证公司和调查人员认定,这次黑客入侵事件,并不是通过Google自己的软件,而是由Microsoft的浏览器Internet Explorer 6的一个未修护的漏洞造成的。Sergey Brin不禁自问:为什么Google的安全要依赖于其他公司的产品?
在之后的几个月里,Google不断施加压力,要求竞争对手修复其软件代码中的漏洞。Google与其他同行之间的这场没有硝烟的战争很快就变成了传奇故事。而无疑,“漏洞猎手”Tavis Ormandy正式这其中的核心人物,他以一种“不厚道”的漏洞修复方式而闻名于同行之中。
例如,在Operation Aurora出现后不久,Ormandy就披露了他几个月前在Microsoft的Windows操作系统中发现的一个漏洞,攻击者可以利用它入侵人们的个人电脑。在经历长达七个月的漫长等待后,他还是没有等来Microsoft发布的补丁,于是Ormandy决定自己出手来解决问题。2010年1月,Ormandy在一个“全面披露”的邮件列表中公布了这个漏洞的详细信息,从而让安全研究员能够知晓这个新的漏洞以及可能的攻击方法。他的想法是:如果Microsoft不能及时解决这个问题,人们也至少要对这个问题有所了解,这样他们就可以自主探索应对方法了。几个月后,他对所发现的Oracle的Java软件和另一个Windows系统的漏洞采取了同样的方法——而对于后者,Ormandy仅在向Microsoft告知5天后就采取了行动。
有批评者谴责了Ormandy的这一行为,称这对人们的安全造成了危害(Apple、Microsoft和Oracle并未对此发表评论)。两位来自Verizon的安全专家在其公司博客中称这种采用“全面披露”方式的研究人员是“自恋又内心脆弱的皮条客”。Ormandy并没有在意这条具有攻击性的指责——2013年,他再次选择在Microsoft提供解决方案之间公布了Windows的系统漏洞。他认为,如果没有一个研究人员用这样公开披露的方式进行威胁,公司很可能就不会及时对漏洞进行修复。他们会一直隐瞒下去,即使代价是让所有人都处于危险之中。
2014年,Google悄悄地开始正式创建Project Zero(这个名字暗指“零日攻击”,是安全专员用来描述公司发现未知漏洞却没有时间做准备来应对它的一个术语)。公司设立了一整套协议,并让Google Chrome前安全主管Chris Evans担任负责人。之后,Evans开始招募Google员工和其他人员加入团队。
他签约雇佣了当时在瑞士的安全研究员Ian Beer,他是个英国人,曾对Apple的编码错误表现出强烈的兴趣。Evans还邀请了另一名英国人Ormandy,他因与Microsoft的小冲突而闻名。来自新西兰的Ben Hawkes也加入了团队,他发现了Adobe Flash和Microsoft Office的漏洞。另外,Evans还招募了George Hotz来做实习生,他可能是团队里最年轻的,但是本领却不小:在当年的黑客竞赛中,George Hotz成功入侵了Google Chrome浏览器,获得了15万美元的奖金。
2014年4月,Project Zero完成了成立以来的第一项任务:Apple在一份简要报告中称赞了Google的一位研究人员,他发现了一个可让黑客操控Safari浏览器的漏洞。这张感谢字条是写给“Google Project Zero的Ian Beer”的。
在Twitter上的信息安全社区中,人们都开始讨论这是一个什么样的神秘组织。2014年4月24日,总部位于纽约的网络安全咨询公司Trail of Bits的联合创始人兼CEO Dan Guido在Twitter上问道:“Google Project Zero是什么?”美国民权同盟(American Civil Liberties Union)的首席技术专家Chris Soghoian也提到:“Apple的安全更新日志上竟然感谢了一位Google Project Zero的神秘员工。”
很快,更多的赞誉声出现了。5月份,Apple感谢Beer发现了OS X操作系统中的几处漏洞。一个月后,Microsoft修复了一个可能击溃其恶意软件保护程序的漏洞,并在报告中提到“Google Project Zero的Tavis Ormandy为我们提供了帮助”。
这个团队在那些关注安全问题的人群当中引起了相当大的反响。直到这时,Evans才终于在公司网站的一篇博文中公开宣布了这个团队的存在。“我们在使用网络的过程中,不应该再担心犯罪分子或某国的黑客利用软件漏洞攻击电脑、窃取机密文件或者监视通讯。”Evans以最近一些针对企业和人权活动人士的间谍活动进行了举例说明,“这些行为必须停止。”
Evans在一年之后离开了这个团队并加入了Tesla,他现在是HackerOne(一个安全漏洞披露平台)的顾问。(Project Zero现在的负责人是Hawkes。)即使在今天,Evans在描述这个团队的起源时仍然十分谨慎:“Project Zero经过了多年午餐会的讨论,和多年对黑客攻击的研究才最终确立的。我们希望创造出专门针对高级网络攻击的研究工作,来吸引世界上优秀的人才进入这个领域发光发热。”
这个挑战比看上去还要困难。金钱诱使世界上很多优秀的黑客在背地里进行工作,而政府和其他组织也愿意通过经纪人向这些黑客支付高额的薪金以获取他们的成果。Evans说,如果这种研究工作迟迟不能推出,那人们将长久生活在危机四伏的网络世界中。
在Google的Project Zero正式成立后的3年里,黑客精英小队逐渐建立起了声誉——毕竟他们是这个星球上最有能力的bug终结者。一般的消费者不太可能知晓他们的姓名——James Forshaw、Natalie Silvanovich和Gal Beniamini,正是这群人对我们的智能设备和数字生活中可能出现的漏洞进行了严防死守,全世界都欠他们一句“谢谢”。这个团队主要负责对其他公司的产品进行改进,他们修复了1000多个包括操作系统、杀毒软件、密码管理器、开源代码库以及其他软件中的漏洞。迄今为止,Project Zero已经发布了70多篇有关其工作的博文,其中有一些堪称当今网络上最优秀的公共安全调研报告。
该团队的工作间接惠及了Google的主要业务:在线广告。保护网络用户不受威胁就相当于在保护公司为用户提供服务的能力。Project Zero所做的工作向供应商施加了很大的压力,这也迫使他们修复那些可能导致Google产品崩溃的安全漏洞。
Dino Dai Zovi是一位网络安全企业家、著名的Apple黑客,也曾担任Square移动安全部的负责人,他说:“这么说可能不太恰当,但是Project Zero就像牧羊犬一样。它并不是狼,它会采取更为仁慈的行为,但仍然能够把羊群赶回羊圈中。”
4月份,Project Zero的三名成员前往迈阿密参加潜入安全会议(Infiltrate security conference),这场大会的焦点完全集中在黑客攻击方面。
在一个依靠日光浴和跑车发展起来的城市,这群计算机专家的出现似乎有些突兀。Hawkes、Ormandy以及Project Zero的另一位德国安全研究员Thomas Dullien(他还有一个广为人知的黑客绰号“Halvar Flake”)聚集在Fontainebleau酒店的草坪上,在沙沙作响的棕榈树下啜饮着Mojito(一种鸡尾酒)。当所有参会者围坐在桌边的时候,他们与大家探讨时事和最喜欢的科幻故事,以及如果不采取行动来打击黑客将会有多么糟糕。
期间,Ormandy擦拭了一下Morgan Marquis-Boire(前Google员工、著名的恶意软件研究员,目前在eBay创始人Pierre Omidyar创建的另一家媒体公司First Look Media中担任安全部负责人)落在桌上的一副范思哲墨镜,然后戴上了它。当时阳光已经没有那么刺眼了,这就让Ormandy看上去有点滑稽。
这场会议的组织者Dave Aitel以前是美国国安局的黑客,他经营着一家具有攻击性的黑客商店,Immunity。在看到上面这一幕时,他突然拿出手机拍了一张照片。Ormandy此时正把双手摆出了一个重金属音乐迷式的“号角”造型。“这就是Tavis Ormandy:上线的时候是一个精明的、爱与人较劲的批评家;离线之后却是一个亲切友好的极客,还喜欢捉弄别人。”
“人们会给你很多好处的,Tavis,”Aitel说道,紧接着又提到Ormandy必须在督促供应商修复代码时可能会遇到的不愉快,“你知道,你不是非得面对这些。”Aitel顽皮的笑着,开玩笑似的想要说服Ormandy加入黑客组织的“黑暗面”,即找到系统漏洞然后高价出售,而不是好心地向每家公司通报发现的bug。
听了Aitel的提议后,Ormandy耸耸肩表示不屑,笑了笑,然后把杯子放回到桌子上。他也许是个捣蛋鬼,但是他的目标很纯粹。
尽管Project Zero有着良好的声誉,但由于它高尚的理想同复杂的现实世界是相互抵触的,因此它不得不采取更加灵活的方式处理工作。最初,这个团队严格恪守90天的披露期限,但是有几次Project Zero在被发现漏洞的公司定好发布补丁的日子之前就进行了披露,比如Microsoft和它著名的“周二补丁”,引发了众多公司的强烈反对。那之后,这个团队把披露期限延长了14天。
Katie Moussouris(她帮助创立了Microsoft的信息披露政策,现在经营者自己的漏洞悬赏咨询公司,Luta Security)表示,Project Zero在科技领域中有一些非常明确的信息披露政策,这是件好事。许多公司在关于如何汇报后台漏洞方面没有完善的规范,或者缺少对于安全研究员如何以及在何时公开所发现的漏洞的明文规定。
而且,虽然Project Zero对于那些反应缓慢的公司毫不留情面,但在遇到能够迅速采取行动的企业时也不吝赞扬。今年早些时候,Ormandy在Twitter上说,他和同事Natalie Silvanovich在Windows系统中发现了迄今最为严重的远程代码漏洞,这意味着所有基于Windows系统的程序都可以被远程操控。他写道:“这太糟糕了。”这两位安全研究员立刻同Microsoft共同合作修复了漏洞。Ormandy在推文中表示:“这次Microsoft团队的反应速度非常迅速,值得给他们点赞!”显然,只要你想改善自己,永远都不会太迟。
科技公司有时可能会因为Project Zero这种处理问题的魄力而备受困扰,但有这样的黑客能够公然抵制通过不合法的网络活动而牟利的行为,他们应该感到欣慰。在黑客入侵后的几年里,市场因Project Zero披露的漏洞而得以迅速发展。政府、情报机构、犯罪分子——每个人都想通过高价获得Project Zero所发现的漏洞。越来越多的软件公司愿意采用悬赏方式来解决自己的安全问题,乐意为研究人员的时间、精力和专业知识买单。但是,悬赏的奖金再高也比不过“做坏事”获得的报酬。
知名安全专家、IBM高管Bruce Schneier表示:“无论Google为发现bug的人提供多少奖金,中国政府都会支付比它更高的报酬。”
当时在Fontainebleau开会的时候,Dullien曾告诉我们,他对于黑客技术如此大的需求量而感到惊讶。曾经在阴暗的地下室里当做业余爱好的工作现在却成了政府大楼里的一种职业。
“这种业余爱好就跟嘻哈、霹雳舞。滑板或者涂鸦一样,属于90年代的亚文化,”他说道,“只不过碰巧军方发现了它的用武之地。”
据Cloudflare的联合创始人兼CEO Matthew Prince表示,Google Project Zero发现的漏洞一开始让公司损失了一个月的增长额。但是,挫折只是暂时的,Cloudflare在此次事件中坚持公开透明的做法也帮助公司吸引了新的业务。
Prince很遗憾公司没能在和Google共同发布初期调查结果之前向自己的客户告知这次云出血的详细信息。他希望用户能够从公司这里而不是新闻报道中得知这样的消息。即便如此,Prince也承认Project Zero确定的披露时间是非常正确和及时的。据他所知,目前还没有用户发现任何与此次信息泄露相关的重大损失。他们最初最为担心的用户名密码、信用卡号或医疗记录等信息都没有遭到滥用。
Prince说,Cloudflare已经开始实施新的管控措施,以防止类似事件再次发生。同时,公司也对其所有代码进行安全核查,还聘请了外部测试人员来进行二次审查。它还开发了一个更为复杂的系统来识别常见的软件崩溃,这也就意味着公司能够进及时发现安全漏洞。
Prince在谈到这次数据泄露及善后事宜时说道:“就因为这14天,我的白头发比以前更多了,甚至寿命都可能要减少一岁。谢天谢地,幸好是Tavis和他的团队发现了这个漏洞,而不是那些疯狂的黑客。”
当然,Prince永远无法排除某些人或组织泄露数据副本的可能性。这也是Project Zero想要强调的:这个团队的成员每时每刻都在同那些在暗地里搞小动作的“研究人员”作斗争。无论你能不能发现他们,这些魔鬼就在暗地里盯着自己的猎物,不知道什么时候就会出击。