khaledmedz/Defender-XDR-Detection-Engineering

GitHub: khaledmedz/Defender-XDR-Detection-Engineering

一个端到端的 Defender XDR 检测工程实验项目,演示了从环境加固、攻击模拟到 KQL 自定义检测规则创建与事件响应的完整安全运营流程。

Stars: 0 | Forks: 0

# Defender-XDR 检测工程 端到端安全实验室,演示 MDE 环境加固、持久化攻击模拟,以及 KQL 自定义检测规则创建。 ## 目标 本项目的目的是从零开始构建、配置并验证一个完整的 Microsoft Defender for Endpoint (MDE) 环境。该实验室涵盖了完整的安全运营生命周期:云基础设施配置、环境加固、攻击模拟、警报分类、使用 KQL 进行自定义检测工程,以及事件响应手册的执行。 ## 工具与技术 - **平台:** Microsoft Defender XDR, Microsoft Azure (虚拟机) - **防御工程:** 攻击面减少 (ASR)、EDR 阻止模式、防篡改保护 - **检测工程:** Kusto 查询语言 (KQL)、近实时 (NRT) 规则 - **框架:** MITRE ATT&CK (T1053, T1106, T1057) ## 阶段 1:环境设置与加固 在模拟威胁之前,部署基础设施、确保传感器正常通信并建立安全基线至关重要。 ### 1. 基础设施配置与上线 我在 Microsoft Azure 中配置了一台 Windows 虚拟机,并通过本地上线脚本将其成功上线到 Defender XDR 门户。 ![Azure VM 创建](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/912c7ca8c5041031.png) *描述:在 Azure 门户中运行的 Windows 虚拟机 (`azurevm-endpoint`),代表目标端点。* ![设备上线](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b931d6cadd041036.png) *描述:在 Microsoft Defender 门户中进行的验证,显示设备已成功通信并显示“已上线”状态。* ### 2. 启用 Defender 核心功能 为了强化端点以抵御篡改和活跃威胁,我在整个租户范围内全局启用了高级安全功能。 ![核心功能](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b33f97ec5c041042.png) *描述:配置为启用 EDR 阻止模式、防篡改保护和实时响应功能的全局设置。* ### 3. 配置自动调查与修复 (AIR) 我为该端点配置了一个特定的设备组,将修复级别设置为在采取破坏性操作之前需要分析师批准。 ![自动响应设置](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e6835cf8fd041048.png) *描述:** 将目标设备组 (`endpoints-groupe2`) 配置为完全修复,以允许自主进行威胁遏制。* ### 4. 攻击面减少 (ASR) 为了主动缩小攻击面,我实施了针对常见恶意软件传递机制(例如,恶意 Office 宏)的 ASR 规则。 ![ASR 规则](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/b5f9e0c0ad041054.png) *描述:主动部署的 ASR 规则,用于阻止 Office 应用程序创建子进程或注入代码。* ### 5. 警报通知 为了确保在事件发生时具有立即可见性,我创建了一项自定义通知规则,用于将高优先级警报路由到 SOC 邮箱。 ![警报通知](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/ce214e6857041059.png) *描述:针对目标设备组作用域的自定义电子邮件通知规则。* ### 6. 基线遥测验证 在发起攻击之前,我运行了一次基线 KQL 查询,以验证进程事件是否成功从 VM 路由到高级搜寻日志。 ![遥测验证](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/fd52d3ec87041105.png) *描述:高级搜寻查询 (`DeviceProcessEvents | take 10`) 返回了标准的后台进程,确认日志摄取正常。* ## 阶段 2:攻击模拟(持久化) 为了测试环境的防御能力,我模拟了一种高级持续性威胁 (APT) 通常使用的持久化技术,以便在系统重启后继续存活。 **执行命令:** ``` schtasks /create /sc minute /mo 5 /tn "Updater" /tr "powershell.exe -Command whoami" ``` ![攻击模拟终端](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/63165abe23041110.png) *描述:在受害 VM 上通过命令行执行恶意计划任务 payload。* ## 阶段 3:事件分类与响应 Defender XDR 立即识别并拦截了计划任务 payload,并为 SOC 生成了一个事件。 ### 1. 警报生成与恶意软件拦截 Defender 标记了该活动,将其归因于 'Ceprolad' 恶意软件家族,并主动阻止了命令行的执行。 ![警报概述](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/252a7465c7041116.png) *描述:显示被阻止的 'Ceprolad' payload 以及中等暴露级别的事件仪表板。* ### 2. 进程树与 MITRE ATT&CK 映射 调查警报故事揭示了确切的执行链。Defender 成功将文件能力映射到特定的 MITRE ATT&CK 技术。 ![进程树与 MITRE](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/be64f2ea2d041121.png) *描述:显示被阻止的 `powershell.exe` 的事件时间线,以及对 T1106(Native API)和 T1057(进程发现)技术的识别。* ## 阶段 4:自定义检测工程 (KQL) 仅仅依赖供应商提供的签名是一种被动的做法。为了主动检测整个环境中任何未经授权的计划任务创建行为,我设计了一条行为检测规则。 **Kusto 查询语言 (KQL) 逻辑:** ``` DeviceProcessEvents | where ProcessCommandLine contains "schtasks" and ProcessCommandLine has "/create" | where not(InitiatingProcessFileName in ("explorer.exe", "services.exe")) | project Timestamp, DeviceName, ActionType, FileName, ProcessCommandLine, InitiatingProcessFileName ``` *调优上下文:有意排除了合法的父进程 (`explorer.exe`, `services.exe`),以最大限度地减少误报并防止 SOC 警报疲劳。* ![KQL 查询执行](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/e4aeb437f0041126.png) *描述:自定义 KQL 查询在 DeviceProcessEvents 表中成功搜寻特定的 `schtasks` 行为。* ![NRT 规则创建](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/3d71c71a1c041132.png) *描述:配置检测规则,以便在将来发生类似情况时自动触发调查。* ## 阶段 5:事件响应手册 在禁用自动调查的场景中,我将执行手动遏制。 **手动 IR 执行步骤:** 1. **遏制:** 通过 Defender 门户执行“隔离设备”,切断网络连接,同时保持 MDE 管理通道。 2. **取证收集:** 启动实时响应会话,以收集内存转储、运行中的进程以及网络连接。 3. **修复:** 通过实时响应远程移除持久化机制: schtasks /delete /tn "Updater" /f 4. **根除:** 终止发起进程(例如 `powershell.exe`)并触发完整的、离线的 Microsoft Defender 防病毒扫描。 5. **事件后活动:** 升级至 Tier 3/威胁搜寻,以调查初始访问向量并确定攻击者是如何获得执行权限的。 ![设备隔离](https://static.pigsec.cn/wp-content/uploads/repos/2026/06/d4e82ffa98041138.png) *描述:从 Defender 设备清单菜单执行“隔离设备”操作,以实现网络遏制。*
标签:GitHub Advanced Security, KQL, 安全加固, 安全实验室, 微软Defender, 端点检测与响应, 脱壳工具