Microsoftはソフトウェア部品表(SBOM)生成ツールをオープンソースとして公開した。ソフトウェアのサプライチェーンを管理でき、セキュリティ向上にも役立つ。
この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。
Microsoftは2022年7月12日(米国時間)、SBOM(Software Bill of Materials:ソフトウェア部品表)生成ツール「sbom-tool」をオープンソースとして公開した。
SBOMはソフトウェアを構成する全てのコンポーネントのリストのこと。ソフトウェアサプライチェーンにおける透明性や、依存関係のトレーサビリティー(追跡可能性)を確保するための有効な手段として、世界的に普及が進んでいる。例えば、2021年の米国大統領令「国家のサイバーセキュリティの向上」においても、SBOMは重要な要件として挙げられている。
Microsoftによると、今回のSBOM生成ツールは汎用(はんよう)的で、業務に広く利用されてきた実績がある。WindowsやLinux、macOSなどのプラットフォームで動作し、SPDX(Software Package Data Exchange)形式でSBOMを生成する。SPDXはSBOM情報を伝達するための国際オープン標準(ISO/IEC JTC1標準)に準拠している。
今回のツールはさまざまなパッケージ管理システムなどと簡単に統合して、これらの管理システムを自動検出できる。こうした自動検出機能は今後も拡充されていく予定だ。
対応するのは以下のシステム。
Node.jsのパッケージ管理システム「NPM」や.NETのパッケージマネジャー「NuGet」、Pythonのパッケージリポジトリ「PyPI」、Objective-Cライブラリ管理ツール「CocoaPods」、Java用プロジェクト管理ツール「Apache Maven」、Googleの「Golang」、Rust用のレジストリ「Rust Crates」、Rubyのパッケージ管理システム「RubyGems」、コンテナ内のLinuxパッケージ、多言語対応の自動ビルドツール「Gradle」、ライブラリの依存関係の管理ツール「Apache Ivy」、GitHubパブリックリポジトリなど。
Microsoftが公開したツールで生成されるSBOMは、SPDX仕様に基づく4つの主要なセクションを含んでいる。
・(1)ドキュメント作成情報セクション
SBOMドキュメントに関する一般的な情報。例えば、ソフトウェア名やSPDXライセンス、SPDXバージョン、ドキュメント作成者、作成日時などだ。
・(2)ファイルセクション
ソフトウェアを構成するファイルのリスト。各ファイルは内容のハッシュ値(SHA-1、SHA-256)などのプロパティを持つ。
・(3)パッケージセクション
ソフトウェアのビルド時に使用したパッケージのリスト。各パッケージは名前やバージョン、提供元、ハッシュ値(SHA-1、SHA-256)、パッケージURL(purl)ソフトウェア識別子などのプロパティを持つ。
・(4)関係セクション
ファイルやパッケージなど、SBOMのさまざまな要素間の関係を示すリスト。
MicrosoftのSBOM生成ツールは、完全な依存関係ツリーを取得するために、他のSBOMドキュメントを参照できる。これは、SBOMドキュメントに対する依存関係の参照を取り込む上で、つまり、先行ビルドから得られたSBOMドキュメントを、後続のビルドでのSBOMドキュメントの生成に利用する上で重要な機能だ。このような情報はドキュメント生成情報セクションに記録が残る。
今回のSBOM生成ツールのオープンソース化は、コミュニティー内でのコラボレーションとイノベーションを促進する重要なステップであり、これにより、より多くの組織がSBOMを生成できるようになり、その開発にも貢献できるようになると、Microsoftは述べている。
Copyright © ITmedia, Inc. All Rights Reserved.