| name | analyzing-kubernetes-audit-logs |
| description | 解析 Kubernetes API server 审计日志(JSON lines 格式),检测 exec 进入 Pod、 Secret 访问、RBAC 修改、特权 Pod 创建以及匿名 API 访问行为。 从审计事件模式构建威胁检测规则。适用于调查 Kubernetes 集群入侵 或构建 k8s 专用 SIEM 检测规则。
|
| domain | cybersecurity |
| subdomain | container-security |
| tags | ["analyzing","kubernetes","audit","logs"] |
| version | 1.0 |
| author | mahipal |
| license | Apache-2.0 |
分析 Kubernetes 审计日志
说明
解析 Kubernetes 审计日志文件(JSON lines 格式),检测安全相关事件,
包括未授权访问、权限提升(privilege escalation)和数据外泄(exfiltration)。
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 by {user}")
需检测的关键事件:
- pods/exec 和 pods/attach(进入容器 shell)
- secrets 访问(get/list/watch)
- clusterrolebindings 创建(RBAC 权限提升)
- 特权 Pod 创建
- 匿名或 system:unauthenticated 访问
示例
if verb in ("get", "list") and resource == "secrets":
print(f"Secret access: {user} -> {event['objectRef'].get('name')}")