今年來,開源的熱度持續快速上升。開源給各大企業、組織帶來了諸如迭代更快、成本更低、質量更高的收益;然而,企業在合規使用開源軟件的過程中,也會面臨一系列知識產權風險,這些風險主要源于開源許可證的傳染性特征、不同開源許可之間可能存在的不兼容性,以及開源軟件使用規則中所蘊含的不確定性等因素。
01.什么是開源許可
開源許可是一種針對開源軟件使用者的約束,目的在于規范受著作權保護的軟件的使用或者分發行為。
常見的開源許可,如下圖1中所示。這些許可證,主要分為permissive license(寬松許可)和Copyleft許可(作者保留一定的版權,在任何派生作品中繼續應用相同的條款),它們對知識產權使用、修改和分發的場景作出相應的約束。
這些不同的許可之間,上文已提及可能會存在不兼容、傳染性(即某個開源組件被某個應用使用后,該應用必須遵循該開源組件所使用的許可證或部分許可規則)差異等因素,如圖2中所示。因此,在企業或者組織中,使用開源組件或依賴時,往往會面臨各種合規性風險。那么,如何在研發過程中提前識別并規避此類許可風險呢?下文將接著展開論述。
02.怎么做來規避許可風險
對于企業、研發組織或者個人而言,為了規避上文提到的許可風險,應該做好哪些工作呢?筆者從以下三點給出建議:
對于企業或者個人而言,要做到以上三點,實際上都需要借助一個工具或方案來識別實際研發過程中所使用的開源軟件是否合規。接下來,我們將進一步詳細介紹開源制品的許可掃描的處理方案。
03.制品掃描的方案
在實際生產中,為了應對許可風險,我們可以借助類似Trivy、Murphysec等開源工具,來掃描項目中使用的依賴,這些工具能夠一鍵識別出項目中所有的開源組件,并且列出它們所對應的許可證信息。
獲得掃描結果后,我們可以在許可證信息的基礎上,進一步補充說明許可風險信息。在這一步驟中,不同的組織或者團隊會有兩種不同的處理方式:一種是明確標記出許可證合規的風險等級;另外一種則是不標記等級,而是直接標注是否合規。這樣,在項目中可以通過查看許可證合規風險的提示信息,來判斷項目是否存在不合規的情況。
在項目實踐中,上述的掃描方案通常會被集成于制品庫產品中,與制品的安全掃描(即漏洞掃描)場景合為一個場景進行處理。制品的掃描結果(涵蓋了漏洞安全掃描和許可證掃描)可以被整合為制品的質量規范,依據該規范,可以指定制品的準入或者準出的門禁。基于這樣的門禁機制,制品的合規性在很大程度上可以通過自動化的方式有效避免。
綜上所述,各企業和個人若能做到文中所述的幾點,那么在制品合規風險上就不必再如履薄冰;此外,文中提及的制品掃描解決方案和實踐方式,在一定程度上能夠提升制品合規的生產效率和準確性。
申請演示