taoufikhamza/Analyse-d-Incidents-Blue-Team-Security-Operations-Center-SOC-Lab
GitHub: taoufikhamza/Analyse-d-Incidents-Blue-Team-Security-Operations-Center-SOC-Lab
基于 Wazuh SIEM 的蓝队安全运营实验室,完整复现 SSH 暴力破解攻击的检测、MITRE ATT&CK 映射、IOC 分析与自动化阻断全流程。
Stars: 0 | Forks: 0
# 🛡️ SOC Lab — 检测 SIEM (Wazuh)、事件分析与自动化响应 (Blue Team)





## 📌 项目概述
此仓库包含了一个完全虚拟化的 **Security Operations Center (SOC) Lab** 的完整指南和技术文档。该实验室模拟了 **Blue Team** 分析师的职责,主要负责:
1. 基于 **Wazuh** **部署 SIEM/XDR 监控基础设施**。
2. **模拟真实的攻击场景 (Red Team)**:网络侦察 (`Nmap`) 和 SSH 字典/暴力破解攻击 (`Hydra`)。
3. **实时收集和分析遥测数据**(`auth.log`、SIEM 告警)。
4. 根据 **MITRE ATT&CK** 方法论对事件进行确认与分类,并生成 **IOCs**。
5. **启用自动化响应**(*Active Response*),在防火墙级别阻断攻击者 (`firewall-drop`)。
## 📐 实验室架构与网络拓扑
该环境基于 **VMware Workstation / VirtualBox** 构建,配置在隔离的 NAT 子网(`192.168.146.0/24`)下。

### 🖥️ 虚拟机清单
| 机器 | 操作系统 | 角色 | IP 地址 | 组件 / 工具 |
| :--- | :--- | :--- | :--- | :--- |
| **Wazuh Server** | Ubuntu Server 22.04 | **SIEM / SOC 核心** | `192.168.146.129` | Wazuh Manager, Indexer, OpenSearch Dashboard |
| **Ubuntu Target** | Ubuntu 22.04 LTS | **目标(受害者)** | `192.168.146.131` | Agent Wazuh v4.7.0, SSH 服务 (端口 22) |
| **Kali Linux** | Kali Linux 2025.4 | **攻击者 (Red Team)** | `192.168.146.130` | Nmap, Hydra, 字典 `rockyou.txt` |
## 💻 循序渐进的复现指南
要在您自己的机器上从零开始复现此实验室,请按照以下步骤操作。
### 🛠️ 前置条件
* Hypervisor:**VMware Workstation Pro / Player** 或 **VirtualBox**。
* 推荐的系统资源:
* RAM:总计 16 GB(Wazuh Server 4 GB,Ubuntu Target 2 GB,Kali 2 GB)。
* 磁盘空间:约 40 GB 的可用空间。
### 1️⃣ 第一步:虚拟化网络配置 (VMware NAT)
1. 在 VMware 中打开虚拟网络编辑器 (**Virtual Network Editor**)。
2. 创建/配置一个 **NAT 网络(例如:VMnet8)**,IP 范围设为:`192.168.146.0/24`。
3. 为您的 3 台虚拟机分配静态 IP 或通过 DHCP 预留 IP。
### 2️⃣ 第二步:部署 Wazuh SIEM Manager (服务器)
在 **Wazuh Server** 虚拟机 (`192.168.146.129`) 上:
```
# 更新系统
sudo apt update && sudo apt upgrade -y
# 下载并运行 Wazuh 自动化安装助手
curl -sO https://packages.wazuh.com/4.x/wazuh-install.sh
curl -sO https://packages.wazuh.com/4.x/config.yml
# 启动组件安装 (Manager, Indexer, Dashboard)
sudo bash wazuh-install.sh --all-in-one
# 安装完成后,请记下生成的 admin 凭据
# 通过浏览器访问 dashboard:https://192.168.146.129
```
### 3️⃣ 第三步:在目标机器上安装并连接 Wazuh Agent
在 **Ubuntu Target** 虚拟机 (`192.168.146.131`) 上:
```
# 1. 通过指定 Wazuh 服务器 IP 下载 agent 安装包
wget https://packages.wazuh.com/4.x/apt/pool/main/w/wazuh-agent/wazuh-agent_4.7.0-1_amd64.deb
sudo WAZUH_MANAGER='192.168.146.129' dpkg -i ./wazuh-agent_4.7.0-1_amd64.deb
# 2. 启用并启动 agent 服务
sudo systemctl daemon-reload
sudo systemctl enable wazuh-agent
sudo systemctl start wazuh-agent
# 3. 检查连接状态
sudo systemctl status wazuh-agent
```
* **验证**:在 Wazuh Dashboard 中,前往 `Endpoints Summary` 确认 Agent 状态为 **Active**。
### 4️⃣ 第四步:从 Kali Linux 模拟攻击 (Red Team)
从 **Kali Linux** 虚拟机 (`192.168.146.130`) 发起:
#### 阶段 4.1 — 使用 Nmap 进行网络侦察
```
# 全端口扫描、版本检测 (-sV) 及默认脚本 (-sC)
nmap -sV -sC -A 192.168.146.131
```
#### 阶段 4.2 — 使用 Hydra 进行 SSH 暴力破解攻击
```
# 针对用户 'root' 的字典攻击
hydra -l root -P /usr/share/wordlists/rockyou.txt ssh://192.168.146.131 -t 4 -V
```
* `-l root`:针对特权用户。
* `-P /usr/share/wordlists/rockyou.txt`:常见密码字典。
* `-t 4`:4 个并发线程,以产生大量请求。
* `-V`:详细模式,显示每次身份验证尝试。
### 5️⃣ 第五步:日志分析与 SIEM 检测 (Blue Team)

#### 📄 在受害者机器上收集的原始遥测数据 (`/var/log/auth.log`)
自动化尝试产生了大量的身份验证失败记录,伴随临时端口的快速轮换:
```
May 17 18:31:03 victim sshd[2927]: Failed password for root from 192.168.146.130 port 40444 ssh2
May 17 18:31:03 victim sshd[2930]: Failed password for root from 192.168.146.130 port 40468 ssh2
May 17 18:31:03 victim sshd[2929]: Failed password for root from 192.168.146.130 port 40450 ssh2
May 17 18:31:06 victim sshd[2928]: Failed password for root from 192.168.146.130 port 40462 ssh2
```
#### 📊 事件通用指标 (`INC-2026-001`)
* **攻击持续时间:** 约 1 小时 51 分钟 (18:31:03 – 20:22:15)
* **产生的告警数量:** `309`
* **身份验证失败次数:** `285`
* **身份验证成功次数:** `3` *(非攻击期间的合法管理员访问)*
* **失陷率:** **`0%` (攻击已被遏制,0 次违规访问)**
#### 🚨 触发的 Wazuh SIEM 规则
| 规则 ID | 等级 | Wazuh 描述 | 组 | MITRE ATT&CK |
| :---: | :---: | :--- | :--- | :---: |
| **5760** | 5 | `sshd: authentication failed` | `authentication_failed` | `T1110.001`, `T1021.004` |
| **5763** | 10 | `sshd: brute force trying to get access` | `authentication_failures` | `T1110` |
| **5503** | 5 | `PAM: User login failed` | `authentication_failed` | `T1110.001` |
| **5758** | 8 | `Maximum authentication attempts exceeded` | `authentication_failures` | `T1110` |
| **5551** | 10 | `PAM: Multiple failed logins in a small period` | `authentication_failures` | `T1110` |
| **40111** | 10 | `Multiple authentication failures` | `authentication_failures` | `T1110` |
| **651** | 3 | `Host Blocked by firewall-drop Active Response` | `active-response` | — |
| **652** | 3 | `Host Unblocked by firewall-drop Active Response` | `active-response` | — |
## 🎯 MITRE ATT&CK 映射
| 战术 | 技术ID | 技术 / 子技术 | 实验室中的应用 |
| :--- | :--- | :--- | :--- |
| **Reconnaissance** | `T1046` | Network Service Discovery | 通过 Nmap 探测目标 (端口 22/tcp) |
| **Credential Access** | `T1110` | Brute Force | 全局暴力破解攻击 |
| **Credential Access** | `T1110.001` | Password Guessing | 使用 `rockyou.txt` 进行 Hydra 字典攻击 |
| **Lateral Movement** | `T1021.004` | Remote Services: SSH | 尝试通过 SSH 进行远程接管 |
| **Defense Evasion** | `T1078` | Valid Accounts | 获取有效的 `root` 凭据 |
## 🔍 攻陷指标 (IOCs)
| IOC 类型 | 值 | 描述与上下文 |
| :--- | :--- | :--- |
| **攻击者 IP** | `192.168.146.130` | Kali Linux 机器的源地址 |
| **源端口** | 临时端口 (`40444+`) | Hydra 生成的动态端口绑定 |
| **目标账户** | `root` | 285 次尝试中针对的标识符 |
| **SSH User-Agent** | `libssh` / `Hydra` | `sshd` 日志中可识别的标头 |
| **行为特征** | 在约 1 小时 51 分内失败 285 次 | 高频自动化流量 |
## ⚡ 自动化响应与安全加固 (Hardening)
### 🛡️ Active Response (Wazuh)
在检测到规则 `5763`(等级 10)时,目标机器上触发了 **Active Response** 脚本 `firewall-drop`,自动插入 `iptables` 规则以阻止来自 `192.168.146.130` 的流量。
### 🔐 SSH 服务安全加固建议
为了永久保护服务器免受暴力破解攻击:
1. **禁用密码身份验证** (`/etc/ssh/sshd_config`):
PasswordAuthentication no
PubkeyAuthentication yes
2. **禁止 Root 账户直接登录**:
PermitRootLogin no
3. **使用 UFW 限制 IP 访问**:
sudo ufw default deny incoming
sudo ufw allow from to any port 22
sudo ufw enable
4. **配置 Fail2Ban**:
封禁任何在 60 秒内产生超过 5 次失败尝试的 IP。
5. **切换到非标准 SSH 端口**(例如:`2222`)。
## 📜 SOC 分析师实用命令
```
# 1. 在 Manager 端检查活动的 agent
sudo /var/ossec/bin/agent_control -la
# 2. 统计 auth.log 中 SSH 失败次数
sudo grep "Failed password" /var/log/auth.log | wc -l
# 3. 实时过滤 Wazuh 中级别 >= 10 的告警
sudo cat /var/ossec/logs/alerts/alerts.json | python3 -c "
import sys, json
for line in sys.stdin:
alert = json.loads(line)
if alert.get('rule', {}).get('level', 0) >= 10:
print(f\"[{alert.get('timestamp')}] Rule {alert['rule']['id']} ({alert['rule']['level']}): {alert['rule']['description']}\")
"
```
## 🤝 贡献与许可
欢迎您的贡献!随时可以提交 *Issue* 或 *Pull Request*,以改进检测规则或添加新的攻击场景。
* **许可证:** MIT License
标签:Cloudflare, CTI, MITRE ATT&CK, Wazuh, 安全实验环境, 安全运营中心(SOC), 插件系统