Linux最新0day的幕后故事和技術(shù)分析
原創(chuàng)【51CTO.com獨(dú)家特稿】我們應(yīng)該知道不存在絕對(duì)完美的安全,沒(méi)有一個(gè)絕對(duì)安全的程序。總之,安全是一個(gè)過(guò)程,而不是一個(gè)產(chǎn)品。Linux在過(guò)程方面的安全是相當(dāng)出色的,這也是它極大安全的原因。這有一個(gè)例子。
7月16號(hào),一個(gè)名叫Brad Spengler的安全方面的程序員,他設(shè)計(jì)了一個(gè)開(kāi)源網(wǎng)絡(luò)和一個(gè)叫g(shù)rsecurity的服務(wù)器安全程序,這個(gè)程序全面披露了安全郵件列表——Linux內(nèi)核2.6.30版的安全漏洞。
根據(jù)SANS英特網(wǎng)風(fēng)暴中心的說(shuō)法,關(guān)于這個(gè)漏洞比較簡(jiǎn)潔的表述是:“在進(jìn)行網(wǎng)上或大規(guī)模運(yùn)算時(shí),代碼的脆弱就表現(xiàn)出來(lái)了。簡(jiǎn)言之,開(kāi)發(fā)者初始化了一個(gè)可以為NULL的變量。并緊接著正確地檢查這個(gè)新變量在附近幾行代碼中的值,如果是0(NULL),他就返回一個(gè)錯(cuò)誤?!?/P>
但是,從技術(shù)的觀點(diǎn)來(lái)說(shuō)這是有趣的地方。程序員這樣寫(xiě)的代碼看起來(lái)是沒(méi)錯(cuò)的。只有在使用gcc“編譯器開(kāi)始處理這個(gè)變量,優(yōu)化代碼,編譯器會(huì)發(fā)現(xiàn)變量已經(jīng)被賦值(如果是0)并且從編譯好的代碼中移除。換個(gè)說(shuō)法,編譯器會(huì)把變量引入到二進(jìn)制碼,不存在源代碼中。這將會(huì)引起內(nèi)核嘗試去讀/寫(xiě)0x00000000的數(shù)據(jù),這使攻擊者能映射到用戶(hù)區(qū),最終破解程序?!?/P>
聽(tīng)起來(lái)很?chē)樔?,是不是?你看,因?yàn)樗诘讓庸ぷ?,這個(gè)漏洞可以繞開(kāi)安SELinux(安全增強(qiáng)的Linux),突破其它Linux安全程序。但實(shí)際上,這完全沒(méi)有那么的值得驚慌失措。
首先,為了攻擊一臺(tái)這樣的計(jì)算機(jī),你必須先擁有一個(gè)很高的Linux權(quán)限才能使用開(kāi)發(fā)工具。其次,你需要重新開(kāi)始編寫(xiě)一個(gè)程序,并把利用代碼加入其中。
這不像在Windows下,你只要錯(cuò)誤的點(diǎn)下某些網(wǎng)頁(yè)或是打開(kāi)一封帶附件的郵件,你的電腦馬上就會(huì)感染上惡意軟件或是和僵尸軟件等威脅。你幾乎真要嘗試用這個(gè)方法打開(kāi)你的Linux計(jì)算機(jī)來(lái)消滅它。
但是,這個(gè)漏洞也許怎么都不能發(fā)揮作用。你看,同樣是相似的溢出問(wèn)題,也許潛伏著更大的危險(xiǎn)的——使用PulseAudio時(shí)(一個(gè)流行的Linux和Windows媒體服務(wù)器)發(fā)生了溢出問(wèn)題——在六月被修復(fù)了——這是重點(diǎn),。
所以,如果你使用最新版的Linux內(nèi)核,Linux 2.6.31-rc3,你應(yīng)該感覺(jué)極好。
無(wú)論如何,事情的關(guān)鍵點(diǎn)并不在于技術(shù)細(xì)節(jié)。而是在于對(duì)開(kāi)源軟件,問(wèn)題很快被大家發(fā)現(xiàn)并且被修復(fù)。舉個(gè)例子,周三時(shí),F(xiàn)irefox 3.5有重要的安全漏洞被揭發(fā),但周五時(shí),F(xiàn)irefox 3.5.1就修復(fù)了這個(gè)漏洞。
在周一,微軟的IE瀏覽器同樣有一個(gè)主要的安全漏洞被披露,但現(xiàn)在還沒(méi)有看到補(bǔ)丁出現(xiàn)。這不足為奇。Windows和其他微軟程序的有些安全漏洞在幾個(gè)月、幾年后仍然沒(méi)有補(bǔ)丁發(fā)布。至少,在去年年末,微軟修復(fù)了一個(gè)存在了七年的漏洞——我不騙你。而且,讓我們不要忘記,一個(gè)叫MyDoom的惡意軟件——最早出現(xiàn)在2004年,到現(xiàn)在還可以在Windows電腦上用來(lái)進(jìn)行DDoS(分布式拒絕服務(wù))攻擊。
簡(jiǎn)而言之,所有開(kāi)源軟件比同類(lèi)的商業(yè)軟件更安全,因?yàn)殚_(kāi)源的特性使安全漏洞的查找和修復(fù)快速得多。如果微軟真關(guān)注它的軟件安全,那么它在周四就應(yīng)該對(duì)漏洞進(jìn)行修補(bǔ),它應(yīng)該開(kāi)放代碼,從而是安全問(wèn)題得到控制??墒牵@種事情是不可能發(fā)生的。所以,現(xiàn)在和將來(lái),F(xiàn)OSS(自由及開(kāi)源軟件)都會(huì)在安全方面更勝一籌。
【51CTO.COM 獨(dú)家特稿,轉(zhuǎn)載請(qǐng)注明出處及作者!】
【編輯推薦】