MuskTeo/Sentinel-Detection-Engineering-Lab
GitHub: MuskTeo/Sentinel-Detection-Engineering-Lab
一个基于 Microsoft Sentinel 的动手实践 SIEM 检测工程实验室,解决如何摄取、规范化与关联网络与终端遥测以构建实用检测管道的问题。
Stars: 0 | Forks: 0
# SIEM 检测工程实验室(基于 Microsoft Sentinel、Suricata、Sysmon 和 Azure Arc)
## 概述
本项目是一个动手实践的检测工程实验室,旨在收集、摄取、解析、规范化和关联来自 **网络** 与 **终端** 源的遥测数据,并将其导入 **Microsoft Sentinel**。
主要目标是设计一个实用的 SIEM 管道,将原始日志转换为结构化的安全数据,并展示如何从多个遥测源构建检测规则,而不是仅依赖原生、预关联的告警。
本实验室结合了以下技术:
- **Suricata**:用于网络遥测
- **Sysmon**:用于终端遥测
- **Azure Arc**:用于 Azure 侧机器接入与管理
- **Microsoft Sentinel / Azure Log Analytics**:用于摄取、存储、查询与分析
- **KQL**:用于解析、规范化、调查与关联
## 为什么要做这个项目
并非依赖“黑盒”安全栈,而是手动构建整个流程,以便更深入理解遥测数据的生成、传输、转换与检测使用方式。
它展示了以下实际工作内容:
- SIEM 架构
- 遥测数据接入
- 日志摄取与转换
- 事件解析与模式标准化
- 网络到终端的关联
- 真实遥测管道的故障排查与调优
## 架构
## 数据源
### Suricata
- 网络入侵检测 / 网络安全监控(NSM)传感器
- 生成 `eve.json`
- 捕获告警、DNS、流量流与协议元数据以及连接上下文
### Sysmon
- Windows 终端遥测
- 捕获进程创建、网络连接、文件活动、注册表变更及其他主机级事件
## Azure / SIEM 栈
- **Azure Arc**
- 用于将机器接入 Azure
- 帮助连接主机到 Azure 监控管道
- **Microsoft Sentinel**
- **Azure Log Analytics 工作区**
- **数据采集规则(DCR)**
- **自定义日志摄取与转换**
- **KQL** 用于解析、查询、调查与关联
## 构建内容
### 1. Suricata 摄取
配置 Suricata 生成 `eve.json` 遥测数据,并将网络事件导入 Microsoft Sentinel 进行分析。
包括:
- 配置遥测输出
- 验证 JSON 日志生成
- 处理日志路径与写入问题
- 为接入 Sentinel 准备数据
### 2. Sysmon 摄取
在 Windows 上配置 Sysmon 以捕获终端活动,并通过 Windows 事件日志将日志发送到 Sentinel。
采集的遥测包括:
- 进程创建
- 网络连接
- 文件活动
- 注册表修改
- 进程终止
### 3. Azure Arc 集成
使用 Azure Arc 将机器接入 Azure,并支持整体监控管道。
这使实验室更贴近真实场景,展示了非原生机器如何仍能接入 Azure 服务并纳入集中化可见性与遥测流程。
### 4. 解析与规范化
使用 KQL 将原始日志解析为结构化字段,以便更高效地查询与关联。
#### 规范化的 Suricata 字段
- 事件时间戳
- 事件类型
- 源 / 目的 IP
- 源 / 目的端口
- 协议
- 流量元数据
#### 规范化的 Sysmon 字段
- 进程镜像
- 命令行
- 用户
- 进程 ID / 进程 GUID
- 网络连接详情
- 注册表活动
- 文件活动
### 5. 关联
本实验室最重要的部分是关联 Suricata 网络遥测与 Sysmon 终端遥测。
关联依据包括:
- 源与目的 IP
- 源与目的端口
- 协议
- 事件时间窗口
- Sysmon 提供的进程上下文
这样不仅可以回答 **网络上发生了什么**,还能确定 **哪个主机上的具体进程产生了该活动**。
## 示例检测场景
### 网络到进程关联
结合 Suricata 流量与 Sysmon 网络事件,识别可疑出站流量背后的原始进程。
### 进程 + 网络 + 持久化
关联以下事件:
- Sysmon `ProcessCreate`
- Sysmon `NetworkConnect`
- Sysmon `FileCreate` / `RegistryEvent`
- Suricata 告警或流量数据
可实现对以下行为的检测:
- 可疑进程执行
- 出站 C2 风格流量
- 持久化创建
- 父子进程执行链
- 进程到网络的行为映射
## 关键成果
- 从原始遥测构建起可用的 SIEM 管道,直至检测就绪事件
- 成功在 Sentinel 中摄取并规范化 Suricata 与 Sysmon 日志
- 使用 Azure Arc 作为接入与监控流程的一部分
- 使用 KQL 解析 JSON 与 XML 格式日志
- 实现了网络活动与终端进程活动的关联
- 识别并解决了摄取、解析、日志记录与时间戳相关的问题
## 经验教训
- 摄取时间与事件时间不是同一概念
- 解析的重要性不亚于采集
- 原始日志必须经过规范化才能在 SIEM 中发挥作用
- 跨源关联提供的价值远高于孤立遥测
- 手动集成能更深入理解检测工程流程
- 故障排查摄取与模式问题是实际 SIEM 工作的核心部分
## 当前状态
### 已完成
- Suricata 部署与验证
- Sysmon 部署与验证
- Azure Arc 接入
- 双方源的 Sentinel 摄取
- Suricata JSON 日志的 KQL 解析
- Sysmon XML 日志的 KQL 解析
- Suricata 与 Sysmon 事件之间的成功关联
### 计划中
- 分析规则
- 调查查询
- 工作簿与仪表板
- 告警增强
- 额外遥测源
- 更高级的威胁狩猎场景
## 后续改进
- 构建自定义 Sentinel 分析规则
- 创建用于可视化展示的工作簿
- 增加更多事件源以支持更丰富的关联
- 扩展对持久化、执行与命令控制行为的检测
- 加入身份或 EDR 风格遥测以扩大覆盖范围
- 开发更复杂的多阶段关联逻辑
## 使用技术
- Microsoft Sentinel
- Azure Log Analytics
- Azure Arc
- Azure 数据采集规则
- Kusto 查询语言(KQL)
- Suricata
- Sysmon
- Windows 事件日志
- JSON 解析
- XML 解析
## 作者
本实验室作为一个实践项目,专注于通过手动摄取、规范化与跨源关联,将原始遥测转化为 Microsoft Sentinel 中的有意义检测。
标签:Azure Arc, Azure Log Analytics, Homebrew安装, KQL查询, Metaprompt, Microsoft Sentinel, PB级数据处理, Suricata, Sysmon, 主机入侵检测, 安全架构, 安全运维, 数据收集规则, 日志关联, 日志规范化, 日志解析, 日志转换, 日志采集, 现代安全运营, 端点事件, 端点取证, 网络安全, 网络流量分析, 证书伪造, 遥测, 隐私保护