Shellshock漏洞那些事:網絡安全噩夢的開始

jopen 10年前發布 | 11K 次閱讀 Shellshock

  9 月 30 日消息,據國外媒體報道,鑒于 Linux/UNIX 系統近日再次曝出危險等級超“心臟出血”的 Bash 漏洞——“Shellshock”,《連線》雜志周一特別刊文,介紹了該漏洞的過往與今生,并指出對于已經破損不堪的互聯網而言,Shellshock 或將只是一切噩夢的開始。

  以下為《連線》文章全文翻譯內容:

  布萊恩·福克斯(Brian Fox)駕車從圣巴巴拉(Santa Barbara)來到了波士頓,其車后備箱內放著兩卷巨大的磁帶。

  這些并不是音樂磁帶或者視頻磁帶。它們轉載的是電腦軟件代碼及數據,是專為過去有家具般大小的電腦服務的,就像我們在《Dr. Strangelove》和《Three Days of the Condor》等經典電影中看到的一樣。

  那一年是 1987 年,福克斯駕車橫跨美國來到了他的新家。他所攜帶的磁帶裝載了一個名為 Bash 的軟件程序,而這個程序就是后來在 UNIX 系統及相關再發行版中隨處可見,用于橋接用戶與操作系統的重要工具。

  福克斯是一名高中輟學生,其平時大量時間都與麻省理工(MIT)的電腦極客們,如理查德·斯托爾曼(Richard Stallman)等一起度過。盡管當時的福克斯只是個腳架焊接工,但其卻有著一顆壯志雄心——要創建出一套完全免費,并可讓人隨意刪節,且不受繁重拷貝 條款限制的軟件系統。福克斯將這一想法稱為“自由軟件運動”,其最終的目的是將 UNIX 操作系統全部重建,并以 GNU 的方式完全免費地與世人共享。這也便是開源軟件生態的雛形。

  福克斯和斯托爾曼在那個時候并不知道,他們正在開發的軟件隨后會成為全世界通信基礎設施幾十年里幾近不可或缺的重要工具。在福克斯將兩卷磁帶從 波士頓帶回到加州后,此時已有不少工程師開始注意到并使用 Bash,有的甚至還幫助進行開發。在 UNIX 的帶動下,GNU 和 Linux 開始迅速崛起,尤其是后者如今儼然已成為當代互聯網的軀干組成,Bash 也因此進駐了數以億計的計算機當中。

  直到 1992 年的某一天,一位工程師將一個程序 Bug 鍵入到了 Bash 中。又過了 20 多年,終于有安全專家在上周發現了這一沉睡已久的安全漏洞。這一 Bug 被稱專業人士們稱為 Shellshock,其危害性將可導致黑客肆意大規模地破壞當今的互聯網結構。

  Shellshock 是人類計算機史上已知的、最老的、尚未修復的程序 Bug。事實上在今年早些時候,專家們也在另一個已存在多年的開源軟件上找到了一個名為“心臟出血”(Heartbleed)的 Bug。這兩個 Bug

都表明出當今互聯網的一個問題,即除非我們能夠改變代碼編寫的方式和軟件審查的方式,否則同樣的問題或將一直阻礙和威脅著互聯網的發展。互聯網建立在大量 被重復使用的軟件之上,其中一些軟件甚至是幾十年前就已存在的,而那個時候,我們甚至還沒有對安全問題的審查考慮。</p>

  譬如 Bash 被創立之時,就沒有人想過要為其遭受網絡攻擊的可能性進行評估,因為這在當時毫無意義。

  “(當時)去擔心這個軟件會成為地球上被使用最多的一個,并要考慮會被一些惡意的人利用在網上發起攻擊,這完全是不現實的。”福克斯說,“當可 能的條件具備時,Bash 已經被使用有 15 年之久了。”在今天,谷歌、非死book,或者任何一個互聯網巨頭都在使用 Bash,因為它是開源的,任何人都可以在任何時候對它進行審查。然而事實是,盡管任何人都可以在任何時候去審查 Bash 的安全性,但卻沒有一個人想過這么去做。這種現象需要發生改變。

  網絡是怎么建成的

  從數碼的角度看,福克斯的 Bash 程序大致與 iPhone 的桌面截屏圖大小一致。但在 1987 年,這個程序是無法利用電子郵件發送至美國彼岸的。當時的互聯網雛形才剛剛形成,跨越全球的 WWW 概念則還處于醞釀中。于是這就有了福克斯駕車帶著兩卷磁帶由圣巴巴拉開往波士頓的一幕。

  Bash 是一個 shell 工具,是一個在圖形用戶界面出現前用于與計算機進行交流的指令行鍵入工具。這有點類似 Windows 下的命令提示符工具。盡管它看上去很“古老”,但卻是在互聯網盛行的時代,在 Apache 網絡服務器遍及的時代,橋接網頁應用軟件和操作系統之間最簡單和最高效的方式——只需要在 Bash shell 下鍵入一系列指令,網頁服務器就可以從計算機中獲得文件信息——這就是當今互聯網的基礎。一套建立在腳本之上的腳本指令。

  今天,Bash 仍舊在網頁服務器管理工具中扮演重要角色。Mac 系統中也有它的存在。事實上,任何運行 Linux 操作系統或 UNIX 操作系統的公司都在通過該工具快速而簡單地與運行于這些系統之上的應用軟件建立連接。

  然而,領導 Bash 開發的程序員卻并不為任何一家互聯網巨頭工作。他甚至不在為一家科技公司工作。這名程序員名叫切特·雷米(Chet Ramey),是克里夫蘭 Case Western Reserve University 的程序開發人員,并只在業余時間對 Bash 進行維護。

  “相當長一段時間了”

  80 年代末,雷米取代福克斯成為了 Bash 的領導開發者。在 9 月 12 日這天,雷米收到了一封來自安全專家史蒂芬·查茲拉斯(Stephane Chazelas)有關 Shellshock 程序 Bug 的電子郵件。這是一個高危的安全漏洞,全世界的人在上周都意識到了這個問題——僅在數個小時,就有黑客發布了攻擊代碼,可利用

  Shellshock 漏洞將一臺未補丁的機器瞬間轉變稱可任意操控的僵尸網“肉雞”。

  雷米并沒有權限訪問 Bash 開發項目原始代碼的更新日志,這些數據是在 90 年代初期創立的。不過雷米認為自己很可能是那個編寫了 Shellshock 程序 Bug 的人,而 Bug 創建的時期大約要追溯到 1992 年的某個時候。這個時間顯然足以讓 Shellshock 成為當今最古老、最重要,且尚未修補的安全漏洞。《連線》為此還特別聯系了普渡大學的尤金·斯帕福德(Eugene Spafford)教授以證實猜測。而斯帕福德也明確表示:“我無法回憶起任何其它尚未修補的比這個更古老的漏洞。當然這個世界上肯定還有很多歷史更久遠 的 Bug 存在,但考慮到漏洞產生的潛在影響及存在時間,Shellshock 無疑是最耀眼的。”

  不過,上述的情況讓那些對“心臟流血”十分熟悉的人有似曾相識的感覺。“心臟流血”也是發現于一個歷史悠久的開源軟件項目——SSH,該軟件同 樣亦被廣泛使用。與 SSH 項目的開發一樣,Bash 也從未有過任何安全性審查,軟件是由一組志愿愛好者維護開發的,且基本上他們并不會因開發 Bash 而獲得任何財務方面的贊助。很不幸的是,這種模式也正是互聯網的發展過程。

  “多雙眼睛”的謊言

  安全咨詢公司 Errata Security 首席執行官羅伯特·格萊漢姆(Robert Graham)指出,Shellshock 對開源軟件的主要用戶撒了一個謊言,即:開源軟件允許“許多雙眼睛”來共同監督和修復 Bug,這能使其效率和安全性要好過閉源的商業版權軟件。這種美好的想法亦被稱為“林納斯定律”(Linus's Law)。

  “如果真有許多雙眼睛在過去 25 年里一直都在關注 Bash,那么這些 Bug 早在多年前就會被發現了。”格萊漢姆上周在博客上寫到。

  “林納斯定律”是由林納斯·托瓦茲(Linus Torvalds)創建了 Linux 操作系統后命名。Shellshock 漏洞曝出后,林納斯表示該定律依舊成立。

  “有很多代碼實際上并沒有很多雙眼睛在監督。很多開源項目也并沒有真正讓大量開發者參與到其中,即使其中一些是非常核心的開源應用。”林納斯表示。

  這個問題在任何軟件中都是存在的,無論是開源或者閉源。總體來說,我們更難說清閉源軟件里究竟存在多少 Bug,譬如甲骨文的數據庫應用。而在大約十年前,微軟也曾面臨過嚴重的安全問題,因為該公司部分代碼并未沒有正確地經過審核。但在經歷過 2003 年的 Windows Blaster 蠕蟲問題后,微軟終將安全審查列到了第一位。于是在接下來的十年里,微軟的代碼質量提高了。微軟每年都會聘請大量的“白帽”黑客和花費千萬美元來保證產品 的安全性。如今開源軟件社區也將會開始同樣的旅程。

  今年 5 月,在“心跳流血”漏洞首次公開后不久,Linux 基金會籌集了 600 萬美元,以針對一些被廣泛使用的開源項目的安全性進行一次大檢修,其中包括了 SSH、NTP(網絡事件協議)等等。然而不幸的是,Bash 并未在其列。

  “這是不可預料的。”Linux 基金會執行董事吉姆·澤姆林(Jim Zemlin)表示,“但當然的,我的人一定會去接觸相關的開發人員,以看看是否能提供幫助。”

  這很好,但前提是要在 Bug 發現前繼續維護好互聯網。希望 Linux 基金會、谷歌或 非死book 等可以繼續做好這一點。

  即使有了 Shellshock 這一瑕疵,布萊恩·福克斯仍然為讓自己曾經橫跨美國的創造出的 Bash 而驕傲。

  “在它首個 Bug 被發現之前,這個軟件已經存在 27 年了。”福克斯說,“鑒于軟件的使用情況和 Bug 的發現比例,這個結果非常令人難以忘記。”

來自: 網易科技
                    <span id="shareA4" class="fl">                            
                        </span>
 本文由用戶 jopen 自行上傳分享,僅供網友學習交流。所有權歸原作者,若您的權利被侵害,請聯系管理員。
 轉載本站原創文章,請注明出處,并保留原始鏈接、圖片水印。
 本站是一個以用戶分享為主的開源技術平臺,歡迎各類分享!