Skip to content

Built-in Security Rules

Spotter comes with 140+ built-in security rules covering all major Kubernetes security domains. These rules are based on industry best practices, security benchmarks, and real-world attack patterns.

These rules are based on KICS Kubernetes Queries https://github.com/Checkmarx/kics/tree/master/docs/queries/kubernetes-queries

Spotter organizes security rules into 10 comprehensive categories:

Focus: Container and pod-level security configurations

Key Areas:

  • Container privilege escalation
  • Security contexts and capabilities
  • Resource limits and requests
  • Health checks and probes
  • Image security policies

Focus: Authentication, authorization, and RBAC policies

Key Areas:

  • RBAC roles and bindings
  • Service account security
  • Pod security policies
  • Admission controllers
  • User and group permissions

Focus: Network policies, service exposure, and traffic control

Key Areas:

  • Network policy enforcement
  • Service exposure methods
  • Ingress and egress controls
  • Load balancer configurations
  • DNS security

Focus: Secret management, encryption, and data security

Key Areas:

  • Secret storage and access
  • Environment variable security
  • Volume mount security
  • Encryption at rest and in transit
  • Data classification

Focus: Resource management, configuration best practices

Key Areas:

  • Resource quotas and limits
  • Deprecated API usage
  • Label and annotation standards
  • Configuration validation
  • Resource lifecycle management

Focus: Container image security and supply chain integrity

Key Areas:

  • Image vulnerability scanning
  • Image registry security
  • Image signing and verification
  • Base image policies
  • Dependency management

Focus: Pipeline security and deployment practices

Key Areas:

  • Pipeline security controls
  • Deployment automation
  • Code review processes
  • Artifact integrity
  • Environment promotion

Focus: Runtime security monitoring and anomaly detection

Key Areas:

  • Behavioral analysis
  • Anomaly detection
  • Runtime policy enforcement
  • Threat intelligence
  • Incident response

Focus: Audit trails, logging, and regulatory compliance

Key Areas:

  • Audit log configuration
  • Compliance frameworks (CIS, NIST, SOC2)
  • Log retention policies
  • Monitoring and alerting
  • Governance controls

Focus: Cluster-level and infrastructure security

Key Areas:

  • Node security configuration
  • Control plane hardening
  • etcd security
  • API server configuration
  • Cluster networking

Each built-in rule follows a standardized structure:

apiVersion: rules.spotter.run/v1
kind: SecurityRule
metadata:
name: container-is-privileged
labels:
category: "Workload Security"
severity: critical
spec:
id: SPOTTER-WORKLOAD-SECURITY-105
name: "Container Is Privileged"
version: "1.0.0"
description: "Containers should not run in privileged mode, as this grants all capabilities to the container and removes all security restrictions."
severity:
level: CRITICAL
score: 9.8
category: "Workload Security"
subcategory: "Pod Security Context"
cwe: "CWE-269"
regulatoryStandards:
- name: "CIS Kubernetes Benchmark v1.8.0"
reference: "https://www.cisecurity.org/benchmark/kubernetes"
section: "5.2.1"
match:
resources:
kubernetes:
apiGroups:
- ""
- "apps"
versions:
- "v1"
kinds:
- Pod
- Deployment
- StatefulSet
- DaemonSet
namespaces:
include: ["*"]
exclude: ["kube-system", "kube-public"]
cel: |
(object.kind == 'Pod' && (
(has(object.spec.containers) && object.spec.containers.exists(c, has(c.securityContext) && has(c.securityContext.privileged) && c.securityContext.privileged == true)) ||
(has(object.spec.initContainers) && object.spec.initContainers.exists(c, has(c.securityContext) && has(c.securityContext.privileged) && c.securityContext.privileged == true))
)) || (object.kind != 'Pod' && (
(has(object.spec.template.spec.containers) && object.spec.template.spec.containers.exists(c, has(c.securityContext) && has(c.securityContext.privileged) && c.securityContext.privileged == true)) ||
(has(object.spec.template.spec.initContainers) && object.spec.template.spec.initContainers.exists(c, has(c.securityContext) && has(c.securityContext.privileged) && c.securityContext.privileged == true))
))
remediation:
manual: "Set `privileged: false` in the container's security context."
references:
- title: "Kubernetes Pod Security Standards (Restricted)"
url: "https://kubernetes.io/docs/concepts/security/pod-security-standards/#restricted"
metadata:
author: "Spotter Security Team"
created: "2025-07-29"

Spotter uses a 4-level severity system:

  • Impact: Immediate security risk, potential for system compromise
  • Examples: Privileged containers, cluster-admin access, exposed secrets
  • Action: Fix immediately
  • Impact: Significant security risk, potential for privilege escalation
  • Examples: Missing network policies, weak RBAC, insecure configurations
  • Action: Fix within 24-48 hours
  • Impact: Moderate security risk, potential for information disclosure
  • Examples: Missing resource limits, deprecated APIs, weak encryption
  • Action: Fix within 1 week
  • Impact: Minor security risk, potential for denial of service
  • Examples: Missing labels, suboptimal configurations, minor policy violations
  • Action: Fix during next maintenance window

Built-in rules are mapped to major compliance frameworks:

  • Coverage: 95% of CIS controls
  • Sections: All major sections (Control Plane, Worker Nodes, Policies)
  • Updates: Regular updates with new CIS releases
  • Functions: Identify, Protect, Detect, Respond, Recover
  • Categories: Asset Management, Access Control, Data Security
  • Subcategories: Detailed mappings for each control
  • Trust Criteria: Security, Availability, Confidentiality
  • Controls: Technical and operational controls
  • Evidence: Automated evidence collection
  • Requirements: Data protection, access control, monitoring
  • Scope: Applicable to payment processing workloads
  • Validation: Continuous compliance monitoring
  • Safeguards: Administrative, physical, technical
  • Requirements: Healthcare data protection
  • Controls: Access control, audit trails, encryption
Terminal window
# List all built-in rules
spotter rules list
# List by category
spotter rules list --category "Workload Security"
# List by severity
spotter rules list --severity critical
Terminal window
# Show detailed rule information
spotter rules info SPOTTER-WORKLOAD-SECURITY-100
# Export rule definition
spotter rules info SPOTTER-WORKLOAD-SECURITY-100 --output yaml
Terminal window
# Include specific rules
spotter scan cluster --include-rules "SPOTTER-WORKLOAD-SECURITY-100,SPOTTER-WORKLOAD-SECURITY-101"
# Filter by category
spotter scan cluster --categories "Workload Security,Access Control"
# Filter by severity
spotter scan cluster --min-severity medium