aahme05/enterprise-siem-sentinel-lab
GitHub: aahme05/enterprise-siem-sentinel-lab
该项目从零搭建了一个基于 Microsoft Sentinel 的企业级云 SIEM 实验环境,通过真实攻击验证 Snort IDS 和 KQL 规则的网络威胁检测能力。
Stars: 0 | Forks: 0
# 企业级 SIEM 实施与网络威胁检测实验室
**CST8808 — 网络事件响应** · 2025年4月
平台:Microsoft Azure Sentinel · 目标:Windows Server 2016 (IIS) · 攻击机:Kali Linux · 环境:VMware Workstation
## 概述
一个从零开始构建并经过端到端验证的云原生 SIEM:将一台 Windows Server 2016 Web 服务器接入 Microsoft Sentinel,配置了多种日志源,随后从 Kali Linux 机器上发起真实攻击,以确认检测功能是否正常触发——不仅是完成配置,更是通过真实流量证明了其有效性。
本次构建并未使用最初建议的本地部署 Splunk Enterprise,而是采用了 **Microsoft Sentinel**,这是一款云托管的 SIEM,无需维护本地服务器。
## 架构
- **Windows Server 2016** — 运行 IIS(目标 Web 应用)和 Windows 防火墙日志记录,通过 **Azure Arc** 和 **Azure Monitor Agent (AMA)** 连接到 Azure
- **Kali Linux** — 攻击机(Nmap、Hydra)
- **Microsoft Sentinel** — 收集日志、评估检测规则、引发事件
一个隔离的 VMware 网络(`VMnet16`,`192.168.1.0/24`)将所有实验室流量限制在内部;Windows Server 上的第二个 NAT 模式适配器提供出站互联网访问,以便连接 Azure。
## 日志管道
两条自定义的数据收集规则 (DCR) 将日志从本地服务器流式传输到 Sentinel 工作区:
| DCR | 源 | 目标表 |
|---|---|---|
| DCR-Firewall-Logs | `pfirewall.log` (Windows 防火墙) | `FirewallLogs_CL` |
| DCR-IIS-Logs | IIS 日志 (`W3SVC1`) | 自定义 IIS 表 |
| DCR-Snort-logs | Snort `alert.ids` | `SnortIDSAlert_CL` |
同时还安装了 **Windows Security Events** Sentinel 解决方案,用于摄取安全日志事件(包括事件 ID 4625 — 登录失败),而无需使用自定义表。
## 实时检测:Snort IDS
Snort 2.9.20 直接运行在 Windows Server 上,使用自定义规则集 (`icmp.rules`) 进行检测:
- SYN 扫描
- XMAS 扫描(FIN+PSH+URG 标志)
- FIN 扫描
- UDP 扫描
- TCP 全连接扫描
匹配记录被写入 `alert.ids`,通过 Snort DCR 转发到 Sentinel,并由专用的 Analytics 规则(每种扫描类型一条)提取,将匹配的日志条目升级为 Sentinel 事件。
## 检测规则:基于失败 RDP 登录的暴力破解
最复杂的规则实现了端到端的 RDP 暴力破解检测:
1. Hydra 从 Kali 向端口 3389 发起密集的凭证尝试
2. 每次失败都会在 Windows 安全日志中记录为 **事件 ID 4625**
3. AMA 将新的安全事件以近实时的方式转发到 `SecurityEvent` 表
4. 一个 Sentinel Analytics 规则每 5 分钟运行一次,检查过去 5 分钟的数据:
```
SecurityEvent
| where EventID == 4625
| where TargetAccount has "administrator"
| summarize FailureCount = count() by IpAddress, bin(TimeGenerated, 1m)
| where FailureCount > 10
```
5. 超过阈值(每分钟 10 次以上失败)会自动生成一个**高严重性**事件
## 验证
从 Kali 向 Windows Server 发起了实时攻击,以确认整个管道而不仅仅是配置的有效性:
- `nmap -sS` / `nmap -sX` 扫描 → 被正确分类为 SYN 扫描 / XMAS 扫描事件
- Hydra RDP 暴力破解 → 被正确分类为暴力破解检测事件
所有事件都出现在 Sentinel 的事件队列中,并按类型正确标记,这证实了 DCR、自定义日志表和 Analytics 规则已被正确地连接在一起。
## 为什么选择 Sentinel 而不是本地 SIEM
- **可扩展性** — 云资源会随日志量自动扩展
- **无需硬件** — 无需在本地进行机架安装、修补或维护
- **内置威胁情报** — 开箱即用 Microsoft 的全球情报源和机器学习检测
- **统一的视图** — Azure Portal 覆盖了每一个已连接的数据源
- **快速部署** — 几小时即可完成,而典型的本地 SIEM 部署通常需要数天/数周
## 工具
Microsoft Azure Sentinel · Azure Arc · Azure Monitor Agent (AMA) · Snort IDS · KQL · Nmap · Hydra · VMware Workstation · Windows Server 2016 (IIS) · Kali Linux
标签:AMSI绕过, CTI, KQL, Microsoft Sentinel, 威胁检测, 安全实验室, 安全运营, 扫描框架, 插件系统