分析 Kubernetes 審計日誌 是做什麼的?
使用時機
- 在調查需要分析 Kubernetes 審計日誌的安全事件時
- 在為此領域建立檢測規則或威脅獵殺查詢時
- 當 SOC 分析師需要此類分析的結構化程序時
- 在驗證相關攻擊技術的安全監控覆蓋範圍時
前提條件
- 熟悉容器安全概念與工具
- 可用於安全執行的測試或實驗室環境
- 已安裝所需相依套件的 Python 3.8+
- 任何測試活動的適當授權
操作說明
解析 Kubernetes 審計日誌檔案(JSON 行格式)以檢測安全相關事件,包括未經授權的存取、權限提升和資料外洩。
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"Pod exec由 {user} 執行")
要檢測的關鍵事件:
- pods/exec 與 pods/attach(進入容器的 shell)
- secrets 存取(get/list/watch)
- clusterrolebindings 建立(RBAC 權限提升)
- 特權 Pod 建立
- 匿名或 system:unauthenticated 存取
範例
# 檢測 secret 列舉
if verb in ("get", "list") and resource == "secrets":
print(f"Secret 存取:{user} -> {event['objectRef'].get('name')}")