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, 主机入侵检测, 安全架构, 安全运维, 数据收集规则, 日志关联, 日志规范化, 日志解析, 日志转换, 日志采集, 现代安全运营, 端点事件, 端点取证, 网络安全, 网络流量分析, 证书伪造, 遥测, 隐私保护