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

2022年11月10日   |   by mebius

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

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

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

%title插图%num

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

安装

如果你还没有安装好自己的 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

 
xpack.encryptedSavedObjects.encryptionKey: 'fhjskloppd678ehkdfdlliverpoolfcr'

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

%title插图%num

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

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

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

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


配置 Fleet

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

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

%title插图%num

%title插图%num

我们打开 Fleet 页面:
%title插图%num

%title插图%num

%title插图%num

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

%title插图%num

%title插图%num

我们接下来添加 Agent:

%title插图%num

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

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

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

%title插图%num%title插图%num

%title插图%num

%title插图%num

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

我们再次回到 Kibana 的界面:

%title插图%num

由于我们的 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 的界面:

%title插图%num

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

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

liuxg@liuxgu:~$ su
Password: 
root@liuxgu:/home/liuxg# cd
root@liuxgu:~# cd /opt/Elastic/Agent/
root@liuxgu:/opt/Elastic/Agent# ls
data                             elastic-agent.yml                               NOTICE.txt
elastic-agent                    elastic-agent.yml.2022-09-19T13-24-57.7474.bak  README.md
elastic-agent-tgcode20220919-1.ndjson  fleet.enc                                       vault
elastic-agent-20220919.ndjson    fleet.enc.lock
elastic-agent.reference.yml      LICENSE.txt
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:

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

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

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

%title插图%num

%title插图%num%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

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

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

%title插图%num

%title插图%num

%title插图%num

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

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

%title插图%num

%title插图%num

%title插图%num

%title插图%num

%title插图%num

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

%title插图%num

%title插图%num

%title插图%num

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

生成一个警告

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

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

%title插图%num

%title插图%num

%title插图%num

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

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

%title插图%num

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

%title插图%num

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

%title插图%num

%title插图%num

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

%title插图%num

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

%title插图%num

文章来源于互联网:Security:使用来自 Elastic Security 的端点威胁情报保护主机

相关推荐: Elasticsearch:如何在不更新证书的情况下为集群之间建立互信

我们知道,建立集群之间的互信非常重要。这个是为我们进行 CCR 及 CCS 操作的基础。只有建立好了集群之间的互信,我们才可以创建集群之间的 remote connection。特别是针对含有 SSL 连接的集群,他们含有各自的证书,那么我们该如何建立集群之间…