beathunterzero/elastic-security-lab

GitHub: beathunterzero/elastic-security-lab

这是一个基于 Docker 和 Elastic Stack 构建的威胁狩猎训练实验室,集成了真实数据集与自动化日志摄取管道,用于练习安全分析与可视化。

Stars: 1 | Forks: 0

# 🎯 elastic-security-lab ![Elasticsearch](https://img.shields.io/badge/Elasticsearch-8.17-blue) ![Kibana](https://img.shields.io/badge/Kibana-8.17-yellow) ![Filebeat](https://img.shields.io/badge/Filebeat-8.17-green) ![License](https://img.shields.io/badge/License-MIT-purple) 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, 安全实验室, 安全运营, 安全防御评估, 容器化部署, 扫描框架, 日志摄取, 渗透测试环境, 版权保护, 网络安全, 请求拦截, 越狱测试, 隐私保护