可疑Google招聘邮件激起好奇心,数学家揭露巨大网络安全漏洞!
2012-11-19 17:09

数学家Zachary Harris收到一封来自Google召募人员的奇怪信件,问他是否有意接下网站可靠性工程师的工作。

那封来自Google召募人员的电子邮件中写着:

“很显然你对Linux和撰写程式怀抱着热情。我想知道你是否有开阔的心胸、有信心探索Google提供的机会吗?”

这封信激起Harris的兴趣,不过又使他觉得有点狐疑。这封去年12月寄给他的电子邮件,好像是凭空出现。除此之外,身为数学家的Harris看起来不像是Google这份工作的最佳人选。

所以他开始思考,这封电邮是否是诈骗人假借搜寻龙头名义所发出的网络诈骗信,不过当Harris检查电子邮件的标题资讯时,他觉得这封信看起来是真货。

然后他发现有个地方很奇怪:Google使用弱加密金钥,帮助收件者认证电子邮件是否来自真正的Google企业网域,因此任何破解金钥的人,都可以使用这个金钥将自己伪装成来自Google的寄件者,甚至可以伪装成Google创办人Sergey Brin和Larry Page。

整件事的问题出在Google使用于google.com电子邮件的网域签章邮件识别(DomainKeys Identified Mail,DKIM)金钥,DKIM技术会提供网域一组加密金钥,让网域将发自本身、或是经过本身的电子邮件,加上数位签章,帮收件者验证包含在电子邮件标题资讯里面的网域是否正确,以及验证寄件者是否真的来自标头资讯里面提到的网域。当电子邮件抵达它的目的地时,收信的伺服器会经由发信人的DNS纪录,找出配对的公开金钥,然后核对数位签章的正确性。

为了网络安全性的需要,DKIM标准要求金钥的长度至少要有1024位元。不过Google的金钥长度只有512位元,这是只要利用一点云端运算资源就可以轻易破解的长度。

Harris认为Google不可能会这么粗心大意,所以他认为这封电子邮件一定是一场狡诈的招聘信,看看申请工作的人会不会发现这个漏洞,搞不好召募人员也是这项测试的一环。又或许,整件事的幕后黑手根本就是Google的技术团队,召募人员只是不知不觉变成共犯而已。

Harris对Google的工作没兴趣,不过他打算破解这个金钥,然后假冒成Google两位创办人之一,然后发信给另一位创办人,藉由这样的作法向两位创办人表明他也参与他们的游戏。

Harris说:“我喜欢分解数字。所以我想这么做会很有趣。我真的想要解开他们的谜题,向他们证明我也可以做到。”

在他设计的电子邮件中,Harris插入他个人的网站:

嗨,Larry:

我找到一个还在萌芽阶段的有趣点子:http://www.everythingwiki.net/index.php/What_Zach_wants_regarding_wiki_technology。

如果你没办法使用上面的网址,你可以试试下面这个网址:

http://everythingwiki.sytes.net/index.php/What_Zach_wants_regarding_wiki_technology。

我想我们应该看看Google到底能不能跟这家伙合作。你觉得呢?

Sergey

Harris确认过电子邮件的寄件地址是他的电子邮件帐号,所以Brin和Page可以问他到底是怎么破解他们的谜题的,不过Harris一直没有收到Google创办人的回应。结果,在他送出信件的两天后,他发现Google的加密金钥的长度突然改成2048位元。而且有很多来自Google IP位址的访客突然造访他的网站。

Photo: Brynn Anderson/Wired

Harris心想:“糟了,我找到的是货真价实的漏洞。”

Harris说:“我想我的电子邮件被送到某些有影响力的科技人手里,他们检查了邮件,然后说:‘等一下,这很明显就是封诈骗邮件,这东西到底是怎么混进来的?’他们很显然自己找出原因了。”

Harris开始研究其他的网站,而且发现PayPal、Yahoo、Amazon、eBay、Apple、 Dell、LinkedIn、Twitter、SBCGlobal、US Bank、HP、Match.com和HSBC所使用的DKIM金钥都有同样的问题。你想要冒充jeff.bezos@accounts.amazon.com的名义寄送电子邮件吗?没问题。想诈骗marissa.meyer@yahoo-inc.com吗?再简单不过了。

诈骗邮件是攻击者用来进行网路钓鱼攻击的方法之一,哄骗使用者打开看起来像是PayPal、eBay或是银行正当讯息的恶意电子邮件,让使用者泄漏他们的帐户登录资料。

除此之外,某些近年来最受瞩目、针对Google、RSA等公司进行的攻击,都使用所谓的鱼叉式网路钓鱼攻击(spear-phishing attacks)。鱼叉式网路钓鱼攻击就是针对公司内部的特定人士,送出看起来好像来自可信同事或来源的恶意电子邮件,让收件者造访被入侵的网站,下载恶意程式到电脑里面。诈骗电子邮件实际上是利用公司本身的DKIM金钥,在信件中加上数位签章,让攻击者的攻击,能够通过专为侦查钓鱼攻击所设的筛选器。

在Google自家网域中找到漏洞是一件讽刺的事,因为Google一直一心一意地努力阻挡从其他诈骗网域送到Google使用者手中的诈骗邮件。

一位Google的女性发言人告诉《Wired》,Google非常重视漏洞的问题,而且一发现这个问题就马上着手修补漏洞。她说,Google已经撤销旗下所有被影响的网域的金钥,然后重新核发长度超过1024位元的金钥给这些网域。

Harris发现受影响的网域所使用的金钥长度有三种:384位元、512位元和768位元。

Harris说:“我可以用我的笔记型电脑在24小时内破解384位元金钥。花75美金使用Amazon网路服务就可以在72小时内破解512位元的金钥——而且我真的动手破解了一些金钥。不过像我这样的一般人,没办法单靠自己的资源就破解768位元的金钥,但伊朗政府或拥有足够运算资源的大团体应该可以办得到。”

除了Google之外,他发现eBay、Yahoo、Twitter和Amazon都使用512位元金钥,PayPal、LinkedIn、US Bank和HSBC则是使用768位元金钥。

Harris说:“Paypal和银行使用768位元的金钥是一件很好的事。不过对PayPal那些经常被当作钓鱼攻击掩护的网站来说,768位元的长度还是不够用,他们真的应该要使用1024位元的金钥。他们已经注意到这件事,还说他们真的早就该使用强一点的金钥。”

Harris在过去几个月里所接触的大部分公司都已经修复它们的金钥,不过他发现有些公司还是拖拖拉拉。在今年8月通知美国卡内基美隆大学(Carnegie Mellon University)的电脑紧急应变小组协调中心(CERT Coordination Center)这个漏洞之后,Harris决定要公开警告其他的网域,提醒它们检查自己的DKIM金钥。

CERT 的漏洞分析师Michael Orlando表示,他的团队已经发布相关讯息,让更多人知道这件事。

Harris表示,修复还算是件简单的事,公司只要产生长度较长的新金钥,然后把新金钥放在他们的DNS纪录里面就好,不过他们得记得撤销旧金钥。

Harris说:“只要旧金钥还在DNS纪录里面,即使你不使用旧金钥,攻击者还是会使用它。”

Harris觉得问题出在很多公司一旦设定好金钥之后,就忘记它们的存在,不管先进的加密机制让他们的金钥有多么过时。

Harris说:“使用加密工具的人要了解,本机组态和软体更新一样都需要维护。1998年,破解512位元的金钥是学术上的突破,需要很多人一起行动。现在,像我这样的小老头可以自行使用Amazon网路服务,在72小时内破解512位元的金钥。加密技术一直不断地进步,而且跟其他东西一样一直在突破。你不能只安装私密金钥,或是选用换汤不换药的演算法,然后期待它会永远管用。”

不过Harris表示,问题不只是跟寄件者网域有关,他发现当收件者的网域接收来自清楚地标明为测试的DKIM金钥时,也会制造漏洞。某些情况下,寄件者网域在设定系统时,会产生测试金钥,而且从来没有撤销这些金钥。Harris发现,即使收件者网域看到某些信件的金钥被清楚标明为测试金钥,还是会把该封电子邮件视为核对过的信件,而不会把它认成没有数位签章的信件,但其实他们应该要这么做。

Harris说:“所以问题出在两边,寄件者在测试结束之后把这些测试金钥一直留在DNS纪录里面,然后核对者忽略测试标记的存在。”

Harris不是网络安全性研究人员,而且他在开始研究那封Google电子邮件的真伪之前也不知道DKIM是什么。

Harris说:“我不知道DKIM标头还能搅和进这件事,显然具有足够技术背景的人,能够边做边搞清楚这件事。”





via i黑马 BY wired