採用情報

お問い合わせ

BLOG

EMLinux

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 については以下の記事もご参照ください。

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 出力機能をお試しください。

EMLinux無償評価版ダウンロード申し込み

なお、サイバートラストでは、お客様の SBOM に関するお困りごとに応えるための「SBOM コンシェルジュ」というサービスも提供しております。EMLinux と併せて、SBOM コンシェルジュのご利用もご検討いただければ幸いです。

関連リンク
連載リンク
CentOS 7 延長サポートサービス
デジタルトランスフォーメーションのための電子認証基盤 iTrust
SSL/TLS サーバー証明書 SureServer Prime