SuperAPI AI 工具集

ebpf-observability

安全与审计

查看项目

更新于 10-27 02:31

技能介绍

用途 本技能用于指导使用 eBPF(扩展伯克利包过滤器)在 Linux 内核中运行沙箱程序,实现深度可观测、网络监控与安全防护,无需修改内核源码或加载内核模块,也无需改动应用代码。主要覆盖云原生基础设施场景。

主要能力

  1. 环境前提检查:给出基础 BPF 映射与探针、BPF CO-RE、BPF ring buffer、BPF LSM 钩子、Cilium 全功能、Tetragon 各自所需的最低与推荐内核版本,并提供内核版本、BTF、BPF 文件系统挂载与 JIT 的检查命令。
  2. 工具链安装:提供 Ubuntu/Debian 与 Fedora/RHEL 下安装 bpftrace、bcc、libbpf 及内核头文件的命令,并用一个 BEGIN 脚本验证 bpftrace 可用。
  3. Cilium 与 Hubble:给出用 Helm 安装 Cilium(含 kubeProxyReplacement、Hubble relay/UI 与指标)的示例命令,以及 cilium status、hubble observe 的端口转发、按命名空间/判定结果/协议/标签过滤、导出 JSON 到 SIEM 和 Hubble UI 访问方式。
  4. Tetragon 运行时安全:提供 Helm 安装方式,以及进程执行监控、敏感文件访问、出站连接限制、提权检测的 TracingPolicy 示例,并说明用 tetra CLI 观察事件。
  5. bpftrace 单行脚本:包括系统调用延迟直方图、按总耗时排序的慢系统调用、DNS 查询追踪与按进程计数、TCP 重传、块 I/O 延迟与按进程的 I/O 字节数、带 cgroup 的 execve 追踪、按 cgroup 的内存分配热点。
  6. 文档目录还提到 Prometheus 集成、网络可观测、安全监控、性能剖析与故障排查,但资料未展开具体内容。

使用方式 按前提检查、安装工具链、部署 Cilium/Hubble 或 Tetragon、再用 hubble、tetra、bpftrace 观察事件的顺序操作。所有示例都需在真实环境中执行,应用前须确认目标、影响范围与回滚方案,未经明确批准不得用于生产。

适用场景 适合需要追踪内核级延迟、系统调用开销与调度延迟等应用指标无法揭示的性能问题;希望不依赖 sidecar 直接从内核捕获 L3/L4/L7 流量、DNS 查询与 TCP 状态;需要在容器边界实时检测容器逃逸、异常进程执行、敏感文件访问与异常系统调用;以及用 Cilium 替代或补充 kube-proxy 与服务网格的场景。

限制 内核低于 4.19、受管平台限制 BPF 能力、或应用层追踪已能满足需求时不宜使用。资料强调:内核版本表与 Helm 参数只是快照,实际支持还取决于 BTF、配置、架构、LSM 与能力;追踪可能暴露敏感信息或耗尽资源;替换 CNI/kube-proxy 可能影响整个集群;仅 observe 的 Post 策略不等于网络阻断;系统调用 kprobe 命名与参数解析随版本和架构变化;对 daemonset 执行 kubectl exec 通常只选中一个 Pod 而非全部节点;空 TracingPolicy 不会产生缺失的事件遥测;文件打开事件不能证明文件被修改;限流可能丢失证据。应给每项追踪设定持续时间、PID 或 cgroup 边界,并妥善管理输出权限与保留。资料中全部示例均未实际执行过;文档未包含随附的辅助脚本与模板;产品收费、价格与平台范围暂未提供。