Falco · CNCCF 毕业项目的云原生运行时安全工具 · Linux 异常行为实时检测部署与使用全指南
项目仓库: https://github.com/falcosecurity/falco
开源协议:Apache-2.0 · 出身:最初由 Sysdig 创建,现为 CNCF 毕业项目 · 架构:内核监控 / 检测代理 · 架构支持:x86_64 / aarch64 · 规则:falcosecurity/rules
1 项目简介
Falco 是面向 Linux 操作系统的云原生运行时安全工具,设计目标是实时检测并告警异常行为与潜在安全威胁。其核心是一个内核监控与检测代理:基于自定义规则观察系统调用(syscall)等事件,并可结合容器运行时与 Kubernetes 的元数据增强这些事件;采集到的事件可再发送到 SIEM 或数据湖系统做离线分析。
1.1 核心信息一览
| 项目项 | 内容 |
|---|---|
| 项目名称 | Falco |
| 仓库地址 | github.com/falcosecurity/falco |
| 项目定位 | 云原生运行时安全,基于规则实时检测异常系统调用 |
| 开源协议 | Apache-2.0 |
| 出身 | 最初由 Sysdig 创建,CNCF 毕业项目 |
| 语言 | C++(执行模型为单线程顺序处理以追求极致性能) |
| 架构支持 | x86_64 / aarch64 |
| 规则仓库 | falcosecurity/rules |
| 官方文档 | falco.org/docs |
1.2 适用场景
- 在 Kubernetes 集群中对容器运行时行为做实时异常检测(如 shell 弹出、敏感文件读取、异常 outbound 连接)。
- 主机层面监控可疑系统调用,配合 SIEM / 数据湖做长期审计。
- 用官方规则集快速建立运行时安全基线。
- 通过 falcosidekick 将告警转发到 Slack / 邮件 / Webhook 等通道。
1.3 能力边界(官方口径)
- Falco 是检测告警工具,不做自动阻断;发现异常后需要外部响应流程。
- 官方部署前建议:验证环境兼容性、明确检测目标、优化性能、选择合适构建、规划 SIEM / 数据湖集成。
- 官方提供 docker-compose 演示环境(含 falco、falcosidekick、falcosidekick-ui 与 redis)。
2 功能特性
- 内核事件监控:观察系统调用等事件,按自定义规则匹配。
- 容器 / K8s 元数据增强:结合容器运行时与 Kubernetes 元数据丰富事件上下文。
- 官方规则集:falcosecurity/rules 提供预定义检测规则。
- 插件生态:falcosecurity/plugins 支持扩展到 syscall 与容器事件之外。
- falcoctl 命令行工具:falcosecurity/falcoctl 用于管理与交互。
- Helm Charts:falcosecurity/charts 提供 Helm 部署。
- 事件可外发:事件可发送到 SIEM / 数据湖做离线分析。
- 演示环境:docker-compose 一键起 falco + falcosidekick + UI + redis。
3 官方界面预览
Falco 是后台守护进程,告警通过日志输出或 falcosidekick 转发;官方提供的 demo 环境含 falcosidekick-ui,可在 Web 界面查看实时告警事件流。
4 官方跳转链接汇总
| 类别 | 链接 | 说明 |
|---|---|---|
| 官网 | https://falco.org | 官方站点 |
| 文档 | falco.org/docs | 安装与使用文档 |
| 仓库主页 | https://github.com/falcosecurity/falco | 主仓库源码 |
| Getting Started | falco.org/docs/getting-started | 新手上路 |
| Setup | falco.org/docs/setup | 生产部署 |
| Troubleshooting | falco.org/docs/troubleshooting | 故障排查 |
| 规则仓库 | falcosecurity/rules | 官方规则集 |
| 核心库 | falcosecurity/libs | 内核驱动与核心库 |
| falcoctl | falcosecurity/falcoctl | 管理 CLI |
| Helm Charts | falcosecurity/charts | 部署 Chart |
| Slack | #falco on k8s Slack | 社区交流 |
5 前置要求与服务器配置
5.1 软件前提
- Linux 操作系统:Falco 面向 Linux 运行时安全,依赖内核模块 / eBPF。
- 内核支持:按官方 Setup 文档选择驱动(内核模块或 modern eBPF)。
- Docker / docker-compose(演示):使用官方 demo 环境时需要。
- Kubernetes(可选):用 Helm Chart 部署到集群时需要。
5.2 硬件建议
- x86_64 / aarch64 主机;Falco 以单线程顺序处理追求事件吞吐,单核性能影响检测能力。
5.3 端口与资源
- Falco 守护进程本身不监听业务端口;falcosidekick 与 UI 按官方 demo 配置端口。
6 方式一:官方安装包 / Helm 部署(推荐)
按官方 Setup 文档在主机上安装 Falco;在 Kubernetes 中使用官方 Helm Chart 部署:
# 演示环境(本机 docker host):包含 falco、falcosidekick、falcosidekick-ui、redis
# 进入仓库 docker/docker-compose 目录后按官方文档启动7 方式二:从源码构建
官方源码构建步骤见 falco.org/docs/developer-guide/source。示例启用全部单测的 cmake 配置:
cmake \
-DUSE_BUNDLED_DEPS=ON \
-DBUILD_DRIVER=ON \
-DBUILD_FALCO_MODERN_BPF=ON \
-DCREATE_TEST_TARGETS=ON \
-DBUILD_FALCO_UNIT_TESTS=ON ..
make -j$(($(nproc)-1)) falco_unit_tests
sudo ./unit_tests/falco_unit_tests8 配置项说明
- 规则文件:官方规则集位于 falcosecurity/rules,Falco 按规则匹配 syscall 事件。
- 驱动选择:内核模块或 modern eBPF(构建时
-DBUILD_FALCO_MODERN_BPF=ON)。 - 告警输出:默认输出到日志;通过 falcosidekick 转发到外部通道。
- 插件:通过插件扩展事件源。
9 常用运维命令
- 查看版本与状态:
falco --version - 查看日志:按系统 journal / 日志路径查看 Falco 告警输出。
- 管理规则:用 falcoctl 管理规则仓库。
- 故障排查:参考官方 Troubleshooting 文档。
10 常见故障排查
- 内核驱动加载失败:按 Setup 文档选择内核模块或 eBPF 模式,确认内核版本兼容。
- 事件量过大:优化规则与性能,官方建议部署前先做性能优化。
- 告警收不到:检查 falcosidekick 转发配置与目标通道。
- 更多见官方 Troubleshooting 文档与 #falco Slack。
11 风险与合规说明
- 许可证:Apache-2.0,可自由使用与再分发。
- 安全责任:Falco 本身是检测工具;规则覆盖率与响应流程需自行规划,不能替代完整安全体系。
- 本文整理自官方 README 与官方文档,部署命令以官方 Setup 文档最新说明为准;不包含 star 数等动态数据。