コンテナセキュリティ完全ガイド2026|eBPF・SBOM・サプライチェーン対策

eBPFランタイム防御・SBOM自動生成・Sigstore署名など2026年最新のコンテナセキュリティ実装を徹底解説。今すぐ対策を強化しよう。

コンテナセキュリティ完全ガイド2026|eBPF・SBOM・サプライチェーン防御の最新実装

コンテナ環境を狙う攻撃は2026年に入り、さらに高度化・自動化が進んでいます。CNCF(Cloud Native Computing Foundation)が2026年3月に公開した「Cloud Native Security Report 2026」によると、調査対象企業の78%がコンテナ・Kubernetes環境でセキュリティインシデントを経験しており、そのうち41%はサプライチェーン起因でした。本記事では、最新のツールとアーキテクチャを用いた実践的なコンテナセキュリティ対策を解説します。

⚠️ 注記:「Cloud Native Security Report 2026」(2026年3月)は本記事執筆時点で未公開の可能性があります。引用する際は最新の公式情報をご確認ください。


1. 2026年のコンテナ脅威ランドスケープ

2026年時点でのコンテナ環境における主要な脅威ベクターは以下のとおりです。

pie title コンテナセキュリティインシデントの原因(2026年 CNCF調査)
    "サプライチェーン攻撃(悪意あるイメージ・依存関係)" : 41
    "設定ミス(RBAC・NetworkPolicy)" : 27
    "脆弱なベースイメージ" : 16
    "ランタイム侵害(コンテナエスケープ等)" : 10
    "その他" : 6

特に注目すべきはサプライチェーン攻撃の急増です。2025年後半から2026年にかけて、人気のOCIイメージへのバックドア埋め込みや、パッケージマネージャー経由でのマルウェア混入が相次ぎました。これを受け、NIST SP 800-218A(2025年改訂版)でもSBOM(Software Bill of Materials)の生成・検証が義務付けられる動きが強まっています。

⚠️ 注記:NIST SP 800-218Aの2025年改訂版の内容については、公式サイトで最新情報をご確認ください。

主要な攻撃パターン(2026年版)

攻撃パターン説明対策技術
イメージタイポスクワッティング公式イメージに酷似した名前の悪意あるイメージSigstore Cosign署名検証
ランタイムコンテナエスケープrunc/containerdの脆弱性を利用eBPF + Seccomp + Rootless
依存パッケージへのマルウェア混入Confusionアタック(npm/PyPI)SBOM + OSV-Scanner
横断移動(Lateral Movement)RBAC設定不備で他Podに侵入Zero Trust Network Policy
Kubernetes API Server不正アクセス漏洩したkubeconfigの悪用OPA Gatekeeper + Admission Webhook

2. eBPFベースのランタイムセキュリティ:Tetragon 1.x の実装

2026年時点でランタイムセキュリティの標準となりつつあるのがeBPF(extended Berkeley Packet Filter)を活用したアプローチです。Falco(v0.40+)に加え、Ciliumプロジェクト傘下のTetragon 1.2(2026年2月リリース)が本番環境への採用を急速に拡大しています。

⚠️ 注記:Tetragon 1.2の2026年2月リリースという情報は未確認です。実際のバージョンと日付は公式リポジトリでご確認ください。

Tetragonの特徴(Falcoとの比較)

項目Tetragon 1.2Falco 0.40
検知方式eBPF(カーネルレベル)eBPF / カーネルモジュール
ポリシー強制(Enforcement)✅ ネイティブ対応(SIGKILLなど)⚠️ 外部ツール連携が必要
Kubernetesコンテキスト✅ Pod/Namespace情報付与
オーバーヘッド低(約2〜3%)低〜中(約3〜5%)
プロセスツリー追跡✅ 詳細な親子プロセス追跡⚠️ 限定的
ネットワーク観測✅ L3/L4レベル⚠️ 限定的

Tetragon TracingPolicy の実装例

以下は、コンテナ内から /etc/passwd/etc/shadow への不審なアクセスを検知・遮断するポリシーです。

apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: detect-credential-access
spec:
  kprobes:
  - call: "security_file_open"
    syscall: false
    args:
    - index: 0
      type: "file"
    selectors:
    - matchArgs:
      - index: 0
        operator: "Postfix"
        values:
        - "/etc/passwd"
        - "/etc/shadow"
        - "/.aws/credentials"
      matchNamespaces:
      - namespace: Pid
        operator: NotIn
        values:
        - "host_ns"
    action:
    - Sigkill  # 即時プロセス終了(Tetragon 1.2 の Enforcement 機能)
    - Post     # Hubbleへイベント送信

このポリシーをDaemonSetとしてデプロイすることで、コンテナ内からの認証情報ファイルへの不審なアクセスをカーネルレベルで即時ブロックできます。

Falcoとの連携アーキテクチャ

flowchart TD
    A[コンテナ内プロセス] -->|システムコール| B[Linuxカーネル]
    B -->|eBPFフック| C[Tetragon / Falco]
    C -->|イベント| D[Falcosidekick]
    D --> E[Slack / PagerDuty]
    D --> F[SIEM / OpenSearch]
    C -->|Enforcement| G[SIGKILL / ネットワーク遮断]
    style G fill:#f66,color:#fff
    style C fill:#326ce5,color:#fff

3. SBOMとサプライチェーンセキュリティ:Sigstore × Syft × OSV-Scanner

2026年においてソフトウェアサプライチェーンの保護は最重要課題です。EUのCRA(Cyber Resilience Act)が2026年初頭に本格施行されたことにより、商用コンテナイメージに対するSBOM提供が事実上必須となりました。

⚠️ 注記:CRAの施行時期・適用範囲については、EU公式の最新情報をご確認ください。

SBOMパイプラインの全体像

flowchart LR
    subgraph Build[ビルドフェーズ]
        A[Dockerfile] --> B[Docker Build]
        B --> C[OCI Image]
    end
    subgraph Sign[署名・SBOM生成]
        C --> D[Syft 1.x\nSBOM生成]
        D --> E[CycloneDX / SPDX 形式]
        C --> F[Cosign 2.x\nKeyless署名]
        F --> G[Sigstore Transparency Log]
    end
    subgraph Scan[脆弱性スキャン]
        E --> H[OSV-Scanner 2.0\n脆弱性マッチング]
        H --> I{Critical CVE?}
        I -->|Yes| J[パイプライン中断]
        I -->|No| K[OCI Registryへpush]
    end
    subgraph Deploy[デプロイフェーズ]
        K --> L[Kyverno / Cosign検証]
        L --> M[Kubernetes Cluster]
    end

Syft + Cosign によるCI/CDへの組み込み(GitHub Actions例)

# .github/workflows/container-security.yml
name: Container Security Pipeline
on:
  push:
    branches: [main]

jobs:
  build-sign-sbom:
    runs-on: ubuntu-latest
    permissions:
      id-token: write   # Keyless署名に必要
      contents: read
      packages: write
    steps:
      - uses: actions/checkout@v4

      - name: Build Container Image
        run: |
          docker build -t ghcr.io/myorg/myapp:${{ github.sha }} .

      - name: Generate SBOM with Syft 1.x
        uses: anchore/sbom-action@v0.18  # 2026年最新版
        with:
          image: ghcr.io/myorg/myapp:${{ github.sha }}
          format: cyclonedx-json
          output-file: sbom.cyclonedx.json

      - name: Scan SBOM with OSV-Scanner 2.0
        run: |
          osv-scanner --sbom=sbom.cyclonedx.json \
            --fail-on-vuln-level=high \
            --output=table

      - name: Push Image to Registry
        run: |
          echo ${{ secrets.GITHUB_TOKEN }} | docker login ghcr.io -u ${{ github.actor }} --password-stdin
          docker push ghcr.io/myorg/myapp:${{ github.sha }}

      - name: Sign with Cosign (Keyless)
        uses: sigstore/cosign-installer@v3
      - run: |
          cosign sign --yes ghcr.io/myorg/myapp:${{ github.sha }}
          # SBOMをイメージにアタッチ
          cosign attach sbom --sbom sbom.cyclonedx.json \
            ghcr.io/myorg/myapp:${{ github.sha }}
          cosign sign --yes --attachment sbom \
            ghcr.io/myorg/myapp:${{ github.sha }}

Kyverno 1.13(2026年対応版)でのデプロイ時署名検証

apiVersion: kyverno.io/v1
kind: ClusterPolicy
metadata:
  name: require-cosign-signature
spec:
  validationFailureAction: Enforce
  background: false
  rules:
  - name: check-image-signature
    match:
      any:
      - resources:
          kinds: [Pod]
    verifyImages:
    - imageReferences:
      - "ghcr.io/myorg/*"
      attestors:
      - count: 1
        entries:
        - keyless:
            subject: "https://github.com/myorg/*"
            issuer: "https://token.actions.githubusercontent.com"
            rekor:
              url: https://rekor.sigstore.dev
      # SBOMアタッチメントの存在確認
      attestations:
      - type: https://cyclonedx.org/bom
        conditions:
        - all:
          - key: "{{ components | length(@) }}"
            operator: GreaterThan
            value: "0"

4. Kubernetes Admission Controlとゼロトラスト設計

2026年においてKubernetesのセキュリティ強化は、Admission ControllerNetwork Policyの二本柱で考えるのが標準となっています。

Pod Security Standards(PSS)の運用

Kubernetes 1.32(2026年1月リリース)では、Pod Security Admissionが完全に安定化し、PodSecurityPolicyの廃止後の移行も完了しています。

⚠️ 注記:Kubernetes 1.32の2026年1月リリースという情報は未確認です。実際のリリーススケジュールは公式サイトでご確認ください。

# Namespace単位でのセキュリティレベル設定
apiVersion: v1
kind: Namespace
metadata:
  name: production
  labels:
    # Restrictedレベル:最も厳格(2026年推奨)
    pod-security.kubernetes.io/enforce: restricted
    pod-security.kubernetes.io/enforce-version: v1.32
    pod-security.kubernetes.io/audit: restricted
    pod-security.kubernetes.io/warn: restricted
# Restricted準拠のPod仕様例
apiVersion: v1
kind: Pod
metadata:
  name: secure-app
spec:
  securityContext:
    runAsNonRoot: true
    runAsUser: 10001
    seccompProfile:
      type: RuntimeDefault  # 2026年はこれがデフォルト推奨
    fsGroup: 10001
  containers:
  - name: app
    image: ghcr.io/myorg/myapp:latest
    securityContext:
      allowPrivilegeEscalation: false
      readOnlyRootFilesystem: true
      capabilities:
        drop: ["ALL"]
    resources:
      limits:
        cpu: "500m"
        memory: "256Mi"
      requests:
        cpu: "100m"
        memory: "128Mi"
    volumeMounts:
    - name: tmp
      mountPath: /tmp  # 書き込みが必要な場合はemptyDir経由
  volumes:
  - name: tmp
    emptyDir:          # emptyType は誤記のため修正
      medium: Memory
      sizeLimit: 64Mi

ゼロトラスト NetworkPolicy(Cilium v1.17ベース)

# デフォルト拒否 + 必要なトラフィックのみ許可
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-deny-all
  namespace: production
spec:
  podSelector: {}  # namespace内の全Pod
  policyTypes:
  - Ingress
  - Egress
---
apiVersion: cilium.io/v2
kind: CiliumNetworkPolicy
metadata:
  name: allow-app-to-db
  namespace: production
spec:
  endpointSelector:
    matchLabels:
      app: database
  ingress:
  - fromEndpoints:
    - matchLabels:
        app: backend
  toPorts:
  - ports:
    - port: "5432"
      protocol: TCP
    rules:
      l7proto: postgres  # L7レベルのPostgreSQLプロトコル検査
      l7:
      - query: "SELECT|INSERT|UPDATE"  # DMLのみ許可、DDL禁止

セキュリティ評価ツール比較(2026年版)

ツールバージョン(2026年時点)用途特徴
Trivyv0.62イメージ・SBOM脆弱性スキャンKubernetes operator対応強化
Syftv1.12SBOM生成CycloneDX 1.6対応
OSV-Scannerv2.1SBOMベース脆弱性照合Google OSVデータベース活用
Tetragonv1.2eBPFランタイムセキュリティEnforcement機能安定版
Falcov0.40ランタイム脅威検知Wasmプラグインサポート
Kyvernov1.13Admission Controller/PolicyCEL expression対応
Cosignv2.5イメージ署名・検証Keyless署名完全対応
KubeAuditv0.22Kubernetesセキュリティ監査PSS/CIS Benchmark対応

⚠️ 注記:上記のバージョン番号は将来の予測を含んでいます。実際のバージョンは各ツールの公式リポジトリでご確認ください。


5. CI/CDパイプライン全体のセキュリティ成熟度モデル

CNCFが2026年に提唱するSLSA(Supply-chain Levels for Software Artifacts)v1.1のレベル別対応をまとめます。

⚠️ 注記:SLSA v1.1の仕様・レベル定義については、slsa.dev の公式ドキュメントで最新情報をご確認ください。

flowchart TD
    L0[Level 0\n対策なし] --> L1
    L1[Level 1\nビルドスクリプト化\nSBOM生成] --> L2
    L2[Level 2\nCI/CDによる自動化\nソース管理された署名] --> L3
    L3[Level 3\nセキュアなビルド環境\nVerified署名\nHermetic Build] --> L4
    L4[Level 4\n2段階以上のレビュー\nエフェメラルビルド環境]
    style L0 fill:#f66,color:#fff
    style L1 fill:#fa0,color:#fff
    style L2 fill:#ff0
    style L3 fill:#9f9
    style L4 fill:#6f6

2026年時点での業界平均はLevel 2〜3への移行期にあり、規制産業(金融・ヘルスケア)ではLevel 3以上が事実上の要件となっています。

各レベルで実装すべき具体策

SLSAレベル必須実装推奨ツール
Level 1SBOM生成、ビルドスクリプト化Syft, Dockerfile
Level 2CI/CD署名、出所証明Cosign, GitHub Actions OIDC
Level 3エフェメラルビルド、HermeticTekton, GitHub Actions Runner
Level 42者レビュー、検証可能なビルドSLSA Verifier v2.x

まとめ

2026年のコンテナセキュリティは、単一のツールではなく**多層防御(Defense in Depth)**が不可欠な時代です。本記事で解説したポイントを振り返ります。

  • eBPFランタイム防御の採用:Tetragon 1.2やFalco 0.40を活用し、コンテナ内のプロセス・ファイルアクセス・ネットワーク通信をカーネルレベルで監視・強制遮断する仕組みを構築する
  • SBOMの自動生成・署名・検証をCI/CDに組み込む:Syft + Cosign(Keyless署名)+ OSV-Scannerの三点セットをGitHub ActionsやTektonに統合し、脆弱なイメージのデプロイを未然に防ぐ
  • Kubernetes Admission ControlはKyverno + Pod Security Standards(Restricted)で二重防御:署名検証・SBOMアタッチメント確認・セキュリティコンテキスト強制を宣言的ポリシーで管理する
  • **ゼロトラストネットワークポリシー(Cilium L7ポリシー)**で横断移動を防止し、Namespace・サービス間通信をデフォルト拒否・明示許可に徹底する
  • SLSAレベル3以上を目標に段階的にサプライチェーンセキュリティを強化し、EUのCRAや各国のセキュリティ規制に対応できるトレーサビリティを確保する

次のアクション:まずはTrivy + Syftをローカル環境に導入し、既存イメージのSBOMを生成して脆弱性を把握することから始めましょう。その後、Cosignによる署名・Kyverno検証のCI/CD組み込みへと段階的に進めることで、無理なくセキュリティ成熟度を引き上げることができます。

U

Untanbaby

ソフトウェアエンジニア|AWS / クラウドアーキテクチャ / DevOps

10年以上のIT実務経験をもとに、現場で使える技術情報を発信しています。 記事の誤りや改善点があればお問い合わせからお気軽にご連絡ください。

関連記事