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