若把 Falco 压缩成一句话,它很容易被说成“一个盯着 syscall、再吐出告警的运行时安全守护进程”。[1][2][3] 这个说法并未偏离方向,却把项目压得过小。《In Falco's Nest: The Evolution of Cloud Native Runtime Security》 这场演讲里最有价值的部分,并不在于又一次重复“实时检测”这类熟悉承诺,而在于维护者不断把观众的视线从传感器本身移开,带向更接近生产现实的层面:事件源、规则分层、Operator 的持续调和,以及集群负载上来之后,丢失可见性会怎样沿着整条链条扩散。[1]
这也是为什么这支视频放到 2026 年再看,仍然很值得。Falco 官方文档对项目的起点写得很准确:它是一个监控与检测代理,观察 Linux 内核事件,以及通过插件进入的其他数据源,然后按规则实时发出告警。[2] 可维护者在这场新演讲里补上的,是另一层更有工程重量的判断。Falco 已经越来越不适合被理解成“一个二进制文件,加上一份 rules 文件”。更接近事实的表述,是把它看成一个有状态的检测引擎,而它是否真正有用,取决于事件源能否被扩展、规则制品能否落到每个节点,以及当负载把单线程路径压到极限时,系统还能否把状态恢复回来。[1][3][4][6]
因此,本文的核心判断也并不复杂:Falco 的意义,越来越少落在“运行时安全”这个市场标签本身,越来越多落在一个更具体的设计问题上,也就是可见性从哪里开始,策略存放在哪里,以及在 Kubernetes 里要付出多少运维结构,才能让二者长期保持对齐。[1][2][5][6]
配图说明:题图改用 KubeCon + CloudNativeCon 真实会场照片,画面保留导视标识与空间纵深,没有使用 logo、图表或架构示意。这个选择贴合本文重点,因为文章讨论的是 Falco 在真实运维语境中的运行时边界与治理结构,而并非抽象图解本身。[7]
大约从 1:45 到 4:00,演讲先把 Falco 重新放回“规则引擎 + 多种事件通道”的框架里
开场那段解释表面上很基础。维护者先用了一个常见比喻,把 Falco 比作“安全摄像头”,随后立刻把话落回实现层:Falco 通过 eBPF 或旧系统上的内核模块取得内核级可见性,把这些事件送入用户态检测引擎,再用 YAML 形式定义的规则去匹配它们。[1][3] 如果演讲停在这里,它只是一个标准项目简介。
真正重要的是,它没有停在这里。紧接着,讲者就把观众从“只盯 syscall”的理解里拉了出去。他们强调了 Falco 的两层延展能力:其一,默认规则集可以被改写;其二,插件系统既能生成新的事件流,也能把来自容器运行时与 Kubernetes 的元数据补充进现有事件里。[1][4] 这一步很关键,因为它把项目的边界重新画了一遍。Falco 并非“监控内核,然后告警”这么简单,它更像是“把多种事件源整理进同一套检测语法,再决定策略该附着在哪里”。
官方文档与这个读法是对得上的。Falco 的总览页直接写明,它既观察 Linux 内核事件,也观察“通过插件进入的其他数据源”。[2] Kernel Events 页面解释的是底层捕获通道,Plugin Events 页面则把 Kubernetes Audit、AWS CloudTrail、Okta 这些插件事件源写得很清楚。[3][4] 这几份材料放在一起看,演讲开头的重要性就会显出来。项目真正的重心,不再只是 syscall 本身,而是规则引擎能否把这些异质事件源整理到足够可读、足够可管理的程度,让同一层策略面仍然成立。
这也是很多团队最容易看窄 Falco 的地方。若把它理解成一个狭义的主机探针,就会错过维护者在开场已经讲明的事:Falco 从内核真相开始,但它只有在事件可以被补充、关联、筛选,而并非被锁死在单一来源里时,才会在复杂环境中真正变得有用。[1][2][4]
大约从 7:40 到 15:15,2026 年最实质的变化出现了:Falco 开始成为一个 Kubernetes 调和问题
演讲的中段,是它从“项目更新”变成“架构分析”的地方。Aldo Lacuku 先把 Helm 与新的 Operator 直接并列起来:Helm 很适合入门安装,可 chart 部署完成后它就退场了,因此它不会继续盯住 rules 文件,不会发现插件漂移,也不会注意某个被 Falco 依赖的 ConfigMap 是否被意外删掉。[1] 这句话把 Operator 的必要性讲得很直白。真正的问题落在“装上去之后还能不能持续收敛”。
接下来,演讲比一般的 Operator 宣讲更进一步。因为 Falco 必须以 DaemonSet 的形式跑在每个节点上,一个只坐在集群中心的控制器并不够;规则、插件配置与其他制品,仍然要被送进每一个真正执行检测的 Pod 里。[1] 台上给出的答案,是一个双组件结构:一边是面向用户的 Operator,一边是跟随每个 Falco Pod 注入的 artifact sidecar。后者负责盯住 artifact API,把插件、配置与规则落到与 Falco 共享的文件路径上,再由 Falco 自己去热加载。[1][5] 这一步超出包装层面的修饰,它把 Falco 推向一种更接近“运行时策略控制平面”的部署模型。
更有分量的是规则分层那一段。Lacuku 在台上解释,规则来源现在可以同时来自 OCI artifact、ConfigMap 与 inline override,团队可以先拉取基础规则,再叠加自定义规则,最后只对个别行为做内联覆盖,从而避免把所有内容挤进一个越来越不可维护的大文件里。[1] 这个变化的意义,并不只是“写起来更舒服”。一旦规则从一份静态负载,转成可组合、可调和的制品集合,Falco 的行为逻辑就从“一次性部署的检测器”更明显地走向“持续收敛的策略系统”。[1][5]
这一段最值得让真正运维 Kubernetes 的团队停下来反复看。Operator 的价值并不在于“它更现代”。更实在的地方在于,运行时检测常在安装后几周、几个月出现退化,因为规则分发、插件生命周期与节点侧状态慢慢错开,最后告警看上去还在响,内部可信度却已经开始松动。Falco 在 2026 年的 Operator 叙事,正是在试图把这部分漂移预算提前收回来。[1][5]
大约从 16:50 到 21:05,性能段落暴露出项目最硬的一条边界:事件一旦丢失,状态就开始变盲
最后最该被认真对待的,是性能那一段,因为维护者把失败机制直接说了出来,而没有把它藏进抽象 benchmark。演讲提到,Falco 过去会在初始化以及丢事件之后的状态恢复阶段,通过扫描 /proc 抓取系统信息;这个方法天然低效,因为它意味着打开、读取、关闭大量细碎文件,同时又给引擎本身制造额外事件负担。[1] 这已经从“跑快一点”的小优化,转为“可见性能不能继续被信任”的系统问题。
他们给出的处理方式有两层。第一层,是利用 Linux 5.8 之后提供的 BPF iterators,更高效地遍历内核结构,完成线程状态恢复等工作。[1][3] 第二层,则是承认单线程事件循环这套曾经“极快”的模型,在现代高并行机器上会逐渐变成瓶颈,一旦事件循环被打满,Falco 就会开始丢事件,可见性也随之下降。[1][6] 台上提出的多线程路径,是按 thread group ID 分区处理事件,在保住局部一致性的同时,把并行能力真正用起来。[1]
这里也是整篇文章真正收束的地方。Falco 是一个有状态的引擎。事件丢失一旦过多,它不会只表现为“慢一点”,并会开始局部失明。[1][6] 这正是为什么前面的 Operator 讨论与最开头的内核/插件讨论必须放在同一篇文章里。运行时安全在这里始终体现为一整条链:事件捕获、元数据补充、规则下发、状态恢复。只要其中一环变软,告警表面上还或许继续存在,下面支撑它的模型却已经没有原先那么可信。
这也是为什么这场演讲比一篇“Falco 是什么”的项目介绍更有价值。它把项目的真实形状讲硬了。Falco 到了 2026 年,仍然从内核探针与插件事件源出发,可决定工程成败的工作,越来越落在分发与失效控制这些位置:规则如何抵达、插件状态如何保持收敛、线程级事实在高负载下如何尽量不丢。只有这些边界被一并守住,Falco 作为运行时安全系统的可信度才站得住。[1][2][3][4][5][6]
来源
- CNCF,《In Falco's Nest: The Evolution of Cloud Native Runtime Security - Iacopo Rozzo & Aldo Lacuku》,YouTube 视频,发布于 2026 年 4 月 9 日。
- Falco,《The Falco Project》——官方总览页,说明 Falco 作为监控与检测代理,如何处理内核事件与插件引入的其他事件源。
- Falco,《Kernel Events》——关于 Falco 如何通过 eBPF 或内核模块捕获 syscall 事件的官方文档。
- Falco,《Plugin Events》——关于 Kubernetes Audit、CloudTrail、Okta 等插件事件源的官方文档。
- Falcosecurity,《falco-operator v0.2.0》——演讲中被称为 production-ready 的 Operator 版本发布页。
- Falco,《Falco Is Dropping Syscalls Events》——解释丢失 syscall 事件为何会削弱可见性,以及 Falco 如何报告这类状态的官方排障文档。
- Wikimedia Commons,《File: KubeCon CloudNativeCon China 181114 daily01-01 (44961094325).jpg》——本文题图所用会场照片来源页。