用于安全研究的 Elastic Container Project
作者:来自 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 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=0WindowsDR=0MacOSDR=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 storagestart creates a container network and starts containersstop stops running containers without removing themdestroy stops and removes the containers, the network, and volumes createdrestart restarts all the stack containersstatus check the status of the stack containersclear clear all documents in logs and metrics indexeshelp 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.1What's Next?1. Sign in to your Docker account → docker login2. 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.1What's Next?1. Sign in to your Docker account → docker login2. 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.1What's Next?1. Sign in to your Docker account → docker login2. 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 storagestart creates a container network and starts containersstop stops running containers without removing themdestroy stops and removes the containers, the network, and volumes createdrestart restarts all the stack containersstatus check the status of the stack containersclear clear all documents in logs and metrics indexeshelp 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。

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

创建 Fleet 策略
现在我们已经启动并运行了整个 Elastic Stack,我们可以制定 Fleet 策略了。Fleet 是 Elastic Agent 的子程序(它是在运行 shell 脚本中的 start 选项时构建的),它使你能够管理其他 Elastic Agent、策略和集成。
Fleet 在 Kibana 中进行管理,Kibana 是允许你与存储在 Elasticsearch 中的数据进行交互并管理 Elastic Stack 的 UI。如果你有兴趣了解有关 Kibana 的更多信息,请查看免费培训视频。
登录你的 Kibana 实例并单击左上角的 “汉堡包” 菜单,然后向下导航到 “Management” 部分下的 “Fleet”。

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

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

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


有数百种集成,但在本博客中我们最感兴趣的是 Elastic Security。
要安装 Elastic Security,只需单击主集成页面上的图块或搜索 “security”。

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

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

虽然 Endpoint 和 Cloud security 及系统集成将收集与安全相关的日志,但如果你在 Windows 主机上使用 Sysmon,则可能需要添加 “Windows” 集成来收集这些日志。
安装集成后,系统会提示你添加更多代理或稍后再添加。选择 “Add Elastic Agent later” 选项,以便我们可以对我们的策略进行一些更改。

现在我们将返回到我们的策略页面。
我们的政策应该有两个集成:security 和 system-1。

在添加任何代理之前,我们需要将 Elastic Agent 设置为 Detect(以便允许恶意软件完全执行),将 Elastic Agent 注册为受信任的 AV 解决方案(仅限 Windows),并指示 Endpoint 和 Cloud Security 集成从安全事件中收集内存样本。这对于直接注入内存的 “fileless” 恶意软件(如 Cobalt Strike)非常有帮助。
如果你想了解有关从 Elastic Agent 生成的事件中提取恶意软件信标的更多信息,请查看我们的其他出版物和存储库。
为了允许恶意软件继续执行,请在 “Windows” 策略页面上,单击集成的名称(在我们的示例中为 “security”),将保护级别设置为 “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”。

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

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

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

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

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

由于 Elastic Container Project 完全在单个 Docker 容器内运行,因此如果启用所有可用规则,可能会注意到性能影响。探索不同的规则,并根据你的基础设施和用例启用或禁用它们。
启用这些规则后,它们将生效,并针对你的终端代理发送到堆栈的数据运行。当触发检测引擎规则时,它们将在安全解决方案中的警报页面中显示。
注册 Elastic Agent
仍然在 Fleet 中,我们有几种方法可以添加 Elastic Agent。最直接的方法是在我们想要注册 Elastic Agent 的策略中注册(否则你必须指定要使用的策略)。使用哪种方法并不重要,但单击 “Actions” 按钮,然后单击 “Add agent” 几乎可以在 Fleet 的任何地方使用。

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

值得注意的是,由于我们所有的 TLS 证书都是自签名的,因此我们需要附加 –insecure 标志。如果你使用的是受信任的证书,则无需这样做。
.\elastic-agent.exe install --url=https://[stack-ip]:8220 --enrollment-token=[token] --insecure

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

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

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

现在我们已经确认我们看到了数据。让我们启动一些恶意软件吧!
测试一些恶意软件
有很多地方可以下载恶意软件,但对于此测试,我们将仅使用行业标准 EICAR 反恶意软件测试文件来检查功能。
EICAR 测试是安全供应商普遍认可的文件,用于测试反恶意软件和平台的运行。它包含单个字符串并且是非恶意的。
在 Windows 主机中,我们将使用 Powershell 下载 EICAR 文件。
Invoke-WebRequest -Uri "https://secure.eicar.org/eicar.com.txt" -OutFile "eicar.txt"
正如预期的那样,该事件立即被 Elastic Agent 的安全集成识别。

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

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

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

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

总结
在本文章中,我们向你介绍了 Elastic Stack 和一个开源项目,可用于快速安全地建立整个堆栈以进行测试、实验室和安全研究。
Kibana 和安全解决方案是功能强大的工具,由事件响应者、威胁猎手和情报分析师为安全从业者打造。要了解有关如何使用这些工具的更多信息,Elastic 有一些很棒的(免费和付费)培训,可以帮助你学习如何使用 Kibana 进行威胁猎手。
原文:The Elastic Container Project for Security Research — Elastic Security Labs
相关文章:

用于安全研究的 Elastic Container Project
作者:来自 Elastic Andrew Pease•Colson Wilhoit•Derek Ditch 使用 Docker 启动 Elastic Stack 序言 Elastic Stack 是一个模块化数据分析生态系统。虽然这允许工程灵活性,但建立开发实例进行测试可能很麻烦。建立 Elastic Stack 的最简单方法是使用…...

STM8L101低功耗的理解
一.通过降低时钟频率来降低功耗: 规格书如图 1.code 从flash启动,主频率是16Mhz时,功耗测量2.51ma左右,对应程序如下: 2.code从flash启动,主频率是2Mhz时(上电默认值),功…...
Kotlin cancel CoroutineScope.launch的任务后仍运行
Kotlin cancel CoroutineScope.launch的任务后仍运行 import kotlinx.coroutines.*fun main() {runBlocking {val coroutineScope CoroutineScope(Dispatchers.IO)val job coroutineScope.launch {var i 0while (i < Int.MAX_VALUE) {iprintln(i)}}// 2ms 取消协程delay(…...

你是不是分不清哪些字体是商用,哪些非商用?快来看,免得莫名其妙负债。
前言 最近发现有好多小伙伴在做PPT的时候,都有一个很不好的习惯:没有调整好字体。 这里说的没有调整好字体的意思是:在一些公开发布的内容上使用一些可能造成侵权的字体。 字体侵权的后果相当严重。轻者可能面临法律纠纷,重者…...

新电脑工作流搭建记录-前端篇
vscode: url: Visual Studio Code - Code Editing. Redefined 插件:Chinese、git history、git graph、codelf、css peek、auto closed tad、auto rename tag、Quokka.js、Image preview Node 官网直接下载:下载 | Node.js node版本管理…...

XXL-JOB 漏洞大全
一、前言 在当今的数字化时代,任务调度平台对于企业级应用来说至关重要。它们负责自动化和协调各种时间敏感或周期性的任务,确保业务流程的顺畅运行。XXL-JOB作为一款流行的分布式任务调度平台,因其强大的功能和易用性,被广泛部署…...

使用 Visual Studio Code 配置 C/C++ 开发环境
Visual Studio Code(简称 VSCode)是一款非常流行的代码编辑器,提供了丰富的扩展和配置支持,使其成为进行 C/C 开发的一款理想工具。本文将详细介绍如何在 VSCode 中配置 C/C 开发环境,涵盖安装必要的工具和插件、编写简…...

STM32与ESP8266的使用
串口透传 “透传”通常指的是数据的透明传输,意思是在不对数据进行任何处理或修改的情况下,将数据从一个接口转发到另一个接口。值得注意的是要避免串口之间无限制的透明,可以采用互斥锁的方式进行限制使用方法 对USART1和USART3(用他俩举例…...

【计算机网络】数据链路层深度解析
概述三个重要问题封装成帧差错检测可靠传输 使用广播信道的数据链路层数据链路层的互连设备 媒体接入MAC地址集线器与交换机区别以太网交换机生成树协议STP 概述 链路就是从一个结点到相邻结点的一段物理线路,而中间没有任何其他的交换结点。数据链路是指把实现通信…...

【基于轻量型架构的WEB开发】【章节作业】
作业1 mybatis核心对象、配置文件和映射文件 一. 单选题(共10题,50分) 1. (单选题)以下关于<select>元素及其属性说法错误的是()。 A. <select>元素用来映射查询语句,它可以帮助我们从数据库中读取出数据,并组装数据给业务开发…...

一张图解析FastAdmin中的表格列表(bootstrap-table)的功能(备份)
功能描述 请根据图片上的数字索引查看对应功能说明。 1.菜单名称和描述 默认生成的CRUD是没有菜单名称和描述显示的,如果需要显示则可以修改权限管理->菜单规则,给对应菜单的添加上备注信息后即可显示,支持HTML 2.TAB过滤选项卡 在一键…...

【数据结构】假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。
编程题: 假设二叉树采用二叉链表存储,编写一棵二又树中序遍历的非递归算法。 分析: 算法描述: 非递归中序遍历二叉树的算法使用栈来辅助实现。首先,从根节点开始,沿着左子树不断向下, 将每个节点压入栈中。当到达最左端节点后,开始出栈并访问节点,接着转向右子树,重…...

李宏毅结构化学习 02
文章目录 一、上篇博文复习二、Separable Case三、Non-separable Case四、Considering Errors五、Regularization六、Structured SVM七、Cutting Plane Algorithm for Structured SVM八、Multi-class and binary SVM九、Beyond Structured SVM 一、上篇博文复习 图中x表示输入的…...

Android AlertDialog圆角背景不生效的问题
一行解决: window?.setBackgroundDrawableResource(android.R.color.transparent) 原文件: /*** Created by Xinghai.Zhao* 自定义选择弹框*/ SuppressLint("InflateParams", "MissingInflatedId") class CustomDialog(context: Context?) : AlertDia…...

探讨基于AI技术的相亲交友系统设计与实现
摘要 随着人工智能技术的发展,相亲交友领域也开始引入AI技术来改善用户体验,提高匹配成功率。本文探讨了如何利用AI技术设计并实现一个智能化的相亲交友系统,该系统能够根据用户的行为数据和个人偏好,自动推荐合适的潜在伴侣。通…...

(2024.9.20)Endnote插入的参考文献字号太大怎么办?
1、序言 常常写论文的人都知道,插入参考文献时,格式调整到让人头大。Endnote的使用大大方便了我们的同时,也意味着我们要学习软件的使用方法。最近重新安装了一下Endnote,插入的文献字体大小就像抽风了一样。在还没有写完文章之前…...

DataGrip在Windows和MacOS平台上的快捷键
0. 背景信息 No.说明1测试DataGrip版本号 : 2024.2.2 1. Windows下快捷键 2. MacOS下快捷键...

CSS---序号使用css设置,counter-reset、counter-increment、content配合实现备注文案的序号展示
直接上代码,全代码copy即可使用! <template><div class"reminder"><span class"Bold_12_body" style"line-height: 8vw">温馨提示:</span><br /><div class"rule-container"…...

Liquor 表达式引擎基本使用
引入依赖 <dependency><groupId>org.noear</groupId><artifactId>liquor-eval</artifactId><version>1.2.7</version> </dependency>liquor 表达式引擎(ExpressionEvaluator)支持 java 所有的类型、及…...

AI美女屠版小红书火了,被当真人推流,颜值博主慌了
最近,微信群里有一条炸裂的聊天记录,传得沸沸扬扬。 聊天记录原主声称,自己通过flux文生图模型跑出AI美女照片,发在小红书上不仅没有被平台标为AI,还成功获得流量扶持。 随后,原主就附上了自己养的1327个小…...

本地搭建我的世界服务器(JAVA)简单记录
网上参考教程挺多的,踩了不少坑,简单记录一下,我做的是一个私人服务器,就是和朋友3、4个人玩。 笨蛋 MC 开服教程 先放一个比较系统和完整的教程,萌新可用,这个教程很详细,我只是记录一下自己的…...

哪个快?用300万个图斑测试ArcGIS Pro的成对叠加与经典叠加
点击下方全系列课程学习 点击学习—>ArcGIS全系列实战视频教程——9个单一课程组合系列直播回放 点击学习——>遥感影像综合处理4大遥感软件ArcGISENVIErdaseCognition 在使用ArcGIS Pro的过程中,很多朋友发现,Pro有个成对叠加工具集。很多…...

超详细!百分百安装成功pytorch,建议收藏
文章目录 一、Anaconda安装1.1下载anaconda1.2配置Anaconda环境1.3验证anaconda是否安装成功 二、查看电脑显卡三、更新显卡驱动3.1下载驱动3.2、查看显卡驱动版本 四、cuda安装4.1CUDA下载4.2CUDA环境配置4.3验证CUDA是否安装成功 五、安装pytorch4.1下载pytorch5.2验证pytorc…...

web基础—dvwa靶场(四)File Inclusion
File Inclusion(文件包含) 有些 web 应用程序允许用户指定直接文件流的输入,或允许用户将文件上载到服务器。稍后 web 应用程序访问 web 应用程序上下文中用户提供的输入。通过这样种操作,web 应用程序允许恶意文件执行。 如果选择要包含的文件是目标计…...

【Python】练习:控制语句(二)第1关
第1关:分支结构基础实训 第一题第二题第三题第四题(※)第五题(※)第六题第七题 第一题 #第一题 for temp in [-280, -100, 0, 20, 120, 200]:#请在下面编写代码# ********** Begin ********** #if temp>-273.15:F9/…...

Vue3 : Pinia的性质与作用
目录 一.性质 二.作用 三.Pinia 的核心概念 四.使用 1.count.ts 2.count.vue Vue 3 中 Pinia 是一个专为 Vue 3 设计的状态管理库,它旨在提供一种简单、直观的方式来管理应用的状态。 一.性质 1.集成性:Pinia 是 Vue 3 官方推荐的状态管理库&…...

对接金蝶云星空调用即时库存信息查询API
文章目录 前言准备工作获取第三方授权权限与授权配置信息集成金蝶云SDK调用实现备注前言 对于有自己商品信息管理后台并且使用金蝶ERP系统管理物料的商家来说,将金蝶上物料的库存信息同步到管理后台就可以不用去金蝶上确认库存了,可以大大简化管理后台的库存变更工作,这篇文…...

pretrain Llama3
导入模块:导入了一些必要的模块,包括数学计算、时间处理、文件操作、深度学习框架(如torch)、以及自定义的LLama Transformer模型相关内容。 I/O配置:定义了模型输出路径、评估与日志记录的间隔步数、批次大小、最大序…...

[附源码]SpringBoot+VUE+Java实现人脸识别系统
今天带来一款优秀的项目:java人脸识别系统源码 。 系统采用的流行的前后端分离结构,内含功能包括 “人脸数数据录入”,“人脸管理”,“摄像头识别” 如果您有任何问题,也请联系小编,小编是经验丰富的程序员…...

数据库_解决SQL Server数据库log日志过大,清理日志文件方法
SQL Server数据库日志文件过大的原因主要有几个方面: 事务日志记录了所有对数据库进行修改的操作,如插入、更新和删除,这些操作会不断增加日志文件的大小。 长时间运行且未正确结束的事务会持续占用事务日志中的空间,导致日志文…...