摄取 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)。
- 搜索名为
外部警报
的规则。如有必要,请安装并启用它。
配置 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
:通过提供API 密钥,这是向 Elasticsearch 进行身份验证的推荐方法。请注意,对此环境变量的支持从 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 charts
helm repo add falcosecurity https://falcosecurity.github.io/charts helm repo update
-
接下来,使用
falcosecurity/falco
Helm chart 和每个falcosidekick.config.elasticsearch.*
字段的适当值安装 Falco 和 Falcosidekickhelm 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"