ilyas-hodaiby/soc-homelab
GitHub: ilyas-hodaiby/soc-homelab
一个从零搭建的完整 SOC 实验室项目,集成 Wazuh、ELK、TheHive、MISP 等工具,通过 SSH 暴力破解模拟演示从威胁检测到事件响应的全流程。
Stars: 0 | Forks: 0
# 🛡️ SOC Homelab — 威胁检测与事件响应实验室
## 📌 概述
这个项目是我从零开始构建的一个动手实践的 SOC 实验室,旨在模拟真实的安全运营中心如何检测、调查和响应网络威胁。我在多台虚拟机上部署了完整的检测与响应技术栈,对每个工具进行了端到端的配置,并运行了实时的 SSH 暴力破解攻击模拟,以验证整个流水线——从原始日志摄入到事件案例的闭环。
其目的是从实践层面理解 SOC 工作流程:日志如何流经流水线,警报如何被触发和调优,以及分析师如何管理从检测到解决的事件。
## 🏗️ 系统架构
```
┌─────────────────────────────────────────────────────────────────┐
│ SOC HOMELAB NETWORK │
│ │
│ ┌──────────────┐ Wazuh Agent ┌──────────────────────┐ │
│ │ Kali Linux │ ─────────────────► │ Wazuh Manager │ │
│ │ (Attacker) │ │ (SIEM + EDR) │ │
│ └──────────────┘ └──────────┬───────────┘ │
│ │ │
│ ┌──────────────┐ │ Logstash │
│ │ Ubuntu Agent │ ─── Wazuh Agent ──────────────┤ │
│ │ (Target) │ ▼ │
│ └──────────────┘ ┌───────────────────────────┐ │
│ │ ELK Stack │ │
│ │ Elasticsearch (storage) │ │
│ │ Logstash (pipeline) │ │
│ │ Kibana (dashboards) │ │
│ └──────────────┬────────────┘ │
│ │ │
│ ┌──────────────────────┤ │
│ │ │ │
│ ▼ ▼ │
│ ┌──────────────────┐ ┌──────────────────┐ │
│ │ ElastAlert │ │ MISP (Threat │ │
│ │ (Alerting) │ │ Intelligence) │ │
│ └────────┬─────────┘ └────────┬─────────┘ │
│ │ │ │
│ └──────────┬───────────┘ │
│ ▼ │
│ ┌─────────────────────┐ │
│ │ TheHive + Cortex │ │
│ │ (IR + SOAR) │ │
│ └─────────────────────┘ │
└─────────────────────────────────────────────────────────────────┘
```
📄 有关数据流和组件角色的完整细分,请参阅 [docs/architecture.md](docs/architecture.md)。
## 🧰 工具与技术栈
| 工具 | 角色 | 版本 |
|---|---|---|
| **Wazuh** | SIEM + EDR — 基于代理的日志收集、威胁检测、自定义规则 | 4.7 |
| **Elasticsearch** | 日志存储和全文搜索后端 | 8.11 |
| **Logstash** | 日志摄入与富化流水线 | 8.11 |
| **Kibana** | 可视化、仪表板和警报监控 | 8.11 |
| **ElastAlert** | 基于 Elasticsearch 的规则化警报引擎 | 2.x |
| **MISP** | 威胁情报平台 — IOC 共享与富化 | 2.4 |
| **TheHive** | 事件案例管理与调查平台 | 5.x |
| **Cortex** | 自动化 IOC 分析与响应引擎 | 3.x |
## 🎯 攻击场景:SSH 暴力破解
### 我模拟了什么
我在一台 Kali Linux 机器上使用 **Hydra** 对运行 Wazuh 代理的 Ubuntu 目标发起了 SSH 暴力破解攻击。该攻击在短时间内产生了数百次失败的认证尝试,从而触发了整个检测技术栈的警报。
### 完整流水线 — 发生了什么
```
Hydra (Kali) ──► SSH failed logins (Ubuntu) ──► Wazuh Agent collects auth.log
──► Wazuh Manager detects pattern (Rule 5763) ──► Alert forwarded to Logstash
──► Indexed in Elasticsearch ──► Visualised in Kibana dashboard
──► ElastAlert fires notification ──► Incident created in TheHive
──► IOCs cross-referenced in MISP ──► Case investigated and closed
```
### 主要结果
| 指标 | 数值 |
|---|---|
| 攻击持续时间 | ~3 分钟 |
| 失败登录尝试次数 | 432 |
| 尝试的唯一用户名数量 | 8 |
| 警报触发阈值 | 120 秒内 8 次失败尝试 |
| 触发的 Wazuh 规则 | Rule ID 5763 — 多次身份验证失败 |
| MITRE ATT&CK 技术 | T1110.001 — 暴力破解:密码猜测 |
| 警报触发时间 | 攻击开始后 < 60 秒 |
| 事件状态 | 已关闭 — 真阳性 |
📄 完整演练:[scenarios/brute-force/README.md](scenarios/brute-force/README.md)
📄 检测分析:[scenarios/brute-force/detection-analysis.md](scenarios/brute-force/detection-analysis.md)
📄 事件报告:[reports/incident-report-brute-force.md](reports/incident-report-brute-force.md)
## 🔍 展现的核心技能
**SIEM 与日志管理**
- 在多个 Linux 终端上部署并配置了 Wazuh 代理
- 构建了用于结构化日志转发的 Logstash 摄入流水线
- 编写了自定义 Wazuh 规则以检测超出默认阈值的暴力破解模式
- 调整警报阈值以减少误报
**威胁检测**
- 分析 `auth.log` 和 Wazuh 警报以识别攻击模式
- 将观察到的行为映射到 MITRE ATT&CK (T1110.001)
- 提取并记录 IOC:源 IP、目标用户名、时间戳
**警报与自动化**
- 配置了 ElastAlert 基于频率的 SSH 失败激增规则
- 设置了到 TheHive 创建案例的警报路由
**威胁情报**
- 将 MISP 源集成到 TheHive 中以进行 IOC 富化
- 在调查期间将攻击者 IP 与威胁情报进行交叉比对
**事件响应**
- 在 TheHive 中管理完整的事件生命周期:创建 → 调查 → 关闭
- 使用 Cortex 自动化 IP 信誉分析
- 生成包含时间线、IOC、根本原因和补救措施的 structured 事件报告
## 🖥️ 实验室环境
| 组件 | 操作系统 | 内存 | CPU |
|---|---|---|---|
| Wazuh Manager + ELK | Ubuntu 22.04 LTS | 8 GB | 4 vCPU |
| TheHive + Cortex + MISP | Ubuntu 22.04 LTS | 6 GB | 2 vCPU |
| Wazuh 代理 (目标) | Ubuntu 22.04 LTS | 2 GB | 1 vCPU |
| Kali Linux (攻击者) | Kali Rolling | 2 GB | 1 vCPU |
| Hypervisor | VirtualBox / VMware | — | — |
## 📂 仓库结构
```
soc-homelab/
│
├── README.md
├── docs/
│ ├── architecture.md
│ └── setup/
│ ├── wazuh-setup.md
│ ├── elk-setup.md
│ ├── misp-setup.md
│ └── thehive-setup.md
├── configs/
│ ├── wazuh/
│ │ ├── ossec.conf
│ │ └── rules/custom-brute-force-rule.xml
│ ├── elk/
│ │ └── logstash-pipeline.conf
│ ├── elastalert/
│ │ └── ssh-brute-force-rule.yaml
│ └── thehive/
│ └── application.conf
├── scenarios/
│ ├── brute-force/
│ │ ├── README.md
│ │ └── detection-analysis.md
│ └── playbooks/
│ └── brute-force-playbook.md
├── screenshots/
│ └── (add your screenshots here)
├── logs/
│ └── sample-brute-force.log
└── reports/
└── incident-report-brute-force.md
```
## 👤 关于
**Ilyas Hodaiby** — Ulster University London 计算机科学硕士研究生
有志成为 SOC 分析师 | 网络安全学生 | 正在准备 eCTHP 认证
[](https://linkedin.com/in/ilyas-hodaiby)
标签:AMSI绕过, CIDR查询, Cortex, EDR, Elasticsearch, ELK Stack, incident response, Logstash, OISF, OPA, SOC实验室, SOC架构, SSH暴力破解, TheHive, Wazuh, 内容过滤, 参数枚举, 威胁情报, 威胁检测, 安全事件响应, 安全运营中心, 库, 应急响应, 开发者工具, 提示注入防御, 数据展示, 日志管理, 暴力破解模拟, 源代码安全, 红队, 网络安全, 网络安全实验, 网络映射, 脆弱性评估, 越狱测试, 速率限制, 隐私保护, 靶场