Skip to main content

vamp-k8s-audit

Python 3.8+ License MIT VampSecure Labs

Kubernetes Security Auditor — part of the VampSecure Labs toolkit.

Detects dangerous configurations in Kubernetes clusters through kubectl queries (no SDK required). Produces structured findings with remediation guidance, JSON output, and a professional HTML report for client delivery.


Prerequisites

  • Python 3.8+
  • kubectl installed and reachable in PATH
  • Active cluster access — the current kubectl context must point to the target cluster
  • Sufficient RBAC permissions to read: pods, services, secrets, configmaps, clusterrolebindings, rolebindings, networkpolicies, ingresses, namespaces, nodes

Optional, for PDF export:

pip install fpdf2>=2.7

Installation

git clone <repo-url> vamp-k8s-audit
cd vamp-k8s-audit
pip install -r requirements.txt   # optional, only needed for PDF

No additional dependencies beyond Python stdlib are required for JSON and HTML output.


Usage

# Basic audit — current kubectl context, all namespaces
python3 vamp_k8s_audit.py

# Specific context and namespace
python3 vamp_k8s_audit.py --context prod-cluster --namespace production

# Save findings as JSON
python3 vamp_k8s_audit.py --output findings.json

# Generate professional HTML report for client delivery
python3 vamp_k8s_audit.py \
  --report-html report.html \
  --client "Acme Corp S.A." \
  --engagement "Kubernetes Security Review Q3-2026" \
  --auditor "VampSecure Labs"

# Custom kubeconfig path
python3 vamp_k8s_audit.py --kubeconfig ~/.kube/custom-config --context staging

# Skip image analysis (faster)
python3 vamp_k8s_audit.py --skip-images --output findings.json

# Verbose mode (show evidence in console)
python3 vamp_k8s_audit.py --verbose

# Full example
python3 vamp_k8s_audit.py \
  --context production \
  --namespace app-prod \
  --client "Client Name" \
  --engagement "K8S-Audit-2026" \
  --auditor "Analyst Name" \
  --output results.json \
  --report-html report.html \
  --verbose

CLI Arguments

Argument Description Default
--context CTX kubectl context to use current context
--namespace NS Limit audit to one namespace all namespaces
--kubeconfig PATH Path to kubeconfig file ~/.kube/config
--output FILE Save findings as JSON —
--report-html FILE Generate professional HTML report —
--client NAME Client name for the report Confidencial
--engagement DESC Engagement description —
--auditor NAME Auditor name VampSecure Labs
--skip-images Skip image analysis (Phase 6) false
--verbose Verbose mode false

Audit Phases and Finding IDs

Phase Scope Finding IDs Key Checks
1 — Cluster Context Cluster-wide K8S-001..K8S-009 Anonymous API access, node versions, node health
2 — RBAC Cluster + namespaces K8S-010..K8S-029 cluster-admin SA bindings, wildcard ClusterRoles, default SA permissions, anonymous user permissions
3 — Pod Security All pods K8S-030..K8S-059 Privileged containers, root execution, privilege escalation, dangerous capabilities, hostPID/IPC/Network, sensitive host mounts, missing resource limits
4 — Network All namespaces K8S-060..K8S-079 LoadBalancer/NodePort exposure, missing NetworkPolicies, Ingress without TLS, Dashboard exposure, etcd TCP access
5 — Secrets All namespaces K8S-080..K8S-099 Secrets in plain env vars, secrets in ConfigMaps, Opaque secrets in default namespace
6 — Images & Runtime All pods K8S-090..K8S-109 :latest tags, public registries, missing readOnlyRootFilesystem, missing Pod Security Admission

Finding Severity Distribution

Severity Color Meaning
CRITICAL Red Immediate exploitation risk, full cluster compromise
HIGH Orange Significant security weakness requiring urgent attention
MEDIUM Yellow Configuration issue reducing security posture
LOW Blue Best practice deviation
INFO Grey Informational observation

Exit Codes

Code Meaning
0 No CRITICAL or HIGH findings
1 At least one HIGH finding detected
2 At least one CRITICAL finding detected

These codes are suitable for use in CI/CD pipelines to gate deployments.


Output Formats

Console — Color-coded ANSI output with severity badges, affected resources, and a summary table.

JSON (--output FILE) — Structured VSL schema with metadata, summary by severity, and full finding detail.

HTML (--report-html FILE) — Standalone professional report for client delivery. Includes cover page, executive summary with risk bars, findings table, and detailed cards. No external dependencies (fully self-contained).


Required RBAC Permissions

The tool requires read-only access to cluster resources. A minimal ClusterRole:

apiVersion: rbac.authorization.k8s.io/v1
kind: ClusterRole
metadata:
  name: vamp-k8s-audit-reader
rules:
- apiGroups: [""]
  resources:
  - pods
  - services
  - secrets
  - configmaps
  - namespaces
  - nodes
  - serviceaccounts
  verbs: ["get", "list"]
- apiGroups: ["rbac.authorization.k8s.io"]
  resources:
  - clusterroles
  - clusterrolebindings
  - roles
  - rolebindings
  verbs: ["get", "list"]
- apiGroups: ["networking.k8s.io"]
  resources:
  - networkpolicies
  - ingresses
  verbs: ["get", "list"]

This tool is intended for authorized security audits only. Using it against clusters you do not have explicit permission to test is illegal and unethical.


© VampSecure Studios — VampSecure Labs Security Research Division
All rights reserved. Authorized use only.

Metadata

Release files for vamp-k8s-audit 1.3

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for vamp-k8s-audit 1.3
File Size Uploaded
vamp_k8s_audit-1.3.tar.gz 44.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for vamp-k8s-audit 1.3
File Interpreter ABI Platform
vamp_k8s_audit-1.3-py3-none-any.whl Python 3 none any Details

Total release size: 89.9 kB

Release files / vamp_k8s_audit-1.3.tar.gz

Download URL vamp_k8s_audit-1.3.tar.gz
Size 44.3 kB
Tags Source
SHA-256 checksum
How to use checksums
65f2f11bb8b8514cf78a0b2a23fd120f333033f4c1bea5181ab878f8e52bf9bf
BLAKE2b-256 checksum
How to use checksums
46f51825cf8880020ab622b6cdab382365844567dd58459fc52f373f8b9f2906
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.14.6

Release files / vamp_k8s_audit-1.3-py3-none-any.whl

Download URL vamp_k8s_audit-1.3-py3-none-any.whl
Size 45.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f32eebb5ff6c88a75d01b2dd28b1ec727befcc7c7cc0c1dc0b457f1470acb02f
BLAKE2b-256 checksum
How to use checksums
afec3b67e17db7c47f034722a1f3f97f946e3c4c792d83f8f5f09d00dc45dfff
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/7.0.0 CPython/3.13.14

Release history Release notifications | RSS feed

3.1.0

2 release files

3.0.0

2 release files

2.2.0

2 release files

2.1

2 release files

2.0

2 release files

This release

1.3 This release

2 release files

1.2

2 release files

1.1

1 release file

1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page