はじめに
これまでのセキュリティ対策(IAM、署名、Admission制御)は「事前防御」が中心でした。しかし、実際の攻撃は実行時(Runtime)に発生します。
- コンテナ侵入後の不正操作
- 権限昇格(Privilege Escalation)
- 不審なプロセス実行
これらを検知・防御するのがRuntimeセキュリティです。
1. Runtimeセキュリティとは?
実行中のコンテナやホストの挙動を監視し、異常を検知する仕組みです。
監視対象
- システムコール(syscall)
- プロセス生成
- ファイルアクセス
- ネットワーク通信
2. Falcoとは?
FalcoはCNCFプロジェクトで、Kubernetes向けRuntimeセキュリティツールです。
特徴
- リアルタイム検知
- ルールベース(YAML)
- 軽量・高速
3. eBPFとは?
eBPFはLinuxカーネル内で安全にプログラムを実行する仕組みです。
役割
- 低オーバーヘッド監視
- syscallトレース
- ネットワーク解析
FalcoはこのeBPFを使ってイベントを取得します。
4. アーキテクチャ
Kernel(eBPF) ↓ Falco Engine ↓ Rules(YAML) ↓ Alert(Slack / SIEM)
5. Falcoの導入
Helmインストール
helm repo add falcosecurity https://falcosecurity.github.io/charts helm install falco falcosecurity/falco
確認
kubectl get pods -n falco
6. ルール例(実践)
① シェル起動検知
- rule: Shell in Container desc: コンテナ内でシェル実行 condition: container and shell_procs output: "Shell実行検知 (user=%user.name container=%container.id)" priority: WARNING
② /etc/passwd変更検知
- rule: Modify passwd file condition: open_write and fd.name=/etc/passwd output: "/etc/passwd変更検知" priority: CRITICAL
③ 特権コンテナ検知
- rule: Privileged Container condition: container and container.privileged=true output: "特権コンテナ検知" priority: HIGH
7. アラート連携
- Slack
- CloudWatch Logs
- SIEM(Splunk / Datadog)
8. Kubernetesとの連携
Falcoは以下と組み合わせると効果的です:
- OPA Gatekeeper(事前制御)
- PSA(標準制御)
- Falco(実行時検知)
9. ユースケース
- 不正アクセス検知
- コンテナ脱出(Container Escape)検知
- マイニング攻撃検知
10. ベストプラクティス
- 重要ルールのみ有効化(ノイズ削減)
- SIEMと統合
- アラートの優先度管理
11. ゼロトラストとの関係
ゼロトラストは以下で構成されます:
事前防御(IAM / Sigstore) + 実行時防御(Falco)
Falcoは「最後の防御ライン」です。
まとめ
- Runtimeセキュリティは必須
- Falco + eBPFでリアルタイム監視
- 事前防御と組み合わせることで完全防御
セキュリティは「防ぐ」だけでなく検知する力が重要です。