eBPF Kubernetes安全工具Tetragon提升性能与稳定性

Isovalent 发布 Cilium Tetragon 1.0 版本

Isovalent 公司宣布了其基于 eBPF 的 Kubernetes 安全可观测性和运行时执行工具 Cilium Tetragon 的 1.0 版本。该工具允许通过 eBPF 直接应用策略和过滤器,以监控进程执行、权限提升、文件和网络活动。

Tetragon 的主要功能

  • 安全与运行时执行:Tetragon 可用于执行安全和运行时策略,且完全支持 Kubernetes,能够理解 Kubernetes 的概念(如命名空间和 Pod)。
  • 事件生成:默认情况下,Tetragon 生成 process_execprocess_exit 事件。对于更高级的用例,还可以生成 process_kprobeprocess_tracepointprocess_uprobe 事件。
  • 部署方式:可以通过 Helm 将 Tetragon 部署到 Kubernetes 集群中。

1.0 版本的改进

  • 性能优化:1.0 版本着重于大幅减少 Tetragon 运行的性能开销。Isovalent 的 CTO Thomas Graf 提到,在最坏情况下,Tetragon 的进程执行跟踪仅增加了 1.68% 的开销,即使将所有进程执行事件以 JSON 格式写入磁盘,开销也仅为 2.46%。
  • 默认策略库:该版本引入了一个默认的可观测性策略库,涵盖了监控内核模块加载、检测 /tmp 目录下的二进制执行、记录 sshd 发起或接受的连接、跟踪 sudo 调用等场景。用户可以通过 kubectl 应用这些策略。

策略示例

以下策略片段监控 setuid() 系统调用,并记录任何在标签为 app=sensitive-workload 的 Kubernetes Pod 中运行的进程对该系统调用的调用:

apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: "monitoring-gaining-root-access-on-sensitive-workloads"
spec:
  podSelector:
    matchLabels:
      app: "sensitive-workload"
  kprobes:
  - call: "sys_setuid"
    syscall: true
    args:
    - index: 0
      type: "int"
    returnArg:
      index: 0
      type: "int"
    returnArgAction: "Post"

事件处理

当检测到匹配的操作时,Tetragon 会生成事件,用户可以通过 Tetragon CLI 查看这些事件,或将其传递到 SIEM 进行进一步分析。

eBPF 的广泛应用

eBPF 作为一种用于增强可观测性和安全性的工具,正在逐渐普及。其他使用 eBPF 的开源工具包括 PixieInspektor GadgetCorootParcaGrafana Beyla 以及 OpenTelemetry eBPF 项目

开源与许可

Tetragon 是开源的,采用 Apache-2.0 许可证,并在 GitHub 上提供。更多关于 1.0 版本的详细信息可以在 Isovalent 博客 上找到。

阅读 26
0 条评论