Shellshock漏洞那些事:網(wǎng)絡(luò)安全噩夢(mèng)的開始

責(zé)任編輯:editor004

2014-09-30 11:13:57

摘自:網(wǎng)易科技報(bào)道

雷米并沒(méi)有權(quán)限訪問(wèn)Bash開發(fā)項(xiàng)目原始代碼的更新日志,這些數(shù)據(jù)是在90年代初期創(chuàng)立的。即使有了Shellshock這一瑕疵,布萊恩·??怂谷匀粸樽屪约涸?jīng)橫跨美國(guó)的創(chuàng)造出的Bash而驕傲。

9月30日消息,據(jù)國(guó)外媒體報(bào)道,鑒于Linux/UNIX系統(tǒng)近日再次曝出危險(xiǎn)等級(jí)超“心臟出血”的Bash漏洞——“Shellshock”,《連線》雜志周一特別刊文,介紹了該漏洞的過(guò)往與今生,并指出對(duì)于已經(jīng)破損不堪的互聯(lián)網(wǎng)而言,Shellshock或?qū)⒅皇且磺胸瑝?mèng)的開始。

以下為《連線》文章全文翻譯內(nèi)容:

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

這些并不是音樂(lè)磁帶或者視頻磁帶。它們轉(zhuǎn)載的是電腦軟件代碼及數(shù)據(jù),是專為過(guò)去有家具般大小的電腦服務(wù)的,就像我們?cè)凇禗r. Strangelove》和《Three Days of the Condor》等經(jīng)典電影中看到的一樣。

那一年是1987年,??怂柜{車橫跨美國(guó)來(lái)到了他的新家。他所攜帶的磁帶裝載了一個(gè)名為Bash的軟件程序,而這個(gè)程序就是后來(lái)在UNIX系統(tǒng)及相關(guān)再發(fā)行版中隨處可見(jiàn),用于橋接用戶與操作系統(tǒng)的重要工具。

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

??怂购退雇袪柭谀莻€(gè)時(shí)候并不知道,他們正在開發(fā)的軟件隨后會(huì)成為全世界通信基礎(chǔ)設(shè)施幾十年里幾近不可或缺的重要工具。在??怂箤删泶艓牟ㄊ款D帶回到加州后,此時(shí)已有不少工程師開始注意到并使用Bash,有的甚至還幫助進(jìn)行開發(fā)。在UNIX的帶動(dòng)下,GNU和Linux開始迅速崛起,尤其是后者如今儼然已成為當(dāng)代互聯(lián)網(wǎng)的軀干組成,Bash也因此進(jìn)駐了數(shù)以億計(jì)的計(jì)算機(jī)當(dāng)中。

直到1992年的某一天,一位工程師將一個(gè)程序Bug鍵入到了Bash中。又過(guò)了20多年,終于有安全專家在上周發(fā)現(xiàn)了這一沉睡已久的安全漏洞。這一Bug被稱專業(yè)人士們稱為Shellshock,其危害性將可導(dǎo)致黑客肆意大規(guī)模地破壞當(dāng)今的互聯(lián)網(wǎng)結(jié)構(gòu)。

Shellshock是人類計(jì)算機(jī)史上已知的、最老的、尚未修復(fù)的程序Bug。事實(shí)上在今年早些時(shí)候,專家們也在另一個(gè)已存在多年的開源軟件上找到了一個(gè)名為“心臟出血”(Heartbleed)的Bug。這兩個(gè)Bug都表明出當(dāng)今互聯(lián)網(wǎng)的一個(gè)問(wèn)題,即除非我們能夠改變代碼編寫的方式和軟件審查的方式,否則同樣的問(wèn)題或?qū)⒁恢弊璧K和威脅著互聯(lián)網(wǎng)的發(fā)展?;ヂ?lián)網(wǎng)建立在大量被重復(fù)使用的軟件之上,其中一些軟件甚至是幾十年前就已存在的,而那個(gè)時(shí)候,我們甚至還沒(méi)有對(duì)安全問(wèn)題的審查考慮。

譬如Bash被創(chuàng)立之時(shí),就沒(méi)有人想過(guò)要為其遭受網(wǎng)絡(luò)攻擊的可能性進(jìn)行評(píng)估,因?yàn)檫@在當(dāng)時(shí)毫無(wú)意義。

“(當(dāng)時(shí))去擔(dān)心這個(gè)軟件會(huì)成為地球上被使用最多的一個(gè),并要考慮會(huì)被一些惡意的人利用在網(wǎng)上發(fā)起攻擊,這完全是不現(xiàn)實(shí)的。”??怂拐f(shuō),“當(dāng)可能的條件具備時(shí),Bash已經(jīng)被使用有15年之久了。”在今天,谷歌、Facebook,或者任何一個(gè)互聯(lián)網(wǎng)巨頭都在使用Bash,因?yàn)樗情_源的,任何人都可以在任何時(shí)候?qū)λM(jìn)行審查。然而事實(shí)是,盡管任何人都可以在任何時(shí)候去審查Bash的安全性,但卻沒(méi)有一個(gè)人想過(guò)這么去做。這種現(xiàn)象需要發(fā)生改變。

網(wǎng)絡(luò)是怎么建成的

從數(shù)碼的角度看,??怂沟腂ash程序大致與iPhone的桌面截屏圖大小一致。但在1987年,這個(gè)程序是無(wú)法利用電子郵件發(fā)送至美國(guó)彼岸的。當(dāng)時(shí)的互聯(lián)網(wǎng)雛形才剛剛形成,跨越全球的WWW概念則還處于醞釀中。于是這就有了??怂柜{車帶著兩卷磁帶由圣巴巴拉開往波士頓的一幕。

Bash是一個(gè)shell工具,是一個(gè)在圖形用戶界面出現(xiàn)前用于與計(jì)算機(jī)進(jìn)行交流的指令行鍵入工具。這有點(diǎn)類似Windows下的命令提示符工具。盡管它看上去很“古老”,但卻是在互聯(lián)網(wǎng)盛行的時(shí)代,在Apache網(wǎng)絡(luò)服務(wù)器遍及的時(shí)代,橋接網(wǎng)頁(yè)應(yīng)用軟件和操作系統(tǒng)之間最簡(jiǎn)單和最高效的方式——只需要在Bash shell下鍵入一系列指令,網(wǎng)頁(yè)服務(wù)器就可以從計(jì)算機(jī)中獲得文件信息——這就是當(dāng)今互聯(lián)網(wǎng)的基礎(chǔ)。一套建立在腳本之上的腳本指令。

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

然而,領(lǐng)導(dǎo)Bash開發(fā)的程序員卻并不為任何一家互聯(lián)網(wǎng)巨頭工作。他甚至不在為一家科技公司工作。這名程序員名叫切特·雷米(Chet Ramey),是克里夫蘭Case Western Reserve University的程序開發(fā)人員,并只在業(yè)余時(shí)間對(duì)Bash進(jìn)行維護(hù)。

“相當(dāng)長(zhǎng)一段時(shí)間了”

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

Shellshock漏洞將一臺(tái)未補(bǔ)丁的機(jī)器瞬間轉(zhuǎn)變稱可任意操控的僵尸網(wǎng)“肉雞”。

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

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

“多雙眼睛”的謊言

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

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

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

“有很多代碼實(shí)際上并沒(méi)有很多雙眼睛在監(jiān)督。很多開源項(xiàng)目也并沒(méi)有真正讓大量開發(fā)者參與到其中,即使其中一些是非常核心的開源應(yīng)用。”林納斯表示。

這個(gè)問(wèn)題在任何軟件中都是存在的,無(wú)論是開源或者閉源。總體來(lái)說(shuō),我們更難說(shuō)清閉源軟件里究竟存在多少Bug,譬如甲骨文的數(shù)據(jù)庫(kù)應(yīng)用。而在大約十年前,微軟也曾面臨過(guò)嚴(yán)重的安全問(wèn)題,因?yàn)樵摴静糠执a并未沒(méi)有正確地經(jīng)過(guò)審核。但在經(jīng)歷過(guò)2003年的Windows Blaster蠕蟲問(wèn)題后,微軟終將安全審查列到了第一位。于是在接下來(lái)的十年里,微軟的代碼質(zhì)量提高了。微軟每年都會(huì)聘請(qǐng)大量的“白帽”黑客和花費(fèi)千萬(wàn)美元來(lái)保證產(chǎn)品的安全性。如今開源軟件社區(qū)也將會(huì)開始同樣的旅程。

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

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

這很好,但前提是要在Bug發(fā)現(xiàn)前繼續(xù)維護(hù)好互聯(lián)網(wǎng)。希望Linux基金會(huì)、谷歌或Facebook等可以繼續(xù)做好這一點(diǎn)。

即使有了Shellshock這一瑕疵,布萊恩·??怂谷匀粸樽屪约涸?jīng)橫跨美國(guó)的創(chuàng)造出的Bash而驕傲。

“在它首個(gè)Bug被發(fā)現(xiàn)之前,這個(gè)軟件已經(jīng)存在27年了。”??怂拐f(shuō),“鑒于軟件的使用情況和Bug的發(fā)現(xiàn)比例,這個(gè)結(jié)果非常令人難以忘記。”

鏈接已復(fù)制,快去分享吧

企業(yè)網(wǎng)版權(quán)所有?2010-2024 京ICP備09108050號(hào)-6京公網(wǎng)安備 11010502049343號(hào)