文/楊望
在人們的潛意識里,開源更安全是因為有大量的技術人員可以幫助發現漏洞并修改,但是,可以幫和真的有人去幫是完全不同的兩個概念,前者屬于道德上的理想,后者則需要有市場化的可行方案。
2014年伊始,一場安全新聞里的心臟流血事故激起了不少的浪花。和以往的安全新聞里那些大牌公司微軟、蘋果不同,這次的問題發生在一個很小的開源軟件OpenSSL身上,而這個軟件雖然是一幫程序員不拿任何報酬在茶余飯后開發出來的,卻用在了大量的大型企和組織網站上,帶來的影響也非同凡響。

SEBUG : OpenSSL漏洞列表


SEBUG : Apache 漏洞數量趨勢圖
很長時間以來,開源被視為安全的代名詞,Linux系統最早在和微軟的Windows系統進行比較時,最常見的一個說法就是Linux更加安全,因為它是開源的。可是如果我們看一下開源軟件的漏洞情況,就會發現這一情況并不真實。根據SEBUG網站上給出的Open漏洞列表,我們可以看出,OpenSSL的問題不是今日開始,早從2007年起就公布了OpenSSL的漏洞,其中2009年被公布的漏洞更是高達6個,而實際由于0Day市場的存在,更多的漏洞可能還沒有被公布。如果說OpenSSL的漏洞數量還不夠多,我們可以看一下另一個重要的開源軟件Apache,根據SEBUG的統計,從2003年以來APACHE僅公布的漏洞就近300個。由此可以看出,開源軟件的漏
洞從來沒有因為是開源就變得代碼質量更好,或者漏洞更少。
最早開源軟件被認為更安全的觀點,是認為所有的程序員都可以幫助審查Linux系統的源代碼來發現漏洞,同時提交自己的修改方案來解決漏洞,而那些拒絕開放代碼的公司比如微軟必須自己雇人來解決這個問題,能發現的問題就很有限。但事實上,可以幫和真的有人去幫是完全不同的兩個概念,前者屬于道德上的理想,后者則其實需要有市場化的可行方案。Raymond在寫對比開源軟件與商業軟件的《大教堂與市集》時,也沒有把開源軟件寫成一個烏托邦,而是一個更自由的市場。
目前看起來,似乎市場的問題正在開始解決,Arstechnica的新聞里報道:Linux基金會將開始一個為期三年的計劃,募集至少390萬美元,來改善那些缺乏資助的開源項目,OpenSSL將是這個項目的第一個獲益者。Amazon、Facebook等大公司承諾三年內每年向該項目投入至少十萬美元。同時那些依賴OpenSSL的開源軟件也會和OpenSSL共享它們所獲得的捐贈。
但金錢只是一個開始,開源社區的經濟學生態環境才是真正需要建設的。如果真是資金能夠解決問題,那么也許就不會有開源軟件的出現,軟件工程的“銀彈”也就出現了。從開發者的角度,大多數開源軟件的貢獻者期望的不是或者不僅僅是金錢的回報,道德和榮譽感的歸屬同樣是他們內心渴求的。在OpenSSL漏洞曝出的同時,關于“OpenSSL代碼寫的風格很差”、“我提交的補丁他們審核太慢”、“我們不如另起一套系統”這樣的消息也不斷見諸開發者的論壇中。在一個自由的有特色的市場中,如何尋找它的道路還是一個很長的過程。
而作為一個使用開源軟件的企業,比起向這個項目進行金錢的捐贈,更重要的一部分是為這個項目進行人力的捐贈,提交自己修改的補丁,主動地為項目進行各類測試并共享結果,這樣可能更能提高你所使用的開源軟件的質量。

那些依然停留在傳統企業階段試圖通過公關和其他非公開手段來解決自己面臨的漏洞或攻擊的企業將面臨更大的風險。
說完開源軟件的安全,我們再看一看安全漏洞的開源。盡管由于這幾年宣傳力度的不斷提高,大多數用戶們除了微軟公司每個月升級的補丁,也通過360或者騰訊這些管家們了解到自己的機器上有這么多的漏洞。但對于威脅更嚴重的服務器端的軟件漏洞們,用戶們依然幾乎一無所知,而隨著私人信息云端化的發展,服務端的漏洞可能為用戶帶來的損失更大,即使用戶個人遭受了損失,可能也不知道是怎么回事,企業可能還一臉官腔地說不關我們的事。所以在安全漏洞上同樣存在開源的開拓者們,比如國內著名的烏云網站, 希望能建成一個自由平等開放的漏洞報告平臺。通過公開漏洞,不僅讓用戶知道數據可能或已經發生了什么事情,同時也給企業以更大的壓力來迅速修補漏洞。但是對烏云這樣的平臺,卻同樣也存在壓力,很多企業依然認為,如果公布了漏洞,大家都來攻擊,那豈不是更加不安全,而且被人發現有漏洞也是一件很沒有面子的事情,所以會試圖采用公關手段來避免漏洞的公布。
開源的安全漏洞市場并非一個孤立的市場,事實上安全漏洞的市場環境要比開源軟件更為復雜,在漏洞這個名詞出現以后,面向企業的漏洞市場、灰色漏洞市場和黑色漏洞市場就已然依次誕生。這些市場通過封閉的地下交易讓漏洞交到企業或者牟利者手中,但是由于企業所能付出的代價和攻擊牟利方獲得的代價相差甚遠,盡管很多有道德的漏洞挖掘者會把漏洞交給企業,更多的漏洞會流向攻擊者。另一方面,企業由于封閉的漏洞生態系統而不用面臨公眾壓力,對漏洞的修補也未必及時,可能一個漏洞買回來很久,也沒有真的把補丁打上。而漏洞挖掘者由于企業的態度問題,也往往未必愿意把漏洞交給企業。開源的安全漏洞給這種封閉體系之外帶來一種開放的生態體系,但這個體系和開源軟件的市場一樣,同樣需要企業、漏洞挖掘者和用戶共同培養一個有益的市場生態環境。
所以尋求和構建一個更有利于自己的安全漏洞開源市場是有利于互聯網企業的,那些依然停留在傳統企業階段試圖通過公關和其他非公開手段來解決自己面臨的漏洞或攻擊的企業將面臨更大的風險。企業要明白的是,在互聯網時代,你想瞞住所有人一件事情是幾乎不可能的,而欺瞞的代價會是企業信譽甚至企業本身的崩潰。比如2011年發生的DigiNotar事件,荷蘭的證書頒發公司DigiNotar在發現自己面臨的攻擊后,并沒有如實公布遭受攻擊的情況,并一再宣稱攻擊的后果在控制之內,可是經過名為“Black Tulip”的第三方機構調查后,發現攻擊后果已遠超DigiNotar公布的情況,DigiNotar公司也因為這次攻擊徹底失去了信任并宣告破產。