コンテナセキュリティ完全ガイド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.2 | Falco 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 ControllerとNetwork 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年時点) | 用途 | 特徴 |
|---|---|---|---|
| Trivy | v0.62 | イメージ・SBOM脆弱性スキャン | Kubernetes operator対応強化 |
| Syft | v1.12 | SBOM生成 | CycloneDX 1.6対応 |
| OSV-Scanner | v2.1 | SBOMベース脆弱性照合 | Google OSVデータベース活用 |
| Tetragon | v1.2 | eBPFランタイムセキュリティ | Enforcement機能安定版 |
| Falco | v0.40 | ランタイム脅威検知 | Wasmプラグインサポート |
| Kyverno | v1.13 | Admission Controller/Policy | CEL expression対応 |
| Cosign | v2.5 | イメージ署名・検証 | Keyless署名完全対応 |
| KubeAudit | v0.22 | Kubernetesセキュリティ監査 | 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 1 | SBOM生成、ビルドスクリプト化 | Syft, Dockerfile |
| Level 2 | CI/CD署名、出所証明 | Cosign, GitHub Actions OIDC |
| Level 3 | エフェメラルビルド、Hermetic | Tekton, GitHub Actions Runner |
| Level 4 | 2者レビュー、検証可能なビルド | 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組み込みへと段階的に進めることで、無理なくセキュリティ成熟度を引き上げることができます。