送出過濾條件

資訊中心管理
2024 OWASP OSS 十大風險快速指南
前往目錄
CVE(即公開的軟體漏洞)主導了有關開源軟體(Open SourceSoftware,簡稱:OSS)風險的討論。2016 年統計共有 6,457個 CVE 風險,此後,統計數字逐年增長,至 2023 年 CVE 風險數量已經達到 28,961 個,在短短七年內增長了近 4.5 倍。截止至 2024 年 4月,目前 CVE 風險數量已經有望超越 2023 年,一旦 AI 認真致力於發現甚至於創造漏洞,我們可能會看到更快速的成長。
但 OSS 安全不僅僅是 CVE 問題。實際上,一個由 CISO 和經過 OWASP 認可的專家所組成團隊,正在探討除了 CVE 之外的OSS 風險。他們新發表一份名為《2024 OWASP OSS 十大風險快速指南》的文章,以下就讓我們來深入了解。

OSS-RISK-1:已知漏洞攻擊

雖然前述提到 CVE 之外還有其他可能的風險,像是國家漏洞資料庫(NVD)中被列為已知的漏洞也是不可小覷的。即使開發人員已經非常仔細地在元件採用及編寫程式,有時仍會不小心在程式中留下安全漏洞。已知的漏洞來源可能會被駭客所利用(使用 EPSS 評分和公共漏洞通報), 而即使是已修補版本,仍需要注意有可能仍存在漏洞。

OSS-RISK-2:對於合法套件的妥協使用

開源套件來源很重要,但有別於軟體原著性,沒有一個開源套件會是因為可以以合法公開原著而無法放棄使用,而我們所指 的「放棄」是指「完全無法妥協」。在著名的 SolarWinds 攻擊中,威脅行為者能夠將惡意程式碼植入套件之中,然後對其進行簽署並散布給數以萬計的 SolarWinds 客戶。雖然 SolarWinds 的 Orion 不是開源套件,但這種攻擊也有機會發生在開源套件上。攻擊者使用多種手法將惡意代碼植入合法套件中,例如滲透代管維護人員的帳戶、利用儲存庫中的漏洞假扮成真正的開發者並將惡意代碼隱藏在普通測試檔案中,就像在 XZ-utils 中的一般檔案。

OSS-RISK-3:名稱混淆攻擊

目前有許多非法和惡意軟體冒充為友善的程式碼。駭客將使用名稱、標誌和其他特徵標記來欺騙混淆毫不知情的開發人員, 使他們下載到這些已被加料的套件。這些套件同時具有原先的功能,但大多都包含了未被檢測到的後門程式。一旦這些套件進入您的系統使用,不僅使系統安全性降低,甚至還可能因此受到攻擊。還記得前面提到來源安全很重要嗎?這個風險突顯了其原因。

OSS-RISK-4:未維護的軟體

開源套件開發貢獻者製作開源軟體是出於熱情,通常是利用空閒時間完成。當沒有空閒時間可以利用時,則程式的定期更新和安全性修補也會受到影響或停滯。原始專案團隊以外的開發者雖然可以製作自己的修正版本,但他們相對缺乏套件相關開發的背景經驗可能會導致解決問題的時間更長。

OSS-RISK-5:過時的軟體

有時候我們未更新元件,可能是因為遺忘、不知道有新版本可用,或是因為沒有時間。但問題在於老舊版本會存在已知風險,當累積待更新的版本越多,若這期間發生了重大安全問題,更新版本會變得更加困難。

2024 OWASP OSS  十大風險快速指南

OSS-RISK-6:無法追蹤軟體相依性元件

保護未知的事情是困難的,相依性可能因多種不同的因素而不易追蹤,進而產製了不完整的軟體物料清單(SBOM)。或者由人工進行盤點,導致過多的相依性來不及消化。即使使用自動追蹤工具盤點,也可能因僅放入部份片段程式碼或未採用套件管理器安裝而遺漏。

OSS-RISK-7:授權和法規風險

並非所有的開源授權都給予相同的權限, 它們之間不一定相互相容,而一些看似 「開源」的專案實際上根本沒有獲得開源授權。在不考慮授權情況下使用開源套件,可能會使你的專案陷入棘手且衍生法律範疇問題。此外,開源套件可能無法滿足像 FedRAMP 這樣的監管計畫要求,從而使您的產品沒有資格銷售給某些企業客戶。

OSS-RISK-8:不成熟的軟體

雖然許多開源專案是由經驗豐富且熟練的開發人員創建的,但有些專案實際上並非如此。在缺乏經驗的前提下,會增添不佳的程式編碼導致產生額外的風險,例如在更新版本的驗證測試不充份、測試文件很少或幾乎沒有,或者使用令人困惑的非標準版本控制,這些方案在更新時若對於功能造成破壞,都可能增加開發人員的工作量和作業時間。 當然,草率的程式編碼也可能引入許多安全漏洞。

OSS-RISK-9:未經批准的更改 (套件物件導向可變性)

您的開源元件可能會引入來自其他專案套件的程式碼和資料,這些程式碼和數據可能會在開發人員不知情或未經批准的情況下進行變更或篡改。這些未經授權的更改可能來自未經版本控管的資料來源、不安全的資料傳輸以及已更改的版本化資源,這可能發生在開發人員在命名套件版本時使用萬用字符,或者將 Git 儲存庫的主版本指向特定版本。即使沒有任何安全問題,可變更套件物件也可能導致穩定性問題和無法重現的構建。

OSS-RISK-10:過多 / 過少的相依套件

過少相依性的套件其程式碼行數非常少,可能直接自行開發即可。由於任何開源套件都可能受到帳號接管或惡意拉取請求的影響,因此專案開發大量依賴使用開源套件會增加更多的風險,例如我們無法控制套件作者是否安全保護其帳戶密碼。另一方面,若僅使用大型套件中的一小部份,也可能因為其可攻擊面多而增加被攻擊的可能,尤其是常需要注意這些大型套件的漏洞通報也是相當另人困擾的。

了解 Mend.io Open Source 管理及檢測>>>https://www.gss.com.tw/mend-io