開源:好處與風險并存
開源現在已是IT行業勢力龐大的一支生力軍,它免費、開放、可定制、受整個社區的監督。鑒于開源在IT界的地位和影響力,任何關于其價值的大討論已經沒有必要。當源代碼向全世界開放,你將會被多雙眼睛檢查同一配置
開源現在已是IT行業勢力龐大的一支生力軍,它免費、開放、可定制、受整個社區的監督。鑒于開源在IT界的地位和影響力,任何關于其價值的大討論已經沒有必要。
“當源代碼向全世界開放,你將會被多雙眼睛檢查同一配置。因而,一旦發現問題,代碼擁有者也可以更快地進行修復。”
好處與風險
但另一方面,這些好處卻也是風險的來源。一些安全和法律界專家,盡管總體上認可開源的好處,卻依然不斷地警告各類組織和個人:開源并不完美,也許并不適合所有人。
開源的優點同時也是風險的根源。很明顯,如果代碼里的漏洞每個人都可見,那么罪犯也可以看到。而且即使百萬雙眼睛盯著開源代碼也并不能保證每個漏洞都能被發現并補上。
“有種說法稱開源軟件由于其開放性和‘有百萬雙眼睛檢查源代碼’而天生更安全。這種說法已經被諸如心臟滴血和其他一些漏洞徹底打臉。”(Accuvant解決方案研究主管拉法爾·洛斯)
而KNOS項目共同創始人兼主要架構師凱文·邁克李維就略帶嘲諷地將開源稱之為“開傷”(Open Sores)。
“開源將源代碼公布,許多雙眼睛宣稱將檢查它,因而任何可能的不良代碼都逃不脫眾人之眼。然而,心臟滴血出現了。自2012年2月發布之日起,這段有問題的代碼就一直暴露在‘眾人之眼’前,但沒有任何一個人發現它,直到兩年之后,漏洞都被利用濫了才忽然醒悟。”
另一個例子是GNTTLS里的“Ghost”漏洞利用,漏洞可追溯到2005年,但直到去年才被發現。然后是,大名鼎鼎的Bash shell,同樣是公開源代碼,同樣是被眾人之眼監督,而且歷史都可追溯到1989年,照樣潛藏了破殼(Shellshock)漏洞。這是因為百萬雙眼睛并不意味著所有這些眼睛都有發現漏洞的能力。
首先,開源社區檢查過的代碼根本談不上認證。再者代碼開放給所有人,并不意味著大家都能理解代碼實際上干了什么,或者,干錯了什么。最后,即使漏洞被發現,補丁已公布,也不能保證受影響的每臺設備每個系統都會打上補丁。
有兩個最近的開源風險的例子,Park’n Fly和OneStopParking.com就因為Joomla內容管理平臺中的開源安全漏洞而遭受攻擊。而且,在攻擊發生前就已經發布了安全補丁,但很不幸,補丁并未被安裝。
忽略與遺忘
問題的存在很大程度上是因為開源往往由“兩個獨立的實體”支撐。以Linux為例,有“內核團隊”和“應用維護團隊”。雖然任何對Linux內核自身的改變依然需要經過Linux創造者林納斯·托瓦茲的首肯或由他信任的少數內核維護者之一批準,但是對維護Linux單個應用程序或軟件包(package)的其他眾多開源項目,他們卻毫無興趣。
這就引發了用戶領域的絕對無政府狀態,當然也就對穩定性和安全性毫無益處,因為根本沒人負責。
另一方面,商業應用中使用的開源組件也是一個巨大的問題,因為它們太容易被人遺忘。例如OpenSSL庫和它一系列重大漏洞被發現時所引發的問題。開源和商業軟件都迫切需要修復,但當OpenSSL用于商業應用程序時,很多終端用戶根本意識不到它在那里,所以不知道需要進行修復。雖然可能已經開發出補丁,還是需要有人來安裝補丁。而通常情況下,開源應用并沒有“自動更新”這種選項。
根據開發者和公司的需要定制或修改代碼是開源的好處之一,但這一好處同時也是雙刃劍,不知道什么時候就會被傷害。所有這些修改,會造成開源程序出現各種修改版。而很多這些修改的應用程序會重新發布供全世界享用。然后,問題來了:你到底用的是哪個版本呢?有時候你根本不知道。
這意味著,用戶或開發人員以為自己已經打了補丁,但實際上,他有可能僅僅是安裝了該應用的另一個版本,而這個版本很可能就是基于沒打補丁的代碼。漏洞依然存在。
正方與反方
好處:
·免費。
·用戶無需經過任何人同意便可修改代碼。
·百萬雙眼睛共同盯著,協作發現漏洞。
·任何人均可修復漏洞,無需告知廠商。
·通常與專有系統一樣安全,甚至更安全。
缺陷:
·漏洞一旦曝光,對罪犯和好人的可見性是一樣的。
·沒有特定的個人或實體負責修復漏洞。
·補丁即便推出,也沒有強制性要求必須安裝。
·被漏洞影響的受害者不會得到任何人的賠償。
·如果出現法律問題,比如侵害了第三方的知識產權,要找到另一方來負責非常困難。
·沒有特定的實體或個人負責保證開源軟件合規。
開放修改也意味著代碼可能遭到惡意修改,甚至被注入惡意軟件。或者,更糟糕的情況,從一開始惡意軟件就藏在其中。很不幸,這些情況并不是理論上的,實際例子已經發生。
開源社區人數眾多,但想找個人出來對法律或合規問題負責很難。根本沒人負責,出了問題,無人可告。
開源擁護者認為,開源社區比開發私有軟件的公司更靠得住。比如,如果開發專有系統的公司破產,使用這個系統的客戶怎么辦?而開源軟件有自己的生命周期,不屬于任何一家實體。因此可以說,其支撐網絡和穩定基礎總是存在的,開源社區就是開源軟件的穩定性之源。
那么,用戶有沒有可能既享用開源的好處又免受開源之害呢?
可信與審查
公司應當像對待其他閉源軟件一樣對待開源軟件。
首先需要知道來源,保證來源可信,并且從其他可信源收集軟件的可用更新也是必須的。
即使來源是可靠的,還需要有適當的受控的過程和程序來審查軟件,審查通過之后才可以在企業內部進行部署。
最后,還需要部署程序來管理和監控進入企業系統的軟件,包括確保企業了解漏洞和可用補丁的情況,最重要的是,確保補丁得到安裝。
責任編輯:大云網
免責聲明:本文僅代表作者個人觀點,與本站無關。其原創性以及文中陳述文字和內容未經本站證實,對本文以及其中全部或者部分內容、文字的真實性、完整性、及時性本站不作任何保證或承諾,請讀者僅作參考,并請自行核實相關內容。
我要收藏
個贊
-
發電電力輔助服務營銷決策模型
2019-06-24電力輔助服務營銷 -
繞過安卓SSL驗證證書的四種方式
-
網絡何以可能
2017-02-24網絡