edidiongetuk1/identity-threat-hunting-lab
GitHub: edidiongetuk1/identity-threat-hunting-lab
基于 Microsoft Sentinel 和 KQL 构建的身份威胁狩猎实验项目,用于检测绕过 MFA 的会话令牌窃取与 AiTM 钓鱼攻击。
Stars: 0 | Forks: 0
# 身份威胁狩猎实验室:会话令牌窃取与 AiTM 钓鱼检测
## 1. 执行摘要
本项目旨在为 2026 年影响最大的身份攻击模式之一构建检测逻辑:中间人对手攻击会话令牌窃取。它通过窃取已认证的会话而非凭证,从而完全绕过 MFA。本项目使用免费的 Microsoft 365 开发者租户和 Microsoft Sentinel,导入具有代表性的登录遥测数据,并实施三个相关的 KQL 检测(不可能的漫游、异常的 OAuth scope 使用以及入侵后的收件箱规则创建),它们共同生成低噪音、高保真的警报。这对企业安全至关重要,因为绕过 MFA 的攻击正日益成为商业电子邮件入侵和后续勒索软件部署的主要初始访问途径。
## 2. 架构图
```
Synthetic Sign-in Telemetry (JSON)
|
v
Log Analytics Data Collector API
|
v
Microsoft Sentinel Workspace
(SigninLogs / OfficeActivity)
|
v
KQL Analytics Rules
- Impossible Travel
- Anomalous Graph Scopes
- Post-Auth Inbox Rule Creation
|
v
Correlated Incident / Alert
```
*(在最终的 GitHub 版本中,在此处插入从 Draw.io 或 Miro 导出的图表。)*
## 3. 使用的技术
- **身份提供者:** Microsoft Entra ID(Microsoft 365 开发者计划租户 — 免费)
- **SIEM:** Microsoft Sentinel / Log Analytics(免费试用 + 免费数据摄入层)
- **检测语言:** KQL (Kusto Query Language)
- **数据模拟:** 基于真实 AiTM/会话窃取模式生成的合成 JSON 遥测数据
- **参考框架:** MITRE ATT&CK (T1557, T1539, T1078, T1114.003)
## 4. 执行与方法论
1. 通过 Microsoft 365 开发者计划配置了一个免费的 Entra ID 开发者租户。
2. 在免费层的 Log Analytics 工作区上启用了 Microsoft Sentinel。
3. 生成合成的登录遥测数据(`data/synthetic_signin_logs.json`),模拟了正常登录、96 秒后来自不同国家的令牌重放事件、异常的 Microsoft Graph scope 使用,以及入侵后的收件箱规则创建尝试。
4. 通过 Log Analytics HTTP Data Collector API 将合成日志导入工作区。
5. 编写并验证了三个 KQL 检测查询(`detections/detection_queries.kql`)。
6. 在 `docs/THREAT_HUNTING_PLAYBOOK.md` 中记录了完整的威胁画像、遥测映射和误报缓解措施。
## 5. 防御性补救/经验教训
- 令牌重放攻击从根本上需要会话强化控制(持续访问评估、令牌保护/绑定),而不是仅仅依赖 MFA。
- 在真实环境中,单信号检测会产生过多噪音;只有将身份验证、授权 scope 和下游邮箱活动进行关联,才能使警报具有可操作性。
- 直接模拟攻击者遥测(而不是对自己运行真实的钓鱼基础设施)是一种更快捷、零成本且更适合发布的方式,用于为作品集项目构建和验证检测逻辑。
## 仓库结构
```
identity-threat-hunting-lab/
├── README.md
├── data/
│ └── synthetic_signin_logs.json
├── detections/
│ └── detection_queries.kql
└── docs/
└── THREAT_HUNTING_PLAYBOOK.md
```
标签:KQL, Microsoft Sentinel, URL发现, 安全检测, 网络安全, 身份安全, 隐私保护