tmygt
2024年9月18日 16時02分
SBoM生成について質問があります。 v2.13.0の https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro… を参照しています。
1. https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro… に記載の `/usr/libexec/make-sbom/config/config.yaml` が見当たりません。正しい場所はどこですか
$ cat /usr/libexec/make-sbom/config/config.yaml cat: /usr/libexec/make-sbom/config/config.yaml: そのようなファイルやディレクトリはありません
2. ルートファイルシステムのSBoMについて、6.25.3と6.26.3の2種類の生成方法があるように読み取ったのですが、正しいですか? (ルートファイルシステムビルド時に生成する方法と、SWUにパッケージングするときに生成する方法がある?)
3. ABOSとコンテナを使った製品を作った場合、製品全体のSBoMは下記3つのSBoMから構成されると考えています。
(1) bootloaderのSBoM
(2) kernel/rootfsのSBoM -> 6.25.3/6.26.3 の手順で生成
(3) コンテナのSBoM -> 6.26.4 の手順で生成
セキュアブートを利用する予定なので、bootloader/kernel/rootfsは自前でビルドする想定です。
(1)に相当するSBoMはどのように生成するのでしょうか。
以上、よろしくお願い致します。
コメント
tmygt
山崎様
回答ありがとうございます。1, 3 について承知いたしました。
2 について、理解を深めるためもう少し質問させてください。
> もし、ルートファイルシステムのみの SBOM が不要の場合は、ルートファイルシステムのビルドのみを実行してルートファイルシステムを作成します。そのあと、「6.26.3. ビルドしたルートファイルシステムの SBOM を作成する」を実行することで SWU イメージ内にルートファイルシステムを含んだ SBOM が出力されます。
すべてまとめたSBoMが生成されるほうが便利なのでこちらの方法をとりたいのですが、セキュアブートを使う場合(初回書き込みでは) Image.signedはSWUに含まれないので (参考: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec… ) 、rootfsのSBoMは別で生成する必要があると考えています。この理解はあっていますか?
tmygt
追加で質問です。
セキュアブートを有効にした場合のrootfs更新では、通常のrootfs更新と異なって Image.signed をソースとしますが (参考: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec… ) この場合でもswu生成時にrootfsのSBoMは生成できますか?
at_reika.yamazaki
お世話になっております。山崎です。
>すべてまとめたSBoMが生成されるほうが便利なのでこちらの方法をとりたいのですが、セキュアブートを使う場合(初回書き込みでは) Image.signedはSWUに含まれないので (参考: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec… ) 、rootfsのSBoMは別で生成する必要があると考えています。この理解はあっていますか?
あっています。
「5.7.5. セキュアブート対応 swu の作成」ではセキュアブートするための、ストレージ暗号化と暗号化セキュアブート設定を行う SWU イメージを作成しています。そのため、この SWU イメージには Image.signed やルートファイルシステム は含まれていないため、仰るように別で生成する必要があります。
>セキュアブートを有効にした場合のrootfs更新では、通常のrootfs更新と異なって Image.signed をソースとしますが (参考: https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-base-os-sec… ) この場合でもswu生成時にrootfsのSBoMは生成できますか?
「5.10. セットアップ完了後のアップデートの運用について」の Linux カーネルの更新 (encrypted_rootfs_linux_update.desc) の場合ですね。
申し訳ございません。encrypted_rootfs_linux_update.desc では Image.signed の SBOM 作成に対応していません。
Image.signed と同等の内容の SBOM を作成したい場合は、もとの kernel イメージの内容を含めるように desc ファイルを修正する必要があります。
encrypted_rootfs_linux_update.desc に以下の★の行を追加することで、baseos ディレクトリに展開した内容を含めた SBOM を作成することができます。
# This example is intended for users with ENCRYPTED_ROOTFS. # Ignore it if not using encryped rootfs. # version must be updated everytime like normal updates swdesc_option version=2 swdesc_option BUILD_SBOM=auto★ swdesc_option sbom_config_yaml=swu/config.yaml★ # Image.signed is an a linux image with initrd built using # imx-boot/secureboot.sh linux swdesc_boot_linux "Image.signed" swdesc_sbom_source_file "baseos"★
各項目に関する詳細は以下をご確認下さると幸いです。
・6.26.4. SWU イメージと同時に SBOM を作成する
https://manual.atmark-techno.com/armadillo-iot-g4/armadillo-iotg-g4_pro…
上記の desc ファイルを使用すると update_linux.swu と自動時に update_linux.swu.spdx.json が生成されます。
以上、どうぞよろしくお願いいたします。
tmygt
at_reika.yamazaki
2024年9月18日 18時38分
お世話になっております。山崎です。
申し訳ございません。
1. のファイルパスについですが、正しいパスは以下になります。
マニュアルは今月のアップデートで修正いたします。
2. どちらも SBOM は生成しますが、役割が違います。
・「6.25.3. Alpine Linux ルートファイルシステムをビルドする」
こちらはルートファイルシステムをビルドすると同時に、ルートファイルシステムの SBOM を生成します。
・「6.26.3. ビルドしたルートファイルシステムの SBOM を作成する」
こちらは SWU イメージの内容に合わせた SBOM を出力します。
コマンドに示すようにオプション `-f` を使い、 `-f baseos-x2-[VERSION].tar.zst` のようにルートファイルシステムを指定することで、ルートファイルシステムが含まれる SWU イメージについての SBOM が出力されます。 `-f` でコンテナのイメージファイルを追加で指定した場合は、コンテナの内容も SBOM に含まれます。
もし、ルートファイルシステムのみの SBOM が不要の場合は、ルートファイルシステムのビルドのみを実行してルートファイルシステムを作成します。そのあと、「6.26.3. ビルドしたルートファイルシステムの SBOM を作成する」を実行することで SWU イメージ内にルートファイルシステムを含んだ SBOM が出力されます。
3.ブートローダーの SBOM については、お手数ですが弊社のダウンロードページからダウンロードしていただけますでしょうか。
G4 の場合は以下になります。
https://armadillo.atmark-techno.com/resources/software/armadillo-iot-g4…
以上、どうぞよろしくお願いいたします。