Platform Compatibility¶
CloudTaser's default agent requires an active BPF LSM and permission to run its
node agent. A compiled CONFIG_BPF_LSM=y is insufficient if bpf is absent from
/sys/kernel/security/lsm. Kernel capability, workload admission policy, and the
agent's actual readiness are separate checks.
AKS requires a verified node configuration. Assessed stock Ubuntu and Azure
Linux defaults omit bpf, so the default agent is expected to refuse
(assessed, not run). Actual enforcement/refusal needs live evidence. The
dated Azure Linux running-node record
reports an active BPF LSM and conflicts with the vendor default. This page does
not resolve that conflict or qualify a current AKS deployment.
Process-memory-access enforcement: BPF LSM matrix¶
The configuration audit is dated 2026-10-24, with a 2026-10-29 live COS test, and covers x86_64. It distinguishes live GKE measurements from vendor configuration inspection. A vendor config shows the kernel's compiled defaults; a boot-command-line override can change the active LSM list. It is not a live deployment qualification.
| Provider / node OS | Kernel examined | BPF LSM evidence | Kprobe override | Secret memory | Consequence |
|---|---|---|---|---|---|
| GKE Standard, COS | 6.12.105+, measured; 6.6 / 6.12 / 6.18 vendor configs | Active BPF LSM measured; vendor configs include bpf |
Disabled | Enabled | Tier 1 via lsm+fmod_ret, Ready with default strict settings on the measured node; qualify other images/releases |
| GKE Standard, Ubuntu 24.04.5 | 6.8.0-1062-gke, measured | Absent from active LSM list, although built | Enabled | Enabled | Refused with default requireLSM: true |
| GKE Autopilot | COS | COS config evidence above | Disabled | Enabled | Unsupported for protected workloads: agent blocked by default; no CloudTaser allowlist qualification. Without a Ready agent the gate refuses workloads; no wrapper-only mode qualified |
| EKS Fargate | Not qualified | Required node agent cannot run | Not available | Not qualified | Unsupported for protected workloads; default gate refuses workloads; no wrapper-only mode qualified |
| EKS AL2023 | 6.12.111-136.204 / 6.18.54-121.166 | Official RPM configs include bpf in CONFIG_LSM |
Enabled | Enabled | Tier 1 + LSM capability; confirm active node stack and agent vectors |
| EKS Bottlerocket | 6.12 / 6.18 kernel-kit configs | Vendor configs include bpf in CONFIG_LSM |
Enabled | Enabled | Tier 1 + LSM capability; confirm active node stack and agent vectors |
| AKS Azure Linux 3 | Vendor 3.0 kernel 6.6 config | CONFIG_BPF_LSM=y, but default CONFIG_LSM excludes bpf |
Disabled | Enabled | Expected to refuse (assessed, not run) if the running LSM list omits bpf; verify the dated-record conflict on the actual node |
| AKS Ubuntu 24.04 / 22.04 | 6.8-azure / 5.15-azure in configuration assessment | Assessment reports bpf absent; no live AKS qualification in this audit |
Not verified in this audit | 6.8 built; 5.15 requires checking enablement | Expected to refuse (assessed, not run) without active BPF LSM; actual enforcement/refusal needs live evidence |
| OpenShift / ROSA | RHEL 9 5.14 / RHCOS 10 6.12 in configuration assessment | Assessment reports bpf enabled; no live OpenShift qualification in this audit |
Assessment reports disabled | 5.14 requires checking enablement | Tier 2 candidate; verify exact node kernel, required-vector policy and privileged SCC |
COS, AL2023, Bottlerocket and Azure Linux rows have the pinned vendor sources listed below. The AKS Ubuntu and OpenShift rows retain the configuration assessment's scope explicitly; they are not measured deployment guarantees. Self-managed k3s/RKE2, Talos, and other distributions need the same running-node checks. The container runtime name does not establish kernel support.
Measured GKE COS result¶
On 29 October 2026, the EU GKE Standard COS node (6.12.105+, N2D SEV-SNP)
ran the following recorded release cohort and reported:
chart: 1.0.352
agent: v0.13.164
/status: tier=1, kernel_tier=1, enforcement_mode=lsm+fmod_ret
lsm_active=true, lsm_count=25, kprobes_active=false, override_available=false
/readyz: HTTP 200, ready=true, enforcement_profile=strict
accepted_gaps={}, unaccepted_gaps={}
The chart's default requireLSM=true and effective
failClosedOnEnforcementGap=true were retained. fmod_ret supplies synchronous
denial where this kernel lacks kprobe override; absence of kprobe override does
not make this deployment Tier 2. This is an observed agent/readiness result for
that cohort, not qualification of every COS image or every workload. Node-root
tamper controls still reported incomplete coverage and audit-only strict BPF
load policy; a Ready agent does not remove that boundary.
Measured GKE Ubuntu result¶
The hosted demo-lab node ran GKE 1.35.8-gke.1439001, UBUNTU_CONTAINERD
(Ubuntu 24.04.5), kernel 6.8.0-1062-gke, containerd 2.2.7, and runc 1.2.8.
The owner-authorized node inspection recorded:
/sys/kernel/security/lsm: lockdown,capability,landlock,yama,apparmor
CONFIG_BPF_LSM=y
CONFIG_LSM="landlock,lockdown,yama,integrity,apparmor"
CONFIG_BPF_KPROBE_OVERRIDE=y
CONFIG_SECRETMEM=y
lockdown: integrity
The boot command line had no lsm= override. The default agent refuses this
node because BPF LSM is not active. Neither the Ubuntu label, confidential-node
hardware, nor a compiled BPF LSM changes that result. A CI guest whose command
line was changed to include bpf does not qualify the stock GKE image.
Synchronous-blocking eBPF security: per-distro matrix¶
| Mode | Required kernel capabilities | What the mode establishes |
|---|---|---|
| Tier 1 + LSM | Active BPF LSM plus effective synchronous paths through LSM, fmod_ret or kprobe override |
Synchronous paths for the configured vectors; verify actual attachments, self-tests and status |
| Tier 2 | Active BPF LSM, with required secondary vectors lacking an effective synchronous path | Covered procfs/ptrace paths remain protected; inspect the deployed agent's per-vector states and remaining detect-only paths |
| Kprobe-only, explicitly reduced | Kprobe override without active BPF LSM | Raw-path matching has symlink/bind-mount alias limitations; this is not the default supported posture |
A detect-and-kill response can follow disclosure; it does not prove a read was
prevented. The agent's current vector contract is authoritative for the deployed
binary. In particular, a Tier 2 result does not promise readiness
under a policy requiring every vector to deny synchronously. The default
failClosedOnEnforcementGap policy can keep readiness false for required gaps.
Do not silently relax that policy to make a platform table row pass.
requireLSM: false is not a general compatibility fix. Some shipped enforcing
objects independently require the resolved BPF-LSM procfs gate. An explicit
reduced-mode configuration must satisfy its exact agent contract and cannot be
presented as equivalent protection.
Root resistance has a boundary
Node-root protection is tamper-evident and fail-closed, not absolute. Root
with permitted module/BPF loading, kernel replacement, /proc/kcore access,
or the ability to remove pins can act outside covered read APIs. Confidential
computing addresses the external hypervisor, not arbitrary guest-kernel code.
See Security Model.
Protection score by platform¶
A numerical score is not a deployment qualification. An image can have
CONFIG_BPF_LSM=y and a high set of compiled capabilities while the active LSM
stack still makes the default agent refuse startup. Confirm the runtime checks
below before using the Protection Score Reference
to compare additional controls.
Check your own nodes¶
Run these read-only checks through your approved node-access procedure:
cat /sys/kernel/security/lsm
uname -r
cat /proc/cmdline
grep -E 'CONFIG_(BPF_LSM|LSM|BPF_KPROBE_OVERRIDE|SECRETMEM)=' /boot/config-$(uname -r)
If the config is exposed only through /proc/config.gz, inspect that instead.
A missing config file is missing evidence, not an enabled feature. Confirm
bpf in the active LSM list, inspect the agent's startup/refusal diagnostics,
and verify the required vector states and readiness on the exact released
binary. Exec probes have a separate
runtime-bootstrap limitation.
Managed node repair, scaling and upgrades can replace the image and invalidate local boot changes. This page does not recommend a privileged GRUB-edit/reboot workaround for managed nodes.
References¶
- BPF LSM kernel documentation.
- GKE Autopilot privileged workload admission: privileged workloads require applicable allowlists; eligibility is separate from COS kernel capability.
- Ubuntu CONFIG_LSM change discussion: inspect the actual released node image rather than assuming a newer Ubuntu change reached an older cloud kernel.
- COS cos-6.6 pinned x86 config.
- COS cos-6.12 pinned x86 config.
- COS cos-6.18 pinned x86 config.
- Bottlerocket 6.12 pinned vendor config.
- Bottlerocket 6.18 pinned vendor config.
- Azure Linux 3.0 pinned vendor config.
- AL2023 6.12.111-136.204.amzn2023 official x86_64 RPM: its
lib/modules/6.12.111-136.204.amzn2023.x86_64/configwas inspected without installation; RPM SHA25639a56a653a40e76638f1c0654e46990e92391592d2d38a0a80e5353ca1f18702. - AL2023 6.18.54-121.166.amzn2023 official x86_64 RPM: its
lib/modules/6.18.54-121.166.amzn2023.x86_64/configwas inspected without installation; RPM SHA2562b36452261d2b35fa443b00ab765c4f184035167fadcec99bf9138556fa8d654.