检测邮件账号攻陷(Detecting Email Account Compromise)
概述
邮件账号攻陷(Email Account Compromise,EAC)是一种常见攻击手法,攻击者通过未授权访问邮箱来窃取敏感数据、实施商业邮件欺诈(Business Email Compromise,BEC)或通过收件箱规则操纵建立持久化。攻击者通常会创建转发规则来截取邮件、创建删除规则以掩盖痕迹,或使用 OAuth 令牌维持持久访问。检测方法包括:分析 Microsoft 365 统一审计日志(Unified Audit Logs)、Azure AD 登录日志中的不可能旅行(Impossible Travel)或可疑位置、收件箱规则创建事件(Set-InboxRule、New-InboxRule)以及 Microsoft Graph API 访问模式。关键指标包括:转发规则指向外部地址、匹配"invoice"或"payment"等关键词的删除/移动规则,以及来自 python-requests 等异常 User-Agent 的登录行为。
前置条件
- Microsoft 365 并已启用统一审计日志记录(Unified Audit Logging)
- Azure AD P1/P2(用于风险检测 API)
- Python 3.9+,安装
requests、msal库 - Microsoft Graph API 应用注册,具备 Mail.Read、AuditLog.Read.All 权限
- 了解 OAuth2 客户端凭据流程
步骤
- 导出审计日志或使用 MSAL 认证连接 Microsoft Graph API
- 通过
/users/{id}/mailFolders/inbox/messageRules查询所有受监控邮箱的收件箱规则 - 分析规则是否存在外部转发行为(ForwardTo、RedirectTo 指向外部地址)
- 检测可疑规则模式:删除规则、针对财务关键词的过滤规则
- 通过
/auditLogs/signIns查询登录日志,检查异常位置和不可能旅行 - 检查可疑 User-Agent 字符串(python-requests、PowerShell、curl)
- 识别可疑第三方应用的 OAuth 应用授权同意(Consent Grant)
- 跨用户关联发现,检测活动级别的攻陷行为
- 生成包含严重级别评分的攻陷指标报告
预期输出
JSON 格式报告,列出受攻陷或可疑账号、检测到的恶意收件箱规则、不可能旅行事件、可疑 OAuth 授权,以及带严重级别评级的建议遏制措施。