第三方庫對於加快軟體開發生命周期至關重要。開發人員通常不是從頭開始編碼,而是出於各種目的整合開源庫 - 無論是為了成本效益、缺乏資源還是更好的靈活性。Maven Central 和 PyPI 等儲存庫以及依賴項管理工具簡化了這一過程並提高了工作效率。然而,這種依賴也帶來了潛在的安全風險。
管理專案的開源依賴項可能會帶來挑戰,包括嵌套依賴項(依賴項中的一個或多個依賴項)和依賴項管理方面的專業知識有限。外部庫的整合擴大了攻擊面並增加了安全風險。發現庫中的漏洞可能會危及依賴該元件的所有軟體。因此,必須利用依賴項掃描工具來識別和解決源自第三方依賴項的已知漏洞。
Software 重複使用與依賴性採用
隨著分發生態系統變得越來越容易訪問,開發人員選擇重用現有軟體來加快複雜的軟體開發。但是,如果不仔細管理,這種便利可能會帶來意想不到的安全問題。這些現有的軟體程式主要以軟體包的形式透過 Internet 分發,這些套件包含稱為庫的發佈版本的存檔,以及指定版本、作者、證照、參考文獻和其他相關訊息的元資料。打包軟體簡化了分發和版本控制過程。
開發人員經常在開源許可下公開共用他們的代碼,從而實現代碼審查、社區協作和輕鬆整合。任何開發人員都可以重用、修改或貢獻代碼庫。項目在品質、維護和支援方面差異很大。作者發佈這些軟體包是為了使它們更易於訪問,但支援和責任取決於證照。
在另一個專案中引用包後,它將成為專案依賴項,表示外部包引用。依賴關係在軟體包之間創建單向關係,其中一個套件依賴於另一個軟體包才能正常運行。開發人員在他們的應用程式中包含依賴項,在建構時解析它們並獲取必要的依賴項。
供應鏈是指參與該過程的所有外部供應商,特別是那些提供軟體依賴關係的供應商。近年來,供應鏈管理在軟體開發中越來越亮點,公司制定了包括供應商要求、法律檔和合約在內的政策,以確保在接受供應商之前遵守規定。
依賴關係管理
管理依賴關係很快就會變得不堪重負,從而導致所謂的“依賴關係地獄”。現代應用程式可能具有數百甚至數千個直接依賴項,這使得追蹤漏洞具有挑戰性。下面是管理大量依賴項成為挑戰的一些方案。
- 缺乏代碼審查: 儘管開源是透明的,但有時團隊可能會跳過對代碼的審查,從而導致一種錯誤的安全感。
- 隱式信任: 開發人員通常包含依賴項,而不徹底審查作者,僅依賴於儲存庫包含。
- 廣泛的依賴使用: 開發人員通常嚴重依賴軟體包,即使只需要其中的一小部分功能,也會導致依賴關係臃腫。
- 重大變更: 更新套件可能很複雜,並且可能會引入重大更改,從而導致猶豫和過時的軟體包。
- 責任問題: 開源維護和支持標準達不到商業軟體的要求,導致專案開發人員的爭議和不切實際的期望,可能導致不安全的軟體包。
針對第三方依賴項的攻擊增加引發了對軟體安全的擔憂。2021 年的Log4Shell漏洞或最近2024年3月的 XZ Utils 後門 等備受矚目的事件影響了數千個 Maven 軟體包,凸顯了此類漏洞的廣泛影響。同年, 在流行的 NPM 包 ua-parser-jsis 中發現的惡意軟體 凸顯了與在應用程式堆疊中使用第三方庫相關的風險。
2024 年 1 月另一個值得注意的攻擊是 MavenGate,這是一種新的軟體供應鏈攻擊方法,透過廢棄的庫劫持依賴項。成功利用這些缺點可能允許惡意行為者在依賴項中找到易受攻擊的工件並將惡意代碼注入應用程式,更糟糕的是,透過惡意外掛程式破壞建構過程。
隨著開源庫使用的增加,瞭解和減輕這些風險變得至關重要。這促使我們進一步調查開源庫中漏洞的普遍性、類型和持久性,以及它們與專案屬性和提交的關係。
保護依賴項 OPSWAT SBOM公司
作為對供應鏈攻擊的回應,美利堅合眾國於 2021 年 5 月批准了 “關於改善國家網路安全的行政命令” ,該命令定義了改進供應鏈政策的步驟。其中一個關鍵要求是為每個產品提供 SBOM 。
OPSWAT 軟體物料清單 (SBOM) 不斷發展,以滿足在安全環境中不斷增長的軟體開發需求。的主要特點之一 OPSWAT SBOM 是依賴掃描。此功能旨在透過識別專案所依賴的依賴項中的漏洞來增強代碼庫的可見性。
包依賴掃描
OPSWAT SBOM 在開發和測試過程中自動檢測軟體依賴項中的安全漏洞。例如,SBOM 讓團隊知道應用程式是否使用了已知易受攻擊的開源庫。然後,團隊可以採取措施來保護應用程式。
使用 Python 檢查依賴關係
Container 圖像掃描
OPSWAT SBOM 檢查容器映像的每一層,以識別漏洞或威脅,涵蓋應用程式使用的操作系統 (OS) 包和依賴軟體庫。這種主動方法能夠在潛在問題升級為重大問題之前發現和解決它們。
檢查與 Alpine 的依賴關係
開發人員和安全團隊可以從瞭解依賴項漏洞的常見類型、流行率和持久性中受益,使他們能夠衡量嚴重性並探索修正策略。
SBOM 會掃描項目的依賴項以查找已知漏洞。檢測到後,SBOM 會提供詳細資訊,包括嚴重性級別、漏洞描述和可用修復程式。
可以匯出詳細報告,供團隊追蹤:
- 掃描的依賴項總數
- 在所有依賴項中發現的漏洞總數
- 掃描的一系列版本
- 已知的 CVE
- 嚴重、高、中、低嚴重性漏洞總數
OPSWAT SBOM 建議安全團隊使用漏洞修復程式將所有易受攻擊的程式包更新到最新版本。這使團隊能夠解決包維護者的漏洞或從依賴項樹中刪除包。這種主動方法使團隊能夠在潛在的安全風險成為問題之前解決它們,從而顯著增強其軟體專案的安全性和完整性。此外 OPSWAT SBOM 説明組織在軟體供應鏈中保持合規性和安全性。強烈建議團隊:

映射依賴關係
利用工具確定環境中存在哪些依賴項及其關係。

消除不必要的依賴關係
刪除不必要或不必要的依賴項,以減少攻擊面。

使用已建立的儲存庫
確保依賴項是從信譽良好的來源獲得的。

掃描所有依賴項
在任何軟體中使用依賴項之前,請掃描它們以瞭解安全或品質問題。
結束語
透過利用依賴掃描工具,例如 OPSWAT SBOM,您可以主動識別和解決專案依賴項中的漏洞,從而在潛在的安全風險被利用之前降低這些風險。利用依賴項掃描和 SBOM 的強大功能來建構安全、合規且具有彈性的軟體應用程式。