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

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

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

網站漏洞 安全漏洞 黑客攻擊

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

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

轉變發生在 1983 年,一群年輕黑客非法入侵公司、政府和學術機構,并開始試探性地進入互聯網先驅 ARPA 網,他們被捕后美國新聞界想不出一個名字去稱呼他們,于是就用他們自稱的黑客。

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

tombkeeper 是中國白帽黑客中一位響當當的人物,多數時候人們叫他 TK,真名是于旸,現在是騰訊玄武實驗室負責人。他在互聯網安全峰會 CSS 上講了漏洞的歷史:漏洞很久以前就被發現并被利用,但安全人員真正反擊回去是 20 年前。

網站漏洞 安全漏洞 黑客攻擊

以下根據他的現場演講編輯:

冷戰時的計算機入侵

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

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

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

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

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

——《計算機安全技術規劃研究》James P. Anderson

非常準確而清晰的描繪了內存破壞類的成因及危害。我們今天談論和計算機安全有關的各種各樣的概念,在 1972 年的這份規劃當中已經寫的非常清晰了。

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

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

直到 1988 年,Morris 蠕蟲在數小時內感染了 10% 的機器,世界感覺到了這件事的威力。這是世界上最早的經由互聯網傳播的計算機病毒之一。

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

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

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

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

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

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

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

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

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

防守技術從緩慢進化到快速更新

1997 年 Sun 公司在 Solaris 2.5 當中借助 SPARC 處理器的新特性,實現了禁止在堆棧上執行代碼,讓馮諾伊曼結構在邏輯上變成了某種程度的哈佛結構,這個處理器第一次在邏輯上可以把代碼和數據存儲區分開。

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

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

從 1995 年到 2003 年,防守技術的發展并不是特別快。03 年之后攻防雙方的較量進入白熱化狀態。

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

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

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

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

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

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

另外就是多維協同,多維協同不只是著眼于技術層面,不只是用自身力量,而要考慮內部和外部的力量,通過業界合作和社區建設,用咱們的話說就是打人民戰爭。為什么要變成這樣呢?因為形式已經不一樣了。

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

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

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

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

您可能感興趣的文章

相關文章