2024 年 03 月 01 日 Vigiles サポート
本ブログでは、「Vigiles ファーストステップガイド」として、Vigilesをご活用いただくための必要な情報を紹介いたします。
第二回は、「Yocto 環境への Vigiles 導入手順」として、Yocto 環境で Vigiles が利用できるようになるまでの導入手順について解説します。
Timesys では Yocto ビルドシステムから SBOM へジェネレートするための manifest ファイルを生成する専用レイヤ(meta-timesys)を用意しています。
meta-timesys レイヤは github で提供されていて、Timesys の meta-timesys リポジトリを clone することで入手できます。
このレイヤでは vigiles クラスを提供しており、このクラスを INHERIT することで、image ビルドの際に Vigiles へアップロードする manifest ファイルを作成するタスクや、CVE スキャンやその結果を表示するタスクが追加されます。
meta-timesys を利用する前に、前準備として linuxlink の API Key ファイルをダウンロードしておきます。
この API Key は、meta-timesys 使用時に CVE チェックの詳細表示をする、また、image ビルドの際に自動的に Vigiles へ Upload する、といった場合に必要になります。
manifest ファイルの作成や CVE チェックのサマリ表示については、API Key ファイルの設定がなくても実行可能です。
API Key は LinuxLink サイトから入手します。
LinuxLink サイトにログイン後、右上のユーザ名をクリックして表示されるメニュー内、Preferance からダウンロードします。
Preferance を選択し、こちらの Download key file を選択し Key ファイルをダウンロードして保存してください。
ダウンロードした Key ファイルは下記のいずれかを行うことで有効になります。
まず最初に github の meta-timesysリポジトリを clone します。
NXP imx BSP をご使用の場合、このレイヤはデフォルトで clone されていますので、clone の手順は不要となります。
Yocto のディレクトリへ移動して、meta-timesys を clone します。
この時ブランチ指定で使用している Yocto の Codename を指定したうえで clone してください。このサンプルで使用している Yocto は kirkstone を使用していますので、-b で kirkstone を指定します。
cd /opt/yocto-vigiles/yocto-kickstone/ cd poky git clone https://github.com/TimesysGit/meta-timesys.git -b kirkstone ls cd ../
次に clone した meta-timesys レイヤ をレイヤ構成に追加します。
vi build-base/conf/bblayers.conf
以下を bblayers.comf に追記
BBLAYERS += "/opt/yocto-vigiles/yocto-kirkstone/poky/meta-timesys"
次に local.conf へ INHERIT の設定を追加して vigiles クラスを使用できるようにします。
vi build-base/conf/local.conf
local.confの一番最後に追加
INHERIT += "vigiles"
つづいて今回 API Key ファイルは local.conf で指定する形としますので、VIGILES_KEY_FILE 変数に Key ファイルのパスを設定します。
VIGILES_KEY_FILE = "/opt/timesys-key/linuxlink_key_llsales"
以上で bitbake のイメージ構築の際に Vigiles クラスのタスクが実行されるようになります。
それでは実際に bitbake を実行してみましょう。
Vigiles クラスのタスクは イメージをビルドする際に実行されますので、最低 1 回は image ビルドを行う必要があります。
そのためサンプルの Yocto では、事前に一度 image ビルドを実行して正常に終了した、という状態となっています。
bitbake を実行するための環境設定を行います。
source poky/oe-init-build-env build-kirkstone
設定が終わったら bitbake でイメージのビルドを実行します。
bitbake core-image-base
実行が終わると、CVE スキャンの結果情報が表示されます。
また、ビルドディレクトリ下に vigils というディレクトリが作成され、その下に manifest ファイルやフィルタに使用されている kernel や u-boot のconfig ファイルなどが置かれます。
vigiles ディレクトリ下には image名-cve.json というリンクファイルが作成され、このファイルのリンク先が最新の manifest ファイルとなります。
リンク先は、イメージディレクトリ/イメージ名-日時-cve.json となります。
作成された json 形式の manifest ファイルを Vigiles へ登録することで、その後 SBOM としての管理や GUI での CVE レポート CVEDashBoard が利用できるようになります。 手動での登録手順は、Vigiles ファーストステップガイド「サンプル Yocto Manifest ファイルの登録手順」の「4. Yocto Manifest ファイルの登録」以降をご確認ください。
Vigiles クラスのタスク実行時に 有効なAPI Key ファイルが認識されると、自動的に manifest ファイルが Vigiles へ Upload されます。
Upload先はlocal.conf 内で指定することによって、任意のプロダクト、サブフォルダへUpload することも可能です。
また、WHITELIST 指定する CVE の設定等、他にも local.conf 内で指定できる変数がありますので、指定できる変数の詳細等については meta-timesys レイヤ内の README を参照ください。
以上がyoctoへのVigiles専用レイヤ、meta-timesysレイヤの導入方法、となります。
2024 年 09 月 02 日 Vigiles サポート
2024 年 03 月 01 日 Vigiles サポート
2023 年 08 月 28 日 Vigiles サポート
2024 年 03 月 26 日 Yocto Project よもやま話
2023 年 07 月 25 日 Yocto Project よもやま話
2023 年 06 月 20 日 Yocto Project よもやま話
2024 年 01 月 10 日 Linux 技術ネタ
2023 年 12 月 12 日 Linux 技術ネタ
2023 年 03 月 31 日 Linux 技術ネタ
2024 年 12 月 06 日 イベントレポート
2024 年 07 月 26 日 イベントレポート
2024 年 07 月 09 日 イベントレポート
2023 年 05 月 30 日 リクルート
2022 年 12 月 27 日 リクルート
2022 年 09 月 27 日 リクルート
2024 年 11 月 29 日 信州リネオ便り
2024 年 09 月 25 日 信州リネオ便り
2024 年 08 月 20 日 信州リネオ便り
2019 年 12 月 10 日 ソリューション統括部
2019 年 12 月 10 日 ソリューション統括部
2019 年 12 月 10 日 ソリューション統括部
2019 年 12 月 13 日 マーケティング統括部
2019 年 04 月 25 日 マーケティング統括部
2018 年 12 月 18 日 マーケティング統括部