alemuscyber/MitreAttack-Lab

GitHub: alemuscyber/MitreAttack-Lab

一个在隔离 Azure 环境中使用 Atomic Red Team 模拟攻击并在 Microsoft Sentinel 中构建自动化检测规则的检测工程实验项目。

Stars: 0 | Forks: 0

# MITRE ATT&CK 技术模拟与检测工程 本实验室在一个隔离的 Azure VM 上使用 Atomic Red Team 模拟了真实的攻击者行为,随后在 Microsoft Sentinel 中为每种技术构建了有效的检测——从原始的 KQL 查询一直到能够生成真实事件的实时、自动化*分析规则* (Analytics Rules)。 涵盖的 Mitre Att&ck 技术如下: | 技术 | 战术 | 检测逻辑 | |:---------:|:-------------------------:|:---------------------------------------------------------------------:| | T1110.001 | 暴力破解密码猜测 | 5 分钟内来自单个账户的 5 次以上失败登录 | | T1018 | 远程系统发现 | 5 分钟内来自单个账户的 2 个以上不同的侦察命令 (net/ping/arp) | | T1059.001 | Powershell 命令执行 | PowerShell 脚本块执行事件 | **架构:** image - Windows 10 VM(隔离的、单一用途的实验室环境 - Log Analytics Workspace + Microsoft Sentinel - 两个 Data Collection Rules: - **Windows Security Events via AMA** connector(内置的 Sentinel content hub 解决方案)-> 输入结构化的 'SecurityEvent' 表,配置为 "**All Security Events**" 层级 - 带有 XPath 'Microsoft-Windows-Powershell/Operational*' 的 **Custom DCR** -> 输入 'Event' 表 **实验操作指南:** 设置好 VM 后,我使用 RDP 访问它,并以提升的权限进入 PowerShell 以启用 auditpol,然后下载 Atomic Red Team,这是一个开源库,用于模拟映射到 MITRE ATT&CK 框架的真实世界攻击技术。 auditpol image installer image 在安装 Atomic Red Team 之后,我浏览了该库以搜索可用的攻击技术。我选择了 T1110.001、T1018 和 T1059.001。让我们逐一了解它们。 **T1110.001 - 暴力破解密码猜测(凭据访问)** 通过 VM 的 powershell 执行了测试: t1110 run image 在此之后,我前往 VM 的内部安全日志以确认此攻击模拟确实生成了日志。结果呈阳性,因此我回到 Azure Log Analytics Workspace 设置 KQL 检测查询,使用的参数包括 EventID 4625、FailedAttempts 的计数函数,并设置了阈值。此 KQL 检测查询成功,证明日志已被正确流式传输到 Azure 且没有任何误报,因为给定的阈值是基于异常的(5 分钟内 FailedAttempts >= 5)。 **T1018 - 远程系统发现** 通过 VM 的 powershell 执行了测试: t1018 run image Atomic Red Team 的测试工作流程正确运行了该测试。然而,由于 VM 本身的性质,侦察并未成功。该 VM 隔离在其自己的虚拟网络中,没有其他机器可以发现。因此,为了本实验的顺利进行,我决定通过环回地址(127.0.0.1 localhost)自行进行侦察。 self recon image 这成功生成了安全日志,因此我回到 Azure 设置 KQL 检测查询,使用的参数包括 EventID 4688、进程搜索(net.exe、ping.exe、arp.exe)并设置了阈值。此 KQL 检测查询成功,确保了日志被正确流式传输到 Azure。 **T1059.001 - Powershell 命令执行** 通过 VM 的 powershell 执行了测试: t1059 run image 好吧,那句 "Hello, from PowerShell!" 让我露出了微笑,但我确信,对于在受控实验室环境之外经历这种攻击的人来说,这绝对是非常可怕的。该技术的 Atomic Red Team 测试在第一次运行后就成功了,我通过审查内部日志确认了这一点。然后前往 Azure 设置我的 KQL 检测查询,使用的参数包括 EventID 4104,并确保源与最初设置的 XPath(Microsoft-Windows-Powershell)匹配。 **Microsoft Sentinel 设置** 如果我们不能将这些检测集中到一个统一的视图(single pane of glass)中,从而允许提供可追踪的证据和符合 Mitre Att&ck 框架的可操作工作流程,那还有什么意义呢?Microsoft Sentinel 为此提供了广泛的功能菜单。我前往 sentinel 设置 Analytics Rules,以成功生成和分类事件。 Brute force rule image Remote system rule image PowerShell Execution Detection image **最终成果:** image final **经验教训** - *检测逻辑需要与技术**实际**生成的内容相匹配——我设置了发现查询,要求以 2 个以上不同的命令作为阈值来避免误报,但 atomic 测试本身只产生了一个; 必须手动扩展模拟行为才能正确测试检测。* - *并非所有已记录的 ATT&CK 技术都有适合平台的可用工具—— 在确定使用某种技术之前验证工具/操作系统兼容性,能节省大量的返工。* - *告警分组设置在运营中很重要:如果没有启用 "**group all alerts from this rule into a single incident**",单次真实的暴力破解测试在几小时内就生成了超过 300 个重复的 事件——这是一个关于真实 SOC 环境中如何发生告警疲劳的很好提醒。*
标签:AI合规, Atomic Red Team, KQL, Microsoft Sentinel, OpenCanary, 安全实验室, 数据泄露检测