cover_image

Tetragon 1.0 正式发布:用 eBPF 实现 Kubernetes 安全监控和运行时强制执行

Isovalent 云原生社区动态
2023年11月03日 00:00

图片

Cilium Tetragon 1.0 终于面世啦!自从在 KubeCon EU 2022 大会上首次亮相[1] 18 个月前,Tetragon 就一直备受关注。在此期间,Tetragon 项目经历了快速的采纳和成熟阶段,我们欣喜地看到了来自150 多名贡献者的 2,000 多次提交[2],Github 上获得了2.7k 颗星[3],以及一个不断增长的Slack 社区[4],分享着对 Tetragon 的跟踪策略和探索。感谢社区为项目所做的一切支持,包括代码贡献、宝贵反馈、大会演讲等。

在 1.0 版本的开发过程中,我们一直专注于持续提升性能和降低开销。我们希望 Tetragon 不仅在透明度上看不见,也在性能开销上几乎无感知。随着博客的推进,我们将深入探讨特定用例的性能开销数据[5],但令人兴奋的是,Tetragon 在为系统提供有意义的安全可观测智能时,对系统性能的开销极小。

同时,一些技术领袖也成为了早期采用者社区,包括 Bell、GitHub、GResearch、Nationwide、Palantir、Ripple 等,它们都在各自的运行时安全和可观测用例中实施了 Tetragon。1.0 版本的发布标志着 Tetragon 在平台和安全团队中具备了生产就绪[6]的能力,可以以非常低的开销高效地获取丰富的 Kubernetes 感知安全和可观测数据。

图片

“Tetragon 为我们的安全团队提供了丰富的数据,将重要的网络、进程和 Kubernetes 元数据连接成一个单一的事件记录。获得这种综合的活动视图使我们能够回答关于集群中各个节点、命名空间、Pod 和容器级别网络活动的问题。而且,它的设置速度很快,开销很小,这对于我们的规模至关重要。”

Jason Cetina – GitHub 的高级安全工程师

什么是 Tetragon?

Tetragon 是一个灵活且易于使用的 Kubernetes 本地安全可观测和运行时强制执行工具,它可以直接使用 eBPF[7] 应用策略和过滤。eBPF 能够在跟踪进程执行、特权升级、文件和网络活动等方面提供深入的可观测性,同时开销极小。

图片

Tetragon 提供一个策略库,其中包括许多易于使用的开箱即用的安全可观测策略[8],用于提取与安全相关的数据,如特权进程和容器执行、kubectl exec 审计轨迹、命名空间和特权升级、系统调用活动、支持 DNS/TLS/HTTP 协议的网络可观测性、文件完整性监控等等。

运行时策略使用 eBPF 在内核中强制执行,而不是在外部实现最小特权运行时安全姿态,以防止系统遭受TOCTOU[9](时机检查与时机使用)攻击。

Tetragon 在不需要对现有代码进行任何更改的情况下,操作透明,应用程序也不会知道自己正受到监视。同时,将 Tetragon 的 JSON 日志与 Prometheus、Grafana、Splunk、Fluentd、Elasticsearch 和 OpenTelemetry 等警报工具和可视化系统无缝集成,以实现增强的实时洞察、全面的监控和积极的安全措施。

智能的内核收集逻辑允许在数据在内核中生成时立即进行过滤和聚合,这种方法通过减少内核和用户空间之间的不必要数据传输或依赖静态内核探测来降低开销。

值得一提的是,Cilium Tetragon 开源项目已经接受了Cure53[10]的第三方审计,其中进行了渗透测试和代码审计的组合,测试人员逐行审查了代码。Cure53 团队在测试过程中没有发现严重、高危或中等严重性的问题(CVEs),他们的报告中指出:“范围内的组件没有

遭受到任何严重甚至是高风险的限制,这一点值得注意。”一旦低严重性问题得到解决,完整的安全报告计划将被发布。

Tetragon 的核心原则

在达到 1.0 版本的过程中,我们进行了许多精彩的讨论和代码提交。在这个过程中,Tetragon 已经明确了它所代表的和它将继续发展的指导原则。

  • • Kubernetes 本地化: Tetragon 专为 Kubernetes 和 Linux 工作负载构建,它对 Kubernetes 具有认识能力,并作为一个 DaemonSet 在 Kubernetes 中以本地方式运行。所有安全可观测事件都会自动与 Kubernetes 元数据(如 Pod 名称、标签、命名空间信息和容器 SHAs 等)进行丰富的关联。可观测性和强制执行策略可以以细粒度的方式应用于特定的 Kubernetes 工作负载。Tetragon 的所有方面都可以在分布式 Kubernetes 环境中本地运行。

  • • 最小开销: 使用 eBPF 作为内核中观测和过滤事件的核心机制,使 Tetragon 非常高效,并在占用空间方面几乎看不见。通过将传输到用户空间的数据限制为仅与相关事件有关,Tetragon 减少了开销,消除了噪音,消除了竞争条件和不必要的延迟。

  • • 简化的可观测性: 安装 Tetragon 以进行可观测性就像从策略库中选择策略一样简单,立即获得对 Linux 机器和 Kubernetes 集群内部发生的活动的丰富数据视图。

为什么选择 Tetragon?

Tetragon 特别为寻找 Kubernetes 本地运行时安全平台的安全团队而设计,它具有极小的性能开销,可以提供全面的安全可观测数据和丰富的强制执行功能。革命性的 eBPF 技术使 Tetragon 成为可能。eBPF 是 Tetragon 可以显著减少与先前解决方案相比的开销的基础,同时也使其能够随着 Kubernetes 和周围技术的发展而成熟和演变。

除了性能开销之外,Tetragon 团队还希望保持 Tetragon 的安全功能对所有人都是可接受的。虽然 Tetragon 充分利用了强大的 eBPF 引擎,但它暴露了一个简单的策略引擎,可以使用现成的可观测性和强制执行策略规则来实现常见用例,同时也允许社区合作来发展规则集。

想要了解更多关于 Tetragon 1.0 的信息请阅读官方博客:https://isovalent.com/blog/post/tetragon-release-10/

引用链接

[1] 首次亮相: https://isovalent.com/blog/post/2022-05-16-tetragon/
[2] 150 多名贡献者的 2,000 多次提交: https://cilium.devstats.cncf.io/d/9/developer-activity-counts-by-repository-group-table?orgId=1&var-period_name=Last%20decade&var-metric=contributions&var-repogroup_name=cilium%2Ftetragon&var-country_name=All
[3] 2.7k 颗星: https://github.com/cilium/tetragon
[4] Slack 社区: https://cilium.slack.com/join/shared_invite/zt-23hfss8uo-T33ISDnZVNCP_rwcp5L_zw#/shared-invite/email
[5] 性能开销数据: https://isovalent.com/blog/post/tetragon-release-10/#h-observability-benchmarks-understanding-tetragon-performance
[6] 生产就绪: https://tetragon.io/
[7] 直接使用 eBPF: https://isovalent.com/books/ebpf/
[8] 开箱即用的安全可观测策略: https://tetragon.io/docs/policy-library/
[9] TOCTOU: https://cwe.mitre.org/data/definitions/367.html
[10] Cure53: https://cure53.de/

欢迎加入云原生社区或向社区投稿,点击阅读原文了解更多。

eBPF · 目录
上一篇深入浅出运维可观测工具(一):聊聊 eBPF 的前世今生
继续滑动看下一个
云原生社区动态
向上滑动看下一个