DEV Community

daniel jeong
daniel jeong

Posted on • Originally published at manoit.co.kr

Forrester Wave CNAPP 2026 Deep Dive — Runtime-First Cloud Security and Open-Source CNAPP Stack Guide

Forrester Wave CNAPP 2026 Deep Dive — Runtime-First Cloud Security and Building an Open-Source CNAPP Stack

In February 2026, Forrester published The Forrester Wave™: Cloud Native Application Protection Solutions, Q1 2026, evaluating 14 vendors across the CNAPP market. The defining message: runtime is no longer optional — it's the foundation. Static scanning and configuration checks alone cannot address the dynamic threats in cloud-native environments. Real-time runtime telemetry has become the central axis for security prioritization.

This article provides a deep analysis of the Forrester Wave results and a practical guide to building a production-grade runtime-first CNAPP stack using only CNCF open-source projects — without commercial licenses.

Forrester Wave CNAPP Q1 2026 — The Three Leaders

Forrester designated Wiz, Sysdig, and Qualys as Leaders. Here's what differentiates each:

Vendor Key Strength Runtime Strategy AI Integration
Wiz Highest Current Offering score; perfect scores in 10 of 12 criteria including CSPM and IaC Security Agentless + runtime sensor hybrid; Attack Path Analysis for exploitability prioritization Agentic AI Copilot (perfect score), native AI-SPM
Sysdig Runtime-first philosophy; above-average customer feedback; built on open-source Falco Kernel-level syscall analysis (Falco); unified posture + vulnerability + runtime telemetry Agentic AI analyst with 76% MTTR reduction
Qualys Top pricing transparency; 20+ years of vulnerability management data Unified agent-based runtime protection with automatic workload-vulnerability correlation Agentic AI Copilot (perfect score)

All three leaders share a strategic direction: runtime-context-based priority decisions. Among thousands of CVEs, only those actually exploitable in production — exposed to external networks and reachable through attack paths — are surfaced, dramatically reducing alert fatigue.

What Is the Runtime-First Paradigm?

Traditional cloud security focused on Shift-Left: scanning images, validating IaC, and generating SBOMs in CI/CD pipelines. This approach remains valuable but has a fundamental limitation: what's safe at build time isn't guaranteed to be safe at runtime.

Runtime-first inverts this model. It observes running workloads at the kernel level in real time, using that runtime context to determine security priorities. When a container spawns an unexpected process, accesses sensitive files, or initiates anomalous network connections, the system detects and blocks it immediately.

Aspect Shift-Left (Build Time) Runtime-First (Production)
Detection Point CI/CD pipeline Running production workloads
Data Source Image manifests, SBOM, IaC syscalls, network flows, file access, process trees
Priority Basis CVSS score + known exploits Actual reachability + runtime exposure + attack path
Alert Noise Thousands of CVE alerts → fatigue Only exploitable items → 95% noise reduction
Core Technology Trivy, Grype, Checkov, Cosign Falco, KubeArmor, Tetragon, eBPF

Open-Source Runtime-First CNAPP Stack Architecture

While commercial CNAPP solutions demand significant licensing costs, combining CNCF open-source projects can build a production-grade CNAPP stack. The architecture consists of four layers:

CNAPP Runtime-First Architecture — Open Source Security Stack

1. Falco — CNCF Graduated Runtime Threat Detection Engine

Falco is a CNCF Graduated project that captures kernel-level syscalls via eBPF or kernel modules, combining them with container/Kubernetes metadata for real-time threat detection. Version 0.43.0 (January 2026) expanded the plugin architecture to support AWS CloudTrail, GitHub Audit Logs, and Okta events. It's also officially available as an Amazon EKS Add-on.

# Falco DaemonSet — Helm values.yaml
driver:
  kind: ebpf
  ebpf:
    leastPrivileged: true

falcosidekick:
  enabled: true
  config:
    slack:
      webhookurl: "https://hooks.slack.com/services/..."
      minimumpriority: "warning"
    prometheus:
      enabled: true

customRules:
  custom-rules.yaml: |-
    - rule: Crypto Mining Detection
      desc: Detect cryptocurrency mining processes in containers
      condition: >
        spawned_process and container and
        (proc.name in (xmrig, minerd, cpuminer, cgminer) or
         proc.cmdline contains "stratum+tcp")
      output: >
        Crypto mining process detected
        (user=%user.name container=%container.name
         image=%container.image.repository
         command=%proc.cmdline namespace=%k8s.ns.name)
      priority: CRITICAL
      tags: [cryptomining, runtime]

    - rule: Sensitive Mount Detected
      desc: Host sensitive path mounted in container
      condition: >
        container and evt.type = open and
        (fd.name startswith /etc/shadow or
         fd.name startswith /etc/kubernetes/pki)
      output: >
        Sensitive file access detected
        (file=%fd.name user=%user.name
         container=%container.name pod=%k8s.pod.name)
      priority: WARNING
      tags: [filesystem, sensitive-access]
Enter fullscreen mode Exit fullscreen mode

2. KubeArmor — LSM/eBPF Runtime Enforcement

While Falco specializes in detection, KubeArmor focuses on enforcement. This CNCF Sandbox project uses Linux Security Modules (AppArmor, BPF-LSM, SELinux) to proactively block process execution, file access, and network connections at the pod/container level — all managed declaratively via Kubernetes CRDs without host-level configuration changes.

# KubeArmor Security Policy — Workload Hardening
apiVersion: security.kubearmor.com/v1
kind: KubeArmorPolicy
metadata:
  name: block-package-manager
  namespace: production
spec:
  selector:
    matchLabels:
      app: api-server
  process:
    matchPaths:
      - path: /usr/bin/apt
      - path: /usr/bin/apt-get
      - path: /usr/bin/yum
      - path: /usr/bin/pip
      - path: /usr/bin/curl
      - path: /usr/bin/wget
    action: Block
  file:
    matchDirectories:
      - dir: /etc/
        readOnly: true
        recursive: true
      - dir: /root/.ssh/
        readOnly: true
    action: Block
  network:
    matchProtocols:
      - protocol: raw               # Block raw sockets (port scan prevention)
    action: Block
Enter fullscreen mode Exit fullscreen mode

3. Tetragon — Cilium eBPF Kernel-Level Observability

Tetragon is Cilium's runtime security component. Unlike Falco, it uses TracingPolicy CRDs to directly specify kernel function hooking points, enabling highly granular custom detection scenarios.

# Tetragon TracingPolicy — Privilege Escalation Detection
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: privilege-escalation-detect
spec:
  kprobes:
    - call: "security_bprm_check"
      syscall: false
      args:
        - index: 0
          type: "linux_binprm"
      selectors:
        - matchBinaries:
            - operator: "In"
              values:
                - "/usr/bin/sudo"
                - "/usr/bin/su"
                - "/usr/bin/pkexec"
          matchNamespaces:
            - namespace: Pid
              operator: NotIn
              values:
                - "host_ns"
          matchActions:
            - action: Sigkill
            - action: NotifyEnforcer
Enter fullscreen mode Exit fullscreen mode

4. Kubescape — Unified Posture Management (KSPM)

Kubescape evaluates Kubernetes cluster security posture against NSA/CISA hardening guides, CIS Benchmarks, and MITRE ATT&CK frameworks. Combined with runtime context, it filters static scan findings to only those active in production, eliminating 95%+ noise.

# Kubescape cluster security scans
# 1. NSA/CISA framework comprehensive scan
kubescape scan framework nsa \
  --enable-host-scan \
  --format json \
  --output nsa-report.json

# 2. CIS Kubernetes Benchmark
kubescape scan framework cis-v1.23-t1.0.1 \
  --exclude-namespaces kube-system

# 3. CI/CD integration — fail below threshold
kubescape scan framework mitre \
  --compliance-threshold 80 \
  --fail-threshold critical

# 4. Runtime vulnerability scan
kubescape scan image \
  --runtime-context \
  --severity-threshold high
Enter fullscreen mode Exit fullscreen mode

Production Deployment — Unified Helm Stack

#!/bin/bash
set -euo pipefail
NAMESPACE="security-runtime"
kubectl create namespace ${NAMESPACE} --dry-run=client -o yaml | kubectl apply -f -

# 1. Falco — Runtime Threat Detection
helm repo add falcosecurity https://falcosecurity.github.io/charts
helm upgrade --install falco falcosecurity/falco \
  --namespace ${NAMESPACE} \
  --set driver.kind=ebpf \
  --set falcosidekick.enabled=true \
  --set falcosidekick.config.prometheus.enabled=true \
  --wait

# 2. KubeArmor — Runtime Enforcement
helm repo add kubearmor https://kubearmor.github.io/charts
helm upgrade --install kubearmor kubearmor/kubearmor \
  --namespace ${NAMESPACE} \
  --set kubearmor.defaultPosture.file=audit \
  --set kubearmor.defaultPosture.network=audit \
  --wait

# 3. Tetragon — eBPF Kernel Observability
helm repo add cilium https://helm.cilium.io
helm upgrade --install tetragon cilium/tetragon \
  --namespace ${NAMESPACE} \
  --set tetragon.enableProcessCred=true \
  --set tetragon.enableProcessNs=true \
  --wait

# 4. Kubescape — Posture Management
helm repo add kubescape https://kubescape.github.io/helm-charts
helm upgrade --install kubescape kubescape/kubescape-operator \
  --namespace ${NAMESPACE} \
  --set capabilities.continuousScan=enable \
  --set capabilities.vulnerabilityScan=enable \
  --set capabilities.runtimeDetection=enable \
  --wait

echo "CNAPP Runtime Stack deployed to namespace: ${NAMESPACE}"
Enter fullscreen mode Exit fullscreen mode

Tool Role Matrix and Selection Guide

Capability Falco KubeArmor Tetragon Kubescape
CNCF Status Graduated Sandbox Cilium sub-project Sandbox
Threat Detection
Runtime Enforcement
Posture Management
Network Policy
Cloud Audit
Technology Base eBPF/kmod + plugins LSM + eBPF eBPF kprobe/tracepoint K8s API + OPA

Phased adoption recommendation: Start with Falco (detection) + Kubescape (posture) for visibility, then add KubeArmor in audit mode to validate false positives, and finally integrate Tetragon + Cilium network policies for complete runtime protection.

Real-World Scenario: CVE-2026-1580 Ingress-NGINX RCE Response

CVE-2026-1580, disclosed in February 2026, enables remote code execution through NGINX configuration injection via the auth-method annotation in Ingress-NGINX Controller. In default installations, the controller has access to all cluster-wide Secrets, making successful exploitation catastrophic. A runtime-first CNAPP stack defends against this in multiple layers:

  1. Kubescape detects vulnerable controller versions during continuous scanning
  2. Kyverno admission policy blocks malicious annotation values at deploy time
  3. Falco custom rules detect unexpected process spawning inside ingress-nginx containers
  4. KubeArmor policies harden the controller workload, blocking writes outside expected paths

Conclusion — 2026 CNAPP Strategy Roadmap

As Forrester Wave Q1 2026 clearly demonstrates, the CNAPP market is converging on runtime-first. Static scanning alone cannot address dynamic threats in cloud-native environments. Real-time runtime telemetry has become the foundation for security decision-making.

This shift isn't limited to commercial solutions. CNCF open-source projects like Falco, KubeArmor, Tetragon, and Kubescape have reached production-grade maturity. When properly combined, they can build a runtime security posture comparable to commercial CNAPP platforms.

The key is phased adoption: start with detection and visibility, validate in audit mode, then gradually transition to enforcement. Hasty blocking policies can cause service outages — collect sufficient runtime data before tightening policies.


This article was written with the assistance of AI (Claude Opus 4.6). Technical accuracy was cross-verified against official documentation. | © 2026 ManoIT


Originally published at ManoIT Tech Blog.

Top comments (0)