文/楊望
在人們的潛意識(shí)里,開源更安全是因?yàn)橛写罅康募夹g(shù)人員可以幫助發(fā)現(xiàn)漏洞并修改,但是,可以幫和真的有人去幫是完全不同的兩個(gè)概念,前者屬于道德上的理想,后者則需要有市場化的可行方案。
2014年伊始,一場安全新聞里的心臟流血事故激起了不少的浪花。和以往的安全新聞里那些大牌公司微軟、蘋果不同,這次的問題發(fā)生在一個(gè)很小的開源軟件OpenSSL身上,而這個(gè)軟件雖然是一幫程序員不拿任何報(bào)酬在茶余飯后開發(fā)出來的,卻用在了大量的大型企和組織網(wǎng)站上,帶來的影響也非同凡響。
SEBUG : OpenSSL漏洞列表
SEBUG : Apache 漏洞數(shù)量趨勢圖
很長時(shí)間以來,開源被視為安全的代名詞,Linux系統(tǒng)最早在和微軟的Windows系統(tǒng)進(jìn)行比較時(shí),最常見的一個(gè)說法就是Linux更加安全,因?yàn)樗情_源的??墒侨绻覀兛匆幌麻_源軟件的漏洞情況,就會(huì)發(fā)現(xiàn)這一情況并不真實(shí)。根據(jù)SEBUG網(wǎng)站上給出的Open漏洞列表,我們可以看出,OpenSSL的問題不是今日開始,早從2007年起就公布了OpenSSL的漏洞,其中2009年被公布的漏洞更是高達(dá)6個(gè),而實(shí)際由于0Day市場的存在,更多的漏洞可能還沒有被公布。如果說OpenSSL的漏洞數(shù)量還不夠多,我們可以看一下另一個(gè)重要的開源軟件Apache,根據(jù)SEBUG的統(tǒng)計(jì),從2003年以來APACHE僅公布的漏洞就近300個(gè)。由此可以看出,開源軟件的漏
洞從來沒有因?yàn)槭情_源就變得代碼質(zhì)量更好,或者漏洞更少。
最早開源軟件被認(rèn)為更安全的觀點(diǎn),是認(rèn)為所有的程序員都可以幫助審查Linux系統(tǒng)的源代碼來發(fā)現(xiàn)漏洞,同時(shí)提交自己的修改方案來解決漏洞,而那些拒絕開放代碼的公司比如微軟必須自己雇人來解決這個(gè)問題,能發(fā)現(xiàn)的問題就很有限。但事實(shí)上,可以幫和真的有人去幫是完全不同的兩個(gè)概念,前者屬于道德上的理想,后者則其實(shí)需要有市場化的可行方案。Raymond在寫對(duì)比開源軟件與商業(yè)軟件的《大教堂與市集》時(shí),也沒有把開源軟件寫成一個(gè)烏托邦,而是一個(gè)更自由的市場。
目前看起來,似乎市場的問題正在開始解決,Arstechnica的新聞里報(bào)道:Linux基金會(huì)將開始一個(gè)為期三年的計(jì)劃,募集至少390萬美元,來改善那些缺乏資助的開源項(xiàng)目,OpenSSL將是這個(gè)項(xiàng)目的第一個(gè)獲益者。Amazon、Facebook等大公司承諾三年內(nèi)每年向該項(xiàng)目投入至少十萬美元。同時(shí)那些依賴OpenSSL的開源軟件也會(huì)和OpenSSL共享它們所獲得的捐贈(zèng)。
但金錢只是一個(gè)開始,開源社區(qū)的經(jīng)濟(jì)學(xué)生態(tài)環(huán)境才是真正需要建設(shè)的。如果真是資金能夠解決問題,那么也許就不會(huì)有開源軟件的出現(xiàn),軟件工程的“銀彈”也就出現(xiàn)了。從開發(fā)者的角度,大多數(shù)開源軟件的貢獻(xiàn)者期望的不是或者不僅僅是金錢的回報(bào),道德和榮譽(yù)感的歸屬同樣是他們內(nèi)心渴求的。在OpenSSL漏洞曝出的同時(shí),關(guān)于“OpenSSL代碼寫的風(fēng)格很差”、“我提交的補(bǔ)丁他們審核太慢”、“我們不如另起一套系統(tǒng)”這樣的消息也不斷見諸開發(fā)者的論壇中。在一個(gè)自由的有特色的市場中,如何尋找它的道路還是一個(gè)很長的過程。
而作為一個(gè)使用開源軟件的企業(yè),比起向這個(gè)項(xiàng)目進(jìn)行金錢的捐贈(zèng),更重要的一部分是為這個(gè)項(xiàng)目進(jìn)行人力的捐贈(zèng),提交自己修改的補(bǔ)丁,主動(dòng)地為項(xiàng)目進(jìn)行各類測試并共享結(jié)果,這樣可能更能提高你所使用的開源軟件的質(zhì)量。
那些依然停留在傳統(tǒng)企業(yè)階段試圖通過公關(guān)和其他非公開手段來解決自己面臨的漏洞或攻擊的企業(yè)將面臨更大的風(fēng)險(xiǎn)。
說完開源軟件的安全,我們再看一看安全漏洞的開源。盡管由于這幾年宣傳力度的不斷提高,大多數(shù)用戶們除了微軟公司每個(gè)月升級(jí)的補(bǔ)丁,也通過360或者騰訊這些管家們了解到自己的機(jī)器上有這么多的漏洞。但對(duì)于威脅更嚴(yán)重的服務(wù)器端的軟件漏洞們,用戶們依然幾乎一無所知,而隨著私人信息云端化的發(fā)展,服務(wù)端的漏洞可能為用戶帶來的損失更大,即使用戶個(gè)人遭受了損失,可能也不知道是怎么回事,企業(yè)可能還一臉官腔地說不關(guān)我們的事。所以在安全漏洞上同樣存在開源的開拓者們,比如國內(nèi)著名的烏云網(wǎng)站, 希望能建成一個(gè)自由平等開放的漏洞報(bào)告平臺(tái)。通過公開漏洞,不僅讓用戶知道數(shù)據(jù)可能或已經(jīng)發(fā)生了什么事情,同時(shí)也給企業(yè)以更大的壓力來迅速修補(bǔ)漏洞。但是對(duì)烏云這樣的平臺(tái),卻同樣也存在壓力,很多企業(yè)依然認(rèn)為,如果公布了漏洞,大家都來攻擊,那豈不是更加不安全,而且被人發(fā)現(xiàn)有漏洞也是一件很沒有面子的事情,所以會(huì)試圖采用公關(guān)手段來避免漏洞的公布。
開源的安全漏洞市場并非一個(gè)孤立的市場,事實(shí)上安全漏洞的市場環(huán)境要比開源軟件更為復(fù)雜,在漏洞這個(gè)名詞出現(xiàn)以后,面向企業(yè)的漏洞市場、灰色漏洞市場和黑色漏洞市場就已然依次誕生。這些市場通過封閉的地下交易讓漏洞交到企業(yè)或者牟利者手中,但是由于企業(yè)所能付出的代價(jià)和攻擊牟利方獲得的代價(jià)相差甚遠(yuǎn),盡管很多有道德的漏洞挖掘者會(huì)把漏洞交給企業(yè),更多的漏洞會(huì)流向攻擊者。另一方面,企業(yè)由于封閉的漏洞生態(tài)系統(tǒng)而不用面臨公眾壓力,對(duì)漏洞的修補(bǔ)也未必及時(shí),可能一個(gè)漏洞買回來很久,也沒有真的把補(bǔ)丁打上。而漏洞挖掘者由于企業(yè)的態(tài)度問題,也往往未必愿意把漏洞交給企業(yè)。開源的安全漏洞給這種封閉體系之外帶來一種開放的生態(tài)體系,但這個(gè)體系和開源軟件的市場一樣,同樣需要企業(yè)、漏洞挖掘者和用戶共同培養(yǎng)一個(gè)有益的市場生態(tài)環(huán)境。
所以尋求和構(gòu)建一個(gè)更有利于自己的安全漏洞開源市場是有利于互聯(lián)網(wǎng)企業(yè)的,那些依然停留在傳統(tǒng)企業(yè)階段試圖通過公關(guān)和其他非公開手段來解決自己面臨的漏洞或攻擊的企業(yè)將面臨更大的風(fēng)險(xiǎn)。企業(yè)要明白的是,在互聯(lián)網(wǎng)時(shí)代,你想瞞住所有人一件事情是幾乎不可能的,而欺瞞的代價(jià)會(huì)是企業(yè)信譽(yù)甚至企業(yè)本身的崩潰。比如2011年發(fā)生的DigiNotar事件,荷蘭的證書頒發(fā)公司DigiNotar在發(fā)現(xiàn)自己面臨的攻擊后,并沒有如實(shí)公布遭受攻擊的情況,并一再宣稱攻擊的后果在控制之內(nèi),可是經(jīng)過名為“Black Tulip”的第三方機(jī)構(gòu)調(diào)查后,發(fā)現(xiàn)攻擊后果已遠(yuǎn)超DigiNotar公布的情況,DigiNotar公司也因?yàn)檫@次攻擊徹底失去了信任并宣告破產(chǎn)。