导入 CNCF Falco 数据
编辑导入 CNCF Falco 数据
编辑CNCF Falco 是一款开源运行时安全工具,用于检测 Linux 主机、容器、Kubernetes 和云环境中的异常活动。您可以将 Falco 警报导入 Elasticsearch,以便在 Elastic Security 的“警报”页面上查看它们,并通过使用 Falcosidekick(一个代理转发器,可以将警报从您的 Falco 部署发送到 Elasticsearch)将它们整合到您的安全工作流程中。
首先,您需要配置 Elastic Security 以接收来自 Falco 的数据,然后您需要配置 Falco 和 Falcosidekick 以将数据发送到 Elasticsearch。
配置 Elastic Security 以接收 Falco 数据
编辑在 Elastic Security 中
- 点击 添加集成。
- 在“集成”页面搜索
Falco
,然后选择它。 - 转到 Falco 集成的 设置 选项卡。
- 点击 安装 Falco,然后再次点击 安装 Falco 以确认。安装过程应该不到一分钟。
Elastic Security 现在已准备好接收来自 Falco 的数据。Falco 集成页面现在有一个 资源 选项卡,您可以在其中检查新安装的有助于导入 Falco 数据的资源。
接下来,要使来自 Falco 的警报显示在 Elastic Security 的“警报”页面上
- 在导航菜单中查找 规则 页面,或者使用 全局搜索字段。
- 点击 检测规则 (SIEM)。
- 搜索名为
External Alerts
的规则。如有必要,请安装并启用它。
配置 Falco 和 Falcosidekick
编辑您可以:
为虚拟机配置 Falco 和 Falcosidekick
编辑有多种方法可以配置 Falco 以将数据从虚拟机发送到 Elasticsearch。本指南使用 使用环境变量的 Docker 版 Falco sidekick 方法。
为虚拟机配置 Falco
编辑- 请参考 Falco 的文档,了解如何在您想要监控的 Linux 虚拟机上 安装 Falco。
-
安装 Falco 后,按如下方式更新
/etc/falco/falco.yaml
- 启用 JSON 输出:
json_output: true
-
启用 HTTP 输出:在
http_output
下,对于url
值,输入 Falcosidekick 将监听的url:port
。例如,如果 Falcosidekick 在 localhost 上运行http_output: enabled: true url: "http://0.0.0.0:2801/"
- 启用 JSON 输出:
为虚拟机配置 Falcosidekick
编辑- 请参考 Falcosidekick 的文档,了解如何 安装 Falcosidekick。
-
使用 使用环境变量的 Docker 版 Falcosidekick 方法,并按如下方式设置您的环境变量
-
ELASTICSEARCH_HOSTPORT
:您的 Elasticsearch 端点 URL,可以在 Kibana 的 集成 页面的右上方 连接详细信息 下找到。 -
ELASTICSEARCH_INDEX
:您想要存储 Falco 日志的 Elasticsearch 索引。您的
ELASTICSEARCH_INDEX
值必须与logs-falco.alerts-*
匹配。 -
ELASTICSEARCH_SUFFIX
:您希望 Elasticsearch 索引后缀更改的频率。可以是daily
、monthly
、annually
或none
。 -
ELASTICSEARCH_APIKEY
:推荐的 Elasticsearch 身份验证方法,通过提供 API 密钥。请注意,对该环境变量的支持始于 Falcosidekick 2.30 版。您可以在 Falcosidekick 的 Docker Hub 上访问最新版本。 -
ELASTICSEARCH_USERNAME
和ELASTICSEARCH_PASSWORD
:Elasticsearch 实例上帐户的用户名和密码。在 Elastic Cloud Serverless 上不支持使用这些环境变量进行身份验证。 -
ELASTICSEARCH_MUTUALTLS
和ELASTICSEARCH_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
编辑-
添加 Falco Helm 图表
helm repo add falcosecurity https://falcosecurity.github.io/charts helm repo update
-
接下来,使用
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"