Skip to content

什么是 Falco

Falco 是一个云原生运行时安全工具,旨在检测应用程序中的异常活动,可用于监控 Kubernetes 应用程序和内部组件的运行时安全性。仅需为 Falco 撰写一套规则,即可持续监测并监控容器、应用、主机及网络的异常活动。

Falco 能检测到什么?

Falco 可对任何涉及 Linux 系统调用的行为进行检测和报警。Falco 的警报可以通过使用特定的系统调用、参数以及调用进程的属性来触发。例如,Falco 可以轻松检测到包括但不限于以下事件:

  • Kubernetes 中的容器或 pod 内正在运行一个 shell 。
  • 容器以特权模式运行,或从主机挂载敏感路径,如 /proc。
  • 一个服务器进程正在生成一个意外类型的子进程。
  • 意外读取一个敏感文件,如 /etc/shadow。
  • 一个非设备文件被写到 /dev。
  • 一个标准的系统二进制文件,如 ls,正在进行一个外向的网络连接。
  • 在 Kubernetes 集群中启动一个有特权的 Pod。

关于 Falco 附带的更多默认规则,请参考 Rules 文档

什么是 Falco 规则?

Falco 规则定义 Falco 应监视的行为及事件;可以在 Falco 规则文件或通用配置文件撰写规则。有关编写、管理和部署规则的更多信息,请参阅 Falco Rules

什么是 Falco 警报?

警报是可配置的下游操作,可以像记录日志一样简单,也可以像 STDOUT 向客户端传递 gRPC 调用一样复杂。有关配置、理解和开发警报的更多信息,请参阅Falco 警报。Falco 可以将警报发送至:

  • 标准输出
  • 一份文件
  • 系统日志
  • 生成的程序
  • 一个 HTTP[s] 端点
  • 通过 gRPC API 的客户端

Falco 由哪些部分组成?

Falco 由以下几个主要组件组成:

  • 用户空间程序:CLI 工具,可用于与 Falco 交互。用户空间程序处理信号,解析来自 Falco 驱动的信息,并发送警报。

  • 配置:定义 Falco 的运行方式、要断言的规则以及如何执行警报。有关详细信息,请参阅配置

  • Driver:一款遵循 Falco 驱动规范并发送系统调用信息流的软件。如果不安装驱动程序,将无法运行 Falco。目前,Falco 支持以下驱动程序:

    • 基于 C++ 库构建 libscap 的内核模块 libsinsp(默认)
    • 由相同模块构建的 BPF 探针
    • 用户空间检测

      有关详细信息,请参阅 Falco 驱动程序

  • 插件:可用于扩展 falco libraries/falco 可执行文件的功能,扩展方式是通过添加新的事件源和从事件中提取信息的新字段。 有关详细信息,请参阅插件