コンテナワヌクフロヌ甚のSBOMを生成する方法

投皿日: Jun 25, 2026

Omdiaの2026゜フトりェアサプラむチェヌンセキュリティレポヌトによるず、 86 %の組織がSBOMの生成を困難に感じおいる。䞻な芁因はツヌルの乱立です。チヌムがさたざたな成果物タむプに合わせお異なるスキャナヌを寄せ集め、パむプラむン党䜓で䞀貫性のない出力が埗られ、゚ンゞニアリングの時間を結果の調敎に費やし、それに基づいお行動する時間が奪われおいたす。

SBOM郚品衚は、セキュリティチヌムが脆匱性の開瀺にどのように察応するか、コンプラむアンスチヌムが監査担圓者の芁求を満たす方法、そしお調達に関する意思決定を行う方法においお、重芁な圹割を果たすようになっおいる。これにより、発電ステップは耐荷重構造ずなる。パむプラむンが生成するSBOMに掚移的䟝存関係が欠萜しおいたり、解決枈みバヌゞョンではなく宣蚀枈みバヌゞョンが蚘録されおいたり、蚘述察象のアヌティファクトに暗号化的にバむンドされおいなかったりするず、そのデヌタに基づいお行われるすべおの䞋流の決定にそのギャップが匕き継がれたす。

この蚘事では、SBOMの品質を巊右する決定事項、぀たり、い぀どこで生成するか、実甚的な出力ず単にチェックボックスにチェックを入れるだけのデヌタを区別する芁玠、そしお画像ポヌトフォリオが拡倧するに぀れお生成の信頌性を維持する方法に぀いお解説したす。

キヌテむクアりト

  • 補造時にSBOMを生成するず、補造埌にスキャンするよりも、より完党で正確な出力が埗られたす。
  • SBOMが実甚的かどうかは、完党性、正確性、鮮床、および怜蚌可胜性によっお決たりたす。
  • 生成ツヌルは高床なビルドアクセス暩限で実行されるため、䟋えば䞍倉参照ぞの固定など、远加のセキュリティ察策が必芁になる堎合がありたす。
  • 事前にSBOM郚品衚が䜜成されたむメヌゞを䜿甚するこずで、ベヌスレむダヌの生成䜜業の負担を軜枛できたす。

生成タむミングビルド時 vs. ビルド埌

SBOMの品質に最も圱響を䞎える唯䞀の決定は、SBOMをい぀生成するかずいうこずです。倧きく分けお2぀のアプロヌチがあり、それぞれ倧きく異なる結果をもたらす。

補造時にSBOMを生成する堎合ず、補造埌にSBOMを生成する堎合の比范。

ビルド時生成

ビルド時の生成機胜は、ビルドシステム自䜓に組み蟌たれおいたす。ゞェネレヌタヌは、解決枈みの䟝存関係ツリヌ、パッケヌゞマネヌゞャヌのファむル、および完党なビルドコンテキストにアクセスできたす。その遺物が組み立おられた時にそこにいたため、その遺物に䜕が䜿われおいたかを正確に把握しおいる。

ネむティブな認蚌サポヌトを備えたコンテナビルドシステムは、むメヌゞビルド䞭にSPDX SBOMを生成し、それをむン・トト認蚌ずしお添付し、むメヌゞずSBOMの䞡方を単䞀の操䜜でレゞストリにプッシュできたす。蚀語固有のビルドプラグむンも、アプリケヌションの䟝存関係に関しお同様のアプロヌチを取り、暙準のビルドラむフサむクルの䞀郚ずしおSBOMを生成したす。

その利点は構造的なものです。ビルド時の生成によっお、ビルド埌のスキャナヌでは芋萜ずされる可胜性のある掚移的䟝存関係を含む、すべおの䟝存関係の解決枈み状態が捕捉されたす。

構築埌のスキャン

ビルド埌のツヌルは、完成した成果物をスキャンし、その内容をリバヌス゚ンゞニアリングしたす。これらの手法は、パッケヌゞマネヌゞャヌのメタデヌタ、ファむルシグネチャ、および成果物内の既知のパタヌンを識別するこずによっお機胜したす。この方法は、構築方法に関係なく、OCI互換のむメヌゞであればどれでも機胜したす。

その代償は、カバヌ範囲の狭さだ。静的にリンクされたバむナリ、ベンダヌ提䟛の䟝存関係、および䞭間ビルド段階でむンストヌルされるOSパッケヌゞは、ビルド埌のスキャナヌで芋萜ずされるこずがよくありたす。スキャナは怜出できたものしか報告できず、怜出は実際のビルドグラフから導き出されるのではなく、ヒュヌリスティックに基づいおいる。

ビルドシステムぞのアクセス暩がある堎合は、ビルド時に生成しおください。ビルド埌のスキャンは、自分でビルドしおいないサヌドパヌティ補のむメヌゞを䜿甚する堎合や、ビルドシステムず統合されおいないレガシヌアヌティファクトを䜿甚する堎合に最適な遞択肢です。

コンテナむメヌゞに぀いおは、ビルド時のSBOM認蚌の蚭定方法に぀いお、さたざたなビルドワヌクフロヌに察応した具䜓的なフラグやゞェネレヌタヌオプションを含め、ドキュメントで詳现に説明しおいたす。

SBOMが圹立぀理由

SBOMを生成するこずず、有甚なSBOMを生成するこずは同じではない。ファむル圢匏は暙準的ですが、SBOMがどのように、い぀䜜成されたかによっお、コンテンツの品質は倧きく異なりたす。実甚的なSBOMずチェックボックス匏の成果物を区別する5぀の基準がある。

実甚的なSBOMずチェックボックス圢匏の成果物を区別する5぀の基準は、完党性、正確性、鮮床、怜蚌可胜性、およびフォヌマット準拠である。

1 。完党

完党なSBOMは、すべおのレむダヌずすべおのパッケヌゞタむプにわたる、成果物に含たれるすべおのコンポヌネントを網矅しおいたす。これには、ベヌスむメヌゞからのOSパッケヌゞ、ビルドに含たれるすべおのパッケヌゞマネヌゞャヌからのアプリケヌション䟝存関係、およびビルドプロセス䞭に远加されたツヌルやナヌティリティが含たれたす。 

倚段階むメヌゞや最小限の基本むメヌゞでは、ここに倧きなギャップが生じる。Node フロント゚ンド、静的バむナリにコンパむルされた C たたは C++ コンポヌネント、およびディストリビュヌションレスの最終ステヌゞを含む Dockerfile には、3 ぀の明確な課題がありたす。Node レむダヌには深い掚移的䟝存関係ツリヌがあり、静的にリンクされたバむナリにはディスク䞊に䟝存関係マニフェストが存圚しないこずが倚く、ディストリビュヌションレスのベヌスにはパッケヌゞマネヌゞャがたったくありたせん。ビルド埌のスキャナヌは、静的にリンクされた䟝存関係を芋萜ずす可胜性があり、Nodeツリヌを過小評䟡する可胜性がありたす。各ステヌゞの解決枈み䟝存関係グラフにアクセスできるビルド時生成こそが、党䜓像を把握する唯䞀の方法です。

2 。正確さ

正確性ずは、SBOMに宣蚀された範囲ではなく、解決枈みのバヌゞョンが蚘録されるこずを意味したす。パッケヌゞマニフェストには「^ 4 . 17 . 0 」ず宣蚀される可胜性がありたす。しかし、ロックファむル内の解決枈みバヌゞョンは4 . 17 . 21です。郚品衚SBOMは、芁求された内容ではなく、実際に蚭眮された内容を反映しおいなければならない。

3 。鮮床

SBOMずは、特定のビルドに関連付けられた、ある時点における補品の状態を瀺すスナップショットです。アヌティファクトが再構築されるたびに、SBOMを再生成する必芁がありたす。叀いSBOMは、誀った可芖性を生み出す。

4 。怜蚌可胜性

怜蚌可胜なSBOMずは、消費者が補造システムによっお生成されたものであり、改ざんされおいないこずを確認できるSBOMのこずです。暗号眲名および認蚌フレヌムワヌクは、SBOMを特定のアヌティファクトダむゞェストに結び付け、さらにアヌティファクトがどこでどのように構築されたかを蚘録する構築履歎情報も提䟛したす。

5 。圢匏 コンプラむアンス

SPDXやCycloneDXなどの暙準フォヌマットでは、必須フィヌルドずオプションフィヌルドが定矩されおいたす。スキヌマに察しお怜蚌を行うSBOMは、スキャンツヌル、ポリシヌ゚ンゞン、およびコンプラむアンスワヌクフロヌ間で盞互運甚可胜です。そうでないものの䞭には、珟圚お䜿いのツヌルでは動䜜するかもしれたせんが、ツヌルを倉曎するず動䜜しなくなるものもありたす。

䞀郚の基本むメヌゞには、SLSAビルドレベル3の来歎および利甚可胜性デヌタずずもに、5぀の基準すべおを満たすSBOMが既に同梱されおいたす。これらのSBOMは、改ざん䞍可胜な来歎を持぀匷化されたビルドプラットフォヌム䞊でビルド時に生成され、暗号眲名され、むメヌゞダむゞェストに玐づけられた完党な蚌明曞ずしお添付されたした。それらは再構築のたびに継続的に再生されるため、人手を介さずに鮮床が維持されたす。これらのむメヌゞに぀いおは、スタックの最も重芁なレむダヌにおける生成に関する疑問は解決枈みであり、䜜業は、その䞊に重ねるアプリケヌションレむダヌの完党なSBOMを生成するこずに移りたす。

あなたの䞖代のツヌルチェヌンは攻撃察象領域です

SBOMを生成するために䜿甚するツヌルは、ビルド環境ぞの管理者暩限で実行されたす。圌らはあなたの゜ヌスコヌド、䟝存関係ツリヌ、そしおビルド成果物を読みたす。䟵害されたゞェネレヌタヌは、単に悪い出力を生成するだけでなく、スキャンしたデヌタを倖郚に持ち出したり、改ざんしたりする胜力も持っおいたす。

これは理論䞊の懞念事項ではない。GitHub Actionsおよびコンテナむメヌゞのバヌゞョンタグは倉曎可胜です。今日v 2 . 1に固定したツヌルは、メンテナヌアカりントが䟵害されたり、タグが匷制的にプッシュされたりするず、明日にはひっそりず別のものになる可胜性がありたす。こうしたむンシデントにおける情報挏掩の危険期間は通垞数時間単䜍だが、自動化されたパむプラむンでは数分以内に䟵害されたバヌゞョンが取埗される可胜性がある。

生成ツヌルに぀いおも、他のビルド䟝存関係ず同様に厳栌に扱っおください。

  • 䞍倉の参照バヌゞョンタグではなく、コミットSHAに固定したす。
  • 実行前にチェックサムを確認しおください。
  • 再珟性ず監査可胜性を確保するため、開発マシンではなくCI環境で生成を実行する。
  • 生成ツヌルに関する䞊流のセキュリティ勧告を監芖しおください。

これは、より広範な゜フトりェアサプラむチェヌンのセキュリティ課題の䞀偎面です。パむプラむン内のすべおのツヌルは䟝存関係であり、アプリケヌションコヌドず同様に厳密な怜蚌が必芁です。ベヌスむメヌゞであれば、このリスクを完党に回避できたす。改ざん䞍可胜な来歎を持぀匷化されたビルドプラットフォヌム䞊で構築されたむメヌゞは、発生源からサプラむチェヌンのメタデヌタを、暗号化によっお゚ンドツヌ゚ンドで怜蚌された状態で保持したす。

SBOM生成をCI/CDに統合する

手動でのSBOM生成は、単発の監査には有効です。生産ワヌクフロヌにおいおは、生成は自動化され、再珟可胜であり、配信パむプラむンの他の郚分ず連携しおいる必芁がありたす。このパタヌンは、CIシステム党䜓で䞀貫しおいる。

ビルド時に生成

むメヌゞ生成盎埌に、ビルドステヌゞのステップずしおSBOM生成を远加したす。コンテナむメヌゞの堎合、BuildKitの認蚌フラグが最も信頌性の高い方法です。アプリケヌションの䟝存関係に関しおは、蚀語固有のプラグむンMaven/Gradleの堎合はCycloneDX、Nodeの堎合はnpm/yarnが解決枈みの䟝存関係グラフにアクセスするため、最高品質の出力を生成したす。

耇数段階のビルドの堎合、最終段階のみから生成しおください。䞭間段階では、本番環境のむメヌゞには含たれおいないビルドツヌルやテストフレヌムワヌクがむンストヌルされるこずがよくありたす。䞭間段階に察しお生成を行うず、展開されおいないコンポヌネントがSBOMに含たれおしたい、脆匱性スキャンでノむズが発生する。

蚌明曞のフォヌマットを遞択しおください

SPDXはBuildKitの認蚌におけるネむティブ出力フォヌマットであり、ラむセンスコンプラむアンスが最優先事項である堎合は、より匷力な遞択肢ずなりたす。CycloneDXは、より高床な脆匱性盞関分析機胜ず、より詳现なコンポヌネント分類機胜を備えおいるため、セキュリティ重芖のワヌクフロヌに最適です。利甚しおいるツヌルポリシヌ゚ンゞン、脆匱性スキャナヌ、コンプラむアンスダッシュボヌドなどに掚奚蚭定がある堎合は、それに埓っおください。䞡方をサポヌトしおいる堎合は、コンテナむメヌゞにはデフォルトでSPDXを䜿甚したす。これは、BuildKitに組み蟌たれおいるゞェネレヌタヌ以倖に远加のツヌルを必芁ずしないためです。

アヌティファクトに取り付ける

SBOMは、それが蚘述する成果物ず同じ堎所に保管しおください。コンテナむメヌゞの堎合、これはアヌティファクトストアに別ファむルずしお保存するのではなく、レゞストリにOCI認蚌情報ずしお添付するこずを意味したす。蚌明ベヌスのストレヌゞにより、SBOMは怜玢可胜、バヌゞョン管理され、特定のむメヌゞダむゞェストに玐付けられたす。むメヌゞが開発環境からステヌゞング環境、そしお本番環境ぞず昇栌される際、SBOMはすべおのレゞストリを介しおむメヌゞず共に移動するため、必然的にずれが生じる別のコピヌおよび同期ワヌクフロヌは䞍芁になりたす。

公開前に怜蚌しおください

生成ずレゞストリぞのプッシュの間に怜蚌ステップを远加する。SBOMをフォヌマットバリデヌタヌSPDXずCycloneDXはどちらも公匏のスキヌマバリデヌタヌを提䟛しおいたすに通し、コンポヌネント数がアヌティファクトに察しお劥圓であるこずを確認し、SBOMが正しいむメヌゞダむゞェストを参照しおいるこずを確認したす。200以䞊のパッケヌゞが含たれおいるこずがわかっおいるむメヌゞに察しお、 12個のコンポヌネントを生成するビルドは、パむプラむンを倱敗させるべきであり、黙っお出荷されるべきではありたせん。

継続的にスキャンしお適甚する

補造時にSBOM郚品衚を生成するこずで、出荷される郚品を把握できたす。継続的なスキャンによっお、その埌䜕が脆匱になったかがわかりたす。新しいCVEは毎日発生しおおり、構築時には問題がなかったSBOMでも、数週間以内に重倧な脆匱性が露呈する可胜性がありたす。SBOMデヌタに察する継続的な分析により、画像を再取埗するこずなく、新芏開瀺情報を圚庫ず照合し、ポリシヌ違反が発生した時点でそれを明らかにする。SBOMをすべおのむメヌゞに添付するこずで、展開を制埡できたす。有効なSBOMがないむメヌゞは出荷されず、既知の脆匱性を持぀パッケヌゞが蚭定した深刻床しきい倀を超えるむメヌゞも展開されたせん。

実装の詳现はCIシステムによっお異なりたす。匊瀟のドキュメントでは、䞀般的なコンテナビルドワヌクフロヌ党䜓でSBOM蚌明曞を生成および添付するための具䜓的なフラグず蚭定に぀いお説明しおいたす。

SBOM出力の怜蚌

コンプラむアンス報告や脆匱性管理にSBOM出力を利甚する前に、以䞋の品質基準を満たしおいるこずを確認しおください。

  • コンポヌネント数の劥圓性チェック SBOM内のコンポヌネント数を、Dockerfile、ロックファむル、およびベヌスむメヌゞから想定される数ず比范したす。䟝存関係が200宣蚀されおいるNode.jsアプリは、掚移的䟝存関係を含めるず、倧幅に倚くの゚ントリを生成するはずです。
  • 解決枈みバヌゞョン、範囲ではありたせん: SBOM レコヌドに特定のバヌゞョン ( 4 . 17 . 21 ) が蚘録されおいるこずを確認するために゚ントリをスポットチェックしたす。宣蚀された範囲^ 4 . 17 . 0 ではなく。
  • 掚移的䟝存関係の深さ最䞊䜍パッケヌゞだけでなく、掚移的䟝存関係も存圚するこずを確認したす。アプリが30の盎接的な䟝存関係を宣蚀しおいるにもかかわらず、SBOMに32゚ントリが含たれおいる堎合、掚移的カバレッゞが䞍完党である可胜性が高いです。
  • OSパッケヌゞの網矅性ベヌスむメヌゞのOSパッケヌゞがアプリケヌションの䟝存関係ず䞊んで衚瀺されおいるこずを確認したす。
  • ダむゞェストバむンディングアテステヌションが正しいむメヌゞダむゞェストを参照しおいるこずを確認したす。バむンドされおいないSBOMは、その成果物を正しく蚘述しおいるずは限らない。
  • フォヌマット怜蚌 SBOMをスキヌマバリデヌタヌに通したすSPDXずCycloneDXはどちらも公匏ツヌルを提䟛しおいたす。

生成を開始し、次に怜蚌を開始したす。

SBOM生成機胜をパむプラむンに远加する最適なタむミングは、次にCI構成を倉曎する時です。たずは、最もアクセス数の倚い䜜品画像から始めたしょう。ビルド時生成を蚭定し、SBOMを蚌明曞ずしお添付し、䞊蚘のチェックリストに基づいお出力を怜蚌したす。次に、ポヌトフォリオの残りの銘柄にも拡倧しおください。

すぐに䜜業を開始したい堎合は、Docker Hardened Imagesには完党なSBOM、SLSAビルドレベル3の来歎情報、およびOpenVEXデヌタが既に添付されおいるため、ベヌスレむダヌの生成手順を完党に省略できたす。Docker Scoutは、その䞊に構築するすべおのものに察しお、 SBOMデヌタずの継続的な脆匱性照合を行い、むメヌゞポヌトフォリオ党䜓にわたっおポリシヌを適甚したす。

よくある質問

SBOM郚品衚の最適なフォヌマットは䜕ですか

コンテナむメヌゞに぀いおは、デフォルトでSPDXを䜿甚したす。これはBuildKitのネむティブな認蚌出力であり、远加のツヌルを必芁ずしたせん。䞻な甚途がセキュリティスキャンであり、䜿甚する䞋流ツヌルがCycloneDXを掚奚する堎合は、CycloneDXを遞択しおください。

画像に既にSBOMが含たれおいる堎合でも、SBOMを生成する必芁はありたすか

事前に構築されたSBOM、来歎、および利甚可胜性デヌタが同梱されおいるベヌスむメヌゞを䜿甚しおいる堎合は、そのレむダヌを再生成する必芁はありたせん。付属のSBOMは、ビルドグラフぞの完党なアクセス暩を持っおビルド時に生成され、むメヌゞに暗号化的に玐付けられおいたす。

事前に䜜成されたSBOMが信頌できるかどうかを確認するには、次の2点を確認しおください。 

  1. SBOMは眲名枈みの蚌明曞ずしお添付されおいたすか単独のファむルではありたせんか
  2. 蚌明曞にはSLSAの出所蚌明が含たれおいたすか

出所が、改ざん䞍可胜な出所情報を持぀堅牢なビルドプラットフォヌムに遡る堎合、そのレむダヌに関しおはSBOMを信頌できる情報源ずしお扱うこずができたす。远加するアプリケヌションの䟝存関係に぀いおも、SBOMを生成する必芁がありたす。

SBOMはどのくらいの頻床で再生成すべきですか

アヌティファクトが再構築されるたびに。CIパむプラむンが新しいむメヌゞを生成する堎合、それに察応する新しいSBOMも生成する必芁がありたす。再構築の間も、既存のSBOMは䟝然ずしお正確です。なぜなら、アヌティファクトは倉曎されおいないからです。

SBOM郚品衚の䜜成は、法什遵守のために必須ですか

米囜では、倧統領什14028により、連邊政府機関に販売される゜フトりェアのSBOM芁件が開始されたした。EUサむバヌレゞリ゚ンス法は、 EU域内で販売されるデゞタル芁玠を含むすべおの補品にSBOM郚品衚の芁件を拡倧する。

AIワヌクロヌドが、技術文曞化や透明性に関する芁件を含むEU AI法などの新たな芏制の察象ずなるに぀れ、コンポヌネントレベルのむンベントリは、チヌムが高リスクシステムの内郚構造を瀺すための実甚的な方法になり぀぀ありたす。NIST SSDFやCISAのSBOMガむダンスずいった業界フレヌムワヌクでは、SBOMを基本的な芁件ずしお参照するケヌスが増えおいる。珟時点では法的に矩務付けられおいるかどうかは別ずしお、SBOM郚品衚は調達における必須条件になり぀぀ある。

情報源

Omdia、 「゜フトりェアサプラむチェヌンのセキュリティ確保AI導入による開発芏暡拡倧を支揎する戊略的アプロヌチ」 、5月2026 。

著者に぀いお

シニアプリンシパルプロダクトマヌケティングマネヌゞャヌ、Docker

関連蚘事