导入 CNCF Falco 数据

编辑

CNCF Falco 是一款开源运行时安全工具,用于检测 Linux 主机、容器、Kubernetes 和云环境中的异常活动。您可以将 Falco 警报导入 Elasticsearch,以便在 Elastic Security 的“警报”页面上查看它们,并通过使用 Falcosidekick(一个代理转发器,可以将警报从您的 Falco 部署发送到 Elasticsearch)将它们整合到您的安全工作流程中。

首先,您需要配置 Elastic Security 以接收来自 Falco 的数据,然后您需要配置 Falco 和 Falcosidekick 以将数据发送到 Elasticsearch。

配置 Elastic Security 以接收 Falco 数据

编辑

在 Elastic Security 中

  1. 点击 添加集成
  2. 在“集成”页面搜索 Falco,然后选择它。
  3. 转到 Falco 集成的 设置 选项卡。
  4. 点击 安装 Falco,然后再次点击 安装 Falco 以确认。安装过程应该不到一分钟。

Elastic Security 现在已准备好接收来自 Falco 的数据。Falco 集成页面现在有一个 资源 选项卡,您可以在其中检查新安装的有助于导入 Falco 数据的资源。

接下来,要使来自 Falco 的警报显示在 Elastic Security 的“警报”页面上

  1. 在导航菜单中查找 规则 页面,或者使用 全局搜索字段
  2. 点击 检测规则 (SIEM)
  3. 搜索名为 External Alerts 的规则。如有必要,请安装并启用它。

配置 Falco 和 Falcosidekick

编辑

您可以:

为虚拟机配置 Falco 和 Falcosidekick
编辑

有多种方法可以配置 Falco 以将数据从虚拟机发送到 Elasticsearch。本指南使用 使用环境变量的 Docker 版 Falco sidekick 方法。

为虚拟机配置 Falco
编辑
  1. 请参考 Falco 的文档,了解如何在您想要监控的 Linux 虚拟机上 安装 Falco
  2. 安装 Falco 后,按如下方式更新 /etc/falco/falco.yaml

    1. 启用 JSON 输出:json_output: true
    2. 启用 HTTP 输出:在 http_output 下,对于 url 值,输入 Falcosidekick 将监听的 url:port。例如,如果 Falcosidekick 在 localhost 上运行

      http_output:
        enabled: true
        url: "http://0.0.0.0:2801/"
为虚拟机配置 Falcosidekick
编辑
  1. 请参考 Falcosidekick 的文档,了解如何 安装 Falcosidekick
  2. 使用 使用环境变量的 Docker 版 Falcosidekick 方法,并按如下方式设置您的环境变量

    1. ELASTICSEARCH_HOSTPORT:您的 Elasticsearch 端点 URL,可以在 Kibana 的 集成 页面的右上方 连接详细信息 下找到。
    2. ELASTICSEARCH_INDEX:您想要存储 Falco 日志的 Elasticsearch 索引。

      您的 ELASTICSEARCH_INDEX 值必须与 logs-falco.alerts-* 匹配。

    3. ELASTICSEARCH_SUFFIX:您希望 Elasticsearch 索引后缀更改的频率。可以是 dailymonthlyannuallynone
    4. ELASTICSEARCH_APIKEY:推荐的 Elasticsearch 身份验证方法,通过提供 API 密钥。请注意,对该环境变量的支持始于 Falcosidekick 2.30 版。您可以在 Falcosidekick 的 Docker Hub 上访问最新版本。
    5. ELASTICSEARCH_USERNAMEELASTICSEARCH_PASSWORD:Elasticsearch 实例上帐户的用户名和密码。在 Elastic Cloud Serverless 上不支持使用这些环境变量进行身份验证。
    6. ELASTICSEARCH_MUTUALTLSELASTICSEARCH_CHECKCERT:出于安全原因,我们建议将其设置为 true

例如

docker run -d -p 2801:2801
           -e ELASTICSEARCH_HOSTPORT=https://test-falco.es.us-west2.gcp.elastic-cloud.com
           -e ELASTICSEARCH_INDEX=logs-falco.alerts-all
           -e ELASTICSEARCH_SUFFIX=none
           -e ELASTICSEARCH_APIKEY=XXXXXXXXXXXXX
           -e ELASTICSEARCH_MUTUALTLS=true
           -e ELASTICSEARCH_CHECKCERT=true falcosecurity/falcosidekick

用于对 Falcosidekick 进行身份验证的 Elasticsearch 帐户只需要足够的权限来创建和写入新索引。我们建议在配置此帐户时遵循最小权限原则。

安装和配置 Falcosidekick 后,使用 sudo systemctl restart falco 重启 Falco。Falcosidekick 应该开始将警报发送到 Elasticsearch。

为 Kubernetes 配置 Falco 和 Falcosidekick

编辑
  1. 添加 Falco Helm 图表

    helm repo add falcosecurity https://falcosecurity.github.io/charts
    helm repo update
  2. 接下来,使用 falcosecurity/falco Helm 图表安装 Falco 和 Falcosidekick,并为每个 falcosidekick.config.elasticsearch.* 字段提供 适当的值

    helm install falco falcosecurity/falco \
            --set falcosidekick.enabled=true \
            --set tty=true \
            --set driver.kind=modern_ebpf \
            --set collectors.kubernetes.enabled=true \
            --set falcosidekick.config.elasticsearch.hostport="https://<ES host>" \
            --set falcosidekick.config.elasticsearch.username="<elastic>" \
            --set falcosidekick.config.elasticsearch.password="<password>" \
            --set falcosidekick.config.elasticsearch.index="logs-falco.alerts-all" \
            --set falcosidekick.config.elasticsearch.suffix="none"