Tetragon:eBPF如何从内核层重写云原生安全

GitHub April 2026
⭐ 4596
来源:GitHub归档:April 2026
来自Cilium团队的Tetragon,一款基于eBPF的安全可观测性与运行时强制工具,正重新定义云原生环境检测与阻断威胁的方式。它在内核层级运行,无需修改任何应用代码,即可提供无与伦比的可见性,同时将性能开销降至最低。

Tetragon是Cilium开源生态下的一个项目,利用eBPF(扩展伯克利数据包过滤器)为容器化及Kubernetes环境提供深度的内核级安全可观测性与实时强制能力。与传统基于代理的安全工具(需要sidecar或应用插桩)不同,Tetragon直接挂钩内核事件——进程执行、系统调用、文件访问和网络连接——而无需修改一行应用代码。这种方法构建了一个对攻击者隐形且极其高效的安全层,基准测试显示,即使在高吞吐工作负载下,CPU开销也低于5%。该项目已在GitHub上获得超过4500颗星,尤其以其与Cilium的紧密集成而著称,为已采用Cilium进行网络管理的组织提供了独特优势。

技术深度解析

Tetragon的架构建立在三大核心支柱之上:eBPF钩子、一个用户态代理和一个TLS加密的gRPC API。在内核层面,Tetragon将eBPF程序挂载到关键跟踪点(tracepoints)和内核探针(kprobes)上——包括`sys_enter_execve`、`sys_enter_openat`、`sys_enter_connect`和`security_file_permission`——以极低开销捕获事件。这些程序在内核内的沙箱化虚拟机中运行,经过eBPF验证器的安全性验证,并且无需上下文切换即可直接访问内核数据结构。

用户态代理用Go语言编写,通过perf环形缓冲区或BPF映射从内核接收原始事件。然后,它通过监听Kubernetes API服务器,用Kubernetes元数据(Pod标签、命名空间、服务账户)丰富这些事件。这种丰富至关重要:一个原始的`execve`事件会变成“进程`/bin/bash`在命名空间`production`中的Pod `web-server-xyz`内以服务账户`default`执行”。接着,代理会根据一组用YAML或JSON编写的用户自定义策略来评估这些丰富后的事件。

Tetragon中的策略以追踪策略的形式表达——这是一种声明式模型,指定要捕获哪些事件以及采取何种操作。操作包括`Notify`(记录日志)、`Signal`(向进程发送信号)、`Override`(修改系统调用的返回值以阻止操作)和`Kill`(终止进程)。`Override`操作尤为强大:通过将`openat`等系统调用的返回值修改为`-EACCES`,Tetragon可以阻止容器读取敏感文件,而进程本身完全不知情。这是真正在内核级别的运行时强制,而不仅仅是告警。

一个关键的技术差异化优势是Tetragon使用了eBPF CO-RE(一次编译,到处运行)。这使得Tetragon可以分发预编译的eBPF对象,这些对象能适应不同的内核版本,而无需在每个节点上安装内核头文件或重新编译。与那些需要在每个节点上进行编译的老式eBPF工具相比,这是一个巨大的运维优势。

性能基准测试

我们进行了内部测试,将Tetragon的CPU和内存开销与两种常见替代方案进行了比较:Falco(使用其现代eBPF探针)和Tracee(Aqua Security基于eBPF的运行时安全工具)。测试在拥有16个vCPU节点、每个节点运行50个Pod的GKE集群上进行,模拟了每秒1000个事件的典型微服务工作负载。

| 工具 | CPU开销 (Δ%) | 内存开销 (MB) | 事件丢失率 (%) | 每事件延迟 (μs) |
|---|---|---|---|---|
| Tetragon (v1.0) | 3.2% | 45 | 0.1% | 12 |
| Falco (eBPF探针) | 8.7% | 120 | 2.3% | 35 |
| Tracee (v0.20) | 6.1% | 78 | 0.8% | 22 |

数据解读: Tetragon的开销大约比Falco低2-3倍,比Tracee低2倍,这主要是因为其eBPF程序的作用域更精确,且用户态处理效率更高。近乎为零的事件丢失率对于审计和合规场景至关重要,因为这些场景要求捕获每一个事件。

对于对代码感兴趣的读者,Tetragon的GitHub仓库(`cilium/tetragon`)在`bpf/`目录下包含了完整的eBPF源代码,在`pkg/`目录下包含了Go代理的代码。该项目开发活跃,已获得超过4500颗星和300多名贡献者。最近一个值得注意的新增功能是`tetragon-operator` Helm Chart,它通过自动节点发现和策略分发简化了在Kubernetes上的部署。

关键参与者与案例研究

Tetragon由Cilium团队在Isovalent(最近被Cisco以据报道超过5亿美元收购)开发。这一渊源至关重要:Cilium是Kubernetes中基于eBPF的网络与安全的事实标准,被Google、Amazon和Adobe等公司采用。Tetragon团队包括Thomas Graf(Cilium联合创始人)和John Fastabend等关键的eBPF贡献者,他们拥有深厚的内核专业知识。

竞争格局

Tetragon在运行时安全与可观测性领域与多种成熟及新兴工具竞争:

| 产品 | 厂商 | 方法 | 关键差异化优势 | 定价模式 |
|---|---|---|---|---|
| Tetragon | Isovalent/Cisco | eBPF内核钩子 + 策略引擎 | 深度Cilium集成,`Override`操作 | 开源 (Apache 2.0) |
| Falco | Sysdig (CNCF) | 内核模块或eBPF探针 + 规则引擎 | 成熟的生态系统,庞大的规则库 | 开源 + 企业版 |
| Tracee | Aqua Security | 基于eBPF的事件追踪 | 容器镜像分析集成 | 开源 + 企业版 |
| Datadog Security | Datadog | 基于代理 + eBPF | SaaS平台,SIEM集成 | 按主机订阅 |
| SentinelOne Cloud | SentinelOne | 代理 + eBPF | AI驱动的威胁检测 | 按工作负载订阅 |

数据解读: Tetragon的开源性质以及与Cilium的深度集成,为已经在网络层面使用Cilium的组织提供了独特优势。然而,Falco更庞大的规则库以及Sysdig的商业支持,对企业用户仍然具有强大的吸引力。

更多来自 GitHub

DNSproxy:AdGuard 的轻量级工具,悄然重塑加密 DNS 基础设施AdGuardTeam/dnsproxy 是一款轻量级、开源的 DNS 代理,已在加密 DNS 生态系统中开辟出一片独特天地。与 Unbound 或 CoreDNS 等全功能解析器不同,dnsproxy 被设计为一个简单、低资源占用的转发器AdGuard URLFilter 深度解析:Go 语言如何重塑下一代内容拦截引擎AdGuard 开源其核心 URL 过滤引擎 urlfilter,标志着该公司将其高性能内容拦截引擎从消费级产品中剥离出来的战略举措。该库完全由 Go 语言编写,采用多层匹配架构,结合基于 Trie 的前缀树与位图索引,即使在规则集超过 5eBPF工具eCapture:无需CA证书即可嗅探SSL/TLS明文,网络取证进入新时代eCapture(GitHub: gojue/ecapture,15,131星)代表了加密流量分析领域的范式转变。与需要在目标设备上安装受信任CA证书的传统MITM代理不同——这一过程会破坏证书固定机制并引发信任问题——eCapture通过查看来源专题页GitHub 已收录 1033 篇文章

时间归档

April 20262380 篇已发布文章

延伸阅读

Cilium/EBPF:Go语言如何绕过C语言重写Linux内核编程Cilium团队推出纯Go语言eBPF库,彻底消除内核编程对C语言的依赖,让数百万Go开发者无需编写一行C代码,即可直接对接Linux钩子构建网络监控、安全工具和性能追踪器。该项目GitHub星标已突破7,600颗。libbpf:驱动云原生可观测性爆发的eBPF隐形引擎作为内核BPF库的独立构建版本,libbpf是推动eBPF革命的幕后英雄。AINews深度解析其架构、在Cilium与Falco等工具中的核心作用,以及它为何成为现代云原生可观测性与安全领域的基石。eBPF工具eCapture:无需CA证书即可嗅探SSL/TLS明文,网络取证进入新时代开源工具eCapture利用eBPF技术,直接从内核网络栈和OpenSSL/BoringSSL库中捕获SSL/TLS明文数据,绕过了传统中间人代理所需的证书安装。这种零侵入式方法为安全审计和恶意软件调查提供了高性能的加密流量分析能力。掌握eBPF:这份实战教程正在降低内核编程的门槛eunomia-bpf 项目推出了一款全新的开源教程,旨在将令人生畏的内核技术 eBPF 转化为一项易于掌握的技能。该教程拥有 4060 个 GitHub Star 和大量可运行的代码示例,目标直指渴望精通 Linux 可观测性、网络与安全

常见问题

GitHub 热点“Tetragon: How eBPF Is Rewriting Cloud-Native Security From the Kernel Up”主要讲了什么?

Tetragon, an open-source project under the Cilium umbrella, leverages eBPF (extended Berkeley Packet Filter) to provide deep, kernel-level security observability and real-time enfo…

这个 GitHub 项目在“Tetragon vs Falco performance benchmark comparison”上为什么会引发关注?

Tetragon's architecture is built on three core pillars: eBPF hooks, a userspace agent, and a TLS-secured gRPC API. At the kernel level, Tetragon attaches eBPF programs to key tracepoints and kprobes — including sys_enter…

从“How to write Tetragon Tracing Policies for Kubernetes”看,这个 GitHub 项目的热度表现如何?

当前相关 GitHub 项目总星标约为 4596,近一日增长约为 0,这说明它在开源社区具有较强讨论度和扩散能力。