關(guān)于HeartBleed漏洞的原理,另一篇文章已經(jīng)講得很清楚了。本文以講故事為主。

關(guān)于漏洞
筆者是48小時前在硅谷著名的科技八卦新聞集散地”Y Combinator黑客新聞”上看到這個漏洞的。研究了細(xì)節(jié)后,發(fā)現(xiàn)它確實是前無古人,如同筆者在另一篇文章里提到的:以前房子塌了都是因為建筑本身是豆腐渣工程,而這次我們知道原來腳下的地球也可能是豆腐渣工程,沒事會給你來個大地震。
之所以安全界人士不吝自己的夸張之詞來形容這個漏洞,是因為:
1 影響范圍巨大 – 僅僅是受影響的Nginx和Apache就占據(jù)了web server 70%以上的市場。
2 易于利用 – 隨機獲取用戶信息,是攻擊的第一步,也幾乎是最后一步。只要有攻擊工具,無需任何專業(yè)知識就可以完成。
3 難于檢測 – 攻擊所用的心跳包并非是完整的HTTP會話,不會在web server留下日志。
唯一的幸運是,這個漏洞難以讓攻擊者精確瞄準(zhǔn)指定用戶,除非能提前獲知目標(biāo)訪問的確切時間。攻擊的效果就如同對著人群亂開槍。
從微博上得知綠盟和知道創(chuàng)宇等安全公司的大牛們昨夜都是徹夜未眠,幕后還有更多的無名黑客在抓緊一年沒幾次的機會多刷點庫。如同每次大的漏洞爆發(fā)事件一樣,安全人員累覺不愛,小黑客們喜大普奔。
一個漏洞的公開之日就是死亡倒計時的開始。如以前所有的漏洞事件一樣,在它被慢慢補上并淡出人們視線之前,黑客和安全人員都在抓緊最后的時間進(jìn)行賽跑。
北京時間前天晚上,一條大魚出現(xiàn),Yahoo郵箱服務(wù)器被證實有漏洞,凌晨時發(fā)現(xiàn)已被修補,其間不知有多少郵箱躺槍了。而還存在一種更可怕的可能:從泄露出的內(nèi)存數(shù)據(jù),有可能還原出SSL證書的私鑰(雖然目前還沒有人證實能做到這一點),這意味著在他們在付出較大代價得到新簽發(fā)的證書之前,Yahoo網(wǎng)站的SSL加密將失去意義。通俗的說,你將永遠(yuǎn)不知道提交給Yahoo的密碼有沒有在傳輸中被人截獲,甚至無法得知正在訪問的那個網(wǎng)站是不是Yahoo真身。

筆者也認(rèn)為,這種時候就算關(guān)閉SSL服務(wù)也好過放在那讓人攻擊,Yahoo這樹太大了,多拖一分鐘都很危險。
也許,這個操心是多余的。一般漏洞在公開之前都會有一段地下流傳期,有的漏洞在公開前甚至被地下用過一年。這個漏洞又被用過多久?有多少賬號,甚至證書私鑰泄露了?細(xì)思極恐。
關(guān)于攻擊代碼
HeartBleed簡單的利用手法決定了它可以寫腳本來自動化,北京時間昨天凌晨,Mustafa在Github上發(fā)布了批量掃描工具,作為目標(biāo)的1000個大網(wǎng)站中,Yahoo,Sogou等中招。

隨即是更大規(guī)模的掃描,截止到昨天凌晨,Alexa前10000的網(wǎng)站中,1300余個中招。國內(nèi)的360等安全公司也開始推出自己的檢測工具。


群里有人開始求工具,隨即發(fā)現(xiàn)攻擊代碼(也叫exploit)已經(jīng)公布在了著名的exploit發(fā)布網(wǎng)站exploit-db上:


又過了24小時,針對FTP, SMTP和POP3協(xié)議的攻擊代碼也出現(xiàn)了(OpenSSL是一個底層架構(gòu),并非只用于HTTP)。攻擊代碼的放出,意味著“腳本小子”們開始加入這場party,攻擊行為的規(guī)模會迅速擴大,任何網(wǎng)站都不應(yīng)該有僥幸心理。
這個漏洞從知曉原理到寫出攻擊代碼,是有一定門檻的。只有少數(shù)人懂得利用原理的漏洞也許難以造成大的破壞,但傻瓜化利用工具的大量流傳卻可以做到。如同《命令與征服:將軍》游戲里那句著名的吶喊:”AK-47s, for EVERYONE!”
漏洞背后的節(jié)操
這是一場互聯(lián)網(wǎng)上罕見規(guī)模的“流血事件”。主要受害者,不是以往第三方漏洞事件中易受沖擊的中小網(wǎng)站,而是樹大招風(fēng)的大網(wǎng)站。
HeartBleed是由Google的安全人員首先發(fā)現(xiàn)并公布的,這應(yīng)該是一次”負(fù)責(zé)任披露”:即先通知廠商,等待廠商發(fā)布補丁之后再公開。而我們不禁要問:為什么仍然有這么多大網(wǎng)站成了受害者?
這里首先科普一個概念:1 Day攻擊。
一個漏洞的發(fā)補丁之日,就是其公開之時。補丁本身就是分析漏洞的最佳依據(jù),黑客會在第一時間通過補丁前后代碼的比對分析出漏洞原理,并開發(fā)出攻擊代碼。而這時,可能絕大多數(shù)用戶還沒來得及打上補丁,淪為待宰羔羊。這就是所謂的”1 Day攻擊”,前文提到的那些事件,均屬此類。
而這個漏洞,僅僅通知作為開發(fā)廠商的OpenSSL是遠(yuǎn)遠(yuǎn)不夠的,后者發(fā)布補丁后,1 Day攻擊就會開始,漏洞的發(fā)現(xiàn)者沒有理由不知道這點。他知道漏洞的危害,甚至可以很容易掃描到有哪些網(wǎng)站會受沖擊。作為安全責(zé)任最大的一方,他做了一個精美的介紹網(wǎng)站,甚至設(shè)計了漏洞的logo,而我們不知道,他是否也用過同樣的精力通知那些大網(wǎng)站采取臨時措施避免攻擊。

再說說國內(nèi)。
“白帽子”這個稱呼是給最有節(jié)操的黑客的:以研究為目的,發(fā)現(xiàn)漏洞會通報廠商修補,以避免被攻擊者利用造成損失。
烏云(wooyun.org)作為中國最大的白帽子漏洞報告平臺,給曾經(jīng)被黑色產(chǎn)業(yè)充斥的國內(nèi)安全界帶來了一抹亮色。在這次事件中,卻變成了黑客們秀戰(zhàn)果的場所。

網(wǎng)站名,漏洞名俱在,漏洞狀態(tài)中,很多還是“等待廠商處理”,就這樣被公開在烏云上頗有“此地?zé)o銀三百兩”的感覺。本人試著掃描了一個,漏洞還在。這就意味著,無數(shù)瀏覽烏云網(wǎng)的人都可能步其后塵,所謂的漏洞報告反而讓網(wǎng)站成了聚光燈下的獵物。
如下面這張圖,不用說你就知道是哪個網(wǎng)站被搞啦。(時至發(fā)稿,已經(jīng)修補)

節(jié)操呢?
最后,陰謀論一下。
程序員有一句名言:It’s not a bug. It’s a feature. -這不是bug,是功能。
而這句話的黑客版是:It’s not a vulnerability. It’s a backdoor. -這不是漏洞,是后門。
作者天放來自 Trustlook,一家來自硅谷的移動安全創(chuàng)業(yè)公司
