falcosecurity/falco

GitHub: falcosecurity/falco

Falco 是 CNCF 毕业项目,专注于 Linux 和容器环境的实时运行时安全监控与异常行为检测。

Stars: 8700 | Forks: 989

# 法尔科 [![Latest release](https://img.shields.io/github/v/release/falcosecurity/falco?style=for-the-badge)](https://github.com/falcosecurity/falco/releases/latest) [![Supported Architectures](https://img.shields.io/badge/ARCHS-x86__64%7Caarch64-blueviolet?style=for-the-badge)](https://github.com/falcosecurity/falco/releases/latest) [![License](https://img.shields.io/github/license/falcosecurity/falco?style=for-the-badge)](COPYING) [![Docs](https://img.shields.io/badge/docs-latest-green.svg?style=for-the-badge)](https://falco.org/docs) [![Falco Core Repository](https://static.pigsec.cn/wp-content/uploads/repos/2026/02/64454593db162005.svg)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#core-scope) [![Stable](https://img.shields.io/badge/status-stable-brightgreen?style=for-the-badge)](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md#stable) [![OpenSSF Scorecard](https://img.shields.io/ossf-scorecard/github.com/falcosecurity/falco?label=openssf%20scorecard&style=for-the-badge)](https://scorecard.dev/viewer/?uri=github.com/falcosecurity/falco) [![OpenSSF Best Practices](https://img.shields.io/cii/summary/2317?label=OpenSSF%20Best%20Practices&style=for-the-badge)](https://bestpractices.coreinfrastructure.org/projects/2317) [![Falco](https://falco.org/img/brand/falco-horizontal-color.svg)](https://falco.org) [Falco](https://falco.org/) 是一个针对 Linux 操作系统的云原生运行时安全工具。它旨在实时检测异常行为和潜在的安全威胁并发出警报。 Falco 的核心是一个内核监控和检测代理,它根据自定义规则观察事件(例如系统调用)。Falco 可以通过整合容器运行时和 Kubernetes 的元数据来增强这些事件。收集到的事件可以在主机外的 SIEM 或数据湖系统中进行分析。 Falco 最初由 [Sysdig](https://sysdig.com) 创建,是 [Cloud Native Computing Foundation](https://cncf.io) (CNCF) 旗下的**毕业项目**,已被多家 [organisations](https://github.com/falcosecurity/falco/blob/master/ADOPTERS.md) 用于生产环境。 有关详细的技术信息以及 Falco 可检测的网络威胁的深入见解,请访问官方 [Falco](https://falco.org/) 网站。 有关项目最新更新和更改的全面信息,请参阅 [Change Log](CHANGELOG.md)。 ## The Falco 项目 Falco 项目的代码库在 [falcosecurity GitHub organization](https://github.com/falcosecurity) 下维护。主仓库 [falcosecurity/falco](https://github.com/falcosecurity/falco) 包含 Falco 二进制文件的源代码,而其他子项目则托管在专门的仓库中。这种将组件隔离到专门仓库的方法增强了模块化并促进了专注开发。值得注意的 [core repositories](https://github.com/falcosecurity/evolution?tab=readme-ov-file#core) 包括: - [falcosecurity/libs](https://github.com/falcosecurity/libs):该仓库托管 Falco 的核心库,这些库构成了二进制文件源代码的大部分,并提供基本功能,例如内核驱动程序。 - [falcosecurity/rules](https://github.com/falcosecurity/rules):它包含 Falco 的官方规则集,为各种安全威胁和异常行为提供预定义的检测规则。 - [falcosecurity/plugins](https://github.com/falcosecurity/plugins):该仓库通过插件支持与外部服务集成,这些插件将 Falco 的功能扩展到系统调用和容器事件之外,并计划在未来的版本中演进专门的功能。 - [falcosecurity/falcoctl](https://github.com/falcosecurity/falcoctl):一个旨在管理和与 Falco 交互的命令行实用程序。 - [falcosecurity/charts](https://github.com/falcosecurity/charts):该仓库提供用于部署 Falco 及其生态系统的 Helm charts,简化了安装和管理过程。 如需进一步了解我们的仓库以及关于我们治理模型的更多详细信息,请访问 Falco 项目的官方中心:[falcosecurity/evolution](https://github.com/falcosecurity/evolution)。 ## Falco 入门 如果您是 Falco 新手,请从我们的 [Getting Started](https://falco.org/docs/getting-started/) 指南开始您的旅程。对于生产部署,请参阅我们全面的 [Setup](https://falco.org/docs/setup/) 文档。 作为部署 Falco 前的最终建议,请验证环境兼容性、定义检测目标、优化性能、选择合适的构建版本,并规划 SIEM 或数据湖集成以确保有效的事件响应。 ### 演示环境 通过 docker-compose 文件提供了一个演示环境,可以在包含 falco、falcosidekick、falcosidekick-ui 及其所需的 redis 数据库的 docker 主机上启动。有关更多信息,请参阅 [docker-compose section](docker/docker-compose/) ## 加入社区 要参与 Falco 项目,请访问 [Community](https://github.com/falcosecurity/community) 仓库以查找更多信息 and 参与方式。 如果您对 Falco 或贡献有任何疑问,请随时提交 issue 或联系 Falco 维护者和社区成员寻求帮助。 如何联系? - 加入 [Kubernetes Slack](https://slack.k8s.io) 上的 [#falco](https://kubernetes.slack.com/messages/falco) 频道。 - 加入 [Falco mailing list](https://lists.cncf.io/g/cncf-falco-dev)。 - 提交 [issue](https://github.com/falcosecurity/falco/issues) 或提出功能请求。 ## 对 Falco 自身安全的承诺 各种安全审计的完整报告可以在 [here](./audits/) 找到。 此外,您可以参考 [falco](https://github.com/falcosecurity/falco/security) 和 [libs](https://github.com/falcosecurity/libs/security) 安全部分,了解有关安全公告和策略的详细更新。 要报告安全漏洞,请遵循 [here](https://github.com/falcosecurity/.github/blob/main/SECURITY.md) 中文档所述的社区流程。 ## 构建 有关从源代码构建 Falco 的全面分步说明,请参阅 [official documentation](https://falco.org/docs/developer-guide/source/)。 ## 测试
展开测试说明 Falco 的 [Build Falco from source](https://falco.org/docs/developer-guide/source/) 是了解如何从源代码构建 Falco 的首选资源。此外,[falcosecurity/libs](https://github.com/falcosecurity/libs) 仓库提供了有关 Falco 底层库和内核驱动程序的测试和调试的更多有价值信息。 这是一个 `cmake` 命令示例,它将启用您对此仓库进行所有单元测试所需的一切: ``` cmake \ -DUSE_BUNDLED_DEPS=ON \ -DBUILD_DRIVER=ON \ -DBUILD_FALCO_MODERN_BPF=ON \ -DCREATE_TEST_TARGETS=ON \ -DBUILD_FALCO_UNIT_TESTS=ON ..; ``` 构建并运行单元测试套件: ``` nproc=$(grep processor /proc/cpuinfo | tail -n 1 | awk '{print $3}'); make -j$(($nproc-1)) falco_unit_tests; # 运行测试 sudo ./unit_tests/falco_unit_tests; ``` 或者,构建您选择的驱动程序并测试运行 Falco 二进制文件以执行手动测试。 最后,Falco 项目已将其 Falco 回归测试移至 [falcosecurity/testing](https://github.com/falcosecurity/testing)。

## 如何贡献 请参阅 [Contributing](https://github.com/falcosecurity/.github/blob/main/CONTRIBUTING.md) 指南和 [Code of Conduct](https://github.com/falcosecurity/evolution/blob/main/CODE_OF_CONDUCT.md) 以获取有关如何贡献的更多信息。 ## 常见问题 ### 为什么 Falco 使用 C++ 而不是 Go 或 {某种语言}?
展开信息 1. Falco 底层的第一行代码是很久以前编写的,当时 Go 还没有像今天这样成熟和普及。 2. 由于工具的有状态性要求,Falco 的执行模型是顺序且单线程的,因此 Go 运行时的大部分并发相关优势根本无法利用。 3. Falco 代码在许多地方处理非常底层的编程,我们都知道 Go 与 C 接口是可能的,但会带来大量的复杂性和权衡。 4. 作为一个旨在消耗极高每秒事件吞吐量的安全工具,Falco 需要在运行时的所有热路径中压榨性能,并且需要深度控制内存分配,而 Go 运行时无法提供这一点(还涉及垃圾回收)。 5. 虽然 Go 不适合 Falco 核心的工程要求,但我们仍然认为它可能是通过插件系统编写 Falco 扩展的一个很好的候选者。这就是我们特别关注并优先开发 plugin-sdk-go 的主要原因。 6. Go 并不是拥有静态链接二进制文件的必要条件。事实上,我们几年前就提供了完全静态的 Falco 构建。唯一的问题是,在我们当前的动态库模型下,无法支持插件系统。 7. 插件系统旨在支持多种语言,因此对我们来说,维护一个兼容 C 的代码库是确保最大跨语言兼容性的最佳策略。 8. 通常,插件有 GLIBC 要求/依赖项,因为它们具有动态加载所需的底层 C 绑定。未来一个潜在的解决方案也可能是支持插件在编译时静态链接,并作为捆绑包发布在 Falco 二进制文件中。虽然这方面的工作尚未开始,但这将解决您报告的大多数问题,并提供一个完全静态的二进制文件。当然,这将不再兼容动态加载,但对于我们的静态构建版本的 Falco 来说,这可能是一个可行的解决方案。 9. 内存安全绝对是一个关注点,即使 C++ 相当容易出错,我们也尽力保持高水平的质量。例如,我们尽可能使用智能指针,我们在 CI 中使用地址消毒剂构建库,我们在每次发布前通过 Valgrind 运行 Falco,并有办法对其进行压力测试以检测性能回归或奇怪的内存使用情况(例如 https://github.com/falcosecurity/event-generator)。最重要的是,我们还有第三方不时审计代码库。当然,这些都不能构成完美的安全立场,试图最大化我们的胜算。从这个角度来看,Go 肯定会让我们的生活更轻松,但由于上述几点,这种权衡从未值得过。 10. 位于 Falco 核心的 falcosecurity/libs 的 C++ 代码库相当庞大且复杂。将所有这些代码移植到另一种语言将是一项巨大的工程,需要大量的开发资源,并且失败和回归的几率很高。因此,到目前为止,我们的方法是选择重构和代码润色,直到我们在那部分代码上达到最佳的稳定性、质量和模块化水平。这将使未来的进一步开发更加顺畅和可行。

### Falco 的下一步是什么? 通过探索 [Falco Roadmap](https://github.com/orgs/falcosecurity/projects/5) 随时了解 Falco 不断演进的功能,该文档提供了有关当前正在开发及计划在未来版本中发布的功能的见解。 ## 许可证 Falco 根据 [Apache 2.0](./COPYING) 开源许可证授权给您。 ## 资源 - [Governance](https://github.com/falcosecurity/evolution/blob/main/GOVERNANCE.md) - [Code Of Conduct](https://github.com/falcosecurity/evolution/blob/main/CODE_OF_CONDUCT.md) - [Maintainers Guidelines](https://github.com/falcosecurity/evolution/blob/main/MAINTAINERS_GUIDELINES.md) - [Maintainers List](https://github.com/falcosecurity/evolution/blob/main/MAINTAINERS.md) - [Repositories Guidelines](https://github.com/falcosecurity/evolution/blob/main/REPOSITORIES.md) - [Repositories List](https://github.com/falcosecurity/evolution/blob/main/README.md#repositories) - [Adopters List](https://github.com/falcosecurity/falco/blob/master/ADOPTERS.md) - [Release Process](RELEASE.md) - [Setup documentation](https://falco.org/docs/setup/) - [Troubleshooting](https://falco.org/docs/troubleshooting/)
标签:AMSI绕过, Bash脚本, CCTV/网络接口发现, Chrome Headless, CNCF毕业项目, CSV导出, Docker‑Compose, Docker镜像, Falco, HTTP工具, Kubernetes安全, Linux系统监控, Monorepo, PB级数据处理, Rust语言, SIEM, SQLite数据库, Sysdig, Web截图, 主机安全, 云原生, 云原生安全, 代码共享, 入侵检测, 内核监控, 多包管理, 威胁检测, 子域名突变, 安全仪表盘, 安全渗透, 安全规则引擎, 安全运维, 实时告警, 容器安全, 带宽管理, 异常行为检测, 敏感词过滤, 无线安全, 构建工具, 模型安全, 用户界面自定义, 系统调用监控, 网络安全审计, 请求拦截, 运行时安全, 零日漏洞检测