> 本文是写作规划,不是可发布正文。拆解对象:Tetragon 在 Linux / Kubernetes 上的 eBPF 运行时安全可观测与强制执行内核——以 Tetragon v1.7.0(2026-04-29;源码 tag v1.7.0)为主线,把一次安全相关事件从 process 血缘与 hook,经 Traci…
本文对比Falco、Tetragon、auditd与seccomp四种安全工具,聚焦过滤位置与能否内联阻断。Falco在用户态规则引擎检测,适合告警;Tetragon内核选择器支持Override,可阻断操作;auditd提供合规审计账本;seccomp按syscall编号白名单拒绝。CVE-2022-26316揭示用户态读取参数存在TOCTOU竞态,但0.44.1已修复。选型取决于威胁模型与证明义务,非品牌偏好。
本文介绍Tetragon v1.7.0的eBPF运行时安全机制,聚焦进程血缘、Sensor/Hook、策略加载、过滤分层和强制执行五轴坐标系,并阐述exec_id、execve_map等关键概念。文章旨在补齐Cilium数据面与可观测性之间的安全内核层,提供排障指南,并规划16篇系列文章路线,强调可核对锚点与失败模式分析。
本文介绍Tetragon v1.7.0的进程血缘模型。exec_id由节点名、ktime和PID组成,解决PID复用问题,但不消除内核execve_map未命中。内核map按TGID保存权威状态,用户态cache按exec_id服务导出。in_init_tree标记容器PID 1子树,区分kubectl exec注入。procFS是启动回填标志。父进程不在map时,fork子进程不会入图,这是血缘缺口的关键失败路径。
本文介绍Tetragon v1.7.0的Sensor与Hook机制。核心是`__base__`传感器负责进程生命周期(exec/clone/exit)并维护execve_map,TracingPolicy则按类型另挂kprobe、tracepoint、uprobe、LSM和fentry程序。选错Hook类型会导致无事件、参数错误或TOCTOU问题。LSM需CONFIG_BPF_LSM支持,fentry不支持enforcement。
Tetragon v1.7.0事件导出支持JSON文件、gRPC和管道三种路径。allow/deny过滤仅作用于JSON文件,不影响gRPC;field filter按客户端裁剪字段,redaction在进程缓存中修改参数。默认JSON路径为/var/run/cilium/tetragon/tetragon.log。排障时需区分各sink的过滤差异。
本文介绍Tetragon v1.7.0中策略加载与Sensor/Hook轴的关键问题:BTF发现失败会导致程序挂不上,需检查内核vmlinux路径;DaemonSet与主机安装共用agent,但依赖host网络和BPF能力;v1.7.0默认gRPC改用Unix socket,裸二进制仍为TCP;kubectl、gRPC、静态文件三条加载路径共用collectionKey映射,撞名时优先排查路径而非选择器YAML。
本文介绍Tetragon v1.7.0的TracingPolicy机制:集群级与命名空间级策略差异、spec字段(含fentries)、三条加载路径共享collectionKey导致同名冲突,以及list/enable/disable语义。v1.7.0中Enable/Disable gRPC默认报错,需用ConfigureTracingPolicy替代。排障时先list确认来源,再删除对侧路径。
本文介绍Tetragon v1.7.0的TracingPolicy选择器与动作机制。选择器内过滤器为AND关系,每个hook最多5个选择器,多个选择器采用first-match短路逻辑,默认动作为Post。matchArgs、matchBinaries等过滤器按路径或参数匹配,NoPost抑制事件但保留其他动作,Override和Sigkill在内核执行,GetUrl等动作在用户态执行。CEL-in-BPF有宏限制,最多8路表达式。
本文介绍Tetragon v1.7.0中TracingPolicy的选择器与内核过滤机制。TracingPolicyNamespaced仅作用于特定命名空间的Pod,podSelector和containerSelector分层匹配工作负载,hostSelector仅支持null或空值。无OCI hook时依赖API server可能产生竞态窗口。policyfilter默认在裸二进制关闭、Helm开启,关闭时需过滤的策略会加载失败而非静默全匹配。
本文介绍Tetragon v1.7.0中文件、网络、能力三类观测的hook选择与参数类型。文件观测推荐LSM security_* hook配合file类型,避免syscall的TOCTOU问题;网络观测需区分sock、sockaddr等类型,tcp_connect仅覆盖TCP;能力观测用commit_creds+cred,但不翻译user namespace。选错hook或类型会导致事件缺失,如6.2内核truncate符号变化可能使整份策略加载失败。
Tetragon v1.7.0中,强制执行需结合Override与SIGKILL:Override使函数不执行并返回argError,依赖CONFIG_BPF_KPROBE_OVERRIDE;SIGKILL终止进程但不保证无副作用。策略模式monitor会省略强制执行,运行时set-mode优先级最高。TOCTOU窗口可通过LSM/inline动作缩小,但无法消除SIGKILL副作用。
本文讨论Tetragon v1.7.0中事件可能丢失的三层原因:cgroup-rate按CPU节流仅限EXEC/EXIT事件,超限时暂停投递并发出THROTTLE信号;Post.rateLimit按线程和参数前40字节抑制重复事件;环缓冲压力导致事件丢失。需区分这些机制,避免误判为策略未匹配。
Tetragon v1.7.0升级后,merge指标合并为带status标签的单一计数器,gRPC默认地址改为Unix socket。运维需更新告警表达式和客户端连接,注意JSON文件导出与gRPC流所见集合不同,SIEM仅能获取文件sink内容。排查事件缺失时,应区分merge配对、ringbuf丢失和导出计数三层问题。
本文介绍Tetragon v1.7.0排障方法,按五轴归因:进程血缘、Sensor/Hook、策略加载、过滤分层、强制执行。常见问题包括:策略已应用但无事件(检查BTF和hook)、同名策略冲突(collectionKey撞名)、denylist不影响gRPC、Override需CONFIG_BPF_KPROBE_OVERRIDE。强调先定位问题轴,再针对性排查,避免盲目重装或修改配置。
本文对比了Tetragon与Falco、auditd、Cilium CNP/Hubble、seccomp四种安全方案的机制差异,聚焦于过滤位置与能否内联阻断。Falco在用户态解析参数存在TOCTOU竞态风险;auditd仅记录不阻断;CNP处理包路径而非进程;seccomp仅按syscall号过滤。Tetragon在内核hook匹配并支持Override,但仍有竞态窗口。选型需权衡机制与运维成本。
Tetragon v1.7.0通过Runtime Hooks在容器创建时同步通知agent,使policyfilter在进程执行前就绪,避免API server异步延迟导致的策略漏事件或误放行。支持CRI-O OCI hooks和containerd NRI两种方式,agent不可达时可按namespace配置fail-open或fail-closed。无hook时仅保证best-effort,不保证策略在容器启动前生效。
本文是Tetragon运行时安全系列终章,通过排除树机制收束选型判断。核心观点:先排除再选择,依据可证伪的机制问题而非场景。明确何时不该用Tetragon(如无BTF、编制不足、仅需CNP+Hubble),回收Cilium 16的悬空指针,列出TOCTOU边界、导出完备性等开放问题,并给出ADR友好建议:排除树进ADR,五轴进发布门禁,禁止以“安全套件已安装”续跑。
本文介绍Tetragon v1.7.0运行时安全系列文章,聚焦eBPF安全事件处理路径。内容涵盖进程模型、Sensor/Hook、TracingPolicy选择器、事件导出与强制执行机制,并对比Falco、auditd及Cilium CNP/Hubble。文章提供16篇阅读路线,帮助安全工程师理解延迟、丢失与误阻断问题,并指导选型决策。
本文讨论了Seccomp和eBPF在容器安全中的优势与局限性。Seccomp无法解引用用户态指针和识别敏感文件路径,而eBPF提供了更丰富的上下文信息。文章介绍了eBPF在Linux安全模块(LSM)中的应用,强调其动态加载和高可编程性。Falco和Tetragon作为安全监控工具,分别提供基于syscall的检测和内核态的实时阻断能力。建议在不同场景下结合使用Seccomp、Falco和Tetragon以实现分层防御。
完成下面两步后,将自动完成登录并继续当前操作。