漏洞簡史:為什么一個漏洞值100萬美金

2015-11-05 21:10:00 來源:極客公園 作者:佚名 人氣: 次閱讀 93 條評論

黑客這個詞很容易被誤解。它翻譯自「Hacker」,最早將自己視為黑客的一批人,是20世紀60年代麻省理工學(xué)院搞軟件開發(fā)和電子工程學(xué)的學(xué)生。他們都很聰明,對已有技術(shù)和規(guī)...

網(wǎng)站漏洞 安全漏洞 黑客攻擊

黑客這個詞很容易被誤解。

它翻譯自「Hacker」,最早將自己視為黑客的一批人,是 20 世紀 60 年代麻省理工學(xué)院搞軟件開發(fā)和電子工程學(xué)的學(xué)生。他們都很聰明,對已有技術(shù)和規(guī)則不屑一顧,惡作劇和電話線路入侵是黑客文化的一部分。蘋果公司的兩名創(chuàng)始人史蒂夫·沃茲尼亞克和史蒂夫·喬布斯在 80 年代也是兩位電話線路入侵者,可以說,家釀計算機俱樂部和之后出現(xiàn)的家用電腦其實都算是黑客文化的產(chǎn)物。

轉(zhuǎn)變發(fā)生在 1983 年,一群年輕黑客非法入侵公司、政府和學(xué)術(shù)機構(gòu),并開始試探性地進入互聯(lián)網(wǎng)先驅(qū) ARPA 網(wǎng),他們被捕后美國新聞界想不出一個名字去稱呼他們,于是就用他們自稱的黑客。

從那一刻起,黑客一詞就包含兩種含義:一種指靠自身努力不斷進取的天才程序員,另一種是電腦入侵者。隨著計算機和互聯(lián)網(wǎng)的成熟,防護計算機可以賺錢,于是一批人開始從事網(wǎng)絡(luò)安全工作,并稱自己為白帽黑客。白帽指過去牛仔片中那些彪悍的男主角,這些人開始將電腦技能用在真理和正義的一方。(以上關(guān)于黑客歷史的內(nèi)容摘自《掘金黑客》一書。)

tombkeeper 是中國白帽黑客中一位響當(dāng)當(dāng)?shù)娜宋?,多?shù)時候人們叫他 TK,真名是于旸,現(xiàn)在是騰訊玄武實驗室負責(zé)人。他在互聯(lián)網(wǎng)安全峰會 CSS 上講了漏洞的歷史:漏洞很久以前就被發(fā)現(xiàn)并被利用,但安全人員真正反擊回去是 20 年前。

網(wǎng)站漏洞 安全漏洞 黑客攻擊

以下根據(jù)他的現(xiàn)場演講編輯:

冷戰(zhàn)時的計算機入侵

1986 年,克格勃的一個人從一所西德學(xué)校通過德意志聯(lián)邦郵局再通過一條衛(wèi)星線路接入了美國國家實驗室,這個實驗室從事與核技術(shù)相關(guān)的研究,克格勃的這個攻擊者接入實驗室后利用了一個 Emacs 的漏洞,獲得了主機權(quán)限,然后在機器中搜尋核技術(shù)相關(guān)資料。

這聽上去仿佛是電影中的場景,而且你絕對不會想象這發(fā)生在 1986 年。這個攻擊者被抓住的原因很有意思,因為在 1986 年的時候,計算機還是那種大型機,每一個人按照使用時間付費,最后管理這個大型機的科學(xué)家,在給他的領(lǐng)導(dǎo)報帳時候發(fā)現(xiàn)有 0.75 美元的使用費對不上,最后查帳把這個攻擊者查出來了。

有人很早就意識到計算機安全問題,但沒有引起足夠重視

再把時間往回推,在 1972 年,James P Aederson 說了這么一段話:

函數(shù)的代碼沒有正確地檢查源地址和目的地址,允許用戶覆蓋部分系統(tǒng)數(shù)據(jù)。這可能被用來向系統(tǒng)中注入代碼,從而使用戶獲得機器的控制權(quán)。

——《計算機安全技術(shù)規(guī)劃研究》James P. Anderson

非常準確而清晰的描繪了內(nèi)存破壞類的成因及危害。我們今天談?wù)摵陀嬎銠C安全有關(guān)的各種各樣的概念,在 1972 年的這份規(guī)劃當(dāng)中已經(jīng)寫的非常清晰了。

但意識到安全問題和讓別人感知風(fēng)險之間有很大差距,他當(dāng)時的規(guī)劃沒有引起足夠的重視。

病毒攻擊來臨時,人們對此毫無概念

直到 1988 年,Morris 蠕蟲在數(shù)小時內(nèi)感染了 10% 的機器,世界感覺到了這件事的威力。這是世界上最早的經(jīng)由互聯(lián)網(wǎng)傳播的計算機病毒之一。

這個截圖就是當(dāng)時電視上報道這件事時的一個新聞原始截圖。從這個播音員的著裝風(fēng)格可以看出那個年代的風(fēng)格,當(dāng)時人們對這類事件的認識非常不準確。他們用的詞是 Virus,這就是當(dāng)時大眾對這個事情的認識。

網(wǎng)站漏洞 安全漏洞 黑客攻擊(Morris 蠕蟲病毒爆發(fā)時,世界對計算機病毒還沒什么概念,怎么稱呼它都不是一件容易事。)

即使在這樣全球性的事件后,多數(shù)程序員認為緩沖區(qū)的溢出只會導(dǎo)致程序崩潰,只有非常少的人知道相關(guān)技術(shù)是什么,這些技術(shù)仍然悄悄地在地下室中流傳。

一篇文章讓大家開始了解緩沖區(qū)溢出

從 1988 年再往后七年,到 1995 年,世界上才出現(xiàn)第一篇公開描述緩沖區(qū)溢出相關(guān)技術(shù)的文章,這個時候搞技術(shù)的人可能才第一次有機會去了解這些東西。

這篇文章叫《How to write Buffer Overflows》,作者 mudge,他的真名是 Peiter Zatko。在這篇文章之前,沒有攻和防兩個方向,是單方向的大屠殺,被攻擊方毫無還手之力。

James 在 24 年前寫下的那段話在此時才真正被人們廣為接受,攻防雙方在那個時候展開較量。1995 年到今天 2015 年整整 20 年。

網(wǎng)站漏洞 安全漏洞 黑客攻擊(Peiter Zatko,世界上第一篇公開描述緩沖區(qū)溢出相關(guān)技術(shù)的文章作者,左邊是他 2009 年加入美國國防部時拍攝的照片,右邊是早年照片。)

一開始大家認為漏洞只能在 Unix 系統(tǒng)上實現(xiàn),因為 Windows 系統(tǒng)還不確定,直到 1988 年 1999 年出現(xiàn)兩篇文章討論了 Windows 區(qū)溢出才知道不是這么回事。

防守技術(shù)從緩慢進化到快速更新

1997 年 Sun 公司在 Solaris 2.5 當(dāng)中借助 SPARC 處理器的新特性,實現(xiàn)了禁止在堆棧上執(zhí)行代碼,讓馮諾伊曼結(jié)構(gòu)在邏輯上變成了某種程度的哈佛結(jié)構(gòu),這個處理器第一次在邏輯上可以把代碼和數(shù)據(jù)存儲區(qū)分開。

同一年 StackGuard 技術(shù)誕生,軟硬兩類技術(shù)在一年誕生了。

個人電腦真正用上這樣的防御技術(shù)是在 2003 年,由 AMD 引入,同年,微軟在新版 Visual Studio 中增加了類似 StackGuard 的保護機制。

從 1995 年到 2003 年,防守技術(shù)的發(fā)展并不是特別快。03 年之后攻防雙方的較量進入白熱化狀態(tài)。

從服務(wù)器到個人 PC,之后戰(zhàn)火又燒到移動端。以安卓為例,在攻擊壓力之下,安卓在 09 年引入 ProPolice,接下來每一年都引入若干種新的防御措施。

漏洞史上最高收購價——100 萬美金

到今天無論是攻擊技術(shù)還是防御技術(shù),都已經(jīng)進入綜合、融合、協(xié)同、多維的階段,單點嚴防死守的思路基本不被業(yè)界人認同。我們有一個很常說的話,沒有什么東西是一招鮮吃遍天。

現(xiàn)在對于漏洞的防御思路是首先盡可能減少漏洞的出現(xiàn),但完全禁止是做不到的,那怎么辦?在假設(shè)我們沒辦法完全禁止漏洞出現(xiàn)的前提下,想辦法讓漏洞的利用過程變的困難,讓利用過程變的不穩(wěn)定,成功率下降,攻擊的成本提高。

這兩天有一個新聞,美國一家專門收漏洞賣給政府和軍方的公司剛剛給出漏洞收購史上最高價——100 萬美金。這個漏洞是只要你用蘋果手機瀏覽一個網(wǎng)頁然后這個手機會被別人完全控制。這個漏洞看上去很可怕,但另一方面,它的成本非常高,所以這種技術(shù)不太有人用來侵害普通人。這就是這么多年防御方不斷努力的結(jié)果,把一個漏洞的價錢抬到這么高。

第二個叫全時對抗。軟件的整個生產(chǎn)過程,從設(shè)計階段到開發(fā)、編譯和運行,安全都會介入。從設(shè)計時安全思路進入,開發(fā)時相關(guān)工具介入,編譯時使用安全特性的編譯軟件,然后在運行啟用相關(guān)的安全工具,這個是全時對抗。

另外就是多維協(xié)同,多維協(xié)同不只是著眼于技術(shù)層面,不只是用自身力量,而要考慮內(nèi)部和外部的力量,通過業(yè)界合作和社區(qū)建設(shè),用咱們的話說就是打人民戰(zhàn)爭。為什么要變成這樣呢?因為形式已經(jīng)不一樣了。

It isn't a bunch of kids anymore. These are people who do this for a living.

這件事再也不是兒戲。有人以此為生。

蘭德公司研究員馬丁·C·利比基講了這樣的話,以前安全就是一些小孩鬧著玩,今天不是這樣了,有一些人干這個是為了生活,他就指這個吃飯,所以已經(jīng)變成一件非常嚴肅的事。

回顧過去 20 年,實際上我想說的是我們要想一想下一個 20 年安全應(yīng)該怎么辦,這也是需要在座的各位大家一起努力的。