用于安全研究的 Elastic Container Project

news2024/11/20 3:26:00

作者:来自 Elastic Andrew Pease•Colson Wilhoit•Derek Ditch

使用 Docker 启动 Elastic Stack

序言

Elastic Stack 是一个模块化数据分析生态系统。虽然这允许工程灵活性,但建立开发实例进行测试可能很麻烦。建立 Elastic Stack 的最简单方法是使用 Elastic Cloud - 这是完全一站式的。但是,在某些情况下,Elastic Cloud 可能不适用于你的测试环境。为了帮助解决这个问题,本博客将为你提供必要的信息,以便快速轻松地建立本地、完全容器化、TLS 安全的 Elastic Stack,并启用 Fleet 和检测引擎。你将能够创建 Fleet 策略,在本地主机或 VM 上安装 Elastic Agent,并将数据发送到你的堆栈中进行监控或分析。

本博客将涵盖以下内容:

  • Elastic Stack
  • Elastic 容器项目
  • 如何使用 Elastic 容器项目
  • 如何导航 Kibana 并使用其相关功能进行安全研究

Elastic 容器项目不由 Elastic 公司赞助或维护。该项目的设计和实施考虑可能无法反映 Elastic 关于部署生产就绪堆栈的指导。

Elastic Stack

Elastic Stack 由多个不同的组件组成,每个组件都提供独特的功能,可用于各种用例。

Elasticsearch

Elasticsearch 是一个分布式 RESTful 搜索和分析引擎。作为 Elastic Stack 的核心,它集中存储你的数据,以实现闪电般的快速搜索、精细调整的相关性和可轻松扩展的强大分析。

Kibana

Kibana 是一个用户界面,可让你可视化 Elasticsearch 数据并管理 Elastic Stack。

Elastic Agent

Elastic Agent 是一个模块化代理,可让你从端点收集数据或充当从第三方来源(如威胁源)发送数据的工具。端点的 Elastic Security 集成可防止勒索软件和恶意软件、检测高级威胁并为响应者提供重要的调查背景。

Elastic 容器项目

Elastic 容器项目

如上所述,Elastic Stack 是模块化的,这使得它非常灵活,适用于各种用例,但这会增加实施的复杂性。

Elastic Container 项目是一个开源项目,它使用 Docker Compose 来构建一个功能齐全的 Elastic Stack 以供非生产环境使用。该项目不由 Elastic 公司赞助或维护。

简介

Elastic Container Project 包括三个主要组件:

  • Elasticsearch
  • Kibana
  • Elastic Agent

该项目利用 Docker Compose,这是一种用于构建、集成和管理多个 Docker 容器的工具。

为了简化容器的管理,该项目包含一个 shell 脚本,允许暂存、启动、停止和销毁容器。

此外,该项目还在 Elasticsearch 和 Kibana、Kibana 和你的 Web 浏览器、Elastic Agent 和 Elasticsearch 以及 Elastic Agent 和 Kibana 之间使用自签名 TLS 证书。

先决条件

该项目是在 Linux 和 macOS 操作系统上构建和测试的。如果你使用的是 Windows,则无法使用随附的 shell 脚本,但仍可以运行本机 Docker Compose 命令并手动执行部署后步骤。

虽然没有经过彻底测试,但建议你为 Docker 提供 4 个核心和 8 GB 的 RAM。

你只需安装几个软件包:

  • Docker
  • Docker Compose
  • jq
  • Git
  • cURL

macOS

如果你使用的是 macOS,则可以使用 Homebrew 安装必备软件,Homebrew 是 macOS 的开源包管理系统。如果需要,请查看 Homebrew 网站以获取有关安装它的信息。

brew install jq git
brew install --cask docker

Linux

如果你在 Linux 上运行,则可以使用包管理系统 ( DNF 、 Yum 或 APT ) 安装先决条件。

基于 RPM 的发行版

dnf install jq git curl

Ubuntu

apt-get install jq git curl

你还需要 Docker 套件(包括 docker-compose-plugin )。查看适合你操作系统的 Docker 安装说明

克隆项目存储库

Elastic Container 项目存储在 Github 上。只要你安装了 Git,就可以从你选择的 CLI 中收集它。

git clone https://github.com/peasead/elastic-container.git
cd elastic-container

该存储库包含使用单个 shell 脚本启动 Elastic Stack 容器所需的一切.

设置凭据

继续之前,请确保将位于存储库根目录中的 .env 文件中的 Elastic 和 Kibana 帐户的凭据从其默认的 changeme 更新。

.env

# Local Kibana URL
LOCAL_KBN_URL=https://127.0.0.1:5601

# Local ES URL
LOCAL_ES_URL=https://127.0.0.1:9200

# Username for Kibana
ELASTIC_USERNAME=elastic

# Password for the 'elastic' user (at least 6 characters)
ELASTIC_PASSWORD=changeme

# Password for the 'kibana_system' user (at least 6 characters)
KIBANA_PASSWORD=changeme

# Version of Elastic products
STACK_VERSION=8.15.1
# Testing pre-releases? Use the SNAPSHOT option below:
# STACK_VERSION=8.11.0-SNAPSHOT

# Bulk Enable Detection Rules by OS
LinuxDR=0

WindowsDR=0

MacOSDR=0

# Set the cluster name
CLUSTER_NAME=elastic-container-project

# Set to "basic" or "trial" to automatically start the 30-day trial
LICENSE=basic
#LICENSE=trial

# Port to expose Elasticsearch HTTP API to the host
ES_PORT=9200
#ES_PORT=127.0.0.1:9200

# Port to expose Kibana to the host
KIBANA_PORT=5601

# Port to expose Fleet to the host
FLEET_PORT=8220

# Increase or decrease based on the available host memory (in bytes)
MEM_LIMIT=2147483648

特别值得指出的是,我们需要指定 STACK_VERSION 的值以下载及安装我们需要的 Elastic Stack 版本。

Shell 脚本

如上所述,该项目包含一个 shell 脚本,可以简化容器的管理。

$ pwd
/Users/liuxg/docker/elastic-container
$ ls
LICENSE.md           README.md            docker-compose.yml   elastic-container.sh kibana.yml
$ ./elastic-container.sh help
usage: ./elastic-container.sh [-v] (stage|start|stop|restart|status|help)
actions:
  stage     downloads all necessary images to local storage
  start     creates a container network and starts containers
  stop      stops running containers without removing them
  destroy   stops and removes the containers, the network, and volumes created
  restart   restarts all the stack containers
  status    check the status of the stack containers
  clear     clear all documents in logs and metrics indexes
  help      print this message
flags:
  -v        enable verbose output

Stage

此选项从 Elastic Docker 中心下载所有容器。如果你要在不总是有互联网访问的系统上构建项目,这将非常有用。这不是必需的,你可以跳过此选项并直接转到开始选项,这将下载容器。

./elastic-container.sh stage
$ pwd
/Users/liuxg/docker/elastic-container
$ ls
LICENSE.md           README.md            docker-compose.yml   elastic-container.sh kibana.yml
$ ./elastic-container.sh stage
8.15.1: Pulling from elasticsearch/elasticsearch
b14b0d0a7610: Pull complete 
3ace270f12dc: Pull complete 
70ede6162abf: Pull complete 
4ca545ee6d5d: Pull complete 
5947045bb3e1: Pull complete 
7e2b3251dada: Pull complete 
b664fed9a81d: Pull complete 
ffc4c36e106f: Pull complete 
29a7133f2a27: Pull complete 
902484376a72: Pull complete 
Digest: sha256:ca844065f663d0a91fe82b4d540ad1e6f4c4ddc58b354cd1724bf19e56f01409
Status: Downloaded newer image for docker.elastic.co/elasticsearch/elasticsearch:8.15.1
docker.elastic.co/elasticsearch/elasticsearch:8.15.1

What's Next?
  1. Sign in to your Docker account → docker login
  2. View a summary of image vulnerabilities and recommendations → docker scout quickview docker.elastic.co/elasticsearch/elasticsearch:8.15.1
8.15.1: Pulling from kibana/kibana
b14b0d0a7610: Already exists 
9c76979389f6: Pull complete 
eb575f2d268a: Pull complete 
a3ceeb406461: Pull complete 
8fbb4917c8b8: Pull complete 
59c458610001: Pull complete 
4ca545ee6d5d: Pull complete 
cc908d51a9a4: Pull complete 
84fc098c07c0: Pull complete 
0adedd631239: Pull complete 
cab52551c4ae: Pull complete 
58c3419bb885: Pull complete 
40834e327d50: Pull complete 
Digest: sha256:cc95727d74ddf69ee9aa278e60b676249350c7ae50b3707b194a6202aac767ad
Status: Downloaded newer image for docker.elastic.co/kibana/kibana:8.15.1
docker.elastic.co/kibana/kibana:8.15.1

What's Next?
  1. Sign in to your Docker account → docker login
  2. View a summary of image vulnerabilities and recommendations → docker scout quickview docker.elastic.co/kibana/kibana:8.15.1
8.15.1: Pulling from beats/elastic-agent
b14b0d0a7610: Already exists 
8cf8bae1370d: Pull complete 
d58bef810687: Pull complete 
f9f0cd53eee6: Pull complete 
c7e10a2549a7: Pull complete 
f4597cf68ac0: Pull complete 
5e03020a73cc: Pull complete 
ad763c8f7f7b: Pull complete 
0cb997c657a9: Pull complete 
ec1e73c6b8d4: Pull complete 
4ca545ee6d5d: Pull complete 
Digest: sha256:56a1f21d7b4dd97e3c136efb4bb8b2097602455ea68283e2afc5e699ca5d6c59
Status: Downloaded newer image for docker.elastic.co/beats/elastic-agent:8.15.1
docker.elastic.co/beats/elastic-agent:8.15.1

What's Next?
  1. Sign in to your Docker account → docker login
  2. View a summary of image vulnerabilities and recommendations → docker scout quickview docker.elastic.co/beats/elastic-agent:8.15.1

我们可以通过如下的命令来进行查看:

docker images
$ docker images
REPOSITORY                                                    TAG       IMAGE ID       CREATED        SIZE
docker.elastic.co/beats/elastic-agent                         8.15.1    ed404e4e9d06   10 days ago    1.21GB
docker.elastic.co/elasticsearch/elasticsearch                 8.15.1    e7a72ffb675e   10 days ago    818MB
docker.elastic.co/kibana/kibana                               8.15.1    2bedc69902ec   10 days ago    1.2GB
docker.elastic.co/enterprise-search/data-extraction-service   0.3.3     a81a99409aeb   5 months ago   299MB
alpine                                                        latest    ace17d5d883e   7 months ago   7.73M

Start

此操作将创建容器网络、下载所有必需的容器、设置 TLS 证书,并启动和连接 Elasticsearch、Kibana 和 Fleet 服务器容器。此选项是启动和运行 Elastic Stack 的 “quick start”。如果你尚未更改 .env 文件中的默认凭据,则脚本将退出。

$ pwd
/Users/liuxg/docker/elastic-container
$ ls
LICENSE.md           README.md            docker-compose.yml   elastic-container.sh kibana.yml
$ ./elastic-container.sh start
Sorry, looks like you haven't updated the passphrase from the default
Please update the changeme passphrases in the .env file.

我们接下来针对 .env 文件来进行修改。把 changeme 修改为 password 并保存

我们再接着运行上面的命令:

$ ./elastic-container.sh start
Passphrase has been reset. Proceeding.
Starting Elastic Stack network and containers.
[+] Building 0.0s (0/0)                                                               docker:desktop-linux
[+] Running 0/0
 ⠋ Network elastic-container_default  Creating                                                        0.0s 
[+] Running 7/1t of type `volume` should not define `bind` option 
[+] Running 9/9tic-container_default           Created                                                0.0s 
 ✔ Network elastic-container_default           Created                                                0.0s 
 ✔ Volume "elastic-container_fleetserverdata"  Create...                                              0.0s 
 ✔ Volume "elastic-container_certs"            Created                                                0.0s 
 ✔ Volume "elastic-container_esdata01"         Created                                                0.0s 
 ✔ Volume "elastic-container_kibanadata"       Created                                                0.0s 
 ✔ Container ecp-elasticsearch-security-setup  Health...                                              0.0s 
 ✔ Container ecp-elasticsearch                 Healthy                                                0.0s 
 ✔ Container ecp-kibana                        Healthy                                                0.0s 
 ✔ Container ecp-fleet-server                  Started                                                1.6s 

Attempting to enable the Detection Engine and install prebuilt Detection Rules.

Kibana is up. Proceeding.

Detection engine enabled. Installing prepackaged rules.

Prepackaged rules installed!

No detection rules enabled in the .env file, skipping detection rules enablement.

Waiting 40 seconds for Fleet Server setup.

Populating Fleet Settings.

READY SET GO!

Browse to https://localhost:5601
Username: elastic
Passphrase: password

上面显示我们可以使用 elastic/password 来登录我们的 Kibana:

请记得使用 https://localhost:9200。我们使用 https://localhost:5601 来访问 Kibana:

我们可以通过如下的命令来进行查看:

docker ps
$ docker ps
CONTAINER ID   IMAGE                                                  COMMAND                  CREATED         STATUS                   PORTS                              NAMES
656c7746db83   docker.elastic.co/beats/elastic-agent:8.15.1           "/usr/bin/tini -- /u…"   4 minutes ago   Up 3 minutes             0.0.0.0:8220->8220/tcp             ecp-fleet-server
973a25fa0a7b   docker.elastic.co/kibana/kibana:8.15.1                 "/bin/tini -- /usr/l…"   4 minutes ago   Up 3 minutes (healthy)   0.0.0.0:5601->5601/tcp             ecp-kibana
edab96b8f751   docker.elastic.co/elasticsearch/elasticsearch:8.15.1   "/bin/tini -- /usr/l…"   4 minutes ago   Up 4 minutes (healthy)   0.0.0.0:9200->9200/tcp, 9300/tcp   ecp-elasticsearch

我们可以看到 fleet server,Elasticsearch 及 Kibana 都在运行中。我们也可以从 Docker Desktop 中进行查看:

Stop

此选项将停止项目中所有正在运行的容器,但不会删除它们。

./elastic-container.sh stop
$ pwd
/Users/liuxg/docker/elastic-container
$ ./elastic-container.sh stop
Stopping running containers.
[+] Stopping 4/3
 ✔ Container ecp-fleet-server                  Stopped                                                1.3s 
 ✔ Container ecp-kibana                        Stopped                                                0.2s 
 ✔ Container ecp-elasticsearch                 Stopped                                                2.8s 
 ✔ Container ecp-elasticsearch-security-setup  Stoppe...                                              0.0s

Destroy

此选项将停止项目中所有正在运行的容器,删除容器网络,删除所有数据卷,并删除所有容器。

./elastic-container.sh destroy
$ ./elastic-container.sh destroy
#####
Stopping and removing the containers, network, and volumes created.
#####
[+] Running 9/9
 ✔ Container ecp-fleet-server                  Removed                                                0.0s 
 ✔ Container ecp-kibana                        Removed                                                0.0s 
 ✔ Container ecp-elasticsearch                 Removed                                                0.0s 
 ✔ Container ecp-elasticsearch-security-setup  Remove...                                              0.0s 
 ✔ Volume elastic-container_fleetserverdata    Removed                                                0.2s 
 ✔ Volume elastic-container_esdata01           Removed                                                0.1s 
 ✔ Volume elastic-container_kibanadata         Removed                                                0.1s 
 ✔ Volume elastic-container_certs              Removed                                                0.1s 
 ✔ Network elastic-container_default           Removed                                                0.1s 

Restart

此选项重新启动所有项目容器。

./elastic-container.sh restart

先前状态必须是 stop 或者是 start 状态。如果是 destroy 状态不会有任何的作用。

$ ./elastic-container.sh stop
Stopping running containers.
[+] Stopping 4/3
 ✔ Container ecp-fleet-server                  Stopped                                                1.4s 
 ✔ Container ecp-kibana                        Stopped                                                0.2s 
 ✔ Container ecp-elasticsearch                 Stopped                                                2.3s 
 ✔ Container ecp-elasticsearch-security-setup  Stoppe...                                              0.0s 
$ ./elastic-container.sh restart
#####
Restarting all Elastic Stack components.
#####
[+] Restarting 3/3
 ✔ Container ecp-kibana         Started                                                               0.2s 
 ✔ Container ecp-fleet-server   Started                                                               0.3s 
 ✔ Container ecp-elasticsearch  Started                                                               0.3s 

Status

此选项返回项目容器的状态。

$ ./elastic-container.sh status
NAME                IMAGE                                                  COMMAND                  SERVICE         CREATED          STATUS                    PORTS
ecp-elasticsearch   docker.elastic.co/elasticsearch/elasticsearch:8.15.1   "/bin/tini -- /usr/l…"   elasticsearch   14 minutes ago   Up 28 seconds (healthy)   0.0.0.0:9200->9200/tcp, 9300/tcp
ecp-fleet-server    docker.elastic.co/beats/elastic-agent:8.15.1           "/usr/bin/tini -- /u…"   fleet-server    14 minutes ago   Up 28 seconds             0.0.0.0:8220->8220/tcp
ecp-kibana          docker.elastic.co/kibana/kibana:8.15.1                 "/bin/tini -- /usr/l…"   kibana          14 minutes ago   Up 28 seconds (healthy)   0.0.0.0:5601->5601/tcp

Clear

此选项将清除日志和指标索引中的所有文档。

./elastic-container.sh clear
$ ./elastic-container.sh clear
Successfully cleared logs data stream
Successfully cleared metrics data stream

Help

此选项提供有关使用 shell 脚本的说明。

./elastic-container.sh help
$ ./elastic-container.sh help
usage: ./elastic-container.sh [-v] (stage|start|stop|restart|status|help)
actions:
  stage     downloads all necessary images to local storage
  start     creates a container network and starts containers
  stop      stops running containers without removing them
  destroy   stops and removes the containers, the network, and volumes created
  restart   restarts all the stack containers
  status    check the status of the stack containers
  clear     clear all documents in logs and metrics indexes
  help      print this message
flags:
  -v        enable verbose output

入门

现在我们已经了解了项目概述和 shell 脚本,让我们来看看如何建立自己的堆栈。

更新变量

所有变量都在位于存储库根目录的环境文件 ( .env ) 中控制。你必须更改的唯一内容是 elastic 和 kibana 的默认用户名和密码

使用你最熟悉的任何文本编辑器打开 .env 文件,并将 ELASTIC_PASSWORD 和 KIBANA_PASSWORD 变量从 changeme 更新为安全的内容。如果你没有从 .env 文件中的默认值更新凭据,脚本将退出。

如果你想更改其他变量(例如堆栈版本),你可以在此文件中进行更改。

启动 Elastic Stack

启动项目容器非常简单,只需使用启动选项运行 elastic-container.sh shell 脚本即可。

./elastic-container.sh start

访问 Elastic Stack

容器全部下载并启动后,你将看到一个输出,提示你浏览 https://localhost:5601。

注意:你需要接受自签名 TLS 证书。

启用白金功能

启用白金许可证功能完全是可选的。基本许可证中包含安全功能,如反恶意软件、EDR、EPP 等。内存、行为和勒索软件保护是白金许可证功能。如果你想更改许可证,我们可以使用 .env 文件或在 Kibana 中执行此操作。你可以更新到 Elastic Platinum 30 天。

如果你想使用 .env 文件以便在构建堆栈时启用这些功能,请将 LICENSE=basic 更改为 LICENSE=trial,然后正常启动项目。

如果你更喜欢使用 Kibana,请单击汉堡菜单,然后单击 Stack Management

从 Kibana 访问堆栈管理

单击 “License Management”,然后单击 “Start a 30-day trial”。

开始 30 天试用

创建 Fleet 策略

现在我们已经启动并运行了整个 Elastic Stack,我们可以制定 Fleet 策略了。Fleet 是 Elastic Agent 的子程序(它是在运行 shell 脚本中的 start 选项时构建的),它使你能够管理其他 Elastic Agent、策略和集成。

Fleet 在 Kibana 中进行管理,Kibana 是允许你与存储在 Elasticsearch 中的数据进行交互并管理 Elastic Stack 的 UI。如果你有兴趣了解有关 Kibana 的更多信息,请查看免费培训视频。

登录你的 Kibana 实例并单击左上角的 “汉堡包” 菜单,然后向下导航到 “Management” 部分下的 “Fleet”。

访问 Fleet

接下来,单击 “Agent policies” 选项卡,然后单击 “Create agent policy” 按钮。

创建 angent policy

为新 policy 命名并添加描述(可选)。通常,我们会取消选中“收集代理日志”和“收集代理指标”选项,因为这些是进入堆栈的额外数据,而对于我们的特定用例,我们通常不需要这些数据。如果你正在进行故障排除或对幕后发生的事情感兴趣,这些数据可以帮助你理解这一点。

定义 agent policy

接下来,点击你的新策略和蓝色的 “Add integration” 按钮。

打开 Fleet policy​
 添加 integration

有数百种集成,但在本博客中我们最感兴趣的是 Elastic Security。

要安装 Elastic Security,只需单击主集成页面上的图块或搜索 “security”。

Endpoint 及 Cloud Security integration

接下来,单击 “Add Endpoint and Cloud Security” 按钮将此集成安装到我们刚刚创建的策略中。

添加 Endpoint 及 Cloud Security

命名集成并单击蓝色的 “Save and continue” 按钮。

将 integration 保存到 policy

虽然 Endpoint 和 Cloud security 及系统集成将收集与安全相关的日志,但如果你在 Windows 主机上使用 Sysmon,则可能需要添加 “Windows” 集成来收集这些日志。

安装集成后,系统会提示你添加更多代理或稍后再添加。选择 “Add Elastic Agent later” 选项,以便我们可以对我们的策略进行一些更改。

之后添加 Elastic Agents

现在我们将返回到我们的策略页面。

我们的政策应该有两个集成:security 和  system-1

审查 Windows 策略

在添加任何代理之前,我们需要将 Elastic Agent 设置为 Detect(以便允许恶意软件完全执行),将 Elastic Agent 注册为受信任的 AV 解决方案(仅限 Windows),并指示 Endpoint 和 Cloud Security 集成从安全事件中收集内存样本。这对于直接注入内存的 “fileless” 恶意软件(如 Cobalt Strike)非常有帮助。

如果你想了解有关从 Elastic Agent 生成的事件中提取恶意软件信标的更多信息,请查看我们的其他出版物和存储库。

为了允许恶意软件继续执行,请在 “Windows” 策略页面上,单击集成的名称(在我们的示例中为 “security”),将保护级别设置为 “Detect”。

设置保护级别为 Detect

对勒索软件、内存威胁防护和恶意行为部分重复这些步骤。

我们将 Elastic Agent 设置为 Detect,这样我们引爆的恶意软件将完全运行,以便我们能够分析整个执行链。如果你希望阻止恶意软件,可以将其保留为 Prevent 模式。

接下来,滚动到底部并选择 “Register as antivirus” 切换按钮,然后单击 “Show advanced settings” 超链接。

注册为防病毒软件

向下滚动到 windows.advanced.memory_protection.shellcode_collect_sample、windows.advanced.memory_protection.memory_scan_collect_sample 和 windows.advanced.memory_protection.shellcode_enhanced_pe_parsing 选项并将值设置为 true。

启用样本收集

如上所述,这些步骤适用于实验室、沙箱、测试等。这些设置可以生成大量数据,因此为生产设置这些设置需要考虑资源和规模。

如果你要为 Linux 或 macOS 制定策略,请针对正确的操作系统重复这些步骤。

完成所有安装后配置后,我们可以单击蓝色的 “Save integration” 按钮。

启用 Elastic 的预建检测规则

现在我们已经创建了 Fleet 代理策略,我们需要启用与我们将要部署的操作系统或平台(例如 Windows)相关的一组预建检测规则。为此,你需要转到安全(security)应用程序中的 “Alerts” 页面。

单击汉堡菜单并选择 “Security solution” 下的 “Alerts”。

访问 Alerts 部分

接下来,点击蓝色的 “Manage Rules” 按钮。

进入 Manage rules 则界面

进入规则页面后,你可以通过点击 “Update Elastic prebuilt rules” 按钮来更新 Elastic 提供的所有预建规则。首次进入 “Manage rules” 部分时,将启用更新框架,如果 “Update Elastic prebuilt rules” 按钮不存在,请刷新屏幕。

更新 Elastic 预建规则

一旦规则更新完毕,你就可以浏览可用的检测规则,通过多种不同的模式进行搜索,或者简单地通过标签进行过滤,这就是我们在这里通过搜索 Windows 规则所要做的。

过滤 Windows 规则

现在我们可以选择所有的 Windows 规则。

选择所有 Windows 规则

一旦选择了所有规则,我们就可以批量启用它们。

批量启用 Windows 规则

由于 Elastic Container Project 完全在单个 Docker 容器内运行,因此如果启用所有可用规则,可能会注意到性能影响。探索不同的规则,并根据你的基础设施和用例启用或禁用它们。

启用这些规则后,它们将生效,并针对你的终端代理发送到堆栈的数据运行。当触发检测引擎规则时,它们将在安全解决方案中的警报页面中显示。

注册 Elastic Agent

仍然在 Fleet 中,我们有几种方法可以添加 Elastic Agent。最直接的方法是在我们想要注册 Elastic Agent 的策略中注册(否则你必须指定要使用的策略)。使用哪种方法并不重要,但单击 “Actions” 按钮,然后单击 “Add agent” 几乎可以在 Fleet 的任何地方使用。

添加 Elastic Agent

向下滚动并单击要在其上安装 Elastic Agent 的操作系统,然后将说明直接复制/粘贴到要在其上安装代理的主机的终端窗口中。请注意,如果你使用的是 Windows,请使用以具有管理权限的帐户身份(或提升为该帐户)运行的 Powershell CLI。

Powershell 命令添加 Elastic Agent

值得注意的是,由于我们所有的 TLS 证书都是自签名的,因此我们需要附加 –insecure 标志。如果你使用的是受信任的证书,则无需这样做。

.\elastic-agent.exe install --url=https://[stack-ip]:8220 --enrollment-token=[token] --insecure
将 Elastic Agent 注册到 Fleet

回到 Kibana,我们可以看到确认 Elastic Agent 已安装在主机上并且数据正在记录到 Elasticsearch 中。

验证 Elastic Agent 注册

我们可以看到 Elastic Agent 正在向 Fleet 报告并且运行状况良好。

验证 Elastic Agent 健康状况

如果我们进入 Discover 选项卡,我们可以看到各种事件类型报告到 Elasticsearch。我们可以通过在主机上打开 notepad.exe 、 calc.exe 和 ping.exe -t www.elastic.co 来生成一些测试数据。从 Discover 中,我们可以进行一个简单的查询来验证我们是否看到了数据:

process.name.caseless : (notepad.exe or ping.exe or calc.exe)
验证数据是否正在发送到 Elasticsearch

现在我们已经确认我们看到了数据。让我们启动一些恶意软件吧!

测试一些恶意软件

有很多地方可以下载恶意软件,但对于此测试,我们将仅使用行业标准 EICAR 反恶意软件测试文件来检查功能。

EICAR 测试是安全供应商普遍认可的文件,用于测试反恶意软件和平台的运行。它包含单个字符串并且是非恶意的。

在 Windows 主机中,我们将使用 Powershell 下载 EICAR 文件。

Invoke-WebRequest -Uri "https://secure.eicar.org/eicar.com.txt" -OutFile "eicar.txt"

正如预期的那样,该事件立即被 Elastic Agent 的安全集成识别。

Elastic Security 检测到 EICAR 测试文件

几分钟后,事件将记录到 Kibana 中的安全解决方案中。你可以通过单击汉堡菜单然后单击 “Alerts” 部分来访问该部分。

查看安全警报

在这里我们可以看到警报已填充。

安全解决方案中的警报

如果我们点击 Analyzer 按钮,我们可以深入研究该事件以识别生成该事件的过程。

分析器按钮

在我们的示例中,我们可以看到 powershell.exe 生成了事件,其中包括相关的网络事件 - secure.eicar.org ,EICAR 测试文件就是从这里下载的。

分析器视图

总结

在本文章中,我们向你介绍了 Elastic Stack 和一个开源项目,可用于快速安全地建立整个堆栈以进行测试、实验室和安全研究。

Kibana 和安全解决方案是功能强大的工具,由事件响应者、威胁猎手和情报分析师为安全从业者打造。要了解有关如何使用这些工具的更多信息,Elastic 有一些很棒的(免费和付费)培训,可以帮助你学习如何使用 Kibana 进行威胁猎手。

原文:The Elastic Container Project for Security Research — Elastic Security Labs

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2132458.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Day09-StatefuleSet控制器

Day09-StatefuleSet控制器 0、昨日内容回顾1、StatefulSets控制器1.1 StatefulSet概述1.2 StatefulSets控制器-网络唯一标识之headless1.3 StatefulSets控制器-独享存储 2、metric-server2.1 metric-server概述2.2 部署metric-server:2.3 hpa案例 3、helm概述3.1 安装helm3.2 h…

RabbitMQ 高级特性——持久化

文章目录 前言持久化交换机持久化队列持久化消息持久化 前言 前面我们学习了 RabbitMQ 的高级特性——消息确认,消息确认可以保证消息传输过程的稳定性,但是在保证了消息传输过程的稳定性之后,还存在着其他的问题,我们都知道消息…

【rpg像素角色】俯视角-行走动画

制作像素角色的俯视角行走动画并不像看上去那么复杂,尤其是在你已经完成了角色的4个方向站立姿势之后(其中左右方向可以通过水平翻转实现)。接下来,我会一步步为你讲解如何制作行走动画。 1. 理解行走规律 在制作行走动画之前&am…

Spring Boot集成Akka Stream快速入门Demo

1.什么是Akka Stream? Akka Streams是一个用于处理和传输元素序列的库。它建立在Akka Actors之上,使流的摄入和处理变得简单。由于它是建立在Akka Actors之上的,它为Akka现有的actor模型提供了一个更高层次的抽象。Akka流由3个主要部分组成-…

从0开始学习RocketMQ:快速部署启动

快速部署 快速部署一个单节点单副本 RocketMQ 服务,并完成简单的消息收发。 安装Apache RocketMQ 下载地址:RocketMQ官网下载 这里我们下载二进制包:rocketmq-all-5.3.0-bin-release.zip 直接解压即可:tar -zxvf rocketmq-all…

光伏开发:工商业光伏的流程管理全面解析

一、项目准备阶段 1、资源寻觅与沟通 首要任务是寻找适合的工商业屋顶或空地资源,并与业主初步交流,了解其意向、屋顶条件及用电情况。这一阶段的关键在于建立信任关系,为后续工作奠定基础。 2、资料收集与核查 全面收集业主资料&#xff…

算法练习题26——多项式输出(模拟)

输入格式 输入共有 2 行 第一行 1 个整数,n,表示一元多项式的次数。 第二行有 n1 个整数,其中第 i 个整数表示第 n−i1 次项的系数,每两个整数之间用空格隔开。 输出格式 输出共 1 行,按题目所述格式输出多项式。…

Navicat BI 中创建自定义字段:计算字段

在数据库设计和开发中,避免存储任何可以从其他字段计算或重建的数据是一种惯例。因此,在 Navicat BI 中构建图表时,你可能会缺少一些数据。但这不是问题,因为 Navicat BI 提供了专门用于此目的的计算字段。在今天的博客中&#xf…

网站按钮检测系统源码分享

网站按钮检测检测系统源码分享 [一条龙教学YOLOV8标注好的数据集一键训练_70全套改进创新点发刊_Web前端展示] 1.研究背景与意义 项目参考AAAI Association for the Advancement of Artificial Intelligence 项目来源AACV Association for the Advancement of Computer Vis…

浅谈MVC设计模式

1 前言 1.1 内容概要 熟悉使用JSON工具,完成Java对象(Map)和Json字符串之间的相互转换(注意提供构造器和getter/setter方法) 注意事项:不管使用的是什么JSON工具,都要提供类的无参构造方法和…

基于SpringBoot的宠物寄领养网站管理系统

作者:计算机学姐 开发技术:SpringBoot、SSM、Vue、MySQL、JSP、ElementUI等,“文末源码”。 专栏推荐:前后端分离项目源码、SpringBoot项目源码、SSM项目源码 系统展示 【前后端分离】基于JavaSpringBootVueMySQL的宠物寄领养网站…

北斗卫星系统信号介绍

覆盖范围亚太区域全球范围 卫星数量35颗区域服务卫星30颗全球服务卫星 信号频段B1I, B2IB1C, B2a, B3, 兼容GPS/Galileo 定位精度区域内10米全球2.5~5米,中国内更高 新增功能区域短报文通信全球短报文通信、星基增强、精密定位 抗干扰能力相对有限更强 互操作…

无人机 PX4 飞控 | 如何检测状态估计EKF性能

无人机 PX4 飞控 | 如何检测状态估计EKF性能 前言检查EKF性能缺少pyulog问题解决脚本崩溃没有输出文件生成对应文件 结语 前言 ECL (Estimation and Control Library,估计和控制库),其中的状态估计使用扩展卡尔曼滤波算法&#x…

图像检测【YOLOv5】——深度学习

Anaconda的安装配置:(Anaconda是一个开源的Python发行版本,包括Conda、Python以及很多安装好的工具包,比如:numpy,pandas等,其中conda是一个开源包和环境管理器,可以用于在同一个电脑…

计算机网络基本概述

欢迎大家订阅【计算机网络】学习专栏,开启你的计算机网络学习之旅! 文章目录 前言一、网络的基本概念二、集线器、交换机和路由器三、互连网与互联网四、网络的类型五、互连网的组成1. 边缘部分2. 核心部分 六、网络协议 前言 计算机网络是现代信息社会…

安装node 报错需要:glibc >= 2.28

--> 解决依赖关系完成 错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodejs) 需要:libm.so.6(GLIBC_2.27)(64bit) 错误:软件包:2:nodejs-18.20.4-1nodesource.x86_64 (nodesource-nodej…

【数据结构篇】~排序(1)之插入排序

排序~插入排序 前言插入排序1.直接插入排序(时间复杂度:O(N^2))1.思想2.代码 2.希尔排序(时间复杂度:O(N∙))1.思路简易证明希尔排序的复杂度 2.代码 前言 四大排序,今天解决插入排序 堆排序和冒泡排序已经写过了&am…

C++笔记---继承(上)

1. 继承的简单介绍 1.1 继承的概念 继承(inheritance)机制是面向对象程序设计使代码可以复用的最重要的手段,它允许我们在保持原有类特性的基础上进行扩展,增加方法(成员函数)和属性(成员变量),这样产生新的类,称派生类。 继承呈…

如何利用 Smarter Balanced 塑造教育领域的 AI 治理

目录 定义挑战 以人为本的设计引领 融入多样性 探索以学生为中心的价值观 探索效果的层次和不同的影响 部位于加利福尼亚州的Smarter Balanced Assessment Consortium 是一个由会员主导的公共组织,为 K-12 和高等教育领域的教育工作者提供评估系统。该组织成立…

09_Tensorflow2图像处理大赏:让你的图片笑出AI感,惊艳朋友圈!

1. 图像处理案例 1.1 逆时针旋转90度 import tensorflow as tf import matplotlib.pyplot as plt import matplotlib.cm as cm import numpy import osdef show_pic(pic,name,cmapNone):显示图像plt.imshow(pic,cmapcmap) plt.axis(off) # 打开坐标轴为 on # 设置图像标题…