分析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"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')}")