テックカリキュラム

Runtimeセキュリティ(Falco / eBPF) ── Kubernetes実行時防御の最前線

Runtimeセキュリティ(Falco / eBPF) ── Kubernetes実行時防御の最前線

はじめに

これまでのセキュリティ対策(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でリアルタイム監視
  • 事前防御と組み合わせることで完全防御

セキュリティは「防ぐ」だけでなく検知する力が重要です。