關於Email Server 的漏洞, 一篇很好的報道!! 數學家Zach Harris。Photo: Brynn Anderson/Wired
數學家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金鑰。
[…]