beathunterzero/elastic-security-lab
GitHub: beathunterzero/elastic-security-lab
这是一个基于 Docker 和 Elastic Stack 构建的威胁狩猎训练实验室,集成了真实数据集与自动化日志摄取管道,用于练习安全分析与可视化。
Stars: 1 | Forks: 0
# 🎯 elastic-security-lab




Elastic Security Lab 是一个专业实验室,旨在利用 Elasticsearch + Kibana + Filebeat 练习 Threat Hunting、日志摄取、数据分析和可视化。
它包含完整的架构、训练数据集以及模块化的摄取 pipeline。
## 🚀 前置条件
在开始之前,请确保已安装:
* Docker
* Docker Compose
* WSL2(如果你使用的是 Windows)
* Git
## 📦 安装
克隆仓库:
```
git clone https://github.com/beathunterzero/elastic-security-lab.git
cd elastic-security-lab
```
## ⚙️ 初始配置(重要)
在首次启动 Kibana 之前,必须更改 `kibana_system` 用户的密码并将其填入 `docker-compose.yml` 中。
这是 Kibana 能够向 Elasticsearch 进行身份验证的必要步骤。
### 🔐 更改 kibana_system 用户密码
在 Elasticsearch 容器内执行以下命令:
```
docker exec -it elasticsearch bin/elasticsearch-reset-password -u kibana_system
```
系统会要求确认,并返回类似以下内容:
```
Password for the [kibana_system] user successfully reset.
New value: XXXXXXXXXXXXXXXXXXXXXXXXX
```
在 `docker-compose.yml` 中找到以下行
```
- ELASTICSEARCH_PASSWORD=dQ_WGNvbbT+agbHBXPbj
```
替换该密码并将其填入你的 `docker-compose.yml`:
```
kibana:
image: docker.elastic.co/kibana/kibana:8.17.10
container_name: kibana
restart: unless-stopped
depends_on:
es01:
condition: service_healthy
environment:
- ELASTICSEARCH_HOSTS=http://es01:9200
- ELASTICSEARCH_USERNAME=kibana_system
- ELASTICSEARCH_PASSWORD=PEGA_AQUÍ_LA_CONTRASEÑA_GENERADA_Y_REMPLAZA_LA_QUE_ESTA_POR_DEFECTO
- SERVER_PUBLICBASEURL=http://localhost:5601
- XPACK_ENCRYPTEDSAVEDOBJECTS_ENCRYPTIONKEY=acadaab8c49b160a7f2fad480683a25b
ports:
- "5601:5601"
networks:
- soc-lab-net
```
## 🏗️ 启动实验室
配置完成后:
```
docker-compose up -d
```
访问 Kibana:
```
http://localhost:5601
```
使用你的个人用户登录(此前在 Kibana 中创建)。如果是首次登录,你可以使用默认用户:
```
username: elastic
password: changeme
```
## 📂 项目结构
```
elastic-security-lab/
│
├── datasets/ # Logs de entrenamiento (AWS, Azure, Windows, Linux)
│
├── filebeat/
│ ├── filebeat.yml # Configuración de ingestión
│ └── docker-compose.yml # Stack completo
│
├── docs/
│ └── architecture/ # Diagramas y documentación
│
├── .gitignore
├── docker-compose.yml
└── README.md
```
## 🛠️ 快速使用指南
以下是使用实验室的常见场景。
### 1. 自动摄取日志
将日志放入相应的文件夹:
```
datasets/windows/
datasets/linux/
datasets/aws/
datasets/azure/
```
Filebeat 将检测这些日志并将其发送到 Elasticsearch。
### 2. 在 Kibana 中创建 Data Views
一旦 Filebeat 发送了数据,创建一个 Data View:
* Stack Management
* Data Views
* 创建新数据视图
建议的索引模式:
```
filebeat-*
```
这将允许你使用 Discover、Dashboards 和 Lens。
(详细指南将稍后发布在 docs/ 中。)
### 3. 创建你的个人用户
在 Kibana 中:
```
Stack Management → Security → Users → Create User
```
推荐用于 Threat Hunting 的角色:
* kibana_admin
* monitoring_user
* viewer
(完整指南也将发布在 docs/ 中。)
### 4. 重启 stack
```
docker-compose down
docker-compose up -d
```
## 📖 组件说明
| 组件 | 功能 |
| ---------- | ---------------------------------- |
| Elasticsearch | 日志存储与搜索 |
| Kibana | 可视化、仪表板、分析 |
| Filebeat | 从数据集摄取日志 |
| Datasets | 用于训练的公开日志 |
## 🧪 训练数据集
本实验室包含用于练习的公开数据集:
* Windows Event Logs
* Linux auth logs
* AWS CloudTrail / GuardDuty
* Azure Activity / Sign-In
* Firewall logs
(不包含私有或敏感日志。)
## 🛡️ 安全
本项目专用于教育和训练目的。
它不包含私有信息或真实的生产数据。
## 📜 许可证
本项目采用 MIT 许可证。
你可以自由使用、修改和分享它。
## 👤 作者
由 beathunterzero 开发,威胁狩猎爱好者
标签:Docker, Elasticsearch, ELK Stack, Filebeat, Pipeline, Threat Hunting, 安全实验室, 安全运营, 安全防御评估, 容器化部署, 扫描框架, 日志摄取, 渗透测试环境, 版权保护, 网络安全, 请求拦截, 越狱测试, 隐私保护