|原文出處:The Openchain Reference Tooling Work Group
|翻譯:劉天棟.Ted,開源社.ONES(開源戰略研究組)
|編輯:胡湘月
|設計:周穎
引言
開源軟件已經吞噬了整個世界,但企業仍在為有效的合規性而努力。開源軟件是異質的和重復使用的,這雖然對軟件開發有積極意義,但對合規性造成了挑戰。合規性需要多種工具,這些工具最好能組合成一個工作流程,以支持一些業務和開發人員的要求。其中一個要求是在現代開發環境中的易用性,即代碼開發周期越來越短,新的開發成果越來越快地被推向運營。要做到這一點,開源合規性工具很可能需要與開發工具集成。
在下面的報告中,我們列出了其中的一些工具,包括它們的主要許可信息、網站和基于項目描述的功能摘要。本報告的目的是為了描繪出人們可能用來幫助保持其開源軟件合規性的廣泛的開源工具。然而,這份報告雖然很全面,但并不詳盡。該報告包括自由和開放源碼軟件工具以及一些商業工具。它還有一節是關于開放源碼倡議和開發環境的,因為這些也是走向自動開放符合開放工具和開放數據的重要途徑。
本報告將在生態系統調查和最流行的開源工具的實際測試的基礎上得到補充。本報告是 Double Open 項目中第一個工作包的一部分。更多細節請參見?doubleopen.org。
現有開源軟件許可合規工具
1、AboutCode Toolkit
「官網」:AboutCode
https://www.aboutcode.org/
「許可證」:Apache-2.0
「摘要」:AboutCode Toolkit 和 About 文檔提供了一種簡單的方式來記錄你在項目中使用的第三方軟件組件的來源、許可、使用和其他重要或有趣的信息。此外,這個工具能夠生成歸屬聲明,并識別你的項目中使用的可重新分配的源代碼。
2、AboutCode Manager
「官網」:AboutCode
https://www.aboutcode.org/
「許可證」:Apache-2.0
「摘要」:AboutCode Manager 提供了一個先進的可視化用戶界面,幫助你快速評估由ScanCode 識別的許可證和其他通知,并記錄你對一個組件的有效許可證的結論。AboutCode Manager是基于 Electron的,是使用 nexB 的 AboutCode 工具的主要桌面/UI 工具。
3、Apache Rat
「官網」:Apache Rat
http://creadur.apache.org/rat/
「許可證」:Apache-2.0
「摘要」:Apache Rat 是一個發布審計工具,主要針對許可證。它用 Java 編寫,通過 Maven 和 Ant 的插件在命令行中運行。Rat 是可擴展的。它是 Apache Creadur 項目的一部分。
4、Apache Tentacles
「官網」:Apache Tentacles
http://creadur.apache.org/tentacles/
「許可證」:Apache-2.0
「摘要」:Apache Tentacles 通過自動與包含發布工件的版本庫進行交互來幫助審查者。Apache Tentacles 簡化了審查由大量工件組成的版本庫的工作。它是用 Java 編寫的,從命令行運行。
5、Apache Whisker
「官網」:Apache Whisker
http://creadur.apache.org/whisker/
「許可證」:Apache-2.0
「摘要」:Apache Whisker 協助組裝的應用程序保持正確的法律文件。Whisker 可以
驗證--針對某一個發行版檢查其元數據的質量
生成--從元數據中生成法律文件
對于復雜的組合式應用程序特別有用。
6、Bang
「官網」:Bang
https://github.com/armijnhemel/binaryanalysis-ng
「許可證」:AGPL-3.0
「摘要」:Binary Analysis Next Generation,即 BANG,是一個分析二進制文件的工具。目前,它的主要目標是非常迅速地找出二進制文件的內容,如固件更新,并使從內容中提取的信息可用于進一步分析,如許可證合規性、安全研究或成分分析。它支持大約 130 種不同的文件格式。
7、Barista
「官網」:Barista Open Source License and Vulnerability Management Tool
https://optum.github.io/barista/
「許可證」:Apache-2.0
「摘要」:
開發者關注:Barista 從根本上說是一個掃描工具,用于檢測開源組件、許可證和潛在的漏洞。自動創建和維護開源材料清單,包括多層次的依賴性。
自定義業務規則:Barista 管理員確定與檢測到的每個許可證相關的職責或任務,并根據部署模式、適用的許可證和檢測到的依賴的已知漏洞,來指派項目的批準狀態。
云原生架構:Barista 是為云原生部署環境而設計的,允許托管的靈活性和按需擴展。
8、Bubbly
「官網」:Bubbly
https://github.com/valocode/bubbly/
「許可證」:MPL 2.0
「摘要」:Bubbly 是一個發布準備平臺,幫助軟件團隊自信地發布符合要求的軟件。通過報告和分析獲得你的發布過程的可見性,以降低風險,提高質量,減少周期時間,并推動持續改進。
9、CLA Assistant
「官網」:CLA Assistant
https://github.com/cla-assistant/cla-assistant
「許可證」:Apache-2.0
「摘要」:CLA Assistant 通過讓貢獻者在拉取請求(pull request)中簽署貢獻者許可協議(CLA)來幫助處理對倉庫貢獻的法律問題。CLA 可以存儲為 GitHub 的 Gist 文件,然后與 CLA Assistant 中的軟件庫/組織鏈接。倉庫所有者可以審查每個發布版本的 CLA 的簽署用戶列表。
10、Cregit
「官網」:Cregit
https://github.com/cregit/cregit
「許可證」:GPL-3.0
「摘要」:Cregit 可以識別源代碼的貢獻者。一個源文件的 Cregit 版本有兩個互動功能。
? 1.鼠標移動:你會得到一個添加此令牌(token)的提交信息的摘要。這些信息是
它的 commitid
它的 git-author(該提交的 Author 字段的值)
它的 git-author-date(提交的 Author Date 字段的值)。
提交的摘要日志
? ?2.左鍵點擊一個令牌(token):會打開一個新的窗口,顯示(在 GitHub 中)該提交的細節。你可以一直打開這個窗口,它將不斷重新加載文件。
11、Deltacode
「官網」:AboutCode
https://www.aboutcode.org/
「許可證」:Apache-2.0
「摘要」:DeltaCode 允許您輕松地比較一個軟件包、組件、代碼庫或產品的兩個版本的 ScanCode 掃描,以便快速識別可能的變化,重點是識別許可證變化。DeltaCode 報告匹配的文件,并提供一個分數和對該分數造成影響的因素列表。你可以使用 DeltaCode 和 ScanCode 來識別和跟蹤開源或第三方軟件包或組件中的許可證和不同發布版本之間的相關變化。
12、Eclipse SW360
「官網」:Eclipse SW360
https://projects.eclipse.org/projects/technology.sw360
「許可證」:EPL-1.0
「摘要」:是一個軟件目錄應用程序,旨在為一個組織所使用的軟件組件信息提供一個集中式分享場所。通過為不同的任務提供獨立的后臺服務和一組訪問這些服務的 portlets,它被設計為簡潔地集成到與軟件工件和項目的管理有關的現有基礎設施中。它有與外部系統(如代碼掃描工具)互動的連接器。到目前為止,該項目還沒有提供下載信息。
13、Eclipse SW360antenna
「官網」:Eclipse SW360
https://projects.eclipse.org/projects/technology.sw360.antenna
「許可證」:EPL-2.0
「摘要」:Eclipse SW360antenna 是一個可以盡可能地使你的開源許可證合規自動化的流程工具。歸根結底,這就是為你的項目
收集所有與合規性有關的數據。
處理這些數據并警告是否存在任何與許可證合規性有關的問題,以及
生成一套合規性工件(源代碼包、披露文件、報告)
14、Fossology
「官網」:Fossology
https://www.fossology.org/
「許可證」:GPL-2.0
「摘要」:Fossology 是一款用于許可證、版權和出口控制掃描的工具。只需一次點擊,你就可以生成一個 SPDX 文件,或一個包含你所有的軟件版權聲明的 ReadMe 文檔。它提供了一個 Web UI 和一個數據庫,用于合規工作流程。要掃描,必須將軟件包上傳到服務器。提供的掃描器有Monk、Nomos 和 Ninka。它對掃描的軟件包有版本控制,所以當掃描以前的軟件包的較新版本時,只有新改變的文件被重新掃描。
15、FOSSLight
「官網」:FOSSLight
https://fosslight.org/
「許可證」:AGPL-3.0 及其它
「摘要」:FOSSLight 是一個可以有效地處理開放源碼合規過程的綜合系統。它提供了。
合規工作流程:它可以處理開放源碼的合規工作流程。
合規中心:你可以管理所有關于開放源碼合規性的事情,如許可證,漏洞和其他。
可擴展性:它可以使用額外的功能(包括 FOSSLight 掃描儀或其他插件)。
16、LDBCollector
「官網」:LDBCollector
https://github.com/maxhbr/LDBcollector
「許可證」:BSD-3-Clause
「摘要」:一個小的應用程序,它收集開源軟件許可證元數據并將其合并。
17、License Compatibility Checker
「官網」:license-compatibility-checker
https://github.com/HansHammel/license-compatibility-checker#readme
「許可證」:MIT
「摘要」:根據 SPDX 標準,檢查 npm 依賴的 package.json 的許可證兼容性。這個項目宣稱是一項正在進行的工作,但已給出了軟件包中的許可證的簡單比較,并解釋了許可證的允許程度(寬松的 Permissive > 弱保護的 Weakly Protective > Strongly Protective 強保護的> Network Protective 網絡保護的),并用一個彩色的圖顯示潛在的不兼容性。
18、Licensee.js
「官網」:Licensee.js
https://github.com/jslicense/licensee.js
「許可證」:Apache-2.0
「摘要」:Licensee.js 是一個命令行工具,用于根據規則檢查 npm 軟件包依賴的許可證元數據。它使用 SPDX 許可證表達式和白名單數據來捕獲與白名單不同的許可證下的軟件包。
19、Ninka
「官網」:Ninka
http://ninka.turingmachine.org/
「許可證」:GPL-2.0
「摘要」:Ninka 是一個輕量級的源代碼許可證識別工具。它是基于句子的,并提供了一種簡單的方法來識別源代碼文件中的開源許可證。它能夠識別幾十個不同的許可證(以及它們的變種)。
20、Opossum Tool
「官網」:Oposssum Tool
https://github.com/opossum-tool
「許可證」:Apache-2.0
「摘要」:一個輕量級的應用程序,用于審計和清點大型代碼庫的開源許可證合規性。
OpossumUI 的開發目標是建立一個管理和結合不同來源的開源合規數據的工具。雖然現有的軟件合規性分析工具可以提供良好的信息,但由于檢測率的提高,使用多種此類工具往往會導致大量的數據。即使可以通過自動工具合并結果和過濾噪音,但最后的人工修改往往是必要的。因此,OpossumUI 誕生了。一個輕量級的應用程序,用于審查大型代碼庫的合規信息。OpossumUI 是一個用來執行以下任務的工具:
* 發現應用中使用的開放源碼軟件。
* 審查許可證。
* 從源代碼掃描中生成報告。
21、OSS Attribution Builder
「官網」:OSS Attribution Builder
https://github.com/amzn/oss-attribution-builder
「許可證」:Apache-2.0
「摘要」:OSS Attribution Builder 是一個幫助團隊為軟件產品創建屬性文件的網站。
22、OSS Discovery by OpenLogic
「官網」:OSS Discovery
http://ossdiscovery.sourceforge.net/
「許可證」:GPL-3.0
「摘要」:OSS Discovery 可以找到嵌入在應用程序中并安裝在計算機上的開源軟件。它是一個掃描工具,可以給出人類可讀和機器可讀的結果。
23、OSS Review Toolkit ORT
「官網」:ORT
https://github.com/heremaps/oss-review-toolkit
「許可證」:Apache-2.0
「摘要」:通過檢查源代碼和依賴關系來驗證自由和開源軟件許可證的合規性。它的工作原理是分析源代碼的依賴性,下載依賴性的源代碼,掃描所有源代碼的許可證信息,并對結果進行總結。組成 ORT 的不同工具被設計成具有最小命令行界面(用于編程)的庫(用于腳本使用)。目前,報告格式有 Excel 表格、NOTICE 文件、靜態 HTM L和 Web App。
24、OSSPolice
「官網」:OSSPolice
https://github.com/osssanitizer/osspolice
「許可證」:GPL-3.0
「摘要」:OSSPolice 是為開發者提供的風險評估服務,可以快速識別其應用程序中潛在的自由軟件許可違規行為和已知的 n-day 安全漏洞。
25、Quartermaster Project QMSTR
「官網」:QMSTR
https://qmstr.org/
「許可證」:GPL-3.0
「摘要」:Quartermaster 是一套命令行工具和構建系統的擴展,它對軟件構建進行分析,以創建FOSS 合規性文件并支持合規性決策。Quartermaster 與軟件構建過程相鄰運行。一個主進程收集有關軟件構建的信息。一旦構建完成,主進程會執行一些分析工具,最后是一些報告者。所有的模塊都是在主進程的背景下執行的,而不是在構建機器上。主站運送所有模塊的依賴關系,而不影響構建客戶的文件系統(它在一個容器中運行)。
26、ScanCode.io and ScanPipe
「官網」:ScanCode.io
https://scancodeio.readthedocs.io/en/latest/introduction.html#
「許可證」:Apache-2.0
「摘要」:ScanCode.io 是一個服務器,用于對軟件構成分析(SCA)的過程進行腳本化和自動化,以識別應用程序代碼庫中的任何開源組件及其許可證合規性數據。ScanCode.io 可用于各種用例,如 Docker 容器和虛擬機組成分析,以及其他應用。
ScanPipe 是一個對開發者友好的框架和應用程序,幫助軟件分析師和工程師建立和管理現實生活中的軟件組成分析項目,作為腳本管道。
ScanPipe 為執行和組織這些軟件組成分析項目所需的基礎設施提供了一個統一的框架。
27、ScanCode Toolkit
「官網」:ScanCode
https://www.aboutcode.org/
「許可證」:Apache-2.0
「摘要」:ScanCode 是一套命令行工具,可以可靠地掃描代碼庫中的許可證、版權、軟件包清單和直接依賴關系以及其他在源代碼和二進制代碼文件中發現的有趣的來源和許可證信息。ScanCode 提供全面的掃描結果,你可以將其保存為 JSON、HTML、CSV 或 SPDX。作為一個返回 JSON 的命令行應用程序,ScanCode 很容易集成到代碼分析管道和 CI/CD 中。
28、SCANOSS
「官網」:scanoss.com
https://www.scanoss.com/
「許可證」:GPL-2.0-or-later
「摘要」:SCANOSS 是第一個免費和開放源代碼的 SCA 平臺和開放數據的 OSS 知識庫。它在 SPDX 和 CycloneDX 中執行 SBOM 生成,并在代碼片段、文件和組件層面檢測開源的存在。中心組件是一個基于 OpenAPI 標準的 RESTful API。為不同的語言和與其他工具的整合提供了參考代碼。通過 SCANOSS,你可以在任何工具中實現組件、文件和片段的匹配。公共知識庫被稱為 OSSKB,可以在 oskb.org 上找到。掃描可以安全地和匿名地進行。
29、SPDX Tools
「官網」:SPDX Tools
https://spdx.org/tools
「許可證」:Apache-2.0
「摘要」:僅需要一次下載,統一的 SPDX 工作組工具能提供翻譯、比較和驗證功能。該工具是一個Java 命令行工具,有以下功能:
TagToSpreadsheet - 將一個標簽格式的輸入文件轉換為電子表格的輸出文件
TagToRDF - 將一個標簽格式的輸入文件轉換為 RDF 格式的輸出文件
RdfToTag - 將一個 RDF 格式的輸入文件轉換為一個標簽格式的輸出文件
RdfToHtml - 將一個 RDF 格式的輸入文件轉換成一個 HTML 網頁輸出文件
RdfToSpreadsheet - 將一個 RDF 格式的輸入文件轉換為一個電子表格格式的輸出文件
SpreadsheetToRDF - 將一個電子表格輸入文件轉換為 RDF 格式的輸出文件
SpreadsheetToTag - 將電子表格輸入文件轉換為標簽格式輸出文件
SPDXViewer - 顯示一個 SPDX 文檔輸入文件(標簽/值或 RDF 格式)。
CompareMultipleSpdxDocs - 比較多個 SPDX 文檔(標簽/值或 RDF 格式),并輸出到電子表格。
CompareSpdxDocs - 比較兩個 SPDX 文檔(以標簽/值或 RDF 格式)。
GenerateVerificationCode - 從一個文件目錄中生成一個驗證碼。
30、SPDX Maven Plugin
「官網」:SPDX Maven Plugin
https://github.com/spdx/spdx-maven-plugin
「許可證」:Apache-2.0
「摘要」:SPDX Maven 插件是 Maven 的一個插件,為 POM 文件中描述的工件生成 SPDX(軟件包數據交換 Software Package Data Exchange)文件。
31、TraceCode toolkit
「官網」:AboutCode
https://www.aboutcode.org/
「許可證」:Apache-2.0
「摘要」:TraceCode Toolkit 幫助你確定哪些組件是為你的產品實際分發或部署的。這是確定你的開源許可義務的基本信息,因為很多都是通過分發或部署才觸發的。TraceCode Toolkit 是一個分析構建的跟蹤執行的工具,因此你可以了解哪些文件被構建成二進制文件并最終部署在你的分布式軟件中。
32、Tern
「官網」:Tern
https://github.com/vmware/tern
「許可證」:BSD-2-Clause
「摘要」:Tern 是一個用 Python 編寫的用于容器的軟件包檢查工具。Tern 是一個檢查工具,用于查找安裝在容器鏡像中的軟件包的元數據。它通過兩個步驟完成這一工作。
它使用 overlayfs 來掛載容器鏡像中的第一個文件系統層
然后,它在 chroot 環境下執行 "命令庫 "中的腳本,以收集該層中安裝的軟件包的信息
以這些信息為基礎,它繼續對容器鏡像中的其他層進行步驟 1 和 2 的迭代。
一旦完成,它就會生成不同格式的報告。默認的報告是對哪些層帶來了哪些軟件組件的粗略解釋。如果提供了一個Docker文件,那么它也會提供Docker文件中的哪些行被用來創建這些層。
33、Vulnerability Assessment Tool
「官網」:Vulnerability Assessment Tool
https://github.com/SAP/vulnerability-assessment-tool
「許可證」:Apache-2.0
「摘要」:開源漏洞評估工具支持軟件開發組織在應用開發過程中安全使用開源組件。該工具分析 Java 和 Python 應用程序,以檢測它們是否依賴具有已知漏洞的開源組件,收集關于在特定應用程序上下文中執行脆弱代碼的證據(通過靜態和動態分析技術的組合),并支持開發人員減輕這種依賴性。因此,它解決了 OWASP 十大安全風險 A9,亦即使用已知漏洞的組件,這往往是數據泄露的根本原因。
鳴謝
”
該工具的概述是由?「doubleOpen Overview 」衍生出來的作品。doubleOpen Overview 的版權歸 doubleOpen 所有,并在「?CC-BY-4.0」?的條款下提供。doubleOpen Overview 和這個列表將是同步的。如果你發現了任何新的基于 OSS 的合規工具,請在 doubleOpen repo 或我們的 Github repo 中添加它。請幫助我們改進和完善目前可用的開源軟件工具的許可合規信息。
原文
Existing OSS licensed OSS license compliance tools
閱讀原文即可閱讀
# END?#
相關閱讀?|?Related Reading
工程師如何對待開源——一個老工程師的肺腑之言
開源項目辦公室(OSPO)是如何使工程師回饋開源的
行走在開源世界的孤勇者:“只有開源接納了我”?|?技術人訪談錄
開源社簡介
開源社成立于 2014 年,是由志愿貢獻于開源事業的個人成員,依 “貢獻、共識、共治” 原則所組成,始終維持廠商中立、公益、非營利的特點,是最早以 “開源治理、國際接軌、社區發展、開源項目” 為使命的開源社區聯合體。開源社積極與支持開源的社區、企業以及政府相關單位緊密合作,以 “立足中國、貢獻全球” 為愿景,旨在共創健康可持續發展的開源生態,推動中國開源社區成為全球開源體系的積極參與及貢獻者。
2017 年,開源社轉型為完全由個人成員組成,參照 ASF 等國際頂級開源基金會的治理模式運作。近七年來,鏈接了數萬名開源人,集聚了上千名社區成員及志愿者、海內外數百位講師,合作了近百家贊助、媒體、社區伙伴。