本日、FossID Dependency Analysis 1.0のリリースが発表されました。この新しいツールはどんなもので、ユーザにとってどんな意味があるのでしょうか?
Dependency Analysis (依存性解析)とは
FossIDのツールでは、依存性解析とは、パッケージマネージャのマニフェストを展開し、プロジェクトで使用されている直接的および推移的な依存関係を推定することで、宣言されているオープンソースコンポーネントやコンポーネントに関連するライセンスおよびセキュリティ情報をソフトウェア部品表(SBOM)に追加するプロセスを指します。
宣言されているOSS (オープンソースソフトウェア)とされていないOSSの違いや、なぜ両方をSBOMに含める必要があるのかについては、こちらの記事で説明しています。
これまでFossIDに依存性解析機能はなかったのか
FossIDは設立以来、OSS Review Toolkit(ORT)に貢献するとともに、ORTを FossID Workbenchに統合して依存性解析機能を強化してきました。FossIDは長期にわたってORTのメンテナーたち(その中にはFossIDの顧客もいます)と密接に協力してきましたし、今後も協力を続けます。
新たに何が導入され、なぜそれが必要なのか
このたび、FossIDは独自の依存性解析ソリューションであるFossID Dependency Analysis バージョン 1.0のリリースを発表しました。 FossID Dependency Analysisは、当社の監査チームおよび顧客にとって重要な次の3つのユースケースに対応するために開発されました。
- 宣言されていない依存関係を特定します。つまり、C、C++、Go、Pythonでのファイルレベルのインポートなど、パッケージマネージャを介さずに導入される依存関係を見つけます。
- FossID CLIを使用して「ディープスキャン」を実施し、宣言された依存関係内のライセンスおよびコピーライトがパッケージマネージャによってレポートされたのと異なるケースを検出します。
- ソースコードをFossIDナレッジベースにアップロードすることなく監査を行うFossID独自の技術であるブラインドスキャンで依存性解析を実施し、監査サービスの顧客にパッケージマネージャのマニフェストを共有するよう依頼する必要をなくします。
当社の監査チーム、顧客、パートナには、ベータ版の段階でツールをテストし、バグを報告してくれたことに感謝します。多くの協力のおかげで、微妙な依存関係を正確に把握してSBOMに含めるFossID Dependency Analysisの機能に、当社は自信を持っています。
ORTとFossID Dependency Analysisの機能は同じか
ブラインドスキャンでの利用、ソースファイルおよびアーカイブ内の宣言されていない依存関係の検出、宣言された依存関係の「ディープスキャン」はFossID Dependency Analysisだけの機能であり、ORTベースの依存性解析では利用できません。
そのうえで、ORTとFossID Dependency Analysisの大きな違いは、宣言されたオープンソースの解析方法にあります。どちらもパッケージマネージャのマニフェストを解析に利用しますが、ORTはインストール済みのパッケージマネージャを使用して依存関係を処理するいっぽうで、FossID Dependency AnalysisはパッケージリポジトリへのAPI呼び出しを行うことでパッケージマネージャをエミュレートします。つまり、FossID Dependency Analysisは、Workbenchのホストにパッケージマネージャがインストールされていなくても、宣言された依存関係を解析できます。
この特徴は、宣言されたオープンソースを解析するうえで2つのトレードオフをもたらします。 1) ORTはパッケージマネージャに依存しているので、インストール済みのパッケージマネージャをカスタマイズすることで、ビルド時に行われる処理をより忠実に反映できます。 2) ORTは内部的なパッケージレジストリなどのプライベートなミラーに保存された依存関係を処理できますが、FossID Dependency Analysisには、これは不可能です。
上記のどちらかに該当し、FossID Dependency Analysisの利用に影響がある場合は、FossIDテクニカルサポートセンター宛てにお問い合わせください。当面は、機能改善が必要なプロジェクトおよびスキャンについては、引き続きORTをご利用ください。
結局、今後どちらを使用するべきなのか
FossID Dependency AnalysisはORTと共存してWorkbenchにデプロイでき、FossID設定のWebapp_Dependency_Analysis_CommandオプションですばやくORTとFossID Dependency Analysisの使用を切り替えることができます。
そのため、FossID Dependency AnalysisとORTの機能には重複もありますが、どちらも利用可能にして、プロジェクトに応じて切り替えることができます。次の表は、要件に応じて最適なほうを選択するのに役立つよう、主な違いをまとめたものです。
サポート対象の依存関係ソース
FossID Dependency Analysis | ORT | |
プライマリミラー(Maven Central など)の宣言された依存関係 | はい | はい |
カスタムまたはプライベートリポジトリ内の宣言された依存関係 | いいえ | はい |
検出機能
FossID Dependency Analysis | ORT | |
宣言された依存関係 | はい(プライマリミラーのみ) | はい(プライマリおよびカスタムミラー) |
カスタマイズ可能な依存関係スコープ(devなど) | はい | はい |
パッケージマネージャのバージョンの調整 | はい(構成設定を通じて) | はい(インストールされたパッケージマネージャのバージョンを通じて) |
import文による宣言されていない依存関係 | はい(Python、C/C++、Go) | いいえ |
ファイルレベルのライセンスおよびコピーライトの解析 | はい | いいえ |
アーカイブの依存関係 | はい(Python Wheels) | いいえ |
今すぐお試しください!
FossIDのユーザは、本日からFossID Dependency Analysisにアクセスできます。FossID WorkbenchでFossID Dependency Analysisを使用するには、Workbenchのバージョンが23.3以降であることを確認のうえ、FossID Delivery Portalに記載の手順に従って、システムにFossID Dependency Analysisをデプロイしてください。
ご質問があればFossIDテクニカルサポートセンター宛てにお問い合わせください。
この記事は、FOSSID Blog 「Introducing FossID Dependency Analysis」2024年4月10日 投稿記事をFOSSID社の許可を得て翻訳したものです。)