monulp/sentinel-soc-home-lab

GitHub: monulp/sentinel-soc-home-lab

一个基于 Microsoft Sentinel 和 Splunk 构建的开源 SOC 家庭实验室,利用真实互联网攻击流量实现检测规则开发、事件调查与多 SIEM 关联分析的完整工作流演示。

Stars: 1 | Forks: 0

# 🛡️ SOC 家庭实验室 — Microsoft Sentinel + Splunk ![仪表盘](https://github.com/monulp/sentinel-soc-home-lab/blob/main/screenshot/dashboard1.png) ## 📋 目录 - [概述](#overview) - [架构](#architecture) - [工具与技术](#tools--technologies) - [检测规则](#detection-rules) - [已调查事件](#incidents-investigated) - [KQL 手册](#kql-playbook) - [仪表盘](#dashboard) - [教程](#tutorials) - [展示技能](#skills-demonstrated) ## 概述 本实验室通过将一台 Linux Web 服务器暴露在公共互联网上,并通过 Microsoft Sentinel 和 Splunk 监控所有攻击流量,来模拟真实的 SOC 环境。此处记录的每个警报、事件和调查均基于**来自真实威胁行为者的真实攻击**。 ### 与众不同之处 - **真实攻击数据** — 非模拟数据,7×24 小时的真实暴力破解和扫描活动 - **多 SIEM** — 在 Sentinel 和 Splunk 之间对相同攻击进行关联分析 - **端到端工作流** — 从日志采集 → 检测规则 → 事件调查 → 关闭 - **专业文档** — 事件报告、KQL 手册、教程 ### 实验室统计数据(截至 2026 年 5 月) | 指标 | 数值 | |---|---| | 检测到的事件总数 | 200+ | | 活跃检测规则 | 6 | | 观察到的唯一攻击者 IP | 50+ | | 已识别的来源国家 | 10+ | | 已阻止的暴力破解尝试 | 4,600+ | ## 架构 ``` ┌─────────────────────────────────────────────────────────┐ │ INTERNET ATTACKERS │ │ SSH Brute Force / Web Scanners / Nmap │ └──────────────────────┬──────────────────────────────────┘ │ ▼ ┌─────────────────────────────────────────────────────────┐ │ server1.adilmonu.com │ │ Digital Ocean Ubuntu 22.04 Droplet │ │ │ │ Apache Web Server ←→ rsyslog ←→ Splunk Agent │ │ SSH Service │ │ Azure Arc Agent │ │ Azure Monitor Agent │ └──────────┬──────────────────────────┬───────────────────┘ │ │ ▼ ▼ ┌──────────────────┐ ┌───────────────────────┐ │ Microsoft │ │ Splunk Enterprise │ │ Sentinel │ │ (Local Instance) │ │ │ │ │ │ Log Analytics │ │ Web Security Dashboard │ │ Analytics Rules │ │ Triggered Alerts │ │ Incident Queue │ │ Custom Searches │ │ Custom Workbook │ │ │ └──────────────────┘ └───────────────────────┘ ``` ### 日志流 ``` Apache Access Log → rsyslog → local0 → Azure Monitor Agent → Sentinel Apache Error Log → rsyslog → local1 → Azure Monitor Agent → Sentinel SSH Auth Log → rsyslog → auth → Azure Monitor Agent → Sentinel ``` ## 工具与技术 | 类别 | 工具 | 用途 | |---|---|---| | **SIEM** | Microsoft Sentinel | 主要 SOC 平台、检测规则、事件管理 | | **SIEM** | Splunk Enterprise | 辅助 SIEM、跨平台关联分析 | | **云** | Microsoft Azure | Sentinel 工作区、Log Analytics、Azure Arc | | **基础设施** | Digital Ocean | Ubuntu 22.04 Droplet(server1.adilmonu.com) | | **日志管理** | Azure Monitor Agent | 日志采集并转发至 Sentinel | | **日志管理** | rsyslog | Linux 服务器上的日志路由 | | **Web 服务器** | Apache2 | 生成 Web 访问/错误日志 | | **查询语言** | KQL | Sentinel 狩猎和检测查询 | | **查询语言** | Splunk 搜索和告警查询 | | **终端** | Azure Arc | 将本地服务器连接到 Azure | ## 检测规则 所有规则均为 Microsoft Sentinel 中自定义构建的 Scheduled Analytics Rules,映射到 MITRE ATT&CK。 | 规则名称 | 严重程度 | MITRE 战术 | 技术 | 调度频率 | 日志源 | |---|---|---|---|---|---| | SSH 暴力破解检测 | 中 | TA0006 凭据访问 | T1110 | 每 5 分钟 | auth/authpriv | | 端口扫描检测 | 高 | TA0043 侦察 | T1595 | 每 5 分钟 | auth/authpriv | | Nmap 扫描检测 | 高 | TA0043 侦察 | T1595.001 | 每 5 分钟 | auth/authpriv | | Web 扫描器检测 | 中 | TA0043 侦察 | T1595 | 每 1 小时 | local0(Apache) | | 高 HTTP 错误率 | 中 | TA0043 侦察 | T1595 | 每 30 分钟 | local0(Apache) | | 可疑 User Agent 检测 | 高 | TA0043 侦察 | T1595 | 每 15 分钟 | local0(Apache) | ![分析规则](https://github.com/monulp/sentinel-soc-home-lab/blob/main/screenshot/analytics-rules.png) ### 检测工程亮点 **SSH 暴力破解规则** — 使用 24 小时回溯和 5 次失败尝试的阈值,按实体对警报进行分组,以防止来自同一攻击者的警报泛滥。 **Web 扫描器规则** — 在发现检测漏洞后,捕获所有可疑状态码(404、301、302、403、400、500)的扫描器,此前仅过滤 404 的规则遗漏了 301 重定向。通过与 Splunk 的跨平台关联分析发现。 **可疑 User Agent** — 零误报规则。通过其 User-Agent 字符串识别已知的攻击工具(Nikto、Gobuster、sqlmap、Nmap、Masscan、Nuclei)。任何匹配均确认为恶意。 ## 已调查事件 ### INC-030 — SSH 暴力破解活动(多来源僵尸网络) ![事件证据](https://github.com/monulp/sentinel-soc-home-lab/tree/main/incidents/Incident30) | 字段 | 详情 | |---|---| | **日期** | 2026 年 5 月 11 日 | | **分类** | 真实阳性 — 良性(攻击失败) | | **严重程度** | 中 | | **总尝试次数** | 2,326 次暴力破解尝试 | | **攻击者 IP** | 7 个 IP,分布在美国、香港、越南、荷兰、墨西哥、摩尔多瓦 | | **峰值流量** | 上午 06:00 波次中约 1,820 次尝试 | | **确认入侵** | 否 — 通过 KQL 确认零次成功认证 | | **MITRE 战术** | TA0006 凭据访问 | **调查摘要:** 75 分钟内 7 个不同 IP 触发了 16 个 Sentinel 警报。所有 IP 均被 Defender XDR 威胁情报标记为可疑。KQL 入侵验证查询返回零结果 — 所有 2,326 次尝试均在 [preauth] 阶段失败。跨越 7 个国家的协调时间符合分布式僵尸网络活动的特征。 📄 [完整事件报告](https://github.com/monulp/sentinel-soc-home-lab/blob/main/incidents/Incident30/report) ### INC-031 — Web 扫描器检测(进行中) | 字段 | 详情 | |---|---| | **日期** | 2026 年 5 月 11 日 | | **分类** | 真实阳性 — 调查中 | | **攻击者 IP** | 118.148.72.193 | | **MITRE 战术** | TA0043 侦察 | ## KQL 手册 针对每个检测规则的完整调查指南 — 针对每种警报类型,按顺序运行哪些查询。 📄 [KQL 调查手册](https://github.com/monulp/sentinel-soc-home-lab/blob/main/docs/KQL-Investigation-Playbook.md) ### 快速参考 ``` // Universal starting query — run this first for every investigation Syslog | where TimeGenerated > ago(24h) | where SyslogMessage contains "ATTACKER_IP_HERE" | project TimeGenerated, Facility, SyslogMessage | order by TimeGenerated asc ``` ## 仪表盘 自定义 Sentinel Workbook,用与此实验室相关的安全特定可视化替代通用模板。 ![SOC 仪表盘](https://github.com/monulp/sentinel-soc-home-lab/tree/main/screenshot) ### 仪表盘面板 - **过去 24 小时活跃事件** — 按规则名称分组的柱状图 - **攻击流量时间线** — 以 30 分钟为区间显示攻击波次 - **Top 10 Web 攻击 IP** — 按请求量排名 - **Top 10 SSH 暴力破解 IP** — 按尝试次数排名 - **HTTP 状态码分布** — 响应码饼图 ## 教程 从零开始构建本实验室的分步指南。 | 教程 | 描述 | 状态 | |---|---|---| | [教程 01 — 实验室搭建](https://github.com/monulp/sentinel-soc-home-lab/blob/main/tutorial-docs/01-azure-sentinel-setup.md) | Digital Ocean Droplet、Azure Arc、Sentinel 工作区、日志采集 | ✅ 已完成 | | 教程 02 — 检测规则 | 构建自定义分析规则、KQL 编写、MITRE 映射 | 🔄 进行中 | | 教程 03 — 攻击模拟 | 运行 Hydra 暴力破解和 Gobuster Web 扫描、调查结果 | ⬜ 计划中 | | 教程 04 — Wazuh EDR | 安装 Wazuh 作为 CrowdStrike 的替代方案、代理部署 | ⬜ 计划中 | ## 展示技能 ### 检测工程 - 从零构建了 6 个自定义 Sentinel Analytics Rules - 编写了带正则表达式提取的 KQL 检测查询 - 通过跨平台关联分析识别并解决了检测漏洞 - 将所有规则映射到 MITRE ATT&CK 框架 ### 事件响应 - 端到端事件调查工作流(分类 → 取证 → KQL → 判定 → 关闭) - 使用定向 KQL 查询进行入侵验证 - 专业事件报告撰写 - 事件分类与判定 ### 威胁狩猎 - 超越警报边界的主动 KQL 狩猎 - 跨平台关联分析(Sentinel + Splunk) - 攻击者 IP 画像和地理位置定位 - 杀伤链重建 ### SIEM 管理 - Microsoft Sentinel 工作区配置 - Log Analytics 工作区管理 - 数据收集规则设置 - Azure Monitor Agent 部署 - 自定义 Workbook 开发 ### Linux 与基础设施 - Ubuntu 服务器管理 - rsyslog 配置用于多目标日志路由 - Apache2 Web 服务器搭建和日志管理 - Azure Arc 代理安装与管理 ## 关于 本实验室是为网络安全分析师职位面试准备的一部分,展示了在真实基础设施上使用企业级工具的实用 SOC 技能。 **联系方式:** https://github.com/monulp **平台:** Microsoft Sentinel | Splunk | Digital Ocean | Azure *所有展示的攻击数据均来自面向互联网的流量的真实数据。无模拟数据。*
标签:AMSI绕过, APT, brute force, CISA项目, Cloudflare, Dashboard, DNS信息、DNS暴力破解, FTP漏洞扫描, IOC, IP 地址批量处理, KQL, KQL文档, Kusto查询语言, Linux服务器, Microsoft Sentinel, MITRE ATT&CK, Nmap, PB级数据处理, SOAR, SSH暴力破解, Web防火墙, YARA规则, 事件报告, 事件调查, 反取证, 多SIEM关联, 威胁情报, 威胁检测, 安全事件, 安全响应, 安全编排, 安全评估, 安全运维, 安全运营中心, 家庭实验环境, 开发者工具, 恶意IP, 技能展示, 插件系统, 攻击者行为, 攻击链, 数字取证, 数据展示, 数据统计, 检测规则, 真实攻击, 端口扫描, 红队, 网络安全, 网络映射, 网络资产发现, 自动化脚本, 虚拟驱动器, 隐私保护