Kico-bot/soc-homelab-ms
GitHub: Kico-bot/soc-homelab-ms
基于Azure和微软Defender全栈构建的SOC家庭实验室,通过暴露蜜罐收集真实攻击数据,完整覆盖SIEM、EDR、XDR、NDR和漏洞管理的检测与响应生命周期。
Stars: 0 | Forks: 0
# 基于云的 SOC 家庭实验室 – Microsoft 安全堆栈
## 项目目标与企业应用价值
本项目在云环境中模拟了一个贴近生产的 SOC(安全运营中心)环境。目标是亲手实践并记录完整的**检测与响应周期** —— 从日志收集、威胁检测到事件分析。
所获得的知识可直接应用于真实的企业环境:
- 使用 Microsoft Sentinel 进行 **SIEM 运营**(规则、KQL、工作簿)
- 通过 Microsoft Defender for Endpoint 和 Defender XDR 进行 **EDR/XDR 集成**
- 通过 Azure 层面的网络分析(NSG Flow Logs, Threat Intelligence)实现 **NDR 概念**
## 架构
```
┌─────────────────────────────────────────────────────────────┐
│ AZURE CLOUD │
│ │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ Windows 10 VM │ │ Microsoft Sentinel │ │
│ │ (Exposed Test) │──────▶ │ (SIEM / SOAR) │ │
│ │ │ Logs │ │ │
│ │ • RDP exponiert │ │ • Analytics Rules │ │
│ │ • Sysmon aktiv │ │ • KQL Queries │ │
│ │ • AMA Agent │ │ • Workbooks / Maps │ │
│ └──────────────────┘ │ • SOAR Playbooks │ │
│ └──────────────────────────┘ │
│ ┌──────────────────┐ ┌──────────────────────────┐ │
│ │ Microsoft │ │ Defender Vulnerability │ │
│ │ Defender XDR │◀──────▶│ Management │ │
│ │ (EDR/XDR) │ │ (CVE-Tracking, Patching)│ │
│ └──────────────────┘ └──────────────────────────┘ │
│ │
│ ┌──────────────────────────────────────────────────────┐ │
│ │ Log Analytics Workspace ← zentrale Datenplattform │ │
│ └──────────────────────────────────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘
▲
│ Echte Angriffe aus dem Internet
│ (Brute-Force, Credential Stuffing, Port Scans)
```
## 使用的技术与产品
| 类别 | 产品 | 功能 |
|---|---|---|
| **SIEM** | Microsoft Sentinel | 日志关联、告警、仪表板 |
| **EDR** | Microsoft Defender for Endpoint | 端点检测与响应 |
| **XDR** | Microsoft Defender XDR | 跨领域攻击检测(电子邮件、身份、端点) |
| **NDR** | Azure NSG Flow Logs + Sentinel | 网络流量分析、异常连接 |
| **VM** | Microsoft Defender Vulnerability Management | CVE 检测、风险评估、补丁优先级排序 |
| **SOAR** | Sentinel Playbooks (Azure Logic Apps) | 自动化事件响应 |
| **日志传输** | Azure Monitor Agent (AMA) | 通过 DCR 进行结构化日志转发 |
| **语言** | KQL (Kusto Query Language) | 威胁狩猎、规则开发 |
| **地理位置富化** | GeoIP Watchlist | 用于攻击者的 IP 到位置映射 |
## 设置与配置
### 1. Azure 基础设施
- **资源组** `RG-SOCLab` 作为所有资源的逻辑容器
- 具有已定义地址空间和子网划分的**虚拟网络**
- **Windows 10 VM** 作为暴露的测试系统(故意暴露,可作为 Honeypot 使用)
- **网络安全组**用于模拟开放的攻击面
### 2. 日志收集与 SIEM 连接
- **Log Analytics Workspace** 作为中央数据存储库
- 在 VM 上安装了 **Azure Monitor Agent (AMA)**
- **数据收集规则 (DCR)** 用于结构化转发 Windows 安全事件
- 在工作区之上部署 **Microsoft Sentinel** 作为 SIEM
### 3. EDR – Microsoft Defender for Endpoint
- 在暴露的测试系统上激活了 Defender for Endpoint
- 配置了**实时保护**、行为分析和自动调查
- 设备已载入到 **Microsoft 365 Defender 门户**
- 告警将作为事件自动转发到 Sentinel
### 4. XDR – Microsoft Defender XDR
- **Defender XDR** 已设置为跨领域关联层
- 在统一的事件视图中连接来自端点、身份和云的信号
- 激活了 **Automatic Attack Disruption** 以自动遏制主动攻击
- 配置了用于双向事件同步的 Sentinel 连接器
### 5. NDR – 网络分析
- 激活了 **NSG Flow Logs** 并将其路由到 Log Analytics Workspace
- 根据源 IP、端口和协议分析传入连接
- 检测**端口扫描**、**暴力破解攻击波**和**地理异常**
- Sentinel 中用于检测来自单个 IP 范围的连接量增加的自定义分析规则
### 6. 漏洞管理 – Microsoft Defender Vulnerability Management
- 在 VM 上激活了 **Defender Vulnerability Management**
- 自动扫描已知的 CVE (Common Vulnerabilities and Exposures)
- 评估了 **Exposure Score** 和 **Device Risk Score**
- 根据 CVSS 评分和可利用性确定补丁建议的优先级
- 结果集成到 Sentinel 仪表板中
### 7. SOAR – 自动化事件响应
针对高优先级告警的自动化 Playbook:
```
Alert ausgelöst (z.B. 50+ fehlgeschlagene Logins in 5 Min.)
│
▼
Sentinel Analytics Rule greift
│
▼
Logic App Playbook startet automatisch:
├── IP in Watchlist „BlockList" eintragen
├── NSG-Regel automatisch erstellen (IP blockieren)
├── Teams/E-Mail-Benachrichtigung an SOC
└── Incident in Sentinel als „In Bearbeitung" markieren
```
## KQL – 威胁狩猎查询
### 暴力破解检测(SIEM 核心应用)
```
SecurityEvent
| where EventID == 4625
| summarize Versuche = count(),
ErsterVersuch = min(TimeGenerated),
LetzterVersuch = max(TimeGenerated)
by IpAddress, Account, Computer
| where Versuche > 10
| order by Versuche desc
```
### GeoIP 富化与攻击地图
```
SecurityEvent
| where EventID == 4625
| extend AttackerIP = IpAddress
| lookup kind=leftouter _GetWatchlist('GeoIP')
on $left.AttackerIP == $right.Network
| summarize Angriffe = count() by AttackerIP, Country, City, Latitude, Longitude
| order by Angriffe desc
```
### 主要攻击者国家
```
SecurityEvent
| where EventID == 4625
| lookup kind=leftouter _GetWatchlist('GeoIP')
on $left.IpAddress == $right.Network
| summarize Angriffe = count() by Country
| order by Angriffe desc
| take 10
| render barchart
```
### 凭据填充 – 识别攻击目标
```
SecurityEvent
| where EventID == 4625
| summarize Versuche = count() by Account
| order by Versuche desc
| take 20
```
### 异常网络流量(通过 NSG Flow Logs 的 NDR)
```
AzureNetworkAnalytics_CL
| where FlowType_s == "ExternalPublic"
| summarize Verbindungen = count() by SrcIP_s, DestPort_d, bin(TimeGenerated, 5m)
| where Verbindungen > 100
| order by Verbindungen desc
```
### Defender Vulnerability Management – 严重 CVE
```
DeviceTvmSoftwareVulnerabilities
| where VulnerabilitySeverityLevel == "Critical"
| summarize Anzahl = count() by DeviceName, CveId, SoftwareName
| order by Anzahl desc
```
### XDR – 跨多个信号源的关联事件
```
SecurityIncident
| where Severity in ("High", "Medium")
| extend Tactics = tostring(AdditionalData.tactics)
| summarize Incidents = count() by Title, Severity, Tactics
| order by Incidents desc
```
## 结果与发现
### 观察到的攻击模式
| 模式 | 观察 |
|---|---|
| **首次攻击的反应时间** | VM 暴露后 < 5 分钟 |
| **最常见的 EventID** | 4625(登录失败) |
| **主要目标账户** | `administrator`、`admin`、`user`、`test`、`guest` |
| **攻击来源** | CN、RU、NL、US(出口节点/VPN)、BR |
| **攻击模式** | 系统性的凭据填充、字典攻击 |
| **Defender 告警** | 自动生成了多个“可疑远程活动”告警 |
### 漏洞分析(Defender Vulnerability Management)
- 在未打补丁的 Windows 系统上检测到 **3 个严重 CVE**
- 初始 Exposure Score:**68/100**(高)
- 模拟补丁后:分数降低至 **22/100**
- 基于 CVSS 的优先级排序实现了有针对性的修复
## 经验教训与企业价值
- 没有监控的暴露资源会在**几分钟内**遭到攻击。可见性就是一切
- **KQL** 是 Sentinel 运营的核心能力:自定义检测规则比预配置的告警更有价值
- **XDR 关联**可显著减少告警疲劳。单个信号只有在结合在一起时才能呈现出完整的攻击画面
- **漏洞管理**必须优先进行:并非每个 CVE 都同样严重:CVSS + 可利用性是决定因素
- **SOAR 自动化**在紧要关头可节省宝贵时间,并减少事件响应中的人为错误
## 仓库结构
```
📁 soc-homelab-microsoft/
├── 📄 README.md ← Projektübersicht & Dokumentation
├── 📄 SETUP.md ← Schritt-für-Schritt Installationsanleitung
├── 📄 MITRE-MAPPING.md ← Mapping der Angriffe auf ATT&CK Framework
├── 📁 screenshots/
│ ├── 01_resource-group.png
│ ├── 02_virtual-network.png
│ ├── 03_vm-created.png
│ ├── 04_nsg-rule.png
│ ├── 05_firewall-disabled.png
│ ├── 06_log-analytics-workspace.png
│ ├── 07_sentinel-overview.png
│ ├── 08_data-collection-rule.png
│ ├── 09_defender-for-cloud.png
│ ├── 10_defender-endpoint-device.png
│ ├── 11_geoip-watchlist.png
│ ├── 12_first-brute-force-logs.png
│ ├── 13_attackmap.png
│ ├── 14_vulnerability-management.png
│ └── 15_soar-playbook.png
├── 📁 kql-queries/
│ ├── KQL SOC Collection.kql
└──
```
## 更多资源
- [Microsoft Sentinel 文档](https://docs.microsoft.com/azure/sentinel/)
- [Microsoft Defender XDR](https://docs.microsoft.com/microsoft-365/security/defender/)
- [Defender Vulnerability Management](https://docs.microsoft.com/microsoft-365/security/defender-vulnerability-management/)
- [KQL 快速参考](https://docs.microsoft.com/azure/data-explorer/kql-quick-reference)
- [MITRE ATT&CK 框架](https://attack.mitre.org/)
标签:AMSI绕过, ATT&CK映射, Azure, Cloudflare, Defender XDR, EDR, GPT, Homelab, IP 地址批量处理, KQL, KQL查询, Microsoft Defender, Microsoft Sentinel, MITRE ATT&CK, NDR, NSG流日志, PE 加载器, SOAR, Sysmon, Windows 10, 威胁情报, 威胁检测, 安全架构, 安全运营中心, 实验室, 开发者工具, 微软安全, 攻击模拟, 数据展示, 漏洞管理, 生成式AI安全, 紫队, 红队, 红队行动, 终端检测与响应, 网络安全, 网络安全实验, 网络映射, 网络检测与响应, 脆弱性评估, 虚拟机, 蜜罐, 证书利用, 速率限制处理, 隐私保护, 驱动签名利用