TerrCyber/sentinel-threat-hunt-brute-force
GitHub: TerrCyber/sentinel-threat-hunt-brute-force
一份基于NIST SP 800-61框架的暴力破解检测调查报告,提供Microsoft Sentinel环境下的KQL查询示例和完整的事件响应流程文档。
Stars: 0 | Forks: 0
# SOC 事件响应报告
## 暴力破解检测调查
**框架:** NIST SP 800-61
**环境:** Microsoft Sentinel / Microsoft Defender for Endpoint
# 概述
本项目记录了安全运营中心 (SOC) 对 Microsoft Sentinel 环境中检测到的暴力破解登录攻击的调查。
调查利用从 Microsoft Defender for Endpoint 收集的遥测数据,并通过 Microsoft Sentinel 和 Azure Log Analytics 进行分析。
本次调查的目标是:
- 检测反复的认证失败
- 识别潜在的暴力破解登录尝试
- 验证是否发生了成功的入侵
- 实施遏制措施以减少攻击面
# 事件响应框架
本次调查遵循 **NIST SP 800-61 事件响应生命周期**:
1. 准备
2. 检测与分析
3. 遏制、根除和恢复
4. 事后活动
5. 结束
# 1. 准备
在事件发生之前,环境中已建立了监控和响应能力。
## 角色与职责
**SOC 分析师**
- 监控安全警报
- 调查事件
- 记录调查结果
**安全运营团队**
- 提供升级和调查支持
**事件响应负责人**
- 协调遏制和补救措施
## 安全工具
- Microsoft Sentinel – 集中式 SIEM 监控和分析
- Microsoft Defender for Endpoint – 端点遥测数据收集
- Azure Log Analytics Workspace – 集中式日志存储和 KQL 查询
## 日志管道
虚拟机上的认证尝试会生成本地日志条目。
这些日志经过以下流程:
1. 由 Microsoft Defender for Endpoint 收集
2. 存储在 **DeviceLogonEvents** 表中
3. 转发至 **Azure Log Analytics**
4. 由 **Microsoft Sentinel 分析规则** 进行分析
此管道能够检测可疑的认证活动,例如暴力破解登录尝试。
# 2. 检测与分析
## 警报规则创建
在 Microsoft Sentinel 中创建了一个计划分析规则,用于检测暴力破解登录尝试。
### 检测逻辑
该规则检测在五小时内,远程 IP 地址对同一虚拟机反复认证失败的情况。
## 检测查询
```
DeviceLogonEvents
| where ActionType == "LogonFailed" and TimeGenerated > ago(5h)
| summarize EventCount = count() by RemoteIP, DeviceName
| where EventCount >= 50
```
## 查询说明
该查询执行以下操作:
- 搜索 **DeviceLogonEvents** 表
- 筛选操作类型为 **LogonFailed** 的事件
- 将结果限制在 **过去五小时内**
- 按以下方式对事件进行分组:
- 远程 IP 地址
- 目标设备名称
- 计算失败登录尝试的次数
- 返回发生 **50 次或更多次失败** 的结果
# 警报结果
| 远程 IP | 设备名称 | 失败尝试次数 |
|----------|-------------|----------------|
| 47.97.127.96 | otlab.z5bvzlx0idectyct0okhu05h | 134 |
| 10.0.0.8 | vmlinux.z5bvzlx0idectyct0okhu05h | 165 |
| 20.113.160.179 | ridge-vm-test | 260 |
| 88.214.25.124 | cruxe | 61 |
| 210.211.124.110 | analystyd | 69 |
| 46.202.141.248 | terr-mde-test | 86 |
## 观察
多个外部 IP 地址对多台虚拟机尝试了反复的认证。
观察到的最高失败尝试量为:
- **260 次失败登录尝试**
- **源 IP:** 20.113.160.179
- **目标主机:** ridge-vm-test
此外,一个内部 IP 地址 **10.0.0.8** 也产生了反复的失败登录尝试。由于这是一个私有地址,它很可能源自实验室环境内部的系统或自动化进程。
这些活动符合 MITRE ATT&CK 技术:
| 技术 | ID |
|----------|----|
| 暴力破解 | T1110 |
# 验证成功登录
为了确定暴力破解尝试是否导致了成功入侵,执行了后续查询。
## 成功验证查询
```
let attackers = dynamic([
"47.97.127.96",
"20.113.160.179",
"88.214.25.124",
"210.211.124.110",
"46.202.141.248"
]);
DeviceLogonEvents
| where ActionType == "LogonSuccess"
| where RemoteIP in (attackers)
| project TimeGenerated, DeviceName, AccountName, RemoteIP
| order by TimeGenerated desc
```
## 结果
查询**未返回**来自已识别攻击 IP 地址的成功认证事件。
这证实了暴力破解尝试**未导致成功入侵**。
# 3. 遏制、根除和恢复
## 遏制
为了防止进一步的暴力破解登录尝试,修改了受影响 Azure 虚拟机关联的 **网络安全组 (NSG)**。
NSG 被配置为限制入站 RDP 流量(端口 3389),使得**只有分析师的本地工作站 IP 地址**可以访问 VM。
来自公共互联网的所有其他入站流量均被拒绝。
## 实施的 NSG 安全控制
| 规则 | 动作 |
|-----|-------|
| 允许来自分析师本地 IP 的 RDP | 允许 |
| 所有其他入站 RDP 尝试 | 拒绝 |
| 对 VM 的公共互联网访问 | 阻止 |
此配置有效移除了公开暴露的攻击面。
## 企业安全建议
基于本次调查的结果,提出了以下改进建议:
- 仅限受信任的 IP 范围进行入站 RDP 访问
- 防止远程管理服务暴露于公共互联网
- 使用 **Azure Policy** 强制执行这些限制
## 根除
暴力破解攻击**未导致成功入侵**。
因此:
- 无需移除恶意软件
- 未检测到持久化机制
- 未确认凭据泄露
无需采取根除措施。
## 恢复
系统保持运行且未受影响。
在实施更新的网络安全组配置后,系统恢复至正常监控状态。
# 4. 事后活动
遏制行动完成后,进行了事后审查。
## 调查结果记录
记录了以下调查详情:
- 使用的检测规则
- 调查期间执行的 KQL 查询
- 造成失败认证尝试的 IP 地址
- 受害虚拟机
- 验证未发生成功登录
- 实施的网络安全组变更
## 经验教训
本次调查凸显了**公开暴露的远程桌面协议 (RDP) 服务**相关的风险。
尽管攻击未成功,但这表明了将管理访问权限限制在受信任来源的重要性。
建议的改进措施包括:
- 使用网络安全组限制入站访问
- 防止虚拟机在开放 RDP 访问的情况下部署
- 通过 Azure Policy 强制执行安全基线
# 5. 结束
完成调查和遏制行动后,对环境进行了审查,确认不存在进一步的恶意活动。
## 最终验证步骤
- 确认未发生来自攻击者 IP 地址的成功登录事件
- 验证网络安全组现已限制 RDP 访问
- 确保所有调查记录已归档
## 事件分类
**真阳性 – 未入侵**
通过日志分析成功检测并验证了暴力破解攻击,但**未导致系统入侵**。
# 使用工具
- Microsoft Sentinel
- Microsoft Defender for Endpoint
- Azure Log Analytics
- Kusto Query Language (KQL)
# 关键总结
- 暴露在互联网上的 RDP 服务会招致自动化暴力破解攻击
- Microsoft Sentinel 检测规则可以识别反复的认证失败
- 限制 RDP 访问可显著减少攻击面
- 安全策略应防止管理服务公开暴露
**框架:** NIST SP 800-61
**环境:** Microsoft Sentinel / Microsoft Defender for Endpoint
# 概述
本项目记录了安全运营中心 (SOC) 对 Microsoft Sentinel 环境中检测到的暴力破解登录攻击的调查。
调查利用从 Microsoft Defender for Endpoint 收集的遥测数据,并通过 Microsoft Sentinel 和 Azure Log Analytics 进行分析。
本次调查的目标是:
- 检测反复的认证失败
- 识别潜在的暴力破解登录尝试
- 验证是否发生了成功的入侵
- 实施遏制措施以减少攻击面
# 事件响应框架
本次调查遵循 **NIST SP 800-61 事件响应生命周期**:
1. 准备
2. 检测与分析
3. 遏制、根除和恢复
4. 事后活动
5. 结束
# 1. 准备
在事件发生之前,环境中已建立了监控和响应能力。
## 角色与职责
**SOC 分析师**
- 监控安全警报
- 调查事件
- 记录调查结果
**安全运营团队**
- 提供升级和调查支持
**事件响应负责人**
- 协调遏制和补救措施
## 安全工具
- Microsoft Sentinel – 集中式 SIEM 监控和分析
- Microsoft Defender for Endpoint – 端点遥测数据收集
- Azure Log Analytics Workspace – 集中式日志存储和 KQL 查询
## 日志管道
虚拟机上的认证尝试会生成本地日志条目。
这些日志经过以下流程:
1. 由 Microsoft Defender for Endpoint 收集
2. 存储在 **DeviceLogonEvents** 表中
3. 转发至 **Azure Log Analytics**
4. 由 **Microsoft Sentinel 分析规则** 进行分析
此管道能够检测可疑的认证活动,例如暴力破解登录尝试。
# 2. 检测与分析
## 警报规则创建
在 Microsoft Sentinel 中创建了一个计划分析规则,用于检测暴力破解登录尝试。
### 检测逻辑
该规则检测在五小时内,远程 IP 地址对同一虚拟机反复认证失败的情况。
## 检测查询
```
DeviceLogonEvents
| where ActionType == "LogonFailed" and TimeGenerated > ago(5h)
| summarize EventCount = count() by RemoteIP, DeviceName
| where EventCount >= 50
```
## 查询说明
该查询执行以下操作:
- 搜索 **DeviceLogonEvents** 表
- 筛选操作类型为 **LogonFailed** 的事件
- 将结果限制在 **过去五小时内**
- 按以下方式对事件进行分组:
- 远程 IP 地址
- 目标设备名称
- 计算失败登录尝试的次数
- 返回发生 **50 次或更多次失败** 的结果
# 警报结果
| 远程 IP | 设备名称 | 失败尝试次数 |
|----------|-------------|----------------|
| 47.97.127.96 | otlab.z5bvzlx0idectyct0okhu05h | 134 |
| 10.0.0.8 | vmlinux.z5bvzlx0idectyct0okhu05h | 165 |
| 20.113.160.179 | ridge-vm-test | 260 |
| 88.214.25.124 | cruxe | 61 |
| 210.211.124.110 | analystyd | 69 |
| 46.202.141.248 | terr-mde-test | 86 |
## 观察
多个外部 IP 地址对多台虚拟机尝试了反复的认证。
观察到的最高失败尝试量为:
- **260 次失败登录尝试**
- **源 IP:** 20.113.160.179
- **目标主机:** ridge-vm-test
此外,一个内部 IP 地址 **10.0.0.8** 也产生了反复的失败登录尝试。由于这是一个私有地址,它很可能源自实验室环境内部的系统或自动化进程。
这些活动符合 MITRE ATT&CK 技术:
| 技术 | ID |
|----------|----|
| 暴力破解 | T1110 |
# 验证成功登录
为了确定暴力破解尝试是否导致了成功入侵,执行了后续查询。
## 成功验证查询
```
let attackers = dynamic([
"47.97.127.96",
"20.113.160.179",
"88.214.25.124",
"210.211.124.110",
"46.202.141.248"
]);
DeviceLogonEvents
| where ActionType == "LogonSuccess"
| where RemoteIP in (attackers)
| project TimeGenerated, DeviceName, AccountName, RemoteIP
| order by TimeGenerated desc
```
## 结果
查询**未返回**来自已识别攻击 IP 地址的成功认证事件。
这证实了暴力破解尝试**未导致成功入侵**。
# 3. 遏制、根除和恢复
## 遏制
为了防止进一步的暴力破解登录尝试,修改了受影响 Azure 虚拟机关联的 **网络安全组 (NSG)**。
NSG 被配置为限制入站 RDP 流量(端口 3389),使得**只有分析师的本地工作站 IP 地址**可以访问 VM。
来自公共互联网的所有其他入站流量均被拒绝。
## 实施的 NSG 安全控制
| 规则 | 动作 |
|-----|-------|
| 允许来自分析师本地 IP 的 RDP | 允许 |
| 所有其他入站 RDP 尝试 | 拒绝 |
| 对 VM 的公共互联网访问 | 阻止 |
此配置有效移除了公开暴露的攻击面。
## 企业安全建议
基于本次调查的结果,提出了以下改进建议:
- 仅限受信任的 IP 范围进行入站 RDP 访问
- 防止远程管理服务暴露于公共互联网
- 使用 **Azure Policy** 强制执行这些限制
## 根除
暴力破解攻击**未导致成功入侵**。
因此:
- 无需移除恶意软件
- 未检测到持久化机制
- 未确认凭据泄露
无需采取根除措施。
## 恢复
系统保持运行且未受影响。
在实施更新的网络安全组配置后,系统恢复至正常监控状态。
# 4. 事后活动
遏制行动完成后,进行了事后审查。
## 调查结果记录
记录了以下调查详情:
- 使用的检测规则
- 调查期间执行的 KQL 查询
- 造成失败认证尝试的 IP 地址
- 受害虚拟机
- 验证未发生成功登录
- 实施的网络安全组变更
## 经验教训
本次调查凸显了**公开暴露的远程桌面协议 (RDP) 服务**相关的风险。
尽管攻击未成功,但这表明了将管理访问权限限制在受信任来源的重要性。
建议的改进措施包括:
- 使用网络安全组限制入站访问
- 防止虚拟机在开放 RDP 访问的情况下部署
- 通过 Azure Policy 强制执行安全基线
# 5. 结束
完成调查和遏制行动后,对环境进行了审查,确认不存在进一步的恶意活动。
## 最终验证步骤
- 确认未发生来自攻击者 IP 地址的成功登录事件
- 验证网络安全组现已限制 RDP 访问
- 确保所有调查记录已归档
## 事件分类
**真阳性 – 未入侵**
通过日志分析成功检测并验证了暴力破解攻击,但**未导致系统入侵**。
# 使用工具
- Microsoft Sentinel
- Microsoft Defender for Endpoint
- Azure Log Analytics
- Kusto Query Language (KQL)
# 关键总结
- 暴露在互联网上的 RDP 服务会招致自动化暴力破解攻击
- Microsoft Sentinel 检测规则可以识别反复的认证失败
- 限制 RDP 访问可显著减少攻击面
- 安全策略应防止管理服务公开暴露标签:Azure, EDR, KQL, Microsoft Defender for Endpoint, Microsoft Sentinel, NIST 800-61, PoC, 安全运营中心, 密码攻击, 暴力破解, 登录日志, 端点安全, 红队行动, 网络安全, 网络映射, 脆弱性评估, 补丁管理, 身份认证安全, 隐私保护