JDanielRod/Incident-Response-Scenario1

GitHub: JDanielRod/Incident-Response-Scenario1

基于 NIST 800-61 框架的 Azure 环境暴力破解攻击检测与事件响应实践指南,包含完整 KQL 查询和 Sentinel 警报规则配置流程。

Stars: 0 | Forks: 0

# 🚨 事件响应:暴力破解尝试检测 ![image](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/cf07218b4d070524.jpg) ## 场景背景 作为一家严重依赖 Microsoft Azure 服务的大型金融服务机构的安全分析师,我观察到多次登录失败尝试,特别是在非工作时间针对特权账户的攻击。这引发了对暴力破解攻击或凭证填充活动的担忧。 我的目标是遵照 **NIST 800-61** 指南,调查、检测并缓解这一潜在威胁。 ## 🔍 **目标:发现暴力破解并创建 Sentinel 计划查询规则** 在 Log Analytics 中使用 KQL 实施 **Sentinel Scheduled Query Rule**,以检测同一远程 IP 地址在 5 小时内尝试登录同一 Azure VM 失败超过 10 次的情况。 ## 🛠️ **平台和工具** - **Microsoft Sentinel** - **Microsoft Defender for Endpoint** - **Kusto Query Language (KQL)** - **Windows 10 Virtual Machines (Microsoft Azure)** ## **事件响应阶段** ### 1️⃣ 准备 1. **策略和程序:** - 建立处理暴力破解尝试、账户锁定和账户恢复的协议。 - 包含针对通知、账户锁定和报告可疑活动的预定义操作。 2. **访问控制和日志记录:** - 启用 Azure AD 中所有登录尝试的日志记录。 - 与 **Microsoft Defender for Identity** 和 **Azure Sentinel** 集成,以实现自动检测和警报。 3. **培训:** - 培训安全团队处理基于凭证的攻击,包括暴力破解和凭证填充。 4. **沟通计划:** - 制定事件期间 IT 支持和特权账户持有人的升级计划。 ### 2️⃣ 检测与分析 #### 观察结果: ``` DeviceFileEvents | top 20 by Timestamp desc ``` ``` DeviceNetworkEvents | top 20 by Timestamp desc ``` ``` DeviceProcessEvents | top 20 by Timestamp desc ``` ``` DeviceLogonEvents | where TimeGenerated >= ago(5h) | where ActionType == "LogonFailed" | summarize NumberOfFailures = count() by RemoteIP, ActionType, DeviceName | where NumberOfFailures >= 10 ``` ![Screenshot 2025-01-13 182228](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/1b7e34e970070530.png) - **三台 Azure VM** 遭到了来自 **三个公共 IP** 的暴力破解尝试: | **远程 IP** | **失败尝试次数** | **目标机器** | |---------------------|---------------------|-----------------------| | `87.120.127.241` | 116 | `linux-agent-scan-sam` | | `194.0.234.44` | 100 | `bennyvirtual` | | `10.0.0.8` | 22, 20 | `windows-server,ryan-final-lab ` | ![Screenshot 2025-01-06 181511](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/e4eff7e1e1070536.png) - 用于检测失败登录的 KQL 查询: DeviceLogonEvents | where RemoteIP in ("87.120.127.241", "194.0.234.44", "10.0.0.8" ) | where ActionType != "LogonFailed" **结果:** 未检测到来自这些 IP 的成功登录。 #### 分析步骤: 1. **审查模式:** - 调查了 Azure AD 日志中的失败登录阈值。 - 识别了非工作时间的时序和可疑的 IP 地理位置。 2. **记录发现:** - 保留了详细记录失败尝试的频率、来源和目标的日志。 3. **优先级排序:** - **高优先级:** 在非工作时间被攻击的特权账户。 - **低优先级:** 孤立的、特定用户的失败尝试。 ### 3️⃣ 遏制 #### 立即行动: 1. **设备隔离:** - 使用 **Microsoft Defender for Endpoint** 隔离受影响的设备。 2. **网络安全组 (NSG) 更新:** - 限制仅授权 IP 进行 RDP 访问。 - 阻止所有与失败登录尝试相关的外部 IP。 3. **反恶意软件扫描:** - 对受影响设备进行扫描,以排查潜在的入侵。 ### 4️⃣ 根除与恢复 1. **密码重置:** - 重置受攻击账户的密码。 - 对特权账户强制执行强密码策略。 2. **MFA 强制执行:** - 为所有高价值账户启用多因素认证。 3. **地理位置封锁:** - 阻止来自高风险地理位置的登录尝试。 ### 5️⃣ 事件后活动 1. **经验教训:** - 检测是否快速有效? - 特权账户是否得到了充分保护? 2. **系统改进:** - 调整登录阈值以实现更快的检测。 - 扩展员工密码安全培训。 3. **文档记录:** - 记录所有发现、采取的行动以及未来的建议。 ### **步骤 1:创建警报规则** 如何在 Microsoft Sentinel 中创建警报规则:进入 Microsoft Sentinel,点击你的资源组,点击配置,点击分析,点击旁边的 + 创建,点击计划查询规则。 点击 **"Scheduled query rule"** 后,你将看到 **Analytics rule details** 选项卡。填写以下字段: 1. **名称**: - 输入规则名称,例如 **"🔥 Brute Force Attack Detection 🔐"**。 2. **描述**: - 添加关于规则功能的简要描述,例如, *"🔍 This rule detects potential brute-force login attempts based on failed sign-ins exceeding a defined threshold."* 3. **严重性**: - 选择严重性级别: - **Low** 🟢 - **Medium** 🟡 - **High** 🔴 (推荐用于暴力破解检测) 4. **策略**: - 选择与暴力破解相关的 **MITRE ATT&CK Tactics**: - **🎯 Initial Access** - **🔑 Credential Access** ![Screenshot 2025-01-14 103734](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/5c215aff1a070541.png) 5. **规则类型**: - 选择 **Scheduled 🕒**。 6. **设置规则频率**: - 选择查询运行的频率(例如,**Every 5 minutes ⏱️**)。 7. **设置查询结果回溯**: - 定义查询的时间窗口(例如,**Last 1 hour ⏳**)。 ### **步骤 2:添加 KQL 查询** 在 **Set rule query** 步骤中,粘贴你的 KQL 查询以检测暴力破解尝试: ``` DeviceLogonEvents | where TimeGenerated >= ago(5h) | where ActionType == "LogonFailed" | summarize NumberOfFailures = count() by RemoteIP, ActionType, DeviceName | where NumberOfFailures >= 10s ``` ![Screenshot 2025-01-14 111832](https://static.pigsec.cn/wp-content/uploads/repos/2026/03/63a478f4e9070547.png) - 🛠️ 此查询筛选 **sign-in logs** 中的失败登录尝试并识别异常模式。 - 💡 根据你的环境调整阈值(例如,`> 5 failed attempts`)。 ### **步骤 3:定义事件设置** 1. **Create incidents based on alert results**:确保选中此项 ✅。 2. **Group alerts into incidents**: - 选择 **"🧩 Grouped into a single incident if they share the same entities"** 以避免重复。 ### **步骤 4:添加操作和自动化** 1. 配置规则激活时触发的 **actions**: - 添加 **Playbook 🛠️** 以进行自动响应,例如: - 封锁 IP 🚫。 - 向你的安全团队发送电子邮件 📧。 - 触发 Teams 或 Slack 通知 💬。 2. 示例 Playbook:一个发送 **email notification 📤** 给 SOC 的 Logic App。 ### **步骤 5:审查并启用** 1. **审查所有内容** 以确保正确无误: - Name 🔖, description 📝, KQL query 📊, frequency ⏱️, 和 action settings ⚙️。 2. 点击 **"Create"** 以启用规则 🎉。 ### **步骤 6:验证你的规则** 1. 通过模拟暴力破解攻击或使用样本日志来测试规则: - 运行触发 **failed login attempts** 的脚本(安全模拟) 🧑‍💻。 - 使用 KQL 重放历史日志 📜。 2. 验证警报是否已生成 🚨 以及事件是否按预期分组 ✅。 ## 🚫 **结果** - **攻击状态:** 暴力破解尝试 **未成功**。 - **建议:** 锁定所有 VM 的 NSG 规则,并对特权账户强制执行 MFA。 🎉 **状态:** 事件已解决。无需进一步操作。
标签:AMSI绕过, Azure AD, Azure 虚拟机, BurpSuite集成, KQL, Kusto Query Language, Microsoft Defender for Endpoint, Microsoft Sentinel, NIST 800-61, PE 加载器, PoC, SIEM 规则, 免杀技术, 凭据攻击, 凭证填充, 威胁检测, 安全运营中心, 定时查询规则, 异常登录, 撞库, 暴力破解, 暴力破解检测, 红队行动, 网络安全, 网络映射, 身份与访问管理, 金融安全, 隐私保护