tetragon

Tetragon eBPF 安全可观测性

补充说明

Tetragon 基于 eBPF 观测进程、文件、网络和 Kubernetes 身份,能在内核层执行安全策略和记录事件。它适合检测容器逃逸、异常 exec、敏感文件访问和网络连接,并把事件导出到 stdout、文件或 gRPC。

Tetragon 由 agent(DaemonSet)、TracingPolicy 和事件导出器组成。策略可以只观测,也可以在 enforce 模式下阻断行为。

语法

安装:

helm repo add cilium https://helm.cilium.io
helm install tetragon cilium/tetragon \
  --namespace kube-system \
  --set tetragon.enablePolicyFilter=true
kubectl -n kube-system get pods -l app.kubernetes.io/name=tetragon

查看事件:

kubectl -n kube-system logs -l app.kubernetes.io/name=tetragon -c export-stdout -f

观测进程执行:

kubectl apply -f - <<'EOF'
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: monitor-exec
spec:
  kprobes:
  - call: "sys_execve"
    syscall: true
    args:
    - index: 0
      type: "string"
    selectors:
    - matchNamespaces:
      - namespace: demo
        operator: In
EOF

阻断敏感路径访问:

kubectl apply -f - <<'EOF'
apiVersion: cilium.io/v1alpha1
kind: TracingPolicy
metadata:
  name: block-etc-shadow
spec:
  kprobes:
  - call: "security_file_permission"
    syscall: false
    args:
    - index: 0
      type: "file"
    selectors:
    - matchArgs:
      - index: 0
        operator: Prefix
        values: ["/etc/shadow"]
      matchActions:
      - action: Sigkill
EOF

使用 tetra CLI 实时观察:

tetra getevents -o compact
tetra getevents --namespace demo

注意

相关命令

参考链接