開源正在吞噬軟體世界,SourceClear 在2020年發布的調查報告指出開源專案已呈現指數級增長趨勢,2026 年預計超過 3 億,開源軟體(OSS)的出現簡化了軟體開發流程,這正是超過90%的組織在其應用程式中使用開源組件的原因之一,這也意味著企業代碼庫中擁有的代碼正在從閉源自研轉向開源,
?
開源的優勢在哪里?
開源已經改變了軟體行業,這種增長趨勢背后的原因很明顯:使用開源組件避免了“重復造輪子”,可以加快應用程式開發速度,使開發人員更加高效和富有成效,
?
此外,開源組件為開發人員提供了一種無縫的方式來構建代碼并借助開源社區的協作作業進行應用程式開發,這意味著開發團隊可以專注于其組織獨有的自定義代碼,同時使用開源工具和庫來提高開發效率,
?
使用開源組件的風險
隨著開源代碼的日益普及,安全風險也隨之而來,研究發現,開源漏洞經常出現在間接依賴項(也稱為“傳遞依賴”)中,但問題在于,許多開源組件已經過時,并且包含修改過的或缺失的許可證,因此這些問題在開源專案可能包含的間接依賴項中特別難以找到,
?
以下是使用開源組件可能會面臨的幾個風險:
軟體質量 – 使用開源代碼模塊會增加參與開發人員的可變性,并減少對應用于第三方代碼的 QA 流程的控制,
?
長期維護 - 如果開源模塊沒有被維護,軟體開發人員需要額外分配時間和精力來處理漏洞,
?
軟體許可 – 開源組件的最終用途決定了開源許可證合規性的型別:permissive 或 copyleft,Permissive license 允許實施和分發企業軟體,而 copyleft license 進一步要求使用 OSS 組件構建的軟體是免費提供的,從而存在泄露資訊的風險,隨著大型應用程式的開源依賴項數量的增加,確認模塊的著作權狀態和使用限制變得愈發困難,
?
開源軟體安全 - 與質量風險類似,如果開發人員沒有在開發程序中妥善解決安全問題,使用的開源組件可能會伴隨安全風險,
?
如何有效降低開源風險?
為軟體專案選擇適當的開源組件可以降低與軟體質量、許可和著作權侵權相關的風險,在此有一些關鍵問題亟待解決,例如,“企業是否應該將軟體細節作為商業秘密進行保護?”以及“企業在使用組件的方式是否會與開源提供商的協議相沖突?”
?
為幫助企業更好地了解上述開源安全風險,并幫助企業在不影響安全性的情況下利用開源組件的優勢,請參考以下五個安全管理開源組件 Tips,
?
1. 保護軟體供應鏈
軟體供應鏈中某個地方引入的漏洞對源代碼產生了連鎖反應,現代應用程式是模塊化構建的,它們由互連的內部和外部模塊組裝而成,因此,在進行完整的代碼開發之前,應當反復自動測驗軟體供應鏈中的模塊是否存在安全問題,
?
2. 建立自動化執行策略
添加外部開發的軟體模塊會帶來風險,因此,組織需要調整其風險承受能力,并落實在軟體開發生命周期(SDLC)的各個階段,創建評估開源組件的內部策略是避免添加構成安全威脅的模塊的有效方法,
?
3. 著重定位 SCA
軟體成分分析(SCA)是一種保護使用開源組件的應用程式的方法,SCA 的重要性在于提高開發團隊跟蹤和分析外部組件(如支持庫、依賴項、許可證和安全漏洞)的速度,
?
4. 將 SCA 工具添加到安全測驗工具包
SCA 工具的可追溯性可幫助團隊快速查找和解決許可證和安全問題,使其成為開源策略和現有開發作業流程不可或缺的一部分,
?
5. 對外部源代碼的 Fork 更改
Fork 是開發人員在修改開源代碼之前克隆開源代碼的程序,Fork 允許跟蹤代碼更改,但也將原始代碼與修改后的代碼分開,它還利用了 OSS 的一大優勢:能夠為特定應用程式自定義現有模塊的源代碼,
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/499644.html
標籤:其他
