ShiroKiro/soc-security-monitoring-lab
GitHub: ShiroKiro/soc-security-monitoring-lab
一个模拟真实安全运营中心(SOC)的实战实验室项目,用于练习端点监控、网络IDS、告警调查及安全数据分析。
Stars: 0 | Forks: 0
# SOC 安全监控实验室 — Wazuh、Suricata、Sysmon、Python、SQLite 与 Power BI
## 项目概述
本项目是一个动手实践的 SOC 风格安全监控实验室,旨在练习端点监控、网络 IDS 可见性、告警调查、日志分析和安全报告。
该实验室结合了 **Wazuh SIEM**、**Suricata IDS**、**Linux 和 Windows 受监控端点**、**Sysmon**、**MITRE ATT&CK 映射**、**Python 日志分析器**、**基于 SQLite 的分析**以及 **Power BI 安全仪表板**。
本项目是作为 **初级 SOC 分析师 / 网络安全分析师** 职位的个人作品集项目而构建的。
## 展示的核心技能
- 使用 Wazuh 进行 SIEM 部署和告警审查
- 使用 Wazuh Agent 进行 Linux 端点监控
- 使用 Wazuh Agent 进行 Windows 端点监控
- 通过 `eve.json` 收集 Suricata IDS 日志
- Windows 安全 Event ID 分析
- 基于 Sysmon 的端点可见性
- 使用 Python 解析 Linux 身份验证日志
- SQLite 存储和基于 SQL 的调查
- 创建 Power BI 仪表板
- 文件完整性监控
- SOC 风格的告警分类和调查文档
- 对选定检测场景进行 MITRE ATT&CK 映射
## 实验室架构
该实验室是在本地虚拟化环境中使用隔离的虚拟机构建的。
```
Kali Linux / Test VM
|
| controlled test traffic
v
Ubuntu monitored host
- Wazuh Agent
- Suricata IDS
- SSH service
|
| endpoint logs + Suricata eve.json
v
Wazuh Server
- Wazuh Manager
- Wazuh Indexer
- Wazuh Dashboard
Windows endpoint
- Wazuh Agent
- Sysmon
- Windows Security logs
|
| Windows events + Sysmon telemetry
v
Wazuh Server
```
所有事件都是在隔离的实验室环境中有意生成的。
## 主要组件
| 组件 | 用途 |
|---|---|
| Wazuh Server | 用于收集、处理和审查告警的中央 SIEM 平台 |
| Ubuntu 受监控主机 | 由 Wazuh Agent 监控的 Linux 端点 |
| Suricata IDS | 安装在 Ubuntu 受监控主机上的网络 IDS |
| Kali Linux / 测试 VM | 受控测试流量和身份验证事件生成 |
| Windows 端点 | 由 Wazuh Agent 监控的 Windows 系统 |
| Sysmon | 详细的 Windows 端点遥测 |
| Python 日志分析器 | Linux 身份验证日志解析和报告生成 |
| SQLite | 结构化事件存储和基于 SQL 的分析 |
| Power BI | 安全事件仪表板和报告 |
## 实验室网络示例
| 机器 | 示例 IP | 用途 |
|---|---:|---|
| Wazuh Server | `192.168.62.10` | SIEM 服务器 |
| Ubuntu 受监控主机 | `192.168.62.20` | Linux 端点、Wazuh Agent、Suricata |
| Kali Linux / 测试 VM | DHCP 分配,例如 `192.168.62.129` | 受控测试流量 |
| Windows 端点 | `192.168.62.40` | Windows 日志、Sysmon、Wazuh Agent |
## 使用的工具
- Wazuh
- Suricata
- Sysmon
- Ubuntu Server
- Kali Linux
- Windows
- VMware Workstation Pro
- Python
- SQLite
- SQL
- Power BI
- MITRE ATT&CK
## 调查案例
| 案例 | 场景 | 主要数据源 | 检测重点 |
|---|---|---|---|
| 案例 1 | SSH 暴力破解 / 登录失败尝试 | Linux 身份验证日志、Wazuh | 可疑身份验证 / 暴力破解行为 |
| 案例 2 | 文件完整性监控 | Wazuh FIM、Ubuntu 端点 | 检测未经授权的文件修改 |
| 案例 3 | Suricata 网络事件 | Suricata `eve.json`、Wazuh | 网络 IDS 事件审查 |
| 案例 4 | Windows 登录失败尝试 | Windows 安全日志、Wazuh | Event ID 4625 / 身份验证失败调查 |
| 案例 5 | 创建新本地用户 | Windows 安全日志、Wazuh | Event ID 4720 / 账户创建监控 |
| 案例 6 | 用户被添加到 Administrators 组 | Windows 安全日志、Wazuh | Event ID 4732 / 特权组更改 |
| 案例 7 | 可疑的 PowerShell 活动 | Windows 安全日志、Sysmon、Wazuh | Event ID 4688 / 进程创建调查 |
调查文件存储在:
```
investigations/
```
## 调查工作流
对于每个案例,使用了以下工作流:
1. 识别告警或事件类型。
2. 检查受影响的主机。
3. 审查源、目标、用户和时间戳信息。
4. 审查相关的端点、网络或 Windows 日志。
5. 评估活动是预期的还是可疑的。
6. 记录风险。
7. 提出建议的操作。
8. 在适用时将案例映射到 MITRE ATT&CK。
## MITRE ATT&CK 映射
已完成的调查案例在适用时映射到了相关的 MITRE ATT&CK 战术和技术。
该映射用于学习和文档记录目的。实验室事件是受控的,并在隔离环境中有意生成。
完整映射:
```
docs/mitre-attack-mapping.md
```
## 数据分析流水线
该项目还包括一个小型的安全数据分析流水线。
```
Linux auth.log
↓
Python Log Analyzer
↓
CSV + SQLite database
↓
SQL analysis
↓
Power BI dashboard
```
Python 分析器提取 SSH 身份验证事件,将其以 CSV 和 SQLite 格式存储,检测从失败到成功的登录模式,并为 Power BI 准备结构化数据集。
## Python 日志分析器
Python 日志分析器处理 Linux 身份验证日志并提取 SSH 身份验证事件。
分析器文件夹:
```
python-log-analyzer/
```
主要输出:
```
python-log-analyzer/output/ssh_auth_events.csv
python-log-analyzer/output/security_events_for_powerbi.csv
python-log-analyzer/output/auth_events.db
```
该分析器支持常见的 SSH 日志格式,例如:
```
sshd[PID]
sshd-session[PID]
```
它提取:
- 时间戳
- 主机
- 用户名
- 源 IP
- 源端口
- 事件类型
- 原始日志行
它还创建一个 Power BI 就绪的 CSV 数据集,包含标准化字段,例如:
- 事件日期
- 事件时间
- 主机
- 用户
- 源 IP
- 事件类型
- 风险级别
- 事件计数
## SQLite 和 SQL 分析
解析后的 SSH 身份验证事件存储在 SQLite 数据库中:
```
python-log-analyzer/output/auth_events.db
```
SQL 查询存储在:
```
python-log-analyzer/queries/
```
已实现的查询示例:
- 失败最多的源 IP
- 按用户名分类的失败尝试
- 从失败到成功的登录模式
- Power BI 汇总查询
这部分演示了 Python 和 SQL 如何支持 SOC 风格的日志分析。
## Power BI 安全仪表板
使用 Python 日志分析器生成的结构化 CSV 数据集创建了 Power BI 仪表板。
仪表板文件:
```
powerbi-dashboard/security-authentication-dashboard.pbix
```
数据集:
```
python-log-analyzer/output/security_events_for_powerbi.csv
```
该仪表板可视化展示:
- 身份验证事件总数
- SSH 登录失败尝试
- SSH 登录成功
- 唯一源 IP 地址
- 按源 IP 分类的登录失败次数
- 按目标用户分类的登录失败次数
- 按风险级别分类的事件
- 事件类型细分
- 详细的身份验证事件表
## 截图
截图存储在:
```
screenshots/
```
主要截图组:
| 截图范围 | 描述 |
|---|---|
| `01`–`04` | Wazuh Server 和 Linux agent 设置 |
| `05`–`08` | SSH 登录失败和文件完整性监控案例 |
| `09`–`12` | Suricata 安装和 Wazuh 集成 |
| `13`–`16` | Windows Agent 和 Sysmon 监控 |
| `17`–`24` | Windows 调查案例 |
| `25`–`28` | Python 分析器、SQLite 和 Power BI 数据集准备 |
| `29`–`30` | Power BI 安全仪表板 |
## 本项目展示了什么
本项目展示了以下能力:
- 部署基础的 SIEM 实验室环境;
- 将 Linux 和 Windows 端点连接到 Wazuh;
- 收集和审查端点及 IDS 事件;
- 调查 Linux 和 Windows 身份验证事件;
- 配置文件完整性监控;
- 将 Suricata IDS 日志与 Wazuh 集成;
- 收集 Windows 安全和 Sysmon 事件;
- 调查 Windows 账户管理事件;
- 使用 Windows 日志和 Sysmon 审查 PowerShell 活动;
- 使用结构化的 SOC 工作流记录告警;
- 将选定的检测映射到 MITRE ATT&CK;
- 使用 Python 自动化 Linux 日志解析;
- 将解析的事件存储在 SQLite 中;
- 运行基于 SQL 的安全分析;
- 构建 Power BI 仪表板以进行安全事件报告。
## 结果
该实验室成功演示了:
- Wazuh Server 作为中央 SIEM 平台的部署;
- 使用 Wazuh Agent 进行 Linux 端点监控;
- 使用 Wazuh Agent 进行 Windows 端点监控;
- SSH 登录失败检测;
- 文件完整性监控告警生成;
- Suricata IDS 安装和事件生成;
- 在 Wazuh 中收集 Suricata `eve.json`;
- Windows 登录失败检测;
- 新本地用户创建检测;
- 本地 Administrators 组成员更改检测;
- 使用 Sysmon 和 Wazuh 进行 PowerShell 活动监控;
- 为调查案例进行 MITRE ATT&CK 映射;
- 基于 Python 的身份验证日志解析;
- 生成 CSV 和 SQLite 输出;
- 基于 SQL 的身份验证事件分析;
- 创建 Power BI 安全仪表板。
## 局限性
本项目是在本地虚拟化实验室环境中完成的。
所有事件均出于学习目的被有意且安全地生成。
该实验室并不代表完整的生产级 SOC 环境。但是,它展示了与初级 SOC 工作相关的实用概念,包括日志收集、告警审查、调查文档、事件分析和基础安全报告。
## 未来改进
可能的未来改进:
- 添加自定义 Wazuh 检测规则。
- 扩展基于 Sysmon 的检测场景。
- 通过添加更多 Sysmon Event ID 1 示例来扩展 Windows 进程创建分析。
- 添加更多威胁狩猎查询。
- 添加更多 Suricata 检测场景。
- 为 Windows 和 Suricata 事件添加更多 Power BI 页面。
- 通过添加完整的年份和标准化的 datetime 字段来改进时间戳解析。
- 添加从 Wazuh 告警到分析流水线的自动导出。
## 仓库结构
```
.
├── investigations/ # SOC-style investigation reports
├── docs/ # MITRE ATT&CK mapping and supporting documentation
├── python-log-analyzer/ # Python parser, SQLite database and SQL queries
│ ├── output/ # Generated CSV and SQLite outputs
│ └── queries/ # SQL investigation queries
├── powerbi-dashboard/ # Power BI dashboard file
├── screenshots/ # Lab screenshots and evidence
└── README.md
```
## 项目状态
此作品集项目的主版本已完成。
已完成的部分:
- Wazuh SIEM 实验室
- Linux 端点监控
- Suricata IDS 集成
- Windows 端点监控
- Sysmon 监控
- 七个记录在案的调查案例
- MITRE ATT&CK 映射
- Python 日志分析器
- SQLite 和 SQL 分析
- Power BI 安全仪表板
## 如何使用本项目
1. 查看实验室架构和使用的工具。
2. 打开 `investigations/` 文件夹以阅读 SOC 风格的案例报告。
3. 在 `python-log-analyzer/` 中查看 Python 日志分析器。
4. 在 `python-log-analyzer/output/` 中检查生成的 CSV 和 SQLite 输出。
5. 打开 Power BI 仪表板以查看身份验证事件可视化。
6. 使用截图作为已完成实验室场景的支持性证据。
标签:Cloudflare, Metaprompt, MITRE ATT&CK, Suricata, Wazuh, x64dbg, 入侵检测(IDS), 多线程, 安全运营(SOC), 对抗机器学习, 现代安全运营, 逆向工具