2024 年 10 月 24 日
第 4 話:組込み Linux「EMLinux」の SBOM 出力機能を使ってみよう
はじめに
前回の記事 組込み Linux「EMLinux」をカスタマイズしてみよう にて、NIGINX を EMLinux にインストールしました。NGINX のみならず、EMLinux は様々なソフトウェアで構成されています。では、EMLinux にはどのようなソフトウェアが含まれているのでしょうか?それを一元的に管理するために必要となるのが SBOM (Software Bill of Materials) です。
SBOM とは?
SBOM とは、Software Bill of Materials の略で、日本語にすると「ソフトウェア部品表」になります。具体的には、ある製品がどのようなソフトウェアで構成されているか、またそのソフトウェアがどのようなライセンスを利用しているかを記載したものになります。
SBOM については以下の記事もご参照ください。
- SBOM(Software Bill of Materials) とは(前編)~ SBOM の基礎知識から詳しく解説 ~
- SBOM(Software Bill of Materials) とは(後編)~ SBOM の基礎知識から詳しく解説 ~
EMLinux の SBOM 出力機能
EMLinux には SBOM 出力機能として、SBOM を出力するためのコマンドが実装されています。このコマンドを用いて、NGINX がインストールされた EMLinux の SBOM を出力してみます。
前回の記事 で EMLinux をビルドした環境にて、EMLinux のビルド用コンテナを起動してください。
コンテナ起動後、work ディレクトリにて以下のコマンドを実行してください。
build@28d700e79b8d:~/work$ source setup-emlinux
create_sbom.py --help を実行すると、以下のように使用例が表示されます。
build@9bcd07a37366:~/work/build$ create_sbom.py --help usage: create_sbom.py [-h] --image IMAGENAME --sbom-format SBOM_FORMAT [--distro DISTRO] [--licenses FILE] [--license-mapping FILE] --supplier SUPPLIER --product PRODUCT [--verbose] options: -h, --help show this help message and exit --image IMAGENAME EMLinux image name --sbom-format SBOM_FORMAT spdx or cyclonedx --distro DISTRO debian distro name(e.g. bookworm) --licenses FILE license yaml file --license-mapping FILE license mapping yaml file --supplier SUPPLIER Supplier name(e.g. company name) --product PRODUCT Product name --verbose Enable verbose output
以下のように create_sbom.py を実行してください。以下の実行例では SPDX を指定しています。
$ create_sbom.py --image custom-image \ --supplier "Cybertrust Japan Co., Ltd." \ --product EMLinux3 \ --sbom-format spdx 2024-10-03 02:05:12,364:INFO: Create spdx format sbom for custom-image 2024-10-03 02:05:12,421:INFO: sbom was created to /home/build/work/build/tmp/deploy/sbom/custom-image-emlinux-bookworm-qemu-arm64/custom-image-spdx.json
コマンドの実行が完了しましたら、exit コマンドでコンテナからログアウトしてください。
build@28d700e79b8d:~/work/build$ exit
以下のファイルに SPDX 形式の SBOM が出力されています。
/home/emlinux/EMLinux_3.1-202409/source/emlinux-3.1-202409/build/tmp/deploy/sbom/custom-image-emlinux-bookworm-qemu-arm64/custom-image-spdx.json
例えば、前回の記事で追加した NGINX については、BSD-2-Clause ライセンスであることが示されています。
(前略) "attributionTexts": [ "PkgID: nginx@1.22.1-9" ], (中略) "licenseConcluded": "Expat AND LicenseRef-scancode-public-domain AND GPL-2.0-or-later AND BSD-2-Clause", "licenseDeclared": "Expat AND LicenseRef-scancode-public-domain AND GPL-2.0-or-later AND BSD-2-Clause", (後略)
NGINX の GitHub を参照すると、確かに BSD-2-Clause ライセンスを使用しています。
さいごに
近年、ソフトウェアサプライチェーンセキュリティの改善のために、SBOM を活用する動きが活発化しています。
EMLinux には SBOM 出力機能が標準実装されており、本記事で示したようにコマンド 1 つで簡単に SBOM を出力することが可能です。
SBOM 出力機能は無償評価版でも利用可能です。ぜひ、「EMLinux 無償評価版」で SBOM 出力機能をお試しください。
なお、サイバートラストでは、お客様の SBOM に関するお困りごとに応えるための「SBOM コンシェルジュ」というサービスも提供しております。EMLinux と併せて、SBOM コンシェルジュのご利用もご検討いただければ幸いです。
関連リンク
連載リンク
- 第 1 話:商用組込み Linux:「EMLinux」のご紹介
- 第 2 話:組込み Linux「EMLinux」を使ってみよう
- 第 3 話:組込み Linux「EMLinux」をカスタマイズしてみよう
- 第 4 話:組込み Linux「EMLinux」の SBOM 出力機能を使ってみよう