Kubernetes監査ログ分析 は何をしますか?
使用タイミング
- セキュリティインシデント調査のためにKubernetes監査ログの分析が必要な場合
- このドメイン向けの検知ルールやスレットハンティングクエリを作成する場合
- SOCアナリストがこの分析タイプの構造化された手順を必要とする場合
- 関連する攻撃テクニックに対するセキュリティ監視カバレッジを検証する場合
前提条件
- コンテナセキュリティの概念とツールに関する知識
- 安全な実行のためのテスト環境またはラボ環境へのアクセス
- 必要な依存関係がインストールされたPython 3.8+
- テスト活動に対する適切な認可
手順
Kubernetes監査ログファイル(JSON Lines形式)を解析して、不正アクセス、権限昇格、データ流出などのセキュリティ関連イベントを検出します。
import json
with open("/var/log/kubernetes/audit.log") as f:
for line in f:
event = json.loads(line)
verb = event.get("verb")
resource = event.get("objectRef", {}).get("resource")
user = event.get("user", {}).get("username")
if verb == "create" and resource == "pods/exec":
print(f"ポッドexec(ユーザー: {user})")
検出すべき主なイベント:
- pods/exec および pods/attach(コンテナへのシェルアクセス)
- シークレットへのアクセス(get/list/watch)
- clusterrolebindingの作成(RBAC権限昇格)
- 特権ポッドの作成
- 匿名または system:unauthenticated によるアクセス
例
# シークレットの列挙を検出
if verb in ("get", "list") and resource == "secrets":
print(f"シークレットアクセス: {user} -> {event['objectRef'].get('name')}")