土法炼钢 · 系统与基础设施

【Falco】观测税与误报面:成本归因到五轴

文章导航

分类入口
kubernetessecurity
标签入口
#falco#overhead#false-positive#rules#buf-size-preset#base-syscalls#dual-engine#v0.44.1

目录

第 10 篇 钉了部署与特权分叉。本篇回答:成本与噪声落在哪一层,以免误判成「驱动坏了」或「Falco 比 Tetragon 贵百分之几」。 无实测则不写 CPU%;不引用 linux/ebpf-security 里未经本仓库核验的资源表。

「观测税」在这里指:为拿到可判定事件,你在特权面、缓冲内存、syscall 覆盖面、规则求值与下游 sink上付出的机制成本——不是品牌口号里的性能排名。

本篇在系列中的位置

篇目 核心内容
第 10 篇 · driver.kind Helm、auto、least-privileged
第 11 篇 · 观测税与误报面 成本 × 轴;噪声归因
第 12 篇 · 运维与升级 0.43→0.44 成对换驱动
系列目录 全部篇目

版本锚定:Falco 0.44.1。缓冲与丢事件旋钮见 engine.*.buf_size_preset / drop_failed_exitengine.modern_ebpf.cpus_for_each_bufferbase_syscallsAdvanced Performance Tuning / Falco Is Dropping Syscalls Events)。节流类结论只写已文档化旋钮;不发明「采样百分比」API。


一、双引擎下的权限与部署成本差(机制,非 CPU%)

成本维度 modern_ebpf kmod 落轴
特权模型 可 least-privileged(四能力,见第 10 篇) 完整特权加载 .ko 1
制品形态 嵌入 binary,无独立模块构建链 预构建 / 本机编译 / 签名与 DKMS 1
异构 auto 可能在节点间与 kmod 分叉 回退落点 1
捕获之后 进入同一 libscap → libsinsp → 规则路径 同左(协商与缓冲参数可分叉) 2–4

结论要写窄:双引擎的「税」首先差在加载与特权,不差在「用户态规则引擎换成了另一套」。 把 kmod 节点的 privileged 需求写成「Falco 天生比某产品多吃 CPU」,坐标系错了。相对 Tetragon 内核 selector 的税,对照在第 14 篇,本篇不重开。


二、规则噪声

噪声主要落在规则引擎轴富化轴,表象却常被写成「驱动太吵」:

噪声来源 机制 典型误判
默认规则集过宽 / 环境不匹配 合法运维动作命中 「要换引擎」
异常(exceptions)过窄或过宽 该抑制的没抑制,或吞掉真阳性 「规则坏了」↔︎「没有攻击」
富化字段空导致条件漂移 container.* / 路径字段未填 同一规则在测试机响、在集群哑
优先级阴影 高优先级规则先吃掉注意力 低优先级真信号被值班忽略

治理顺序:先确认有原始事件(轴 1–2)且字段已富化(轴 3),再收紧条件/异常(轴 4)。不要用「关掉半个规则仓库」掩盖丢事件(轴 5)。


三、节流 / 采样:只写已文档化边界

0.44.1 没有与 Tetragon cgroup-rate 同构的「按 cgroup 停投递」开关可抄。文档化的成本旋钮包括:

旋钮 文档位置(语义) 作用层 注意
buf_size_preset 引擎段;丢事件排查文 轴 2/5 缓冲 增大降丢、抬内存;非采样比
cpus_for_each_buffer modern_ebpf 轴 2/5 多 CPU 共享更大环
drop_failed_exit 引擎段 轴 2 丢失败 exit,缩小流量,改可见集合
base_syscallscustom_set / repair / all Advanced Performance Tuning 捕获覆盖面 少钩 syscall = 少事件,也少状态修复原料
规则异常 / 禁用规则 规则语言与加载篇 轴 4 减告警,不减内核进入 scap 的原始流(除非规则不再需要那些 syscall)
disable_iterators 0.44.1 modern_ebpf 轴 5 恢复路径 关 iterators 回退 procfs;可用性门,不是「采样」

官方丢事件文还建议:审计规则避免无谓回压、必要时去掉 plugin 试验。禁止把未文档化的「随机 sample 10%」写进 runbook。若 live 文档出现新采样键而 tag 0.44.1 的 falco.yaml 没有,以 tag 为准(见第 12 篇)。


四、误报与漏报 → 哪一条轴

现象 优先轴 否证问题
频繁告警但属合法变更 4(规则/异常) 条件是否过宽?异常是否可钉进程/镜像?
规则在实验命中、生产静默 3 或 4 字段是否空?规则是否未加载?
SIEM 无告警,节点 drop 在涨 5 是背压/缓冲丢,还是 sink 配错?
完全无 syscall 事件 1–2 引擎是否加载?API/Schema 是否协商成功?
auto 后行为突变 1 实际引擎是否已换?特权模型是否仍匹配?

误报(false positive)与漏报(false negative)都要先点名轴,再改 YAML。把漏报默认写成「攻击者绕过了 eBPF」,会跳过缓冲丢弃与富化空洞这类可核对原因。


五、禁止未测排行榜

禁止写法 原因
「Falco 比 Tetragon 少/多 X% CPU」 本系列无实测;站内旧对照表不引用
「kmod 一定比 modern_ebpf 更重」 未声明 workload / 内核 / 规则集则不可比
「调高 preset 就零丢包」 官方只给调参方向,不保证完备性
用营销 benchmark 代替五轴归因 C 级线索不能支撑机制结论

成本讨论的合格形态是上表那种 成本 × 轴:说清付在特权、内存、覆盖面还是告警噪声上。开放争论仍是第 1 篇留下的:内核过滤完整性 vs 用户态规则可移植性——用失败模式比较,不用未测排名。


参考资料

规范 / 官方文档(A)

本系列


上一篇部署与 driver.kind

下一篇运维与升级

读完这篇,下一步读什么

优先读同系列或同问题的下一篇,把单篇消费变成主题集群。

2026-08-21 · kubernetes / security

【Falco】丢事件与缓冲:drop 归因与 BPF iterators 门

区分驱动/用户态缓冲丢事件与规则未命中:钉清 buf_size_preset 与缓冲维度、drop 指标语义、0.44 BPF iterators 愈合路径,以及 0.44.1 可禁用 iterators 的容器门与双引擎证据包差。

2026-08-21 · kubernetes / security

Falco / 运行时检测:从双引擎驱动到规则引擎

补齐站内 Tetragon 排除树与产品对照之上的 Falco 检测内核:modern_ebpf 与 kmod 双引擎、libscap/libsinsp、规则引擎与输出,并以排障与相对 Tetragon/auditd/seccomp 的选型收束。


By .