當今世界的開源安全問題
許多人支持使用 開源軟件(OSS)。畢竟,我們?yōu)槭裁匆粩嗟貒L試構建代碼來解決別人已經(jīng)解決過的問題?為什么不分享信息并逐步和迭代地增強當前的開源解決方案呢?這些平等主義價值觀,可能是整個文明的根本,更不用說軟件了,但還是包含了幾千年來一直存在的沖突。
開源軟件安全的問題在于,盡管任何人都可以查看源代碼,但這并不意味著他們會這么做。有一些廣泛使用的開源項目僅由數(shù)量有限的工程師維護。這些工程師無法完全自愿地提供時間和精力,因為他們也需要支付他們的賬單。
即使對于更復雜的開源項目,這也是一個問題。舉個例子,Linux 內核項目由 3000 多萬行代碼組成,包含數(shù)百個需要解決的缺陷,并有近 2000 名活躍的開發(fā)者。每個活躍的開發(fā)者都寫了超過 15000 行的代碼。
根據(jù) Linux 基金會最近的一項研究,一個應用程序平均有 5.1 個重大漏洞仍未解決,41% 的企業(yè)對其開源軟件的安全性缺乏信心。而更糟糕的是,只有 49% 的企業(yè)擁有開源安全策略。
即使開源軟件有安全漏洞,這也不能保證它能被修復。調查顯示,目前修復一個漏洞平均需要 97.8 天,使使用該軟件的企業(yè)在幾個月內容易受到攻擊。這就是開源軟件安全有時被忽視的地方:就像好人可以尋找代碼中的錯誤和漏洞來修復它們一樣,壞人也可以尋找同樣的漏洞來利用它們。
僅僅依靠志愿者社區(qū)來發(fā)現(xiàn)漏洞、報告漏洞和修復漏洞是一個漫長的過程。在你繼續(xù)受益于開源的廣泛優(yōu)勢的同時,花錢請人檢查你的開源解決方案的安全性可以幫助彌補這個問題。
由于必須部署開源軟件的更新和補丁以保證系統(tǒng)的安全,這一要求會帶來獨特的困難。如果你的解決方案依賴于某個軟件版本,更新你的關鍵任務軟件可能會導致功能損失和/或計劃外的停機。當情況對業(yè)務至關重要時,聘請專家來回傳補丁并維護一個時間更長的版本可能比讓大型社區(qū)愿意去做更加優(yōu)雅。
開源社區(qū)經(jīng)常使用的一句話是:“這是開源的,去改變它吧!”它強調了一個關鍵點:當別人在項目中投入時間、精力或金錢的時候,期望白白得到良好的安全水平是不合理的,也是不可持續(xù)的。
要么按原定計劃為開源做出貢獻,改進代碼并為他人發(fā)布,要么聘請專業(yè)人士管理開源代碼并在必要時進行調試,這些都是選擇。然而,這個行業(yè)無法承擔完全不做貢獻。