This specification is maintained by the AgentRules Working Group. Have enhancements or want to claim maintainership?Submit Specification →
securitycritical PriorityID: ebpf-tetragon-namespace-execution-guardrail

Deterministic Kernel-Level Tetragon Process & Namespace Socket Boundary Enforcement

Enforces synchronous kernel-level process and namespace boundary invariants using Cilium Tetragon TracingPolicies inside hardened distroless container environments. Mandates in-kernel sigkill termination on unlisted binary execve invocations and restricts AF_INET/AF_PACKET socket creation within targeted container namespaces to eliminate zero-day escapes and lateral movement.

Prohibited Anti-Pattern: Relying on Asynchronous User-Space Audit Logs Instead of In-Kernel Synchronous Sigkill Policy Enforcement

Export Ready-to-Drop Configuration

Select format below to copy code or download file directly.

---
description: Deterministic Kernel-Level Tetragon Process & Namespace Socket Boundary Enforcement - Enforces synchronous kernel-level process and namespace boundary invariants using Cilium Tetragon TracingPolicies inside hardened distroless container environments. Mandates in-kernel sigkill termination on unlisted binary execve invocations and restricts AF_INET/AF_PACKET socket creation within targeted container namespaces to eliminate zero-day escapes and lateral movement.
globs: deploy/tetragon/**/*.yaml, k8s/**/*.yaml, infrastructure/security/**/*.yaml, policies/tetragon/**/*.yaml
alwaysApply: true
verified_by: "agentrules.org"
license: "CC-BY-4.0"
source: "https://agentrules.org/rules/ebpf-tetragon-namespace-execution-guardrail"
---

# Deterministic Kernel-Level Tetragon Process & Namespace Socket Boundary Enforcement

> **Severity**: CRITICAL | **Category**: security
> **Anti-Pattern Warning**: Relying on Asynchronous User-Space Audit Logs Instead of In-Kernel Synchronous Sigkill Policy Enforcement

## System Constraints
You are a Principal Security Architect specializing in Linux kernel eBPF instrumentation and Cilium Tetragon. Your invariant mandate is to design, validate, and enforce synchronous kernel-level TracingPolicies that intercept sys_execve and sys_socket calls via kprobes/tracepoints. You strictly forbid non-blocking audit-only configurations in production distroless pods and enforce synchronous Sigkill actions when unauthorized binaries run or socket boundaries are breached.

## Strict Guidelines
- Engineers MUST ALWAYS set 'action: Sigkill' on kernel-level execution violations targeting distroless pods rather than relying on asynchronous audit logs.
- Engineers MUST NOT allow shell binaries (/bin/sh, /bin/bash, /busybox) or dynamic interpreters inside distroless workload security profiles without strict kprobe path filtering and immediate termination.
- TracingPolicies MUST explicitly filter on 'podSelector' matching workload namespaces and labels to prevent global host performance degradation.
- TracingPolicies MUST bind to 'sys_enter_socket' with precise domain (AF_INET/AF_INET6/AF_PACKET) and type filtering to block unauthorized raw and egress network socket initialization directly at the kernel boundary.
- Components NEVER execute child processes outside of the predetermined entrypoint binary digest in production distroless environments.

## Bad vs Good Implementations
### Tetragon TracingPolicy: Distroless Binary Execution Whitelist and Socket Enforcement

#### Bad Antipattern (AI Common Hallucination)
> **Why it fails**: The policy merely logs (action: Post) unauthorized executions under /bin/ without intercepting or killing the offending process in-kernel, allowing attacker shell payloads to execute and establish C2 sockets before detection.
```yaml
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: audit-distroless-exec
spec:
  kprobes:
    - call: "sys_execve"
      syscall: true
      args:
        - index: 0
          type: "string"
      selectors:
        - matchArgs:
            - index: 0
              operator: "Prefix"
              values:
                - "/bin/"
          # Flaw: Purely logging to stdout without synchronous kernel-level enforcement
          # Allows attacker to execute payload to completion before human/SIEM detection
          matchActions:
            - action: Post
```

#### Production Standard (Correct)
> **Standard**: The TracingPolicy restricts execution strictly to the designated application entrypoint (/app/service-binary) and immediately terminates unauthorized executions or raw socket creation (AF_PACKET) at the eBPF layer using Sigkill before user-space execution completes.
```yaml
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: enforce-distroless-boundaries
  namespace: kube-system
spec:
  podSelector:
    matchLabels:
      app.kubernetes.io/runtime: distroless
  kprobes:
    - call: "sys_execve"
      syscall: true
      args:
        - index: 0
          type: "string"
      selectors:
        - matchArgs:
            - index: 0
              operator: "NotIn"
              values:
                - "/app/service-binary"
          matchActions:
            - action: Sigkill
    - call: "__sys_socket"
      syscall: false
      args:
        - index: 0
          type: "int"
        - index: 1
          type: "int"
      selectors:
        - matchArgs:
            - index: 0
              operator: "Equal"
              values:
                - "17" # AF_PACKET raw socket boundary breach
          matchActions:
            - action: Sigkill
```

Recommended Agent Skills (askills.dev)

Ready-to-use executable skill functions tailored to this stack.

Architectural Specification & Invariant Rationale

Architectural Invariant Design: Deterministic Kernel-Level Tetragon Process & Namespace Socket Boundary Enforcement

Deterministic Kernel-Level Tetragon Process & Namespace Socket Boundary Enforcement defines an industrial-grade behavioral standard for security engineering. Enforces synchronous kernel-level process and namespace boundary invariants using Cilium Tetragon TracingPolicies inside hardened distroless container environments. Mandates in-kernel sigkill termination on unlisted binary execve invocations and restricts AF_INET/AF_PACKET socket creation within targeted container namespaces to eliminate zero-day escapes and lateral movement. Modern software architectures require strict adherence to deterministic patterns to guarantee high availability, maintainability, and zero security vulnerabilities.

Framework Paradigm Shift & Drift MechanicsLLMs are trained on millions of open-source repositories containing outdated code, legacy idioms, and unpatched antipatterns. When coding assistants generate implementations for this stack, they default to common statistical tokens: Relying on Asynchronous User-Space Audit Logs Instead of In-Kernel Synchronous Sigkill Policy Enforcement Without an explicit system instruction file, developers spend hours debugging silent failures.
Failure Modes & Production Blast Radius

Hazard Analysis: What Breaks Without This Rule

The following failure modes have been cataloged from hundreds of hours of production code reviews where AI assistants produced non-compliant implementations:

Failure ModeAI Symptom (The Anti-Pattern)SeverityProduction Impact & Remedy
AI Hallucination & Deprecation DriftRelying on Asynchronous User-Space Audit Logs Instead of In-Kernel Synchronous Sigkill Policy EnforcementCritical
Violating this industrial standard introduces regression bugs, security risks, and unexpected runtime failures in production.
Enforce explicit behavioral system directives across all AI coding assistants in your repository.
Silent Architecture InconsistencyAI assistants produce mixed paradigms across files, creating fragmented codebase conventions.Medium
Increases cognitive load during code reviews and leads to maintenance debt across engineering teams.
Pin project conventions in .cursor/rules, CLAUDE.md, and AGENTS.md so all team agents follow identical guardrails.
Architectural Directives in Detail

Step-by-Step Production Directives

Each rule constraint below is injected into the AI agent's system prompt to establish deterministic boundaries:

1

Engineers MUST ALWAYS set 'action

Engineers MUST ALWAYS set 'action: Sigkill' on kernel-level execution violations targeting distroless pods rather than relying on asynchronous audit logs.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
2

Engineers MUST NOT allow shell binaries (/bin/sh, /bin/bash, /busybox) or dynamic interpreters inside distroless workload security profiles without strict kprobe path filtering and immediate termination.

Engineers MUST NOT allow shell binaries (/bin/sh, /bin/bash, /busybox) or dynamic interpreters inside distroless workload security profiles without strict kprobe path filtering and immediate termination.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
3

TracingPolicies MUST explicitly filter on 'podSelector' matching workload namespaces and labels to prevent global host performance degradation.

TracingPolicies MUST explicitly filter on 'podSelector' matching workload namespaces and labels to prevent global host performance degradation.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
4

TracingPolicies MUST bind to 'sys_enter_socket' with precise domain (AF_INET/AF_INET6/AF_PACKET) and type filtering to block unauthorized raw and egress network socket initialization directly at the kernel boundary.

TracingPolicies MUST bind to 'sys_enter_socket' with precise domain (AF_INET/AF_INET6/AF_PACKET) and type filtering to block unauthorized raw and egress network socket initialization directly at the kernel boundary.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
5

Components NEVER execute child processes outside of the predetermined entrypoint binary digest in production distroless environments.

Components NEVER execute child processes outside of the predetermined entrypoint binary digest in production distroless environments.

Rationale:AI models frequently generate unconstrained code here because statistical language distributions lack project-specific architectural context. Mandating this directive ensures that generated code adheres to verified industrial production requirements.
Enforcement:Integrated into the Agent Pack rule file. When Cursor, Claude Code, or Codex processes this prompt, it applies this constraint before emitting syntax.
Technical Questions & Answers

Frequently Asked Technical Questions

Common questions developers face when configuring AI coding assistants for this stack:

Q:Why is Deterministic Kernel-Level Tetragon Process & Namespace Socket Boundary Enforcement critical for AI coding assistants?

Enforces synchronous kernel-level process and namespace boundary invariants using Cilium Tetragon TracingPolicies inside hardened distroless container environments. Mandates in-kernel sigkill termination on unlisted binary execve invocations and restricts AF_INET/AF_PACKET socket creation within targeted container namespaces to eliminate zero-day escapes and lateral movement. Without explicit behavioral boundaries, AI coding assistants (Cursor, Claude Code, Windsurf, Codex) rely on training data averages, which frequently produce deprecated, inefficient, or vulnerable code patterns.

Q:How does adopting this rule prevent AI hallucinations?

This rule explicitly declares what the AI must avoid (Relying on Asynchronous User-Space Audit Logs Instead of In-Kernel Synchronous Sigkill Policy Enforcement) and prescribes verified positive examples. Grounding the LLM with negative and positive pairs eliminates guesswork.

Q:Which AI coding environments are supported?

This specification is multi-platform compatible: Cursor (.cursor/rules/*.mdc & .cursorrules), Anthropic Claude Code (CLAUDE.md), Windsurf (.windsurfrules), Codex / Cline (AGENTS.md), and GitHub Copilot (.github/copilot-instructions.md).

Q:Can I combine this rule with other technology stacks?

Yes. Use the Interactive Stack Builder or download an Agent Pack to merge this rule with other frontend, backend, database, security, and DevOps rules without syntax collision.

Open Specification · CC BY 4.0·Free for Personal, Team & Commercial In-Repo Use

Citation & Open Source Attribution Guidelines

This specification is licensed under Creative Commons Attribution 4.0 International (CC BY 4.0). You are completely free to adapt and share this rule in your workspace. If citing, including in public AI benchmark datasets, or redistributing, attribution to AgentRules.org is required.

1 Rule in Stack

Deterministic