analyzing-kubernetes-audit-logs skill (Anthropic-Cybersecurity-Skills)
What it does. Parses Kubernetes API server audit logs (JSON lines) to detect exec-into-pod, secret access, RBAC modifications, privileged pod creation, and anonymous API access, and builds SIEM detection rules from the event patterns. Use when investigating a suspected cluster compromise, reconstructing what an attacker did through the API server, or writing Kubernetes-specific detection content. Keywords: audit policy, audit log, kube-apiserver, exec into pod, RBAC change, anonymous access, detection rules. Do not use for syscall-level detection inside a running container - use detecting-container-runtime-threats-with-falco. ' Part of mukul975/Anthropic-Cybersecurity-Skills (817 security skills) (mukul975/Anthropic-Cybersecurity-Skills).
| Upstream | mukul975/Anthropic-Cybersecurity-Skills |
| Skill file | skills/analyzing-kubernetes-audit-logs/SKILL.md |
| License | Apache-2.0 (skill folder LICENSE) |
| Author | mukul975 |
| Fetched | 2026-09-10 |
Install
npx skills add mukul975/Anthropic-Cybersecurity-Skills --skill analyzing-kubernetes-audit-logs, or copy the skill folder into~/.claude/skills/analyzing-kubernetes-audit-logs/.- Raw file:
curl -sL https://raw.githubusercontent.com/mukul975/Anthropic-Cybersecurity-Skills/HEAD/skills/analyzing-kubernetes-audit-logs/SKILL.md
SKILL.md (verbatim)
name: analyzing-kubernetes-audit-logs
description: >-
Parses Kubernetes API server audit logs (JSON lines) to detect exec-into-pod, secret access,
RBAC modifications, privileged pod creation, and anonymous API access, and builds SIEM
detection rules from the event patterns. Use when investigating a suspected cluster
compromise, reconstructing what an attacker did through the API server, or writing
Kubernetes-specific detection content. Keywords: audit policy, audit log, kube-apiserver,
exec into pod, RBAC change, anonymous access, detection rules. Do not use for syscall-level
detection inside a running container - use detecting-container-runtime-threats-with-falco.
'
domain: cybersecurity
subdomain: container-security
tags:
- kubernetes-security
- container-security
- audit-log-analysis
- rbac
- privilege-escalation
- k8s-api-server
- threat-detection
version: '1.0'
author: mahipal
license: Apache-2.0
nist_csf:
- PR.PS-01
- PR.IR-01
- ID.AM-08
- DE.CM-01
mitre_attack:
- T1610
- T1613
- T1078
- T1552.007
Analyzing Kubernetes Audit Logs
When to Use
- When investigating security incidents that require analyzing kubernetes audit logs
- When building detection rules or threat hunting queries for this domain
- When SOC analysts need structured procedures for this analysis type
- When validating security monitoring coverage for related attack techniques
Prerequisites
- Familiarity with container security concepts and tools
- Access to a test or lab environment for safe execution
- Python 3.8+ with required dependencies installed
- Appropriate authorization for any testing activities
Instructions
Parse Kubernetes audit log files (JSON lines format) to detect security-relevant events including unauthorized access, privilege escalation, and data 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}")
Key events to detect:
- pods/exec and pods/attach (shell into containers)
- secrets access (get/list/watch)
- clusterrolebindings creation (RBAC escalation)
- Privileged pod creation
- Anonymous or system:unauthenticated access
Examples
# Detect secret enumeration
if verb in ("get", "list") and resource == "secrets":
print(f"Secret access: {user} -> {event['objectRef'].get('name')}")
Other files in this skill
references/api-reference.md (verbatim)
API Reference: Analyzing Kubernetes Audit Logs
Audit Log Format (JSON Lines)
{
"kind": "Event",
"apiVersion": "audit.k8s.io/v1",
"level": "RequestResponse",
"verb": "create",
"user": {"username": "admin", "groups": ["system:masters"]},
"sourceIPs": ["10.0.0.5"],
"objectRef": {
"resource": "pods",
"subresource": "exec",
"namespace": "default",
"name": "web-pod"
},
"responseStatus": {"code": 200},
"requestReceivedTimestamp": "2025-03-15T14:00:00Z"
}
Security-Critical Audit Events
| Event | objectRef | Severity |
|---|---|---|
| Pod exec | resource: pods, subresource: exec |
HIGH |
| Secret access | resource: secrets, verb: get/list |
HIGH |
| RBAC change | resource: clusterrolebindings |
CRITICAL |
| Privileged pod | requestObject.spec.containers[].securityContext.privileged |
CRITICAL |
| Anonymous access | user.username: system:anonymous |
CRITICAL |
Audit Policy Levels
| Level | Captures |
|---|---|
| None | No logging |
| Metadata | Timestamp, user, verb, resource |
| Request | Metadata + request body |
| RequestResponse | Request + response body |
Python Parsing
import json
with open("audit.log") as f:
for line in f:
event = json.loads(line)
print(event["verb"], event["objectRef"]["resource"])
References
- K8s Auditing: https://kubernetes.io/docs/tasks/debug/debug-cluster/audit/
- Audit policy: https://kubernetes.io/docs/reference/config-api/apiserver-audit.v1/
- Datadog k8s audit: https://www.datadoghq.com/blog/monitor-kubernetes-audit-logs/
Back to mukul975/Anthropic-Cybersecurity-Skills (817 security skills) or Agent skills.