土法炼钢 · 系统与基础设施

Tetragon / eBPF 运行时安全:从进程血缘到 TracingPolicy

文章导航

分类入口
kubernetessecurity
标签入口
#tetragon#ebpf#runtime-security#tracingpolicy#enforcement#falco#process-exec#v1.7.0

目录

Cilium / eBPF 数据面内核 已把东西向包路径钉到 identity 与 map;可观测性 · 网络观测linux/ebpf-security 对照过 Tetragon 与 Falco。中间仍缺一层:一次安全事件如何经进程血缘与 hook、TracingPolicy 选择器如何在内核过滤、Override/SIGKILL 各自停在哪一步、导出过滤为何与 tetra 所见不一致,以及相对 Falco / auditd / 仅 CNP+Hubble 何时不该上 Tetragon。

本系列回答:Tetragon 运行时安全里延迟、丢失与误阻断落在哪一层,何时内核策略的税不值得付。

写:

不写:Helm 百科、verifier/JIT 重讲、Cilium 东西向重讲、MITRE 规则库全书、未实测 CPU% 排行。对照综述见 observability/15;eBPF VM 见 ebpf/;东西向数据面见 cilium/

系列状态:01–16 已发布(2026-08-18)。 规划见 PLAN.md。机制结论钉源码 tag v1.7.0,不以 tetragon.io/docs/ live 站点冒充该版本。无真实 Tetragon 节点则不粘贴伪造 tetra getevents / JSON 输出。

版本锚定:Tetragon v1.7.0(源码 tag v1.7.0,2026-04-29)。与 Cilium 数据面版本正交;第三方升版须显式标注。spec.nodeSelector 与 domain sharding 晚于该 tag,不作为本系列能力。

适合谁看

与已有系列的分工

维度 cilium/ / observability/15 本系列
定位 东西向 CNI / 工具对照 运行时安全事件与强制执行路径
深度 identity→map;产品勾选 TracingPolicy→hook→导出/阻断、排障轴
对照 Hubble flow、Falco 口号 显式排除树;不重写 CNP/Hubble

读法:只要「Tetragon 大概能杀进程」→ observability/15 足够;要「加载路径撞名、Override 拦不住副作用、导出与 gRPC 不一致」→ 本系列 01 → 02 → 06 → 07 → 10 → 13。

一、这个领域最值得关注的 5 个问题

  1. 一次安全事件从 hook 到导出,丢失落在哪一层? → 第 1–5、7、11–13 篇。
  2. exec_id / 进程树相对 /proc 重建消除了什么? → 第 2、8、13 篇。
  3. 为何 TracingPolicy 已滤,tetra 仍可能看见「不该出现」的事件? → 第 4、6–7 篇。
  4. Override 与 SIGKILL 各自保证什么;TOCTOU 边界在哪? → 第 10、13 篇。
  5. 何时选 Tetragon,而非 Falco / auditd / 仅 CNP+Hubble? → 第 14–16 篇。

二、篇目依赖关系与推荐阅读路径

flowchart TD
  overview["01 Overview"] --> proc["02 Process Model"]
  proc --> hooks["03 Sensors Hooks"]
  hooks --> export["04 Event Export"]
  export --> agent["05 Agent Lifecycle"]
  agent --> tp["06 TracingPolicy"]
  tp --> sel["07 Selectors"]
  sel --> k8s["08 K8s Identity"]
  k8s --> faces["09 File Net Cap"]
  faces --> enf["10 Enforcement"]
  enf --> thr["11 Throttling"]
  thr --> ops["12 Ops SIEM"]
  ops --> trouble["13 Troubleshoot"]
  trouble --> vs["14 vs Alternatives"]
  vs --> rth["15 Runtime Hooks"]
  rth --> select["16 Selection"]
  overview --> select
路径 篇目 适合
必读核心 1 → 2 → 6 → 7 → 10 → 13 快速建立坐标系
事件与导出 3 → 4 → 11 → 12 管道与丢失归因
对照选型 1 → 14 → 16 路径选型
完整通读 1 → … → 16 系统掌握

三、目录与每篇价值点

第一部分:模型与事件路径(01–05)

  1. 运行时安全全景
    • 相对 cilium / observability / Falco 的缺口;坐标系与 16 篇路线。
  2. 进程模型
    • exec_id、血缘、K8s/容器富化、in_init_tree
  3. Sensor 与 Hook
    • 进程生命周期传感器;kprobe / tracepoint / uprobe / LSM / fentry(v1.7.0)。
  4. 事件导出路径
    • JSON、gRPC、tetra;export / field / redaction 边界。
  5. Agent 生命周期
    • BTF/CO-RE、DaemonSet / 主机安装、三条策略加载路径(kubectl / gRPC / 静态文件)。

第二部分:策略、观测面与强制执行(06–11)

  1. TracingPolicy
    • CRD、加载/卸载、collectionKey{name, namespace};domain sharding 不作 v1.7.0 能力。
  2. 选择器与内核过滤
    • 选择器语义;动作挂载点。
  3. K8s 身份感知策略
    • TracingPolicyNamespaced、pod/container selector、hostSelector(v1.7.0);不含 nodeSelector
  4. 文件 / 网络 / 能力观测面
    • 典型 hook 模式与失败表象。
  5. 强制执行
    • Override vs Signal;enforcement mode;TOCTOU。
  6. 节流与观测税
    • 事件节流、环缓冲压力、误杀面。

第三部分:运维、对照与收束(12–16)

  1. 运维与导出工程
    • metrics、日志轮转、SIEM 接线边界。
  2. 排障坐标系
    • 无事件、策略不生效、误阻断、导出缺口。
  3. 对照替代路径
    • Falco、auditd、Cilium CNP/Hubble、seccomp。
  4. Runtime Hooks 与容器边界
    • 运行时钩子相对纯内核 hook 的分工。
  5. 选型收束与开放问题
    • 排除树;回收 Cilium 16 的 Tetragon 指针。

四、延伸阅读

读完这篇,下一步读什么

优先读同系列或同问题的下一篇,把单篇消费变成主题集群。

2026-08-18 · kubernetes / security

【Tetragon / eBPF】强制执行:Override 与 SIGKILL 各自保证什么

按 Tetragon v1.7.0 官方 Enforcement 文档钉死:Override 使函数不执行并返回 argError;SIGKILL 终止进程但不保证当前 syscall 无副作用;monitor 与 enforce 如何把动作抹掉;以及 Bishop–Dilger–Garfinkel 的 TOCTOU 谱系落到 bpf_enforcer.c 的边界。


By .