「SPDX LiteはSPDXは何が違うのか」
このような疑問をお持ちの方に、当記事ではSPDX Liteの概要をSBOMの全体像から順に解説します。SPDXとの違いを理解し、SPDX Liteの作成を選択できれば業務負担は大幅に削減可能です。当記事でその内容、作成方法、運用手順をご確認ください。
SPDX Liteの概要
SPDX Liteの概要を以下の流れで解説します。
- SPDXとは
- SPDX Liteとは
- SPDX Liteが登場した背景
SPDXとは
SPDX(Software Package Data Exchange)は、ソフトウェア部品表であるSBOMのフォーマットの1つです。
近年、自社開発したアプリケーションでも複数のOSS(オープンソースソフトウェア)が含まれることが多くあります。OSSは他社または他人が開発したものです。自社開発したアプリケーションでもOSSが含まれる場合、OSSの情報も把握しておく必要があります。
そこでSBOMを作成し、開発したアプリケーションの部品として各OSSの情報を記載します。SBOMを作成すれば確認したい箇所にOSSが利用されていても、情報の追跡が可能です。
SBOMについては別記事で解説しているので、あわせてご覧ください。
SBOMはフォーマットがあり、そのうちの1つがSPDXです。SPDXはLinux Foundationプロジェクトの元で開発されたフォーマットで、広く用いられています。
SPDX Liteとは
SPDX LiteはSPDXの簡易版です。
SPDXは詳細な情報を記載するフォーマットで、網羅的に情報をキャッチできます。しかし、必要な情報量が多く、作成に大きなコストが必要です。
SPDX LiteはSPDXに記載する情報のうち、必要最低限なものに絞ったフォーマットになります。SPDX Liteの方がより少ない情報量で作成できるため、コストをかけずにSBOMを作成したい中小企業や小規模プロジェクトにおいて重宝されています。一方で大規模プロジェクトには不向きなフォーマットともいえます。情報が絞られているため、情報の網羅性が足りないケースが出てくるためです。SBOM作成時に全てのケースでSPDX Liteを使うべき、というわけではなく使い分ける必要があります。
SPDX Liteが登場した背景
SPDX Liteが広まった背景には大きく以下の2点があります。
- OSSの利用増加によるSBOMのニーズ拡大
- 中小規模プロジェクトからのニーズ
各企業でOSSの利用が増えたことで、SBOMは開発するソフトウェアの使用状況を可視化するために需要が拡大しました。これを機にSBOMを作成するニーズ自体が広がっています。
大企業によるSBOM作成はSPDXで問題がなかったものの、中小企業や小規模プロジェクトでもSPDXの作成を始めます。しかし、SPDX作成に時間を取られすぎると、本来の開発や運用業務の足枷となってしまい、本末転倒でした。そこでSPDX Liteが登場し、大企業でなくてもSBOM作成に対応しやすくなっています。
SPDX Liteの注目は高まっており、トヨタ自動車はサプライチェーンにSPDX Liteの作成を求めました。同様に他社もSPDX Liteの利用を検討しているところです。
SPDX LiteとSPDXの違い
SPDX LiteとSPDXの具体的な違いは以下の通りです。
- 情報の粒度
- 使用目的
SPDX LiteはSPDXで記載されるソフトウェア情報のうち、必要最低限のみが記載されます。具体的には以下の通りです。
- 共通事項
- ドキュメント情報
- パッケージ情報
- ライセンス情報
- SPDXのみ書かれる事項
- パッケージメタデータ
- パッケージ同士の依存関係
- ファイルレベルのデータ
記載すべき情報の内容が少ないので、SPDX Liteの方が作成が簡単に行えます。
また両者には使用目的の違いがあります。SPDX Liteはリソースが限られる小規模プロジェクトや作成スピードを重視したい場合に作成すべきフォーマットです。
一方で、法的コンプライアンスを満たす上で必須の場合はSPDX一択です。例として大企業や政府によるプロジェクトの場合にはSPDXが必要になります。他にも詳細な情報を記載しなければいけない場合は、SPDXを選択することになるでしょう。
SPDX Liteを利用するメリット
SPDX Liteを利用するメリットは以下の通りです。
- ライセンス管理が簡単になる
- 拡張性が高い
- 法的リスクを低減できる
ライセンス管理が簡単になる
ライセンス管理が簡単になることが最大のメリットです。
ソフトウェアのライセンス管理は、利用するソフトウェア数が増えるほど煩雑になり、負担が大きくなります。SPDX Liteでライセンス管理をしておくと、管理のしやすさが向上し、管理の負担軽減が可能です。
またSPDXのように詳細な情報が必要なフォーマットで管理をしようとすれば、管理自体は楽になるものの、作成に時間がかかります。SPDX Liteであれば情報量が少なくなるため、作成の時間も削減できることがメリットです。
SPDX Liteでライセンス管理をすることで、管理のしやすさ向上のメリットを得られます。またSPDXの情報量が多く、作成時にやや苦労するデメリットも打ち消せることが嬉しいポイントです。
拡張性が高い
拡張性が高いこともメリットです。
作成時は少ないコストで作成できます。例として小規模プロジェクトを想定し、SPDX Liteを作成します。しかし、作成後に大規模プロジェクトとして本格始動することが決定した場合を想定しても、SPDXと同等になるよう情報を追加すれば対応可能です。
SPDX Liteは後から情報の追加ができるため、プロジェクトの規模や要件の変更時にも容易に対応できます。
法的リスクを低減できる
SPDX Liteでライセンス管理をすれば法的リスクを低減できます。
SBOMを作成する目的の1つは、ソフトウェアの適切なライセンス管理です。適切な管理ができないと、開発時に不都合が生じるだけでなく、ライセンス違反で法的に問題になる可能性があります。例としてソフトウェアを再配布する場合には、ライセンス情報や著作者情報を正しく残さなければなりません。ライセンス違反を犯さないことは企業の重要な責務です。
軽量フォーマットでも、適切なライセンス管理による法的リスクの低減が可能です。
SPDX Liteに含まれるべき内容
SPDX Liteに含まれる具体的な内容は以下に分類できます。
- ドキュメント情報
- パッケージ情報
- ライセンス情報
ドキュメント情報
SPDXにドキュメント情報として書かれる項目名は以下のとおりです。
- SPDX Version
- Data License
- SPDX Identifier
- Document Name
- SPDX Document Namespace
- Creator
- Created
SPDX Version
SPDX Liteドキュメント自体のバージョン情報です。使用しているSPDX仕様のバージョンを示し、互換性や仕様の正確さを保証するために必要な情報になります。
Data License
ドキュメント自体に適用されるライセンス情報です。他者がどのようにこのドキュメントを使用、共有、改変できるかを規定します。
SPDX Identifier
ドキュメントを一意に識別するための識別子です。他のSPDXドキュメントやデータベースと区別するためのIDとして付与します。
Document Name
ドキュメントのタイトルや名称です。ドキュメントの内容を簡潔に表現し、後で検索や参照しやすい名前をつけることになります。
SPDX Document Namespace
ドキュメントの名前空間です。同じ名前や識別子のドキュメントがあったとしても、名前空間を分けることで、一意性を確保します。
Creator
ドキュメントを作成した個人や組織の名前です。責任の所在や連絡先情報として記録します。
Created
ドキュメントが作成された日時です。日付形式は標準に従い、履歴管理やバージョン管理に役立ちます。
パッケージ情報
SPDXにパッケージ情報として書かれる項目名は以下のとおりです。
- Package Name
- Package SPDX Identifier
- Package Version
- Package File Name
- Package Download Location
- Files Analyzed
- Package Home Page
- Package Comment
Package Name
パッケージの名称です。一般的には正式な製品名が使用されます。
Package SPDX Identifier
パッケージの識別子です。SPDXドキュメント内で識別するために、一意なIDが使用されます。
Package Version
パッケージのバージョン番号です。パッケージ内で一意の番号になります。
Package File Name
パッケージの配布ファイルの名称です。Package Nameとは異なり、パッケージがシステムやサーバー上でどのように保存され、取り扱われているかを示します。
Package Download Location
パッケージのダウンロード先URLです。利用者がパッケージを取得できる正確な場所を示します。
Files Analyzed
パッケージ内の個別ファイルが分析されたかどうかTrue/Falseで示す項目です。具体的にどのように分析したのか、分析の結果はどうか、までは示しません。
Package Home Page
パッケージの公式WebサイトのURLです。追加情報やサポートリソースを確認するために記載します。
Package Comment
パッケージに関する補足情報や特記事項を記載するフィールドです。パッケージの特殊な利用法や制限事項などを説明する際に使用します。
ライセンス情報
SPDXにライセンス情報として書かれる項目名は以下のとおりです。
- Concluded License
- Declared License
- Comments on License
- Copyright Text
- License Identifier
- Extracted Text
- License Name
- License Comment
Concluded License
パッケージに適用されたと最終的に判断されたライセンスです。
Declared License
パッケージの開発者や提供者が宣言しているライセンスです。これはパッケージの公式なライセンス情報として公開されており、ソフトウェア利用者が守るべきルールを明示します。
Comments on License
ライセンスの追加説明です。ライセンスの特殊な適用範囲や、利用者が注意すべき点の補足に使用されます。
Copyright Text
パッケージに対する著作権者や団体の情報です。著作権者の名前や年、著作権に関する法的な記述が含まれ、法的保護の対象を明確にします。
License Identifier
ライセンスの識別子です。SPDXライセンスリストにもとづき、特定のライセンスを一意に示します。
Extracted Text
ライセンス文書から抽出されたテキストです。ライセンスの主要な条件や条項を明確に確認できます。
License Name
適用されているライセンスの正式名称です。一般的にはライセンスリストに登録されている名前になります。
License Comment
ライセンスの特記事項や追加説明です。特殊な適用条件やライセンス変更履歴についての補足情報として利用されます。
SPDX Liteの作成・運用手順
SPDX Liteの作成・運用手順は以下の通りです。
- 必要情報の整理
- SPDX Liteの作成
- ドキュメントの共有、公開
- ドキュメントの更新
必要情報の整理
SPDX Liteの作成のために、必要情報の整理をしましょう。
当記事を参考に、開発したソフトウェアに含まれる各ソフトウェアについて、パッケージ情報やライセンス情報を調査してください。各情報はソフトウェアの公開ページ、またはソフトウェアのダウンロード時に付随するドキュメントに記載されています。
どこで調べた情報なのかが分かるように、ソース情報の保存も忘れないようにしましょう。
SPDX Liteの作成
必要情報の整理が完了したら、SPDX Liteの作成です。必要情報の整理でまとめた情報に加え、ドキュメント情報の追加で、SPDX Liteへの必要事項が満たされます。
作成時はExcelフォーマットに記入していく方法が分かりやすいです。こちらのリンクにてフォーマットをダウンロードできるのでご利用ください。
またspdx-toolsというツールの利用で作成したSPDX Liteが成立しているか確認ができます。SPDX Liteのファイル形式はxls、json、yaml、xmlのいずれかです。
ドキュメントの共有、公開
SPDX Liteの作成が完了したら、必要部隊への共有や外部への公開を行いましょう。
内部で共有する際には特に懸念点はありません。メールや共有フォルダなど、チームのルールに則って共有してください。
外部に公開する場合は、公開パッケージのリポジトリに添付する方法がよいでしょう。Githubなどでソースコードを公開する場合に添付しておけば、外部に公開され、ユーザーの手に渡ります。
ドキュメントの更新
SPDX Liteはソフトウェアがアップデートされるたびに更新作業が必要です。
SPDX Liteはソフトウェアの更新が続く限り、その機能を維持するには継続的な更新が欠かせません。。ソフトウェアがアップデートされるたびに、内容を更新する必要があります。例として開発したソフトウェアのバージョン2を登場させる場合、そのソフトウェアに含まれるバージョンも最新版を利用することになるでしょう。ドキュメント情報のみならず、パッケージ情報も最新化する必要があります。
SPDX Liteは常に最新の情報を公開できるよう、運用に注意してください。
まとめ
SPDX LiteはSBOMフォーマットのSPDXの簡易版です。SPDXは情報量が多く、小規模なプロジェクトや企業には管理コストが大きいという課題がありました。SPDX LiteはSPDXほど大量の情報が必要なく、必要最小限でSBOMの妖艶を満たせます。こうしてソフトウェアの安全性を示すとともに、コンプライアンス遵守に貢献しています。
本記事をお読みの結果、SPDX Liteではなく、SPDXやCycloneDXでの管理が必要と判断した場合は三和コムテックが提供するSBOM対策「Labrador Labs」の利用をご検討ください。
SBOM対策「Labrador Labs」
- トピックス:
- セキュリティ