開源軟件的安全性引起了業界的關注,但解決方案需要就實施方面的挑戰和合作達成共識。
問題很複雜,涉及的方面很多, 供應鏈,依賴性管理,身份等方面的信息。 為此,Google最近發布了一個框架(“知道,阻止,修復”),該框架說明了業界如何考慮開源和特定領域中首先需要解決的漏洞。
Google解釋了其原因:
“由於最近發生的事件,軟件界對供應鏈攻擊的真正風險有了更深入的了解。 從安全的角度來看,開源軟件的風險應該較小,因為所有代碼和依賴項都是開放的,並且可以進行檢查和驗證。 儘管這通常是正確的,但可以假設人們實際上是在進行這項檢查工作。 由於存在如此多的依賴關係,因此無法監視所有依賴關係,並且許多開源軟件包的維護不完善。
“程序直接或間接依賴於成千上萬的程序包和庫是很常見的。 例如,Kubernetes現在依賴大約1000個軟件包。 開源可能使用依賴性而不是專有軟件,並且來自廣泛的供應商。 可以信任的獨立實體的數量可能非常大。 這使得很難理解產品中如何使用開源以及哪些漏洞可能是相關的。 也不能保證所構建的內容將與源代碼匹配。
在Google提出的框架內,建議將這一困難分為三個基本獨立的問題領域,每個領域都有特定的目標:
了解您的軟件漏洞
了解您的軟件漏洞比您預期的要難得多 因為許多的原因。 好的 存在報告漏洞的機制, 尚不清楚它們是否真的影響您使用的軟件的特定版本:
- 目標:準確的漏洞數據:首先,從所有可用數據源中捕獲准確的漏洞元數據至關重要。 例如,了解哪個版本引入了漏洞可以幫助確定軟件是否受到了影響,並且知道何時對其進行了修補可以準確,及時地修復漏洞(以及可能被利用的狹窄窗口)。 理想情況下,此分類工作流程應是自動化的。
- 其次,大多數漏洞在於依賴項,而不是直接編寫或控制的代碼中。 因此,即使您的代碼沒有更改,影響您軟件的漏洞的情況也會不斷發生變化-有些是固定的,有些是添加的。
- 目的:漏洞數據庫的標準架構需要基礎結構和行業標準來跟踪和維護開源漏洞,了解其後果並管理其緩解措施。 一個標準的漏洞方案將允許通用工具在多個漏洞數據庫上運行並簡化跟踪任務,尤其是當漏洞跨越多種語言或子系統時。
避免添加新漏洞
避免產生漏洞是理想的 儘管測試和分析工具可以提供幫助,但預防始終是一個困難的課題。
在這裡, Google建議著重於兩個特定方面:
- 決定新的依賴關係時要了解風險
- 改善關鍵軟件開發流程
修復或消除漏洞
Google承認維修的一般問題超出了它的權限範圍,但是 發布者認為,演員可以做更多的事情來解決這個問題 專門用於管理依賴項中的漏洞。
它還提到:
“今天在這方面幾乎沒有什麼幫助,但是隨著我們提高準確性,值得在新的流程和工具上進行投資。
“當然,一種選擇是直接修補漏洞。 如果您可以通過向後兼容的方式來執行此操作,則該解決方案將適用於所有人。 但是挑戰在於,您不太可能有問題的經驗或直接進行更改的能力。 修復漏洞還假定負責維護軟件的人員知道問題所在,並且擁有披露漏洞的知識和資源。
來源: https://security.googleblog.com
英文原文說:
在這裡,我們關注兩個特定方面:
-在決定新的依賴時了解風險
-改進關鍵軟件的開發流程
版本“LinuxAdictos」 說:
Google建議在此重點關注兩個特定方面:
-了解選擇新癮的風險。
-改進關鍵軟件開發流程
新的癮!!