SW360で扱うデータの解説
はじめに
今回は、使い方ではなく、SW360で管理できるデータについてのお話をしたいと思います。
SW360はソフトウェア・コンポーネント・カタログのためのツールです。ソフトウェアを構成するコンポーネントをプロジェクトにマッピングします。ゴールの1つとして、コンポーネント情報の再利用があり、データを集約し共通化します。
今回は、どのようなデータを管理するかについてお話しします。具体的な内容をイメージできるようにすることで、より効率的な導入を行えることができるでしょう。
この記事でお伝えしたいこと
SW360(16.0.0-M1)で取り扱うデータを通し、管理できる内容や問題点について解説します。
以下のような方が読まれることを想定しています。
- SW360について、導入や運用を考えたい方。
また、以下の知識を必要とします。
- オープンソースに関する知識。
- ライセンスに関する知識。
基本
まずはSW360が持つデータの基本的な点から説明を始めます。SW360は次のようなデータを持っており、必要なデータを参照します。
- プロジェクト
- ベンダー
- ライセンス
- コンポーネント
- リリース
プロジェクト(Project)
SBOM (Software Bill Of Materials、ソフトウエア部品表) を管理します。プロジェクトは、リリースのリストを持ちます。属性情報として以下を持ちます。
ベンダー(Vendor)
ソフトウエアを提供するベンダー情報です。属性情報として以下を持ちます。
ライセンス(License)
ソフトウエアのライセンス情報です。SPDXからOSADLの情報を読み込むことができます。属性情報として以下を持ちます。
コンポーネント(Component)
コンポーネントの分析結果情報を管理します。コンポーネントは、リリースのリストを持ちます。属性情報として以下を持ちます。
リリース(Release)
コンポーネントのバージョンごとの情報を管理します。リリースは、ベンダーおよびライセンスのリストを持ちます。SBOMとして管理される対象がリリースとなります。バージョン不明のコンポーネントは管理できないことに注意してください。属性情報として以下を持ちます。
データの活用について
SW360では固定の属性データ以外も簡単に保存することができます。具体的な活用例とともに幾つか紹介します。
添付ファイル
SW360では、各種ファイルを添付することができます。添付先も、プロジェクト、コンポーネント、リリースなど広い範囲を対象としています。レビューの結果や、社内提出用のドキュメント、外部ツールの出力レポートなどを添付することで、さまざまな記録を残すことが可能です。また、FOSSologyの連携では、リリースに添付されたソースファイルを使用したり、ライセンスクリアリングでは、クリアリングレポートを添付することで状態を決定するなど、SW360自身も利用しています。
外部ID
通常の操作で、複数の外部IDを保持することが可能です。社内システムや外部ツールの記録を残す場合に重宝します。
CPE ID
設定することで、NVDの脆弱性情報を定期的に取得、利用しているコンポーネントの脆弱性を追跡することができます。ただし、手動で入力する必要があるのが悩ましい所です。
さいごに
これまで挙げたように、SW360はさまざまな情報とともにSBOMを管理することが可能です。
しかし、幾つか注意すべき点もあります。SW360では、名前の重複が許されない情報があります。特にコンポーネントに関しては、同じバージョンで属性情報が異なるケース(ダウンロード元が違う、利用方法が違う、マルチライセンス)など、命名規則や設定ルールを策定するなど工夫が必要です。また、脆弱性に関しても、1つのリリースでは1つのCPE IDしか持てないことから、複数のCPE IDが割り当てられてしまう問題に対応できません。
運用に関しても考えることは多いのですが、中身を知ることで解決策も見えてきます。ぜひ活用してください。