<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
  <title>systemshardening.com</title>
  <subtitle>Hardening real systems in production, for engineers who actually run them.</subtitle>
  <link href="https://systemshardening.github.io/feed.xml" rel="self" type="application/atom+xml"/>
  <link href="https://systemshardening.github.io/" rel="alternate" type="text/html"/>
  <id>https://systemshardening.github.io/</id>
  <author>
    <name>Systems Hardening</name>
  </author>
  <updated>2026-04-22T00:00:00.000Z</updated>
  
  <entry>
    <title>Adversarial Attacks on Embeddings: Poisoning Vector Stores and Manipulating Semantic Search</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/adversarial-embedding-attacks/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/adversarial-embedding-attacks/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Adversarial Attacks on Embeddings: Poisoning Vector Stores and Manipulating Semantic Search
Problem
Embedding-based retrieval powers RAG pipelines, semantic search, recommendation systems, and...</summary>
  </entry>
  
  <entry>
    <title>Agent-to-Agent Trust: Authentication, Delegation, and Capability Boundaries in Multi-Agent Systems</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/agent-to-agent-trust/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/agent-to-agent-trust/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Agent-to-Agent Trust: Authentication, Delegation, and Capability Boundaries in Multi-Agent Systems
Problem
Multi-agent systems are moving from research demos to production deployments. A coordinator...</summary>
  </entry>
  
  <entry>
    <title>Sandboxing AI Agent Tool Use: Filesystem, Network, and Process Isolation for Autonomous Actions</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/agent-tool-use-sandboxing/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/agent-tool-use-sandboxing/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Sandboxing AI Agent Tool Use: Filesystem, Network, and Process Isolation for Autonomous Actions
Problem
AI agents execute tool calls on real infrastructure: writing files, running shell commands,...</summary>
  </entry>
  
  <entry>
    <title>Verifying AI Agent Output: Deterministic Checks, Human-in-the-Loop Gates, and Rollback Safety</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-agent-output-verification/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-agent-output-verification/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Verifying AI Agent Output: Deterministic Checks, Human-in-the-Loop Gates, and Rollback Safety
Problem
AI agents generate infrastructure configurations, database migrations, deployment manifests, and...</summary>
  </entry>
  
  <entry>
    <title>Using AI to Harden Systems: Automated Configuration Review and Remediation</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-assisted-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-assisted-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Using AI to Harden Systems: Automated Configuration Review and Remediation
Problem
Manual security review of infrastructure-as-code takes 2-4 hours per pull request for complex changes. A team...</summary>
  </entry>
  
  <entry>
    <title>Hardening the AI Control Plane: Kill Switches, Rate Limits, and Human-in-the-Loop Gates</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-control-plane/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-control-plane/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Hardening the AI Control Plane: Kill Switches, Rate Limits, and Human-in-the-Loop Gates
Problem
AI agents with write access to production systems can execute 100+ infrastructure changes per minute. A...</summary>
  </entry>
  
  <entry>
    <title>AI Credential Delegation: Short-Lived Tokens, Scope Narrowing, and Audit Trails for Agent Access</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-credential-delegation/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-credential-delegation/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>AI Credential Delegation: Short-Lived Tokens, Scope Narrowing, and Audit Trails for Agent Access
Problem
AI agents need credentials to do useful work: database passwords, API keys, Kubernetes service...</summary>
  </entry>
  
  <entry>
    <title>Building an AI Governance Pipeline: Automated Checks from Training to Production</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-governance-pipeline/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-governance-pipeline/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Building an AI Governance Pipeline: Automated Checks from Training to Production
Problem
AI governance in most organisations is a manual process. A model is trained, someone writes a document, a...</summary>
  </entry>
  
  <entry>
    <title>AI Incident Reporting: Detection, Classification, and Response Procedures for AI System Failures</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-incident-reporting/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-incident-reporting/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>AI Incident Reporting: Detection, Classification, and Response Procedures for AI System Failures
Problem
Traditional incident response assumes failures are binary: the service is up or it is down, the...</summary>
  </entry>
  
  <entry>
    <title>AI Model Cards in Production: Documenting Capabilities, Limitations, and Security Properties</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-model-cards/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-model-cards/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>AI Model Cards in Production: Documenting Capabilities, Limitations, and Security Properties
Problem
Every production AI model has boundaries: input domains where it performs well, edge cases where it...</summary>
  </entry>
  
  <entry>
    <title>AI Supply Chain Attack Surface: Models, Datasets, and Inference Dependencies</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-supply-chain-attack-surface/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-supply-chain-attack-surface/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>AI Supply Chain Attack Surface: Models, Datasets, and Inference Dependencies
Problem
AI systems introduce a supply chain attack surface that traditional software security does not cover. The three new...</summary>
  </entry>
  
  <entry>
    <title>AI-Powered Vulnerability Discovery: What Automated Code Analysis Means for Your Patch Cycle</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-vulnerability-discovery/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-vulnerability-discovery/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>AI-Powered Vulnerability Discovery: What Automated Code Analysis Means for Your Patch Cycle
Problem
AI models can now discover exploitable vulnerabilities in source code faster than human researchers....</summary>
  </entry>
  
  <entry>
    <title>Algorithmic Auditing: Testing AI Systems for Bias, Fairness, and Safety Before Deployment</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/algorithmic-auditing/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/algorithmic-auditing/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Algorithmic Auditing: Testing AI Systems for Bias, Fairness, and Safety Before Deployment
Problem
AI systems make decisions that affect people: who gets approved for a loan, whose resume gets...</summary>
  </entry>
  
  <entry>
    <title>Auditing AI Actions at Scale: Building Tamper-Proof Logs for Non-Human Actors</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/auditing-ai-actions/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/auditing-ai-actions/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Auditing AI Actions at Scale: Building Tamper-Proof Logs for Non-Human Actors
Problem
AI agents operate at machine speed, generating 10-100x the audit data of human operators. A single agent making 50...</summary>
  </entry>
  
  <entry>
    <title>Detecting AI-Generated Attacks: Moving from Signatures to Behavioural Baselines</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/detecting-ai-attacks/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/detecting-ai-attacks/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Detecting AI-Generated Attacks: Moving from Signatures to Behavioural Baselines
Problem
Signature-based detection (WAF CRS rules, static Falco rules, antivirus signatures) matches “known bad.”...</summary>
  </entry>
  
  <entry>
    <title>EU AI Act Compliance for Infrastructure Teams: Risk Classification, Documentation, and Technical Controls</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/eu-ai-act-compliance/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/eu-ai-act-compliance/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>EU AI Act Compliance for Infrastructure Teams: Risk Classification, Documentation, and Technical Controls
Problem
The EU AI Act entered into force in August 2024, with enforcement timelines staggered...</summary>
  </entry>
  
  <entry>
    <title>LLM Jailbreak Defence: Detecting and Preventing System Prompt Bypasses in Production</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/llm-jailbreak-defence/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/llm-jailbreak-defence/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>LLM Jailbreak Defence: Detecting and Preventing System Prompt Bypasses in Production
Problem
LLM jailbreaks are inputs that cause a model to ignore its system prompt, safety training, or usage...</summary>
  </entry>
  
  <entry>
    <title>Securing MCP Servers: Authentication, Tool Sandboxing, and Input Validation for Model Context Protocol</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/mcp-server-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/mcp-server-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Securing MCP Servers: Authentication, Tool Sandboxing, and Input Validation for Model Context Protocol
Problem
The Model Context Protocol (MCP) gives AI agents structured access to tools: filesystem...</summary>
  </entry>
  
  <entry>
    <title>Membership Inference Defence: Preventing Attackers from Determining Training Data Inclusion</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/membership-inference-defence/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/membership-inference-defence/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Membership Inference Defence: Preventing Attackers from Determining Training Data Inclusion
Problem
Membership inference attacks determine whether a specific data record was used to train a model. An...</summary>
  </entry>
  
  <entry>
    <title>Model Extraction Prevention: Detecting and Blocking Model Stealing Through API Queries</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/model-extraction-prevention/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/model-extraction-prevention/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Model Extraction Prevention: Detecting and Blocking Model Stealing Through API Queries
Problem
Model extraction (model stealing) is an attack where an adversary queries a production ML API...</summary>
  </entry>
  
  <entry>
    <title>Securing AI Agents in Production: Tool-Use Boundaries, Credential Scoping, and Output Verification</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/securing-ai-agents/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/securing-ai-agents/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Securing AI Agents in Production: Tool-Use Boundaries, Credential Scoping, and Output Verification
Problem
AI agents are being deployed with production tool access: shell execution, kubectl, terraform...</summary>
  </entry>
  
  <entry>
    <title>Training Data Extraction Prevention: Stopping Models from Leaking Memorised Data</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/training-data-extraction/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/training-data-extraction/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Training Data Extraction Prevention: Stopping Models from Leaking Memorised Data
Problem
Large language models memorise portions of their training data. Given the right prompt, a model will reproduce...</summary>
  </entry>
  
  <entry>
    <title>Artifact Integrity Verification: Checksums, Signatures, and Transparency Logs</title>
    <link href="https://systemshardening.github.io/articles/cicd/artifact-integrity/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/artifact-integrity/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Artifact Integrity Verification: Checksums, Signatures, and Transparency Logs
Problem
Build artifacts pass through multiple stages between source code and production deployment. Source is compiled in...</summary>
  </entry>
  
  <entry>
    <title>Secret Management in CI/CD Pipelines: Vault, SOPS, and OIDC Federation</title>
    <link href="https://systemshardening.github.io/articles/cicd/cicd-secret-management/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/cicd-secret-management/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Secret Management in CI/CD Pipelines: Vault, SOPS, and OIDC Federation
Problem
Static credentials in CI/CD pipelines are the leading cause of secret sprawl. Teams store long-lived API keys, database...</summary>
  </entry>
  
  <entry>
    <title>Container Registry Security: Access Control, Vulnerability Scanning, and Garbage Collection</title>
    <link href="https://systemshardening.github.io/articles/cicd/container-registry-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/container-registry-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Container Registry Security: Access Control, Vulnerability Scanning, and Garbage Collection
Problem
Container registries store the most sensitive artifacts in your deployment pipeline. Every image...</summary>
  </entry>
  
  <entry>
    <title>Dependency Pinning and Lockfile Integrity: Preventing Supply Chain Attacks in CI</title>
    <link href="https://systemshardening.github.io/articles/cicd/dependency-pinning/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/dependency-pinning/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Dependency Pinning and Lockfile Integrity: Preventing Supply Chain Attacks in CI
Problem
Dependency confusion and typosquatting attacks exploit the gap between “I declared a dependency” and “I...</summary>
  </entry>
  
  <entry>
    <title>GitOps Security Model: Separation of Duties, Drift Detection, and Rollback Controls</title>
    <link href="https://systemshardening.github.io/articles/cicd/gitops-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/gitops-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>GitOps Security Model: Separation of Duties, Drift Detection, and Rollback Controls
Problem
GitOps centralizes deployment authority in Git repositories. Tools like ArgoCD and Flux watch Git...</summary>
  </entry>
  
  <entry>
    <title>Securing Helm Charts: Chart Signing, Value Injection, and Template Security</title>
    <link href="https://systemshardening.github.io/articles/cicd/helm-chart-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/helm-chart-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Securing Helm Charts: Chart Signing, Value Injection, and Template Security
Problem
Helm is the dominant package manager for Kubernetes, but most teams install charts without verifying provenance,...</summary>
  </entry>
  
  <entry>
    <title>Pipeline-as-Code Security: Preventing CI Configuration Tampering</title>
    <link href="https://systemshardening.github.io/articles/cicd/pipeline-config-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/pipeline-config-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Pipeline-as-Code Security: Preventing CI Configuration Tampering
Problem
CI/CD pipeline definitions live alongside application code in Git. Whoever can modify .github/workflows/, .gitlab-ci.yml, or...</summary>
  </entry>
  
  <entry>
    <title>Reproducible Builds for Container Images: Achieving Deterministic Output</title>
    <link href="https://systemshardening.github.io/articles/cicd/reproducible-builds/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/reproducible-builds/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Reproducible Builds for Container Images: Achieving Deterministic Output
Problem
Two builds from the same source code should produce the same container image. In practice, they almost never do....</summary>
  </entry>
  
  <entry>
    <title>Software Bill of Materials (SBOM) Generation and Consumption in CI/CD</title>
    <link href="https://systemshardening.github.io/articles/cicd/sbom/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/sbom/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Software Bill of Materials (SBOM) Generation and Consumption in CI/CD
Problem
SBOM generation is easy, run Syft, get a list of every package in your container image. SBOM consumption is hard: when a...</summary>
  </entry>
  
  <entry>
    <title>Securing CI/CD Runners: Isolation, Credential Scoping, and Ephemeral Environments</title>
    <link href="https://systemshardening.github.io/articles/cicd/securing-cicd-runners/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/securing-cicd-runners/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Securing CI/CD Runners: Isolation, Credential Scoping, and Ephemeral Environments
Problem
CI/CD runners are the most privileged, least monitored components in most infrastructure. A self-hosted runner...</summary>
  </entry>
  
  <entry>
    <title>Securing GitHub Actions: Permissions, Pinning, and Workflow Injection Prevention</title>
    <link href="https://systemshardening.github.io/articles/cicd/securing-github-actions/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/securing-github-actions/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Securing GitHub Actions: Permissions, Pinning, and Workflow Injection Prevention
Problem
GitHub Actions is the most widely used CI/CD platform, but its security model is scattered across dozens of...</summary>
  </entry>
  
  <entry>
    <title>SLSA Provenance for Container Images: From Build to Admission Control</title>
    <link href="https://systemshardening.github.io/articles/cicd/slsa-provenance/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/slsa-provenance/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>SLSA Provenance for Container Images: From Build to Admission Control
Problem
Without provenance, you cannot prove where a container image came from, what source code it was built from, or whether the...</summary>
  </entry>
  
  <entry>
    <title>Terraform Security: State File Protection, Provider Pinning, and Plan Review Automation</title>
    <link href="https://systemshardening.github.io/articles/cicd/terraform-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cicd/terraform-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cicd"/>
    <summary>Terraform Security: State File Protection, Provider Pinning, and Plan Review Automation
Problem
Terraform state files contain every secret, IP address, and configuration detail of your infrastructure...</summary>
  </entry>
  
  <entry>
    <title>Compliance-as-Code: Mapping CIS Benchmarks to Automated Checks with InSpec and Kube-bench</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/compliance-as-code/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/compliance-as-code/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Compliance-as-Code: Mapping CIS Benchmarks to Automated Checks with InSpec and Kube-bench
Problem
Manual compliance audits are point-in-time snapshots that are outdated before the report is written....</summary>
  </entry>
  
  <entry>
    <title>The Hardening Scorecard: Measuring and Tracking Security Posture</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/hardening-scorecard/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/hardening-scorecard/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>The Hardening Scorecard: Measuring and Tracking Security Posture
Problem
“Are we more secure than last month?” is a question most teams cannot answer. Security tools produce individual outputs:...</summary>
  </entry>
  
  <entry>
    <title>Security Hardening for Small Teams: Prioritising Controls When You Cannot Do Everything</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/hardening-small-teams/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/hardening-small-teams/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Security Hardening for Small Teams: Prioritising Controls When You Cannot Do Everything
Problem
A team of 1-5 engineers cannot implement 100 hardening controls simultaneously. Most hardening guides...</summary>
  </entry>
  
  <entry>
    <title>Incident Response Hardening Playbook: From Detection to Post-Mortem</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/incident-response-hardening-playbook/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/incident-response-hardening-playbook/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Incident Response Hardening Playbook: From Detection to Post-Mortem
Problem
During an active security incident, hardening is reactive: isolate the compromised system, contain the blast radius,...</summary>
  </entry>
  
  <entry>
    <title>Securing Message Queues in Production: Kafka, RabbitMQ, and NATS Hardening</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/message-queue-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/message-queue-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Securing Message Queues in Production: Kafka, RabbitMQ, and NATS Hardening
Problem
Message brokers carry some of the most sensitive data in any architecture, payment events, user actions, system...</summary>
  </entry>
  
  <entry>
    <title>Migrating from Self-Hosted Prometheus to Grafana Cloud: Preserving Dashboards, Alerts, and History</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/migrate-prometheus-grafana-cloud/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/migrate-prometheus-grafana-cloud/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Migrating from Self-Hosted Prometheus to Grafana Cloud: Preserving Dashboards, Alerts, and History
Problem
Self-hosted Prometheus consumes 500GB+ storage within 6 months for a 20-node Kubernetes...</summary>
  </entry>
  
  <entry>
    <title>Migrating from Self-Managed Kubernetes to a Managed Provider Without Losing Your Security Posture</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/migrate-to-managed-k8s/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/migrate-to-managed-k8s/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Migrating from Self-Managed Kubernetes to a Managed Provider Without Losing Your Security Posture
Problem
Self-managed Kubernetes clusters (kubeadm, k3s, kops) consume 8-16 hours per month of...</summary>
  </entry>
  
  <entry>
    <title>Multi-Cloud Hardening: Consistent Security Posture Across Providers</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/multi-cloud-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/multi-cloud-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Multi-Cloud Hardening: Consistent Security Posture Across Providers
Problem
Running infrastructure across multiple cloud providers means maintaining consistent security controls across fundamentally...</summary>
  </entry>
  
  <entry>
    <title>Hardening PostgreSQL for Production: Authentication, Encryption, Row-Level Security, and Audit Logging</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/postgresql-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/postgresql-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Hardening PostgreSQL for Production: Authentication, Encryption, Row-Level Security, and Audit Logging
Problem
PostgreSQL defaults prioritise developer convenience over security. A stock installation...</summary>
  </entry>
  
  <entry>
    <title>Hardening Redis in Production: Authentication, TLS, ACLs, and Command Restriction</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/redis-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/redis-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Hardening Redis in Production: Authentication, TLS, ACLs, and Command Restriction
Problem
Redis defaults prioritise developer convenience: no authentication, no TLS, all 200+ commands available, and...</summary>
  </entry>
  
  <entry>
    <title>Security Infrastructure Disaster Recovery: Vault, PKI, and SIEM Failover</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/security-infra-disaster-recovery/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/security-infra-disaster-recovery/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Security Infrastructure Disaster Recovery: Vault, PKI, and SIEM Failover
Problem
When your security infrastructure fails, you are flying blind. If Vault is down, applications cannot retrieve secrets...</summary>
  </entry>
  
  <entry>
    <title>Zero Trust Networking: Identity-Based Access Beyond Perimeter Security</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/zero-trust-networking/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/zero-trust-networking/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Zero Trust Networking: Identity-Based Access Beyond Perimeter Security
Problem
Perimeter security assumes the internal network is safe. It is not. A single compromised pod, a stolen VPN credential, or...</summary>
  </entry>
  
  <entry>
    <title>A/B Model Deployment Safety: Canary Rollouts, Traffic Splitting, and Automated Rollback for ML Models</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ab-deployment-safety/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ab-deployment-safety/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>A/B Model Deployment Safety: Canary Rollouts, Traffic Splitting, and Automated Rollback for ML Models
Problem
Deploying a new ML model version is not the same as deploying a new application version. A...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Admission Control: From PodSecurity Standards to Custom OPA/Kyverno Policies</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/kubernetes-admission-control/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/kubernetes-admission-control/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Admission Control: From PodSecurity Standards to Custom OPA/Kyverno Policies
Problem
Without admission control, any user with deployment permissions can run privileged containers, mount the...</summary>
  </entry>
  
  <entry>
    <title>AI API Key Management: Rotation, Scoping, and Abuse Detection</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-api-key-management/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-api-key-management/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>AI API Key Management: Rotation, Scoping, and Abuse Detection
Problem
AI services have turned API keys into direct spending controls. A leaked OpenAI or Anthropic key can generate thousands of dollars...</summary>
  </entry>
  
  <entry>
    <title>Building a Content Filtering Pipeline for LLM Applications: From Raw Input to Safe Output</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-content-filtering-pipeline/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-content-filtering-pipeline/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Building a Content Filtering Pipeline for LLM Applications: From Raw Input to Safe Output
Problem
A single content filter is not a pipeline. Most LLM deployments add one filter (usually on output) and...</summary>
  </entry>
  
  <entry>
    <title>AI Data Leakage Prevention: Input Filtering, Output Scanning, and Audit Trails</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-data-leakage-prevention/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-data-leakage-prevention/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>AI Data Leakage Prevention: Input Filtering, Output Scanning, and Audit Trails
Problem
AI systems leak data in ways traditional applications do not. A language model trained on customer data can...</summary>
  </entry>
  
  <entry>
    <title>Implementing AI Guardrails: Input Validation, Output Filtering, and Safety Classifiers in Production</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-guardrails-implementation/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-guardrails-implementation/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Implementing AI Guardrails: Input Validation, Output Filtering, and Safety Classifiers in Production
Problem
Deploying an LLM without guardrails is deploying an application where any user can make it...</summary>
  </entry>
  
  <entry>
    <title>AI Incident Forensics: Reconstructing What an AI System Did, Why, and What Data It Accessed</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-incident-forensics/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-incident-forensics/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>AI Incident Forensics: Reconstructing What an AI System Did, Why, and What Data It Accessed
Problem
When a traditional application causes an incident, you examine logs, traces, and database queries to...</summary>
  </entry>
  
  <entry>
    <title>AI Red Teaming Methodology: Structured Adversarial Testing for LLM Applications</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-red-teaming/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-red-teaming/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>AI Red Teaming Methodology: Structured Adversarial Testing for LLM Applications
Problem
Traditional security testing (penetration testing, vulnerability scanning) does not cover AI-specific attack...</summary>
  </entry>
  
  <entry>
    <title>Network Segmentation for AI Training Infrastructure</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ai-training-network-segmentation/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ai-training-network-segmentation/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Network Segmentation for AI Training Infrastructure
Problem
AI training clusters frequently share networks with production services. A training job that can reach the production database is one...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes API Server Hardening: Flags, Authentication, and Audit Logging</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/api-server-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/api-server-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes API Server Hardening: Flags, Authentication, and Audit Logging
Problem
The API server is the front door to the Kubernetes cluster. Every kubectl command, every controller reconciliation,...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Audit Log Analysis: What to Log, How to Query, and What to Alert On</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/audit-log-analysis/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/audit-log-analysis/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Audit Log Analysis: What to Log, How to Query, and What to Alert On
Problem
Kubernetes audit logs record every request to the API server: who made the request, what they asked for, and...</summary>
  </entry>
  
  <entry>
    <title>etcd Encryption at Rest: Configuration, Key Rotation, and Performance Impact</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/etcd-encryption/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/etcd-encryption/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>etcd Encryption at Rest: Configuration, Key Rotation, and Performance Impact
Problem
Kubernetes Secrets are stored in etcd as base64-encoded plaintext. Base64 is an encoding, not encryption. Anyone...</summary>
  </entry>
  
  <entry>
    <title>Runtime Security with Falco on Kubernetes: Rules, Tuning, and Response Automation</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/falco-runtime-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/falco-runtime-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Runtime Security with Falco on Kubernetes: Rules, Tuning, and Response Automation
Problem
Prevention-only security has a binary failure mode: either the control holds and the attacker is stopped, or...</summary>
  </entry>
  
  <entry>
    <title>Securing Fine-Tuning Pipelines: Data Isolation, Checkpoint Integrity, and Access Control</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/fine-tuning-pipeline-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/fine-tuning-pipeline-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Securing Fine-Tuning Pipelines: Data Isolation, Checkpoint Integrity, and Access Control
Problem
Fine-tuning pipelines are high-value targets. They consume expensive GPU hours, process proprietary...</summary>
  </entry>
  
  <entry>
    <title>GPU Cost and Security Monitoring: Detecting Abuse and Optimising Spend</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/gpu-cost-security-monitoring/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/gpu-cost-security-monitoring/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>GPU Cost and Security Monitoring: Detecting Abuse and Optimising Spend
Problem
GPU compute costs between $2 and $30 per hour per device. A single unauthorised cryptocurrency mining pod running on an...</summary>
  </entry>
  
  <entry>
    <title>GPU Workload Isolation: MIG, MPS, and vGPU Security Boundaries</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/gpu-isolation/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/gpu-isolation/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>GPU Workload Isolation: MIG, MPS, and vGPU Security Boundaries
Problem
Multi-tenant GPU sharing without isolation risks data leakage between workloads through shared GPU memory. NVIDIA offers three...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Image Policy Enforcement: Cosign, Notation, and Admission Webhooks</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/image-policy-enforcement/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/image-policy-enforcement/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Image Policy Enforcement: Cosign, Notation, and Admission Webhooks
Problem
Without image policy enforcement, any container image from any registry can run in a Kubernetes cluster. A...</summary>
  </entry>
  
  <entry>
    <title>Hardening Model Inference Endpoints: Authentication, Rate Limiting, and Input Validation</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/inference-endpoint-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/inference-endpoint-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Hardening Model Inference Endpoints: Authentication, Rate Limiting, and Input Validation
Problem
Model inference endpoints are GPU-backed and expensive, $2-30 per hour per GPU. A single unprotected...</summary>
  </entry>
  
  <entry>
    <title>Hardening Kubernetes Ingress Controllers: NGINX, Traefik, and Envoy Compared</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/ingress-controller-comparison/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/ingress-controller-comparison/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Hardening Kubernetes Ingress Controllers: NGINX, Traefik, and Envoy Compared
Problem
The ingress controller is the internet-facing entry point to a Kubernetes cluster. Every external HTTP request...</summary>
  </entry>
  
  <entry>
    <title>Jupyter Notebook Security: Authentication, Isolation, and Data Protection</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/jupyter-notebook-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/jupyter-notebook-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Jupyter Notebook Security: Authentication, Isolation, and Data Protection
Problem
JupyterHub is a code execution platform. Every notebook cell is arbitrary code running with whatever permissions the...</summary>
  </entry>
  
  <entry>
    <title>Kubelet Security Configuration: Authentication, Authorization, and Read-Only Port</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/kubelet-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/kubelet-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubelet Security Configuration: Authentication, Authorization, and Read-Only Port
Problem
The kubelet runs on every node in the cluster with root-level access to the container runtime, all pod...</summary>
  </entry>
  
  <entry>
    <title>LLM Observability in Production: Monitoring Latency, Token Usage, Safety Violations, and Drift</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/llm-observability-production/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/llm-observability-production/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>LLM Observability in Production: Monitoring Latency, Token Usage, Safety Violations, and Drift
Problem
Traditional application monitoring (CPU, memory, HTTP status codes, latency) tells you nothing...</summary>
  </entry>
  
  <entry>
    <title>Observability for LLM Applications: Token Usage, Latency Anomalies, and Output Classification</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/llm-observability/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/llm-observability/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Observability for LLM Applications: Token Usage, Latency Anomalies, and Output Classification
Problem
LLM-powered applications have unique observability requirements that standard APM tools do not...</summary>
  </entry>
  
  <entry>
    <title>Securing Model Artifact Pipelines: From Training to Serving</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/model-artifact-pipelines/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/model-artifact-pipelines/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Securing Model Artifact Pipelines: From Training to Serving
Problem
Model files are opaque binaries ranging from 1GB to over 1TB. You cannot code-review a set of weights. An attacker who tampers with...</summary>
  </entry>
  
  <entry>
    <title>Model Registry Access Control: Versioning, Signing, and Promotion Gates</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/model-registry-access-control/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/model-registry-access-control/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Model Registry Access Control: Versioning, Signing, and Promotion Gates
Problem
Model registries are the bridge between training and production. A model pushed to the production registry gets served...</summary>
  </entry>
  
  <entry>
    <title>Hardening Model Serving Frameworks: TorchServe, Triton, and vLLM Security Configuration</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/model-serving-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/model-serving-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Hardening Model Serving Frameworks: TorchServe, Triton, and vLLM Security Configuration
Problem
Model serving frameworks ship with defaults optimised for development: management APIs exposed on all...</summary>
  </entry>
  
  <entry>
    <title>Multi-Tenancy Hardening in Kubernetes: Namespace Isolation, Resource Quotas, and Network Boundaries</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/multi-tenancy-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/multi-tenancy-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Multi-Tenancy Hardening in Kubernetes: Namespace Isolation, Resource Quotas, and Network Boundaries
Problem
Kubernetes namespaces provide logical separation, not security isolation. By default, pods...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Network Policies That Actually Work: From Default Deny to Microsegmentation</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/kubernetes-network-policies/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/kubernetes-network-policies/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Network Policies That Actually Work: From Default Deny to Microsegmentation
Problem
By default, every pod in a Kubernetes cluster can communicate with every other pod across all namespaces....</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Node Hardening: From OS Configuration to kubelet Lockdown</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/node-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/node-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Node Hardening: From OS Configuration to kubelet Lockdown
Problem
A Kubernetes node is a Linux machine running kubelet, a container runtime, and your workloads. If the node is compromised,...</summary>
  </entry>
  
  <entry>
    <title>Pod Security Context Deep Dive: runAsNonRoot, readOnlyRootFilesystem, and Capabilities</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/pod-security-context/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/pod-security-context/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Pod Security Context Deep Dive: runAsNonRoot, readOnlyRootFilesystem, and Capabilities
Problem
Kubernetes SecurityContext has over 15 configurable fields, but most teams only set runAsNonRoot: true...</summary>
  </entry>
  
  <entry>
    <title>Prompt Injection Defence in Production: Input Validation, Output Filtering, and Monitoring</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/prompt-injection/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/prompt-injection/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Prompt Injection Defence in Production: Input Validation, Output Filtering, and Monitoring
Problem
Prompt injection is the SQL injection of AI systems, the most common and most damaging attack class...</summary>
  </entry>
  
  <entry>
    <title>Securing RAG Pipelines: Vector Database Access Control, Document Poisoning, and Retrieval Filtering</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/rag-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/rag-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Securing RAG Pipelines: Vector Database Access Control, Document Poisoning, and Retrieval Filtering
Problem
Retrieval-Augmented Generation (RAG) adds a knowledge base to LLM applications, the model...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes RBAC Design Patterns: Least Privilege Without Paralysing Developers</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/rbac-design-patterns/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/rbac-design-patterns/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes RBAC Design Patterns: Least Privilege Without Paralysing Developers
Problem
RBAC sprawl in multi-team Kubernetes clusters grows past 100 role bindings within months. The core tension is...</summary>
  </entry>
  
  <entry>
    <title>RLHF Data Protection: Securing Human Feedback Loops, Preference Data, and Reward Models</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/rlhf-data-protection/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/rlhf-data-protection/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>RLHF Data Protection: Securing Human Feedback Loops, Preference Data, and Reward Models
Problem
Reinforcement Learning from Human Feedback (RLHF) pipelines introduce unique security surfaces that...</summary>
  </entry>
  
  <entry>
    <title>Hardening the Kubernetes Scheduler: Topology Constraints and Security-Aware Placement</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/scheduler-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/scheduler-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Hardening the Kubernetes Scheduler: Topology Constraints and Security-Aware Placement
Problem
The Kubernetes scheduler places pods on nodes based on resource availability and basic constraints. By...</summary>
  </entry>
  
  <entry>
    <title>Seccomp Profiles for Production Workloads: Writing, Testing, and Deploying Custom Profiles</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/seccomp-profiles/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/seccomp-profiles/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Seccomp Profiles for Production Workloads: Writing, Testing, and Deploying Custom Profiles
Problem
The default container runtime allows approximately 300 syscalls. A compromised container can use...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Secrets Management: External Secrets Operator, Vault, and Sealed Secrets</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/secrets-management/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/secrets-management/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Secrets Management: External Secrets Operator, Vault, and Sealed Secrets
Problem
Kubernetes Secrets are base64-encoded, not encrypted. Running kubectl get secret my-secret -o...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Service Account Token Security: Bound Tokens, Projected Volumes, and OIDC</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/service-account-tokens/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/service-account-tokens/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Kubernetes Service Account Token Security: Bound Tokens, Projected Volumes, and OIDC
Problem
Every pod in Kubernetes receives a service account token by default. In clusters running older...</summary>
  </entry>
  
  <entry>
    <title>Vector Database Security: Access Control, Embedding Protection, and Query Isolation</title>
    <link href="https://systemshardening.github.io/articles/kubernetes/vector-database-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/kubernetes/vector-database-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="kubernetes"/>
    <summary>Vector Database Security: Access Control, Embedding Protection, and Query Isolation
Problem
Vector databases are the backbone of RAG (Retrieval-Augmented Generation) systems. They store document...</summary>
  </entry>
  
  <entry>
    <title>Automated OS Hardening with Ansible: A Production-Ready Playbook Collection</title>
    <link href="https://systemshardening.github.io/articles/linux/ansible-os-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/ansible-os-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Automated OS Hardening with Ansible: A Production-Ready Playbook Collection
Problem
Manual OS hardening does not scale. The sysctl settings from Article #1, the systemd overrides from Article #2, the...</summary>
  </entry>
  
  <entry>
    <title>AppArmor Profiles for Custom Applications: From Complain Mode to Enforce</title>
    <link href="https://systemshardening.github.io/articles/linux/apparmor/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/apparmor/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>AppArmor Profiles for Custom Applications: From Complain Mode to Enforce
Problem
AppArmor is the default mandatory access control system on Ubuntu and Debian. It restricts applications to specific...</summary>
  </entry>
  
  <entry>
    <title>Linux Audit Framework Deep Dive: auditd Rules, auditctl, and ausearch for Security Monitoring</title>
    <link href="https://systemshardening.github.io/articles/linux/auditd-deep-dive/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/auditd-deep-dive/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Linux Audit Framework Deep Dive: auditd Rules, auditctl, and ausearch for Security Monitoring
Problem
auditd is the kernel-level audit system on Linux, it captures syscalls, file access, user...</summary>
  </entry>
  
  <entry>
    <title>Cgroup v2 Resource Isolation: Preventing Resource Exhaustion Attacks on Shared Systems</title>
    <link href="https://systemshardening.github.io/articles/linux/cgroup-resource-isolation/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/cgroup-resource-isolation/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Cgroup v2 Resource Isolation: Preventing Resource Exhaustion Attacks on Shared Systems
Problem
Without resource limits, a single service, container, or compromised process can consume all available...</summary>
  </entry>
  
  <entry>
    <title>Hardening Container Base Images: From ubuntu:latest to a Minimal, Signed, Scannable Image</title>
    <link href="https://systemshardening.github.io/articles/linux/container-base-images/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/container-base-images/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Hardening Container Base Images: From ubuntu:latest to a Minimal, Signed, Scannable Image
Problem
ubuntu:latest ships with over 200 packages. At any given point, a vulnerability scan with Trivy will...</summary>
  </entry>
  
  <entry>
    <title>Hardening DNS Resolution on Linux: systemd-resolved, Unbound, and DNS-over-TLS</title>
    <link href="https://systemshardening.github.io/articles/linux/dns-resolution-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/dns-resolution-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Hardening DNS Resolution on Linux: systemd-resolved, Unbound, and DNS-over-TLS
Problem
Most Linux hosts resolve DNS in plaintext over UDP port 53. On a stock Ubuntu 24.04 or RHEL 9 system:

Every DNS...</summary>
  </entry>
  
  <entry>
    <title>Filesystem Mount Options That Matter: noexec, nosuid, nodev, and Beyond</title>
    <link href="https://systemshardening.github.io/articles/linux/filesystem-mount-options/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/filesystem-mount-options/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Filesystem Mount Options That Matter: noexec, nosuid, nodev, and Beyond
Problem
Default Linux installations mount most filesystems with permissive options. On a stock Ubuntu 24.04 or RHEL 9...</summary>
  </entry>
  
  <entry>
    <title>Hardening GRUB and the Boot Process: Secure Boot, Boot Passwords, and Tamper Detection</title>
    <link href="https://systemshardening.github.io/articles/linux/grub-boot-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/grub-boot-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Hardening GRUB and the Boot Process: Secure Boot, Boot Passwords, and Tamper Detection
Problem
Without boot security, an attacker with physical access or console access (BMC, IPMI, cloud serial...</summary>
  </entry>
  
  <entry>
    <title>Kernel Module Hardening: Blacklisting, Signing, and Preventing Runtime Loading</title>
    <link href="https://systemshardening.github.io/articles/linux/kernel-module-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/kernel-module-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Kernel Module Hardening: Blacklisting, Signing, and Preventing Runtime Loading
Problem
The Linux kernel loads modules on demand. When a process requests a capability that is not built into the running...</summary>
  </entry>
  
  <entry>
    <title>Linux Firewall Hardening with nftables: Replacing iptables in Production</title>
    <link href="https://systemshardening.github.io/articles/linux/nftables/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/nftables/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Linux Firewall Hardening with nftables: Replacing iptables in Production
Problem
iptables is deprecated. nftables is the replacement in every modern Linux kernel (5.0+). Most teams either still use...</summary>
  </entry>
  
  <entry>
    <title>PAM Configuration Hardening: Password Policies, Login Controls, and MFA Integration</title>
    <link href="https://systemshardening.github.io/articles/linux/pam-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/pam-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>PAM Configuration Hardening: Password Policies, Login Controls, and MFA Integration
Problem
PAM (Pluggable Authentication Modules) is the authentication foundation on Linux. Default PAM stacks allow...</summary>
  </entry>
  
  <entry>
    <title>Hardening /proc and /sys: Restricting Kernel Information Disclosure</title>
    <link href="https://systemshardening.github.io/articles/linux/proc-sys-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/proc-sys-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Hardening /proc and /sys: Restricting Kernel Information Disclosure
Problem
/proc and /sys are virtual filesystems that expose kernel internals, hardware details, and process information to userspace....</summary>
  </entry>
  
  <entry>
    <title>SELinux in Production: Writing Custom Policies Without Losing Your Mind</title>
    <link href="https://systemshardening.github.io/articles/linux/selinux/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/selinux/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>SELinux in Production: Writing Custom Policies Without Losing Your Mind
Problem
SELinux is the most powerful mandatory access control system on Linux, and the most disabled. The majority of...</summary>
  </entry>
  
  <entry>
    <title>SSH Hardening Beyond the Basics: Certificate Authentication, Jump Hosts, and Logging</title>
    <link href="https://systemshardening.github.io/articles/linux/ssh-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/ssh-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>SSH Hardening Beyond the Basics: Certificate Authentication, Jump Hosts, and Logging
Problem
Every SSH hardening guide starts and ends with the same three changes: disable root login, require...</summary>
  </entry>
  
  <entry>
    <title>systemd Unit Hardening: ProtectSystem, PrivateTmp, and the Full Sandbox Toolkit</title>
    <link href="https://systemshardening.github.io/articles/linux/systemd-unit-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/systemd-unit-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>systemd Unit Hardening: ProtectSystem, PrivateTmp, and the Full Sandbox Toolkit
Problem
systemd provides over 30 security-relevant directives for sandboxing services, yet the vast majority of unit...</summary>
  </entry>
  
  <entry>
    <title>Time Synchronization Security: Hardening NTP and Chrony Against Manipulation</title>
    <link href="https://systemshardening.github.io/articles/linux/time-sync-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/time-sync-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Time Synchronization Security: Hardening NTP and Chrony Against Manipulation
Problem
Accurate time is a silent dependency of almost every security control on a Linux system. When an attacker can...</summary>
  </entry>
  
  <entry>
    <title>API Gateway Security: Authentication, Authorization, and Request Validation</title>
    <link href="https://systemshardening.github.io/articles/network/api-gateway-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/api-gateway-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>API Gateway Security: Authentication, Authorization, and Request Validation
Problem
Without a centralized API gateway, authentication and authorization logic is duplicated in every backend service....</summary>
  </entry>
  
  <entry>
    <title>gRPC Security in Production: TLS, Authentication, and Interceptor-Based Access Control</title>
    <link href="https://systemshardening.github.io/articles/network/grpc-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/grpc-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>gRPC Security in Production: TLS, Authentication, and Interceptor-Based Access Control
Problem
gRPC services in production frequently run with security configurations that would never be acceptable...</summary>
  </entry>
  
  <entry>
    <title>HTTP Security Headers in Production: CSP, HSTS, and Permissions-Policy Without Breaking Your App</title>
    <link href="https://systemshardening.github.io/articles/network/http-security-headers/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/http-security-headers/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>HTTP Security Headers in Production: CSP, HSTS, and Permissions-Policy Without Breaking Your App
Problem
Security headers are free, server-side controls that instruct browsers to restrict dangerous...</summary>
  </entry>
  
  <entry>
    <title>Protecting Internal APIs: Network Segmentation, Authentication, and Access Logging</title>
    <link href="https://systemshardening.github.io/articles/network/internal-api-protection/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/internal-api-protection/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>Protecting Internal APIs: Network Segmentation, Authentication, and Access Logging
Problem
“It’s internal” is the most dangerous phrase in infrastructure security. Internal APIs sit behind the...</summary>
  </entry>
  
  <entry>
    <title>IPv6 Security in Production: Hardening Dual-Stack Deployments</title>
    <link href="https://systemshardening.github.io/articles/network/ipv6-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/ipv6-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>IPv6 Security in Production: Hardening Dual-Stack Deployments
Problem
Most production environments run dual-stack (IPv4 and IPv6) whether the team intended it or not. Linux enables IPv6 by default....</summary>
  </entry>
  
  <entry>
    <title>Load Balancer Security: Health Check Abuse, Connection Draining, and TLS Termination</title>
    <link href="https://systemshardening.github.io/articles/network/load-balancer-security/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/load-balancer-security/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>Load Balancer Security: Health Check Abuse, Connection Draining, and TLS Termination
Problem
Load balancers sit at the most critical point in your infrastructure: every external request passes through...</summary>
  </entry>
  
  <entry>
    <title>mTLS for Service-to-Service Communication: Istio, Linkerd, and DIY with cert-manager</title>
    <link href="https://systemshardening.github.io/articles/network/mtls-service-mesh/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/mtls-service-mesh/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>mTLS for Service-to-Service Communication: Istio, Linkerd, and DIY with cert-manager
Problem
Internal service-to-service traffic in most Kubernetes clusters is plaintext. Once an attacker compromises...</summary>
  </entry>
  
  <entry>
    <title>Rate Limiting at the Ingress Layer: NGINX, Envoy, and Cloud Load Balancers Compared</title>
    <link href="https://systemshardening.github.io/articles/network/rate-limiting-ingress/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/rate-limiting-ingress/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>Rate Limiting at the Ingress Layer: NGINX, Envoy, and Cloud Load Balancers Compared
Problem
Rate limiting is the first line of defence against abuse, credential stuffing, API scraping, and...</summary>
  </entry>
  
  <entry>
    <title>Preventing HTTP Request Smuggling: Configuration for NGINX, HAProxy, and Envoy</title>
    <link href="https://systemshardening.github.io/articles/network/request-smuggling-prevention/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/request-smuggling-prevention/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>Preventing HTTP Request Smuggling: Configuration for NGINX, HAProxy, and Envoy
Problem
HTTP request smuggling exploits inconsistencies in how chained HTTP processors (reverse proxies, load balancers,...</summary>
  </entry>
  
  <entry>
    <title>TLS 1.3 Configuration for NGINX and Envoy: Ciphers, Certificates, and OCSP Stapling</title>
    <link href="https://systemshardening.github.io/articles/network/tls-nginx-envoy/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/tls-nginx-envoy/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>TLS 1.3 Configuration for NGINX and Envoy: Ciphers, Certificates, and OCSP Stapling
Problem
TLS misconfiguration remains one of the most common security findings in production infrastructure. Servers...</summary>
  </entry>
  
  <entry>
    <title>WAF Rule Tuning That Does Not Break Legitimate Traffic: ModSecurity and Coraza in Practice</title>
    <link href="https://systemshardening.github.io/articles/network/waf-rule-tuning/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/waf-rule-tuning/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>WAF Rule Tuning That Does Not Break Legitimate Traffic: ModSecurity and Coraza in Practice
Problem
A self-managed Web Application Firewall (WAF) with default rules generates dozens of false positives...</summary>
  </entry>
  
  <entry>
    <title>Hardening WebSocket Connections: Authentication, Rate Limiting, and Origin Validation</title>
    <link href="https://systemshardening.github.io/articles/network/websocket-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/websocket-hardening/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>Hardening WebSocket Connections: Authentication, Rate Limiting, and Origin Validation
Problem
WebSocket connections start as an HTTP upgrade request and then persist as a long-lived, full-duplex...</summary>
  </entry>
  
  <entry>
    <title>Building a Security Audit Log Pipeline That Scales: auditd to Elasticsearch</title>
    <link href="https://systemshardening.github.io/articles/observability/audit-log-pipeline/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/audit-log-pipeline/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Building a Security Audit Log Pipeline That Scales: auditd to Elasticsearch
Problem
Linux audit logs are the ground truth for security investigation. auditd captures kernel-level events that no...</summary>
  </entry>
  
  <entry>
    <title>Centralized Logging Architecture for Security: Fluentd, Vector, and Loki Compared</title>
    <link href="https://systemshardening.github.io/articles/observability/centralized-logging/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/centralized-logging/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Centralized Logging Architecture for Security: Fluentd, Vector, and Loki Compared
Problem
Self-managed log infrastructure is one of the highest operational costs for small-to-medium teams. The choice...</summary>
  </entry>
  
  <entry>
    <title>Certificate Expiry Monitoring: Automated Detection Across TLS, mTLS, and Signing Certificates</title>
    <link href="https://systemshardening.github.io/articles/observability/certificate-expiry-monitoring/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/certificate-expiry-monitoring/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Certificate Expiry Monitoring: Automated Detection Across TLS, mTLS, and Signing Certificates
Problem
Certificate expiry is the most common cause of preventable production outages. When a TLS...</summary>
  </entry>
  
  <entry>
    <title>Container Escape Detection: Runtime Signals, Kernel Indicators, and Response Automation</title>
    <link href="https://systemshardening.github.io/articles/observability/container-escape-detection/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/container-escape-detection/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Container Escape Detection: Runtime Signals, Kernel Indicators, and Response Automation
Problem
Container escapes are the highest-impact attack in Kubernetes. A single compromised pod that escapes its...</summary>
  </entry>
  
  <entry>
    <title>Crypto Mining Detection: CPU Patterns, Network Signatures, and Automated Response</title>
    <link href="https://systemshardening.github.io/articles/observability/crypto-mining-detection/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/crypto-mining-detection/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Crypto Mining Detection: CPU Patterns, Network Signatures, and Automated Response
Problem
Cryptojacking is the most common post-compromise activity in Kubernetes environments. It is profitable for...</summary>
  </entry>
  
  <entry>
    <title>Building Detection Rules That Don&#39;t Cry Wolf: Alert Design for Security Events</title>
    <link href="https://systemshardening.github.io/articles/observability/detection-rules/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/detection-rules/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Building Detection Rules That Don’t Cry Wolf: Alert Design for Security Events
Problem
Security detection that generates 50+ false positives per day is worse than no detection, it trains the team to...</summary>
  </entry>
  
  <entry>
    <title>eBPF-Based Security Monitoring: Tetragon for Process, Network, and File Observability</title>
    <link href="https://systemshardening.github.io/articles/observability/ebpf-tetragon/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/ebpf-tetragon/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>eBPF-Based Security Monitoring: Tetragon for Process, Network, and File Observability
Problem
Falco monitors syscalls for runtime detection. Tetragon (CNCF/Cilium) goes deeper: it monitors process...</summary>
  </entry>
  
  <entry>
    <title>Incident Response Runbooks: Structured Procedures for Common Security Events</title>
    <link href="https://systemshardening.github.io/articles/observability/incident-response-runbooks/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/incident-response-runbooks/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Incident Response Runbooks: Structured Procedures for Common Security Events
Problem
Detection without documented response is security theatre. Most teams have alerts that fire at 3 AM, but no written...</summary>
  </entry>
  
  <entry>
    <title>Kubernetes Audit Log Pipeline Design: From API Server to SIEM</title>
    <link href="https://systemshardening.github.io/articles/observability/k8s-audit-log-design/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/k8s-audit-log-design/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Kubernetes Audit Log Pipeline Design: From API Server to SIEM
Problem
Kubernetes audit logging at the RequestResponse level captures everything: every API call, every request body, every response...</summary>
  </entry>
  
  <entry>
    <title>Lateral Movement Detection: Network Patterns, Authentication Anomalies, and Alert Correlation</title>
    <link href="https://systemshardening.github.io/articles/observability/lateral-movement-detection/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/lateral-movement-detection/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Lateral Movement Detection: Network Patterns, Authentication Anomalies, and Alert Correlation
Problem
East-west traffic inside a Kubernetes cluster is a blind spot for most security teams. Once an...</summary>
  </entry>
  
  <entry>
    <title>Log Integrity and Tamper Detection: Ensuring Your Audit Trail Is Trustworthy</title>
    <link href="https://systemshardening.github.io/articles/observability/log-integrity/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/log-integrity/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Log Integrity and Tamper Detection: Ensuring Your Audit Trail Is Trustworthy
Problem
An attacker’s first post-compromise action is covering their tracks. On a Linux host, this means deleting...</summary>
  </entry>
  
  <entry>
    <title>OpenTelemetry for Security: Distributed Tracing of Authentication and Authorization Flows</title>
    <link href="https://systemshardening.github.io/articles/observability/otel-security-tracing/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/otel-security-tracing/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>OpenTelemetry for Security: Distributed Tracing of Authentication and Authorization Flows
Problem
Distributed tracing is standard for performance debugging, but almost no team uses it for security....</summary>
  </entry>
  
  <entry>
    <title>Security-Relevant Prometheus Metrics: What to Collect, How to Alert, When to Page</title>
    <link href="https://systemshardening.github.io/articles/observability/prometheus-security-metrics/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/prometheus-security-metrics/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Security-Relevant Prometheus Metrics: What to Collect, How to Alert, When to Page
Problem
Prometheus is deployed in most Kubernetes environments for infrastructure monitoring (CPU, memory, disk,...</summary>
  </entry>
  
  <entry>
    <title>Security Dashboards That Engineers Actually Use: Grafana Designs for Hardening Verification</title>
    <link href="https://systemshardening.github.io/articles/observability/security-dashboards/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/observability/security-dashboards/</id>
    <published>2026-04-22T00:00:00.000Z</published>
    <updated>2026-04-22T00:00:00.000Z</updated>
    <category term="observability"/>
    <summary>Security Dashboards That Engineers Actually Use: Grafana Designs for Hardening Verification
Problem
Most security dashboards are vanity metrics, total alerts this month, pie charts of vulnerability...</summary>
  </entry>
  
  <entry>
    <title>How AI Is Compressing the Attacker Timeline: What Defenders Need to Change Now</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/ai-compressing-attacker-timeline/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/ai-compressing-attacker-timeline/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>How AI Is Compressing the Attacker Timeline: What Defenders Need to Change Now
Problem
The gap between vulnerability disclosure and weaponised exploit used to be measured in weeks. In 2020, the median...</summary>
  </entry>
  
  <entry>
    <title>Claude, Mythos, and the Non-Human Infrastructure Consumer: Writing Hardening Guides for AI Agents</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/claude-non-human-consumers/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/claude-non-human-consumers/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>Claude, Mythos, and the Non-Human Infrastructure Consumer: Writing Hardening Guides for AI Agents
Problem
AI models are no longer just tools that engineers use to write code. They are becoming direct...</summary>
  </entry>
  
  <entry>
    <title>The Threat Model Has Changed: Rewriting Security Assumptions for an AI-Augmented World</title>
    <link href="https://systemshardening.github.io/articles/ai-landscape/threat-model-ai-augmented/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/ai-landscape/threat-model-ai-augmented/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="ai-landscape"/>
    <summary>The Threat Model Has Changed: Rewriting Security Assumptions for an AI-Augmented World
Problem
Every security architecture is built on assumptions about what attackers can do, how fast they can do it,...</summary>
  </entry>
  
  <entry>
    <title>Hardening a Complete Kubernetes Platform: From Cluster Bootstrap to Production-Ready</title>
    <link href="https://systemshardening.github.io/articles/cross-cutting/complete-kubernetes-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/cross-cutting/complete-kubernetes-hardening/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="cross-cutting"/>
    <summary>Hardening a Complete Kubernetes Platform: From Cluster Bootstrap to Production-Ready
Problem
A fresh Kubernetes cluster (whether bootstrapped with kubeadm, k3s, or provisioned by a managed provider)...</summary>
  </entry>
  
  <entry>
    <title>Hardening the Linux Kernel Attack Surface with sysctl and Boot Parameters</title>
    <link href="https://systemshardening.github.io/articles/linux/sysctl-kernel-hardening/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/linux/sysctl-kernel-hardening/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="linux"/>
    <summary>Hardening the Linux Kernel Attack Surface with sysctl and Boot Parameters
Problem
Linux kernels ship with defaults optimised for compatibility, not security. On a stock Ubuntu 24.04 or RHEL 9...</summary>
  </entry>
  
  <entry>
    <title>DNS Security for Production Infrastructure: DNSSEC, CAA Records, and Internal Resolution</title>
    <link href="https://systemshardening.github.io/articles/network/dns-security-dnssec-caa/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/dns-security-dnssec-caa/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>DNS Security for Production Infrastructure: DNSSEC, CAA Records, and Internal Resolution
Problem
DNS is the most critical single point of failure in any infrastructure, and the least hardened layer...</summary>
  </entry>
  
  <entry>
    <title>NGINX Hardening Beyond TLS: Request Filtering, Buffer Limits, and Connection Controls</title>
    <link href="https://systemshardening.github.io/articles/network/nginx-hardening-beyond-tls/" rel="alternate" type="text/html"/>
    <id>https://systemshardening.github.io/articles/network/nginx-hardening-beyond-tls/</id>
    <published>2026-04-21T00:00:00.000Z</published>
    <updated>2026-04-21T00:00:00.000Z</updated>
    <category term="network"/>
    <summary>NGINX Hardening Beyond TLS: Request Filtering, Buffer Limits, and Connection Controls
Problem
Most NGINX hardening guides stop at TLS configuration, cipher suites, certificate setup, HSTS. In...</summary>
  </entry>
  
</feed>
