docker匷化むメヌゞ゚ンタヌプラむズトラむアルを最倧限に掻甚する パヌト 2

投皿日 Jan 24, 2026

Dockerハヌド化むメヌゞのセキュリティずコンプラむアンスの怜蚌

このシリヌズの パヌト 1 では、Node.jsサヌビスをDocker Hardened Images(DHI)に移行し、 100%の脆匱性陀去、 90%のパッケヌゞ削枛、そしお 41ずいう印象的な結果を枬定したした。5%のサむズが瞮小したす。SBOMを抜出し、FIPS、STIG、CISのコンプラむアンスラベルを確認したした。

数字は説埗力があるように芋えたす。しかし、これらの䞻匵を独立しお どうやっお怜蚌 するのでしょうか?

セキュリティツヌルは玄束ではなく怜蚌を通じお信頌を埗たす。セキュリティ補品を本番環境で評䟡する際には、暗号孊的な蚌明が必芁です。これは特に、展開するすべおのコンテナの基盀ずなる画像に圓おはたりたす。この蚘事では、眲名怜蚌、出所分析、コンプラむアンス蚌拠怜査、SBOM分析の怜蚌プロセスに぀いお説明したす。ここでは、トラむアル䞭に実斜できる実践的な怜蚌に焊点を圓お、より詳现な技術情報に぀いおは 公匏DHIドキュメント ぞのリンクをご玹介したす。最終的には、DHIのセキュリティ䜓制を独自に確認し、本番環境ぞの信頌を築くこずができるでしょう。

Docker Hardened Imagesで利甚可胜なセキュリティ蚌明の理解

怜蚌に入る前に、䜕を確認しおいるのかを理解する必芁がありたす。

Docker Hardened Imagesには、画像のビルドプロセス、内容、コンプラむアンスの状況に関する暗号孊的に眲名されたメタデヌタ( attestations)が含たれたす。これらは独立しお怜蚌可胜な眲名枈みの声明です。

倧事な:もし画像をロヌカルで取埗した堎合は、 registry:// 蚌蚀を扱う際の接頭蟞。これにより、Docker Scoutはロヌカルむメヌゞキャッシュだけでなくレゞストリの蚌明も探すよう指瀺されたす。

あなたの硬くなったむメヌゞのすべおの蚌明をリストアップしおください:

docker scout attestation list registry://<your-org-namespace>/dhi-node:24.11-debian13-fips

これは 16 異なる蚌蚀タむプを瀺しおいたす:

https://slsa.dev/provenance/v0.2            SLSA provenance
https://docker.com/dhi/fips/v0.1            FIPS compliance
https://docker.com/dhi/stig/v0.1            STIG scan
https://cyclonedx.org/bom/v1.6              CycloneDX SBOM
https://spdx.dev/Document                   SPDX SBOM
https://scout.docker.com/vulnerabilities    Scout vulnerabilities
https://scout.docker.com/secrets/v0.1       Scout secret scan
https://scout.docker.com/virus/v0.1         Scout virus/malware
https://scout.docker.com/tests/v0.1         Scout test report
https://openvex.dev/ns/v0.2.0               OpenVEX
...

各アテステヌションは画像の特定の偎面を説明するJSON文曞です。怜蚌のための最も重芁な蚌蚀:

  • SLSAの出自:ビルド゜ヌス、ビルダヌアむデンティティ、ビルドプロセスの詳现
  • SBOM:完党な゜フトりェア郚品衚
  • FIPS準拠:FIPS 140の蚌拠 -3 認蚌暗号モゞュヌル
  • STIGスキャン:セキュリティ技術実装ガむドのコンプラむアンス結果
  • 脆匱性スキャン:CVE評䟡
  • VEXレポヌト: CVEの脆匱性

これらの認蚌は、サプラむチェヌンセキュリティのためのオヌプンフレヌムワヌクである in-toto 仕様に埓っおいたす。各蚌曞には以䞋が含たれたす:

  • 件名:蚌蚀が蚘述しおいるこず(コンテナ画像)
  • 前提:実際の請求内容(FIPS認蚌枈み、STIG準拠など)
  • 眲名:ビルダヌからの暗号眲名

眲名を自分でどうやっお確認できるか芋おみたしょう。

Docker Scoutでの蚌明の怜蚌

これから怜蚌するアテスティネヌションは、Dockerのビルドむンフラストラクチャによっお暗号的に眲名されおいたす。Docker Scoutは、公開鍵や蚌明曞チェヌンの管理を省くシンプルで統合されたアプロヌチを提䟛し、DHI認蚌をネむティブに凊理したす。アテステヌションの怜蚌を行うには、–verifyフラグを付け加え、明瀺的な怜蚌フィヌドバックを提䟛したす。このプロセスは暗号ハッシュに䟝存しおおり、ダむゞェストは蚌明内容のハッシュなので、たった䞀文字の倉曎でもハッシュが完党に倉わりたす。さらに、アテスケヌションの眲名は蚘述する特定の画像ダむゞェストに暗号的にバむンドされおおり、怜蚌察象のメタデヌタが持っおいる画像ず正確に䞀臎しおいるこずを保蚌し、眮換攻撃を防ぎたす。

蚌明の取埗

特定の蚌明(䟋えばSLSAの出所)を抜出するには、完党な述語タむプURIでattestation getコマンドを䜿甚したす。

docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
  --predicate-type https://slsa.dev/provenance/v0.2 \
  --output provenance.json

成功はこんな感じです:

✓ SBOM obtained from attestation, 32 packages found
✓ Provenance obtained from attestation
✓ Report written to provenance.json

チェックマヌクはDocker Scoutが認蚌を正垞に取埗・怜蚌したこずを確認したす。舞台裏で、スカりトは次のように述べたした:

  • 認蚌眲名はDockerの眲名キヌず䞀臎しおいたす
  • 眲名は期限切れしおいたせん
  • この蚌明曞はこの特定の画像ダむゞェストに適甚されたす
  • 蚌明曞は改ざんされおいたせん

眲名怜蚌に倱敗するず、Scoutぱラヌを返し、蚌明ファむルを出力したせん。利甚可胜な述語タむプに぀いお詳しく知りたい方は 、DHIの怜蚌ドキュメントをご芧ください。

SLSAの出自の怜蚌

眲名は蚌蚀が本物であるこずを蚌明したす。画像の出所はどこ から来たかを瀺しおいたす。

SLSA(Supply-chain Levels for Software Artifacts)は 、Google、Linux Foundation、その他の業界パヌトナヌによっお開発されたセキュリティフレヌムワヌクです。これは、SLSA 0 (保蚌なし)からSLSA 4 (最高保蚌)たでのサプラむチェヌンセキュリティ成熟床のレベルを定矩しおいたす。

Docker Hardened ImagesはSLSA 3をタヌゲットずしおおり、以䞋を満たす必芁がありたす。

  • プロセスは完党にスクリプト化/自動化されおいたす
  • バヌゞョン管理で定矩されたすべおのビルドステップ
  • ビルドサヌビスによっお自動的に生成される出所
  • プロノィナンスには、゜ヌス、ビルダヌ、ビルドのパラメヌタが含たれたす

以前に抜出したSLSA provenance.jsonを甚いお、゜ヌスリポゞトリずコミットハッシュを確認できたす:

jq '.predicate.invocation.environment.github_repository' provenance.json

アりトプット

"docker-hardened-images/definitions"
jq '.predicate.invocation.environment.github_sha1' provenance.json

アりトプット

"698b367344efb3a7d443508782de331a84216ae4"

同様に、 GitHub Actionsのワヌクフロヌ がこの画像を生成した正確な内容も確認できたす。

jq '.predicate.builder.id' provenance.json

アりトプット

「https://github.com/docker-hardened-images/definitions/actions/runs/18930640220/詊み/1」

DHI゚ンタヌプラむズナヌザヌ向け:高保蚌䞻匵の怜蚌

無料のハヌド゚ンドむメヌゞはセキュリティのベストプラクティスに基づいお構築されおいたすが、DHI゚ンタヌプラむズむメヌゞはFedRAMP、HIPAA、財務監査に必芁な特定の認蚌を備えおいたす。これらの高保蚌の䞻匵を怜蚌する方法は以䞋の通りです。

FIPS 140-3 怜蚌

FIPS(連邊情報凊理暙準) 140-3 は、暗号モゞュヌルに関する米囜政府の暙準です。これは、゜フトりェアの暗号が連邊の芁件に基づき独立した怜査機関によっおテスト・怜蚌されおいるこずを蚌明する認蚌ず考えおください。

政府機関、金融機関、医療提䟛者向けの゜フトりェアを構築する堎合、FIPS準拠はしばしば必須です。FIPSがなければ、それらの環境で゜フトりェアを䜿甚できたせん!

画像にFIPS認蚌暗号が含たれおいるか確認しおください:

docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
  --predicate-type https://docker.com/dhi/fips/v0.1 \
  --output fips-attestation.json

アりトプット

{
  "certification": "CMVP #4985",
  "certificationUrl": "https://csrc.nist.gov/projects/cryptographic-module-validation-program/certificate/4985",
  "name": "OpenSSL FIPS Provider",
  "package": "pkg:dhi/openssl-provider-fips@3.1.2",
  "standard": "FIPS 140-3",
  "status": "active",
  "sunsetDate": "2030-03-10",
  "version": "3.1.2"
}

蚌明曞番号(4985)が重芁な芁玠です。これは公匏 NISTのCMVPデヌタベヌスにある特定のFIPS怜蚌を参照しおいたす。

STIGコンプラむアンス

STIG(セキュリティ技術実装ガむド)は、囜防総省(DoD)がシステムのセキュリティチェックリストずしお䜜成しおいたす。これは、防衛や政府業務向けの゜フトりェア展開に必芁な包括的なセキュリティ構成暙準です。
DHI画像はリリヌス前にSTIGスキャンを受けたす。Dockerは、囜防総省のGeneral OSセキュリティ芁件ガむドに基づくカスタムSTIGを䜿甚しおいたす。各スキャンは数十のセキュリティ管理を確認し、結果を報告したす。STIGスキャン結果を抜出しおレビュヌできたす:

docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
  --predicate-type https://docker.com/dhi/stig/v0.1 \
  --output stig-attestation.json

STIGスキャンの抂芁を確認しおください:

jq '.predicate[0].summary' stig-attestation.json

アりトプット

{
  "failedChecks": 0,
  "passedChecks": 91,
  "notApplicableChecks": 107,
  "totalChecks": 198,
  "defaultScore": 100,
  "flatScore": 91
}

これは、DHIが該圓するすべおのSTIGコントロヌルを合栌し、䞍正チェック 91 れロ、 100%スコアを蚘録したこずを瀺しおいたす。「notApplicableChecks」 107 は通垞、特定の最小コンテナ環境やその構成には無関係なコントロヌルを指したす。STIG制埡およびDHIコンプラむアンスの詳现の完党なリスト、完党なSTIGスキャンレポヌトの抜出方法および閲芧方法に぀いおは、 DHI STIGドキュメントをご芧ください。

CISベンチマヌク硬化

CIS(むンタヌネットセキュリティセンタヌ)ベンチマヌク は、業界のセキュリティ専門家によっお䜜成されるセキュリティ構成暙準です。STIGず同様に、これらはコンセンサスのベストプラクティスを衚しおいたすが、政府が矩務付けるフレヌムワヌク(FIPS、STIG)ずは異なり、CISベンチマヌクはコミュニティによっお開発されおいたす。

CIS準拠は法的に矩務付けられおいたせんが、業界暙準のセキュリティ慣行を遵守しおいるこずを瀺すものであり、顧客の信頌や監査準備に䟡倀がありたす。

画像ラベルを通じおCIS準拠を確認するこずができたす:

docker inspect <your-org-namespace>/dhi-node:24.11-debian13-fips | \
  jq '.[0].Config.Labels["com.docker.dhi.compliance"]'

出力:「fips, stig, cis」

CISラベルは、 画像がCIS Docker Benchmarkに基づきハヌド化されおいるこずを瀺したす。

SBOMは具䜓的に䜕に䜿われおいるのでしょうか?

コンプラむアンスの枠組みは、どの基準を満たすかを教えおくれたす。SBOMは実際にコンテナの䞭身を教えおくれたす。そこから本圓のセキュリティ䜜業が始たりたす。

掚移䟝存関係の識別

プロゞェクトにパッケヌゞを远加するず、盎接䟝存関係が確認できたす。芋えないのは、そのパッケヌゞの䟝存関係や 䟝存 関係などです。これが掚移的䟝存問題です。

トランゞティブ䟝存関係の脆匱性が、聞いたこずもないずアプリケヌション党䜓が危うくなりたす。実際の䟋ずしお、Log4Shellの脆匱性は、Log4jが䟝存チェヌンの䜕局も深く埋もれた掚移的䟝存関係だったため、䜕癟䞇ものアプリケヌションに圱響を䞎えたした。

ほずんどの脆匱性は掚移䟝存関係に隠れおいたす。理由は以䞋の通りです:

  1. 開発者はその存圚を知りたせん
  2. 盎接䟝存関係が曎新されるずきには曎新されたせん
  3. SBOMがなければスキャンツヌルは芋逃しおしたいたす

最小限の画像がこのリスクを劇的に枛らしたす。パッケヌゞ数が少なければ、掚移䟝存性が少なく、攻撃面が小さくなりたす。

䟝存数を比范する:

  • 公匏Node.js画像:321パッケヌゞ、~1、䟝存関係500
  • DHI Node.js画像: 32 パッケヌゞ、~150 䟝存関係

パッケヌゞの90%枛少は掚移的䟝存リスクの90%枛少を意味したす。

既知(悪甚可胜な)脆匱性のスキャン

SBOMを抜出した埌、既知の脆匱性をスキャンしたす:

docker scout cves registry://<your-org-namespace>/dhi-node:24.11-debian13-fips

アりトプット

Target: <your-org-namespace>/dhi-node:24.11-debian13-fips

  0C     0H     0M     8L

8 vulnerabilities found in 2 packages
  CRITICAL  0
  HIGH      0
  MEDIUM    0
  LOW       8

重倧、高、䞭皋床の脆匱性はれロです。Docker ScoutはSBOMを耇数の脆匱性デヌタベヌス(NVD、GitHubセキュリティアドバむザリヌなど)ず照合したす。これが最小限の画像のメリットです。パッケヌゞ数が少なければ、朜圚的な脆匱性も少なくなりたす。公匏Node.jsむメヌゞには、クリティカル、ハむ、ミディアムの各 25 のセキュリティが蚘茉されおいたした。匷化版には実行可胜な脆匱性が党くありたせん。これは脆匱性がパッチ適甚されたからではなく、脆匱性パッケヌゞが完党に削陀されたからです。

VEXによる゚クスプロむタビリティの理解

すべおの CVE があなたのデプロむメントに関係しおいるわけではありたせん。アプリケヌションが呌び出さないラむブラリ関数の脆匱性や、実行されおいないサヌビスの欠陥は、実際のリスクを生み出したせん。Docker Hardened Imagesには、報告されたどの CVE が実際のランタむム文脈で悪甚可胜でないかを瀺す眲名枈み VEX アテスメントが含たれおいたす。これにより、パッケヌゞ内に存圚する(報告されおいる)ず 、実際に悪甚可胜な (このむメヌゞでのパッケヌゞの䜿い方から悪甚可胜)な CVE(悪甚可胜)を区別するのに圹立ちたす。蚀い換えれば、VEXは停陜性を枛らしたす。

Docker ScoutはDHIむメヌゞをスキャンする際に自動的にVEX文を適甚したす:実行時に Docker Scout CVE (英語)Scoutは、非悪甚ずマヌクされた脆匱性を抑制するためにVEX認蚌を䜿甚したす。

以䞋のコマンドで評䟡されたCVEを確認できたす:

docker scout attestation get registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
  --predicate-type https://openvex.dev/ns/v0.2.0 \
  --output vex.json

ラむセンス遵守分析

オヌプン゜ヌス゜フトりェアを䜿う堎合、ラむセンス条件に瞛られたす。䞀郚のラむセンス(MIT、Apache)は寛容で、商甚補品でも自由に䜿甚できたす。䞀方(GPL、AGPL)はコピヌレフトで、゜フトりェアを配垃する堎合は゜ヌスコヌドを公開するこずが求められたす。

SBOMはラむセンス遵守を可芖化したす。SBOMがなければ、コンテナに含たれおいるラむセンスが芋えなくなりたす。

SBOMをSPDX圢匏で゚クスポヌトする:

docker scout sbom registry://<your-org-namespace>/dhi-node:24.11-debian13-fips \
  --format spdx \
  --output node-sbom-spdx.json

ラむセンス配垃の分析:

jq '.packages[].licenseConcluded' node-sbom-spdx.json | \
  sort | uniq -c | sort -rn

アりトプット

15 "MIT"
8 "Apache-2.0"
5 "GPL-2.0-or-later"
2 "BSD-3-Clause"
1 "OpenSSL"
1 "NOASSERTION"

この䟋では:

  • ✅ MITずアパッチ2。0 は蚱容的(商業利甚に安党)です。
  • ⚠ GPL-2。0-たたはそれ以降レビュヌが必芁(これはランタむム䟝存性ですか、それずもビルドツヌルですか?)
  • ⚠ NOASERTIONは調査が必芁だ

結論:あなたが蚌明したこず

Dockerがハヌドンドむメヌゞに぀いお䞻匵する重芁なセキュリティ䞻匵を独自に怜蚌したした:

  • 真正性:暗号眲名は画像が本物で改倉されおいないこずを保蚌したす
  • 出所:SLSAの認蚌は公開リポゞトリ内の特定の゜ヌスコミットたでビルドを远跡したす
    コンプラむアンス:FIPS蚌明曞、STIG管理に合栌、CISベンチマヌクを達成
  • 譊備䜓制

怜蚌したすべおの請求(CISを陀く)には察応する蚌明があり、自分で確認し、監査し、CI/CDパむプラむンで怜蚌できたす。

Docker HubのUIを䜿っお、あなたのニヌズに合わせおDocker Hardened Image(DHI)をカスタマむズできたす。これにより、ベヌスむメヌゞの遞択、パッケヌゞの远加、OCIの成果物(カスタム蚌明曞や远加ツヌルなど)の远加、蚭定の蚭定が可胜になりたす。さらに、ビルドパむプラむンはカスタマむズされたむメヌゞが安党に構築され、蚌明も含たれおいるこずを保蚌したす。

パヌト 3では、先ほど説明した利点を維持し぀぀、あなたのニヌズに合わせおDockerの匷化むメヌゞをカスタマむズする方法を解説したす。

DHIがセキュリティの玄束を果たしおいるこずを確認したしたね。次は皌働させる。

もし 1郚を読んでいなければ、脆匱性の陀去率 100%ずパッケヌゞ削枛率 90%に぀いお話し合った内容を、 こちらのブログをご芧ください。

著者に぀いお

関連蚘事