Security:使用来自 Elastic Security 的端点威胁情报保护主机

2,024 阅读7分钟

超越阻止恶意软件、勒索软件和高级威胁。 在整个生态系统中统一检测、预防和响应。

本指南将引导你完成一个简单的端点管理方案,以便你了解在 Kibana 中创建 Elasticsearch 集群、添加数据和分析结果的基础知识。 首先,你可以在 Elastic Cloud 中创建部署或自己搭建集群,其中大部分配置会自动发生。 只需几个步骤,你将了解如何实施威胁情报来保护端点并将安全信息直接输入 Elastic Stack 以供查看和监控。

在本教程中,你将部署 Elastic Stack,在主机上安装 Elastic Agent 以保护其免受威胁并收集日志和指标,然后可视化收集的信息。在今天的演示中,我将使用如下的架构来进行演示:

我将使用 Elastic Stack 8.5.0 来进行展示。 

使用来自 Elastic Security 的端点威胁情报保护主机

安装

如果你还没有安装好自己的 Elasticsearch 及 Kibana 请参考如下的教程来进行安装。

在安装的时候,请注意选择 Elastic Stack 8.x 的安装文章来进行安装。

我们按照上面的要求进行安装 Elasticsearch 及 Kibana。为了能够让 fleet 正常工作,内置的 API service 必须启动。我们必须为 Elasticsearch 的配置文件 config/elasticsearch.yml 文件配置:

config/elasticsearch.yml

xpack.security.authc.api_key.enabled: true

配置完后,我们再重新启动 Elasticsearch。针对 Kibana,我们也需要做一个额外的配置。我们需要修改 config/kibana.yml 文件。在这个文件的最后面,添加如下的一行:

config/kibana.yml

 2.  xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'

如果你不想使用上面的这个设置,你可以使用如下的方式来获得:

从上面的输出中,我们可以看出来,有三个输出的 key。我们可以把这三个同时拷贝,并添加到 config/kibana.yml 文件的后面。当然,我们也可以只拷贝其中的一个也可。我们再重新启动 Kibana。

这样我们对 Elasticsearch 及 Kibana 的配置就完成。 针对 Elastic Stack 8.0 以前的版本安装,请阅读我之前的文章 “Observability:如何在最新的 Elastic Stack 中使用 Fleet 摄入 system 日志及指标”。 

除此之外,Kibana 需要 Internet 连接才能从 Elastic Package Registry 下载集成包。 确保 Kibana 服务器可以连接到epr.elastic.co 的端口 443 上 。如果你的环境有网络流量限制,有一些方法可以解决此要求。 有关详细信息,请参阅气隙环境。

目前,Fleet 只能被具有 superuser role 的用户所使用。

配置 Fleet

Elastic ingreations 包括从系统收集数据、管理系统以及对外部系统执行操作所需的配置。 例如,有一些集成可以收集 MySQL 日志和指标,保护主机免受恶意软件的侵害,以及在事件报告系统中创建问题。

使用 Kibana 中的 Fleet 将日志、指标和安全数据导入 Elastic Stack。第一次使用 Fleet 时,你可能需要对其进行设置并添加 Fleet Server。在做配置之前,我们首先来查看一下有没有任何的 integration 被安装:

我们打开 Fleet 页面: 

在上面,我们配置 Fleet Server 到 Ubuntu OS 机器上。它具有 https 的访问。点击上面的 Save and apply settings。

我们接下来添加 Agent:

上面显示我们的 Fleet Sever policy 被成功地创建了。我们需要把我们的 Fleet Server 安装到 Ubuntu OS 机器上。 

 由于我们的 Ubuntu OS 是 Linux OS,所以,我们选择上面的指令来在 Ubuntu OS 上进行安装:



1.  curl -L -O https://artifacts.elastic.co/downloads/beats/elastic-agent/elastic-agent-8.5.0-linux-x86_64.tar.gz
2.  tar xzvf elastic-agent-8.5.0-linux-x86_64.tar.gz
3.  cd elastic-agent-8.5.0-linux-x86_64
4.  sudo ./elastic-agent install \
5.    --fleet-server-es=https://192.168.0.3:9200 \
6.    --fleet-server-service-token=AAEAAWVsYXN0aWMvZmxlZXQtc2VydmVyL3Rva2VuLTE2Njc4ODQ4Njk2MDc6bzZXMEt4RmhRSnEzNldFNEFiczlLZw \
7.    --fleet-server-policy=fleet-server-policy \
8.    --fleet-server-es-ca-trusted-fingerprint=cb2a0e97d764f72d836b55c7ba4f53df8f9fa429cff2b69ef184c677fc184948


 

从上面的输出中,我们可以看出来我们的 Fleet Server 已经被成功地安装,并且 Elastic Agent 在 Ubuntu 机器上也已经运行起来了。

我们再次回到 Kibana 的界面:

由于我们的 Elastic Agent 和 Fleet Server 是在一个服务器上运行的,所以,我们直接在 Fleet Server Policy 里添加我们想要的 integration。如果你的 Elastic Agent 可以运行于另外的一个机器上,而不和 Fleet Server 在同一个机器上,你可以创建一个新的 policy,比如 logs。然后让 agent 赋予给这个 新创建的 policy。我们需要明白的一点是在我们上面安装 Elastic Agent 的时候,它同时也安装了 Fleet Server。在一个机器上,我们只能运行一个 Elastic Agent 的实例。

如果我们想在其它的机器上继续安装 Elastic Agent,那么请点击上面的 Continue enrolling Elastic Agent。

我们现在再回到 Fleet 的界面:

我们看到 Ubuntu 机器上的 Agent 状态是 Healthy,即健康状态。

对于一些开发者来说,他们可能想到会卸载 Elastic Agent。那么我们该如何进行操作呢?我们使用如下的命令:



1.  liuxg@liuxgu:~$ su
2.  Password: 
3.  root@liuxgu:/home/liuxg# cd
4.  root@liuxgu:~# cd /opt/Elastic/Agent/
5.  root@liuxgu:/opt/Elastic/Agent# ls
6.  data                             elastic-agent.yml                               NOTICE.txt
7.  elastic-agent                    elastic-agent.yml.2022-09-19T13-24-57.7474.bak  README.md
8.  elastic-agent-20220919-1.ndjson  fleet.enc                                       vault
9.  elastic-agent-20220919.ndjson    fleet.enc.lock
10.  elastic-agent.reference.yml      LICENSE.txt
11.  root@liuxgu:/opt/Elastic/Agent# ./elastic-agent uninstall


我们可以在 /opt/Elastic/Agent 这个目录中找到 elastic-agent 这个运行程序。使用上面的命令即可删除 Elastic Agent 的安装。针对我们的情况,我们不需要这么做。我们将继续下面的操作。

由于在 Ubuntu 机器上,我们只能运行一个 Elastic Agent 的实例,而这个 Agent (liuxgu)已经处于 Fleet Server Policy 中,我们直接在这个 policy 中添加一个叫做 endpoint security:

如上所示,它提示我们安装 Elastic Agent to your hosts。 因为我们只有一台 Ubuntu 机器,上面已经安装好 Elastic Agent 及 Fleet Server 了,所以我们可以忽略上面的这个步骤。如果你有另外一台机器希望安装 Elastic Agent,那么你需要点击上面的按钮,并安装上面的步骤进行安装 Elastic Agent。

针对我们的情况,由于我们只有一台 Ubuntu OS 的机器,我们可使用如下的方法来安装 endpoint security 集成:

 

这样在我们的 Ubuntu OS 的机器上就部署 了 endpoint 这个 Elastic Defend。 

我们接下来来到如下的界面来查看我们是否已经收到数据了:

从上面,我们可以看出来,我们的 Endpoint Security 已经收集到一些数据了。

接下来,我们启动 detection rules。我们需要打开 Rules 页面:

请注意,其中的一些检测是需要机器学习功能才可以的。我们需要尝试白金版试用功能:

当我们启动了白金版试用功能,那么我们再次启动全部的 707 个规则后,就不会再出现警告信息了。

生成一个警告

欧洲计算机反病毒研究所 (EICAR) 提供反恶意软件测试文件。 如果你的公司政策允许使用这些,请继续执行此步骤。

在你的浏览器器中,打入地址 Eicar – EUROPEAN EXPERT GROUP FOR IT-SECURITY ,并下载 anti malware testfile。下载链接为 Download Anti Malware Testfile – Eicar

我们把当前的文件解压缩。

我们接着返回到 Security 的页面:

我们可以在 Ubuntu OS 的机器上做如下的测试:

从上面的命令中,我们可以看出来,被解压缩的文件立马就被删除了。我们看不到被解压缩的文件。而在 Alerts 界面,我们可以看到事件的发生。

我们选择上面的 Analyze event 按钮:

使用放大和缩小按钮,并拖动窗口内容以查看导致检测到恶意软件的原因。 例如,如果你正在保护一个 Ubuntu 端点,你可能会注意到一个名为 file-roller 的进程用于运行解压缩。 选择解压缩将显示时间戳、解压缩二进制文件的路径、进程 ID、用户名和更多信息。