作者簡介
馮才效,SEAL 安全工程師,擁有6年云計算領域經驗,先后參與 Rancher, Harvester 等開源專案,現致力于撰寫開發者友好型的軟體供應鏈安全檢修工具,
開源軟體運動興起于上個世紀,近幾年在國內愈發活躍,各類開源專案如雨后春筍般涌現,與此同時,大部分企業開始擁抱開源,開源軟體的使用避免重復造輪子,提升了產品研發效率,但同時也可能會帶來隱藏的風險,
開源軟體和商業軟體不同,開源軟體是面向公眾開放軟體源代碼,代碼的獲取者享受在其許可證授權范圍內操作開源軟體的權利,不同許可證之間,具體條款可能存在沖突,因此,開源許可證合規是風險防控的重要考慮因素之一,
開源軟體合規風險
知識產權糾紛
開源軟體并不意味著用戶可以自由使用,而是通過許可證規定使用者使用、修改和發布軟體的權利,大多數現代軟體都集成了大量的開源組件,它們使用的許可證在具體的條款上存在差異,不遵守許可證規定使用,將可能造成侵權,嚴重時可能會面臨法律訴訟,產品召回等風險,
許可證沖突
不同許可證的條款各不相同,開發軟體的程序中也將多個不同的開源組件合并成新軟體,若使用的開源軟體許可證條款之間存在沖突,將可能使得合并成的新軟體不合法,Ruby Rails 團隊就曾遇到該問題,GPLv2 許可證的 mimemagic 使用了 MIT 許可證的 shared-mime-info 軟體,這兩種許可證是不兼容的,mimemagic 的作者在被告知后將最新版的 0.4.0 和 0.3.6 移動到 GPLv2 下,但是 Ruby on Rails 和其他使用了該包的軟體都受到了影響,成千上萬的團隊都可能要做出調整,最終 Rails 用 Marcel 替換了 mimemagic,
私有軟體開源
在引入使用了傳染型許可證的開源軟體時,依據該許可證的要求,可能使得私有軟體必須也繼承該許可證,進而被要求公開私有源代碼,
企業如何進行合規檢查?
制定開源合規策略
開源合規策略是基于開源軟體許可證的基礎條款、現行政策并結合使用者自身情況,制定的一系列使用開源軟體的條件,構建開源合規策略是合規檢查的基礎,
- 梳理開源許可證條款
梳理開源軟體常用許可證相關條款,構建易讀快捷查詢的手冊,
- 構建許可證分組策略
對常用許可證進行分組,自由使用許可證組,需要審查許可證組,禁止使用許可證組,初級的分類支持開發人員快速做出選擇,避免合規問題同時兼顧開發效率,

- 構建許可證兼容策略
許可證兼容性是指許可證間是否兼容,實際開發中,會使用大量開源軟體,可以參考許可證兼容性矩陣構建許可證兼容性策略,檢查同一個專案中集成的組件之間是否存在許可證沖突,

許可證的兼容矩陣
制定合規的軟體開發流程
一個軟體的生命周期包括需求分析、設計、實作、測驗、部署、運維7個階段,將開源合規流程納入軟體開發生命周期管理,能有效避免合規風險,

-
需求分析階段,除了確立軟體需求規范,同時需要和所有利益相關方明確軟體所需的合規策略,合規流程,共同確立使用的軟體成分清單標準,確保能獲取清晰的軟體成分,完整的成分依賴關系,便于后續進行合規檢測,SBOM 是軟體成分清單標準的一種實作,理想情況下,在軟體供應鏈中參與的各方,每一環節都將輸出 SBOM 提供給下一環節,根據 SBOM 可檢測是否違反合規策略,使用統一的 SBOM 格式將有助于后續構建自動化檢測機制,
-
軟體設計階段,根據合規策略選擇合適的開源軟體,
-
軟體實作階段,實際開發中可能使用大量的開源軟體,可借助工具掃描專案,獲取專案直接,間接使用的開源軟體,以及其軟體許可證等資訊,生成軟體成分清單檔案與物料清單(SBOM),可以更加簡單,高效的解決軟體成分和許可證的識別問題,確保 SBOM 中使用到的開源軟體的許可證屬于自由使用許可證組,或經審批允許使用;不存在安全風險,或引入的安全風險在可控范圍內,
-
軟體測驗階段,檢查生成的 SBOM 是否符合標準,資訊是否完備,根據 SBOM 檢查使用的開源軟體是否違反合規策略,
-
部署階段,通過最終測驗后,構建完整的軟體 SBOM,包含軟體基本資訊,依賴關系等,并確保最終輸出的軟體不存在合規風險,輸出軟體的同時為下游用戶提供 SBOM,
-
運維階段,持續跟進合規策略庫和軟體的更新,定期生成最新的 SBOM 進行檢測,及時發現合規風險,對因變化引起違反合規策略的情況,及時修復,
總結
開源在軟體領域已經勢不可擋,隨之而來的風險也不容忽視,企業在采用開源軟體的同時,也應時刻注意懸在頭頂上方的達摩克利斯之劍,積極制定開源合規策略和流程,定期進行合規檢查,在享受開源帶來的便利的同時,規避其風險,
參考鏈接:
Comparison of free and open-source software licenses:
https://en.wikipedia.org/wiki/Comparison_of_free_and_open-source_software_licenses
Fulfilling Open Source license obligations Can checklists help?:
https://events19.linuxfoundation.org/wp-content/uploads/2018/07/OSLS-2019-Fulfilling-Open-Source-license-obligations-Can-checklists-help.pdf
Rails waves goodbye to mimemagic, welcomes Marcel to fix GPL MIME drama:
https://www.theregister.com/2021/03/29/rails_mime_fix/
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/501710.html
標籤:其他
