2023年十大開源軟件風險
現代軟件幾乎80%的代碼都是開源代碼,開源軟件已經成為現代軟件開發的基石,但同時也是軟件供應鏈中最薄弱的環節。
根據應用安全公司Synopsys的調研,84%的商業和專有代碼庫中至少檢測到一個已知的開源漏洞,其中48%屬于高風險漏洞,包括已被積極利用的遠程代碼執行漏洞。
根據Endor Labs最新發布的報告,當前企業主要面臨以下十大開源安全風險:
1. 已知漏洞
2. 合法開源軟件包泄漏
3. 名稱混淆攻擊
4. 缺乏維護的軟件
5. 過時的軟件
6. 未跟蹤的依賴項
7. 許可證風險
8. 不成熟的軟件
9. 未經批準的變更
10. 依賴項不足/過多
三大開源安全風險
已知漏洞在十大開源風險榜單中排名第一。Endor Labs報告稱,如果軟件中的已知漏洞被攻擊者利用,可能會危及相應系統或其數據的機密性、完整性或可用性。
近年來影響最大的一些已知漏洞包括導致Equifax數據泄露的Apache Struts中的CVE-2017-5638漏洞和Apache Log4j(也稱為Log4Shell)中的CVE-2021-44228漏洞。
為避免已知漏洞的風險,報告建議企業定期掃描開源軟件,對漏洞進行優先級排序并優化資源分配。
合法開源軟件包泄露是開源軟件的第二大風險。攻擊者可能會入侵合法開源項目或代碼分發渠道資源,將惡意代碼注入組件。例如,劫持合法項目維護者的帳戶或利用包存儲庫中的漏洞。SolarWinds網絡攻擊就是一個典型的入侵合法軟件包的案例。
第三大開源軟件風險是名稱混淆攻擊。攻擊者創建名稱類似于合法開源或系統組件名稱的組件,冒充值得信賴的開發者(品牌劫持)或使用不同語言或生態系統中的通用命名模式。
為避免名稱混淆攻擊風險,企業需要檢查安裝hooks前后的代碼特征以及項目特征,如源代碼存儲庫、維護者帳戶、發布頻率、下游用戶數量等。此類風險的一個例子是Colourama攻擊,這是對名為“Colorama”的合法Python包的域名仿冒攻擊,可將比特幣轉賬重定向到攻擊者控制的錢包。
三大運營風險
除了開源軟件本身包含的重大安全風險外,報告還分析了開源軟件風險可能帶來的主要運營風險。
缺乏維護的,或不再積極開發或更新的開源組件版本會導致安全漏洞缺少補丁,這是開源軟件帶來的最大運營風險。補丁開發工作將不得不由下游開發人員自己完成,從而導致工作量增加和解決時間更長。在補丁開發期間,系統將(長期)處于暴露狀態。
過時的軟件(不要與無人維護的軟件混淆)是開源軟件的第二大運營大風險。所謂過時軟件指的是一個軟件項目使用了舊的開源組件版本,而不是最新的版本。
如果項目使用的開源組件版本遠遠落后最新版本,那么在緊急情況下很難及時更新。舊版本也很難獲得與最新版本相同級別的安全評估。
此外,如果新版本在句法或語義上與當前使用的舊版本不兼容,開發人員可能還需要進行大量更新或遷移工作來解決不兼容問題。
開源軟件的第三大運營風險是未跟蹤的依賴項,即開發人員完全未意識到的開源組件依賴項。這可能是因為該組件沒有記錄在上游組件的軟件物料清單(SBOM)中,軟件成分分析(SCA)工具壓根沒有檢測到,或者因為該依賴項不是使用包管理器創建的。因此,開發人員在選擇SCA工具時需要評估和比較其生成準確物料清單的能力。