オープンソースパッケージに基づくSBOMの生成
SBOMのエクスポート
Section titled “SBOMのエクスポート”Aikidoでは、**SBOM(Software Bill of Materials)とVEX(Vulnerability Exploitability eXchange)**ファイルの両方をエクスポートでき、ソフトウェアコンポーネント(オープンソースコンポーネントを含む)への可視性を提供し、実際に修正が必要なものの優先順位付けに役立ちます。
ユースケース:
- SBOMエクスポート(CycloneDX 1.6、SPDX-2.3、またはCSV)
- M&A、調達、監査(ISO 27001、SOC2など)の際にサードパーティと共有する。
- サイバーレジリエンス法(CRA)、医療機器規則(MDR)、Executive Order 14028などの規制へのコンプライアンス対応。
- サードパーティのリスク管理ツールや調達ツールへ連携する。
- VEXエクスポート(CycloneDXのみ)
- どの脆弱性が悪用可能で、どれが対象外かを明確に示す。
- デューデリジェンスの証明として、VEXは既知の脆弱性を積極的に管理していることをサードパーティに証明します。
SBOMの場所
Section titled “SBOMの場所 ”ステップ1. Reports > Licenses & SBOMに移動します
ステップ2. 右上のアクションからSPDX、CycloneDX、またはCSV形式のSBOMをダウンロードします

任意. さまざまなパラメータでライセンスをフィルタしてから、SBOMをエクスポートできます。エクスポートには選択したフィルタ値が反映されます。

チームでフィルタしたい場合は、ページ上部のTeam Filterを変更することで行えます。

マルチブランチスキャンが有効な場合、ドロップダウンで特定のブランチのリポジトリを選択することで、ブランチごとに異なるSBOMを取得できます。詳細はアプリ内チャットからお問い合わせください。
API経由での生成とエクスポート
Section titled “API経由での生成とエクスポート ”Export SBOM API経由でSBOMを生成・ダウンロードできます。
自己生成SBOMの監視
Section titled “自己生成SBOMの監視”BuildrootやYoctoなどのツールで構築された組み込みシステムは、ビルド時にSBOMを生成できます。これらのシステムには標準的なコンテナレジストリがないことが多いため、これらの自己生成SBOMをAPI経由でAikidoにアップロードし、サプライチェーンセキュリティとライセンスコンプライアンスを監視できます。
Buildroot / YoctoでのSBOM生成
Section titled “Buildroot / YoctoでのSBOM生成”Buildroot
Buildrootは、組み込みのgenerate-cyclonedxユーティリティ(make show-infoの出力を利用)を通じてCycloneDX SBOMを生成します。
SBOMを生成する
Section titled “SBOMを生成する”次のコマンドを実行します:
make show-info | utils/generate-cyclonedx > sbom.cdx.jsonこれにより、組み込みLinuxシステム内のすべてのパッケージをバージョン・ライセンス・ソース情報とともに列挙した単一のCycloneDX JSONファイルが生成されます。
Yocto SPDX 2.2 Engine
YoctoのSPDX 2.2 Engineを使う
Section titled “YoctoのSPDX 2.2 Engineを使う”Yoctoは、create-spdxクラスを通じてネイティブなSPDX 2.2 SBOM生成を提供しており、Yocto 3.4(Honister)以降で安定しデフォルトで有効になっています。
YoctoのSPDX 2.2 Engineを設定する
Section titled “YoctoのSPDX 2.2 Engineを設定する”すべてのレシピに対してSPDX 2.2ドキュメントを生成するようYoctoに指示するには、conf/local.confに以下を追加します:
INHERIT += "create-spdx"イメージをビルドする
Section titled “イメージをビルドする”通常のBitBakeビルドを実行します:
bitbake <your-image-name>ビルドが成功すると、SPDXファイルは次の場所に書き出されます:
tmp/deploy/spdx/<MACHINE>/トップレベルのイメージドキュメント(例: <IMAGE>-<MACHINE>.spdx.json)は、同じディレクトリ内のパッケージごとのSPDXドキュメントにリンクしています。Aikidoにアップロードする前に、パッケージごとのSPDXファイルを1つのSPDXファイルにマージすることを推奨します。
単一のSBOMへのマージ
Section titled “単一のSBOMへのマージ”Yoctoは複数の*.spdx.jsonファイル(レシピごとに1つ)を生成するため、それらを手動で1つのSBOMファイルにマージする必要があります。これはSPDXMergeToolやsbomasm - assembleを使うことで簡単に行えます。
SBOMをAikidoにアップロードする
Section titled “SBOMをAikidoにアップロードする”生成したファイルをプッシュするには、Upload Container SBOM APIを使用します。APIキーの取得・使用方法の詳細についてはAPI認可のドキュメントを参照してください。
#Prevents word splitting of the JSON fileSBOM=$(cat /path/to/sbom.spdx.json)
# Accepts both CycloneDX and SPDX in JSON formatscurl -X POST "https://app.aikido.dev/api/public/v1/containers/sbom" \ -H "accept: application/json" \ -H "Authorization: Bearer $AIKIDO_API_KEY" \ -H "Content-Type: application/json" \ -d "{\"sbom\": $SBOM, \"container_image_name\": \"$YOUR_CONTAINER_NAME\"}"アップロードされたSBOMは、Aikido上でContainersにレジストリSelf-reported SBOMとして表示され、脆弱性とライセンスリスクのスキャンが自動的に開始されます。