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), 对抗机器学习, 现代安全运营, 逆向工具