開源軟體供應鏈的風險
開源軟體已成為軟體開發生態系統的重要組成部分。由於其優勢,例如成本效益、適應性和社區驅動的支援,它已在全球開發人員中得到廣泛採用。
訪問預先存在的軟體元件使公司能夠加快其開發流程並更快地將其產品推向市場。然而,隨著開源包在應用程式開發中的使用越來越多,安全挑戰也越來越大。這篇博文討論了保護開源供應鏈的挑戰以及如何解決這些問題。
攻擊者的最佳點
隨著開源的使用不斷增長,威脅組織有機會利用軟體供應鏈來訪問依賴它的各種目標。
網路犯罪分子瞭解,許多組織不知道其系統中使用的開源軟體以及這些元件中存在的漏洞。駭客不是花費很長時間試圖入侵組織的自定義代碼,而是使用公開可用的漏洞來針對廣泛的組織,並找到具有易受攻擊的開源元件的系統。
此外,對開源供應鏈的攻擊如此成功的主要原因之一是依賴關係圖的巨大複雜性。
積木效應
每個開源軟體包都有自己獨特的供應鏈,可能依賴於多個第三方開源庫。這些第三方庫通常依賴於其他庫,導致高度複雜的相互依賴鏈。
考慮到流行的庫被許多開源軟體包廣泛使用,其中一個中的單個漏洞可能會對整個生態系統造成嚴重破壞。我們已經多次看到這種情況:從免費Log4j紀錄記錄庫中的漏洞到開源開發人員在他廣受歡迎的 npm 包顏色中引入破壞代碼的最新案例之一。
來源: https://xkcd.com/2347/
您無法保護您看不到的東西
在理想情況下,工程團隊將維護組織內使用的開源軟體的全面文檔,也稱為軟體物料清單。每次添加新的依賴項時,它們都會更新此文檔,從而可以輕鬆識別特定庫(如log4j)的使用位置和是否。
此文件還有助於及時發現未維護的包,因為它們可能會引入額外的安全風險。但是,開發人員需要大量工作才能一致地練習記錄軟體元件。同時,許多組織中的安全團隊需要更清楚地瞭解其公司正在使用的依賴項。
錯過上市時間
考慮到開源軟體依賴鏈的複雜性,跟上所有最新的漏洞修復並同時推動創新幾乎是不可能的任務。
為了確保安全性和法律合規性,公司開始積極實施正式的審批流程,以引入新的開源元件。在某些情況下,獲得新元件的批准可能需要長達一個月或更長時間。
與此同時,產品經理必須仔細平衡其開發資源以保持競爭力,他們很難優先考慮新功能,而不是影響其應用程式的越來越多的漏洞。所有這些都可能導致開發時間的嚴重延遲,進而導致上市時間的嚴重延遲,這可能至關重要,至少會導致失去機會。
要走的路
組織在開源軟體供應鏈安全方面面臨的挑戰的潛在解決方案之一是集中管理預先批准和持續安全的開源元件存儲庫的做法。您可以自己建立它,也可以與受信任的供應商合作,他們將為您建立和管理它。
獲得對此類儲存庫的訪問許可權將使您能夠:
- 通過確保您的依賴項沒有漏洞和惡意代碼來最大程度地降低安全風險
- 通過為每個軟體包提供的有保證的軟體物料清單來控制您的依賴關係圖
- 通過為安全修復建立可靠的 SLA,遵守修補策略和法規要求
- 通過消除過多的審批流程和減少技術債務,加快上市時間
經過審查的開源軟體包的單個可信存儲庫將允許您繼續創新,同時自動維護應用程式的安全性。如果您對保護您的 Java 供應鏈感興趣,請 立即存取我們的免費 Java 儲存庫。

