你的邮箱可能正在被”合法”读取:EntraIDOAuth同意滥用攻击深度解析

admin 2026-03-03 04:29:07 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文档深度解析了针对MicrosoftEntraID的OAuth同意滥用攻击,攻击者通过伪装成合法应用(如ChatGPT)诱骗用户授权,获取Mail.Read等高风险权限,从而无需密码即可持久访问邮箱等敏感数据。文章揭示了EntraID默认允许非管理员用户授权的风险,并提供了基于审计日志的检测方法、使用PowerShell撤销授权的应急响应步骤,以及配置用户同意策略、启用管理员审批工作流和持续监控的三层防护建议。 综合评分: 85 文章分类: 渗透测试,威胁情报,云安全,安全建设,应急响应


cover_image

你的邮箱可能正在被”合法”读取:Entra ID OAuth同意滥用攻击深度解析

原创

ZM ZM

暗镜

2026年2月27日 07:06 辽宁

#

“只需点击一次’同意’,你的企业邮箱就对攻击者完全敞开——不需要密码,没有异常登录提醒,甚至连你自己都不会察觉。”

这不是危言耸听,而是Red Canary安全团队近期发现并证实的新型攻击模式:OAuth同意滥用(OAuth Consent Abuse)。攻击者正将目标对准Microsoft Entra ID(原Azure AD),利用”合法授权”的伪装,实现对邮箱、文件、聊天记录的隐蔽访问。


一、攻击现场还原:一次”ChatGPT”引发的虚惊

2025年12月2日20:22:16 UTC,Red Canary分析师监测到一条异常活动:

涉事账户[email protected] 操作内容:以非管理员身份向第三方应用授予OAuth权限 授权范围Mail.Read(读取邮件)、offline_access(离线访问)、profile(个人资料)、openid(身份验证) 来源IP3.89.177.26

调查过程高度紧张——Mail.Read权限意味着该应用可以完整读取用户邮箱中的所有邮件。安全团队迅速展开溯源,最终确认这是用户自行安装的正版ChatGPT应用

但这次”虚惊”恰恰暴露了致命问题:整个攻击链条与真实的恶意事件完全吻合。如果攻击者将应用名称改为”Microsoft 365优化助手”或”企业邮箱备份工具”,你是否还能分辨?


二、OAuth同意滥用:无需密码的”合法”入侵

什么是OAuth同意滥用?

OAuth(Open Authorization)是现代互联网的”通行证”体系。当你用微信登录某App,或允许某应用访问你的Google日历时,背后都是OAuth在运作。

正常流程

  1. 应用请求权限(如”读取邮件”)
  2. 系统弹出同意窗口,列出权限清单
  3. 用户点击”同意”,应用获得访问令牌
  4. 应用凭令牌访问数据,无需知道用户密码

攻击者如何利用?

攻击者          受害者           Entra ID          微软邮箱
  |               |                |                 |
  |──创建恶意应用──>|                |                 |
  |   (名为"Outlook安全助手")       |                 |
  |               |                |                 |
  |──钓鱼链接─────>|                |                 |
  |               |                |                 |
  |               |──点击链接─────>|                 |
  |               |                |                 |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |<──显示同意窗口──| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp;[Mail.Read] &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |──点击"同意"───>| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; |<───────────────获得访问令牌─────| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;| &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; |───────────────────────────────────────────────>|
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;开始持续读取所有邮件 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |
&nbsp; | &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(用户密码从未泄露) &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; |

关键风险点

  • ✅ 用户密码从未泄露,传统”改密码”无效
  • ✅ 无异常登录告警(因为使用的是合法授权令牌)
  • ✅ 攻击者拥有持久化访问offline_access可获取刷新令牌,长期有效)
  • ✅ 应用名称可任意伪装,极具迷惑性

三、Entra ID的”默认漏洞”:为什么员工能授权访问公司数据?

最危险的配置往往来自默认设置。

Microsoft Entra ID默认允许标准非管理员用户自行同意应用程序权限——只要这些权限不需要管理员批准(如Mail.Read)。

这意味着:

  • 🚨 一名普通销售点击了钓鱼链接 → 全公司客户邮件可能泄露
  • 🚨 一名行政助理安装了”日程管理工具” → 高管日程、机密附件被读取
  • 🚨 攻击者甚至不需要攻破你的网络,只需要攻破”人的信任”

四、检测与狩猎:在审计日志中捕捉幽灵

Red Canary提供了精确的检测方法。当发生OAuth同意滥用时,Entra ID审计日志会记录两个关键事件:

| 事件类型 | 含义 | 关键字段 | | — | — | — | | Add Service Principal | 新增服务主体(应用被注册到租户) | CorrelationId (关联ID) | | Consent to application | 用户同意授权 | AppOwnerOrganizationId (应用所属组织ID) |

狩猎查询逻辑

  1. 关联分析:通过CorrelationId将两个事件关联,还原完整授权链条
  2. 第三方识别:检查AppOwnerOrganizationId ≠ 你的租户ID,且≠微软官方ID(f8cdef31-a31e-4b4a-93e4-5f571e91255a等)
  3. 权限分析:筛选包含高风险OAuth范围的授权:
  • 🔴 Mail.Read / Mail.ReadWrite(邮件访问)
  • 🔴 Files.Read.All(全部文件读取)
  • 🔴 Chat.Read(聊天记录)
  • 🔴 Sites.Read.All(SharePoint站点)

KQL检测示例(Microsoft Sentinel):

kusto

AuditLogs
|where&nbsp;OperationName&nbsp;in("Add service principal","Consent to application")
|where&nbsp;ResultDescription&nbsp;contains"Mail.Read"
or&nbsp;ResultDescription&nbsp;contains"Files.Read.All"
|extend&nbsp;AppId&nbsp;=tostring(parse_json(tostring(InitiatedBy.app)).servicePrincipalId)
|where&nbsp;AppId&nbsp;!in(trusted_app_ids)// 排除已信任应用
|summarizeby&nbsp;CorrelationId,&nbsp;TimeGenerated,&nbsp;UserPrincipalName,&nbsp;OperationName

五、应急响应:发现后的止血操作

一旦确认恶意授权,立即执行双步骤清除

步骤1:撤销OAuth授权

使用Microsoft Graph PowerShell,提取Consent to application事件中的授权ID:

powershell

# 撤销特定用户的特定授权
Remove-MgOauth2PermissionGrant&nbsp;-OAuth2PermissionGrantId&nbsp;"<授权ID>"

步骤2:移除服务主体

使用Add Service Principal事件中的对象ID,将应用从租户彻底清除:

powershell

# 删除恶意服务主体
Remove-MgServicePrincipal-ServicePrincipalId&nbsp;"<对象ID>"

注意:仅删除应用注册不够,必须从服务主体层面清除,否则令牌可能仍然有效。


六、防御加固:三层防护策略

🛡️ 第一层:用户同意策略(最核心)

微软提供三种配置选项,建议根据组织安全成熟度选择:

| 策略 | 配置路径 | 适用场景 | | — | — | — | | 禁止用户同意 | 管理员必须批准所有应用 | 金融、政府、高安全要求企业 | | 验证发布者 | 仅允许已验证发布商的应用,且限制低风险权限 | 大多数企业推荐 | | 默认策略 | 按分类限制权限风险等级 | 中小企业起步配置 |

配置位置:Entra ID管理中心 → 企业应用 → 同意和权限 → 用户同意设置

🛡️ 第二层:管理员工作流

启用管理员同意工作流,当用户尝试安装需要高风险权限的应用时,自动触发管理员审批邮件。

🛡️ 第三层:持续监控

  • Consent to application事件纳入SIEM高优先级告警
  • 对新出现的第三方应用授权进行24小时内人工复核
  • 建立”应用白名单”,仅允许预批准的商业应用

结语:当”同意”成为武器

OAuth同意滥用的可怕之处,在于它完全合法化了攻击行为。没有漏洞利用,没有恶意软件,只有用户亲手点击的”同意”按钮。

在AI工具爆发式增长的今天,员工安装ChatGPT、Copilot、各类效率插件已成为常态。每一次授权请求,都可能是攻击者的伪装。

安全团队需要做的,不是阻止业务创新,而是确保每一次”同意”都在可见、可控、可审计的框架内进行。

毕竟,在这个时代,最危险的入侵往往穿着合法的外衣


本文技术细节参考Red Canary威胁情报报告及Microsoft Entra ID官方文档。如需部署检测规则或配置同意策略,建议联系微软安全团队或专业安全服务商。


📌 建议收藏本文,转发给贵公司的IT管理员和信息安全负责人。下一次审计日志中出现”Consent to application”时,你会知道该看什么。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:暗镜 ZM ZM《你的邮箱可能正在被”合法”读取:Entra ID OAuth同意滥用攻击深度解析》

评论:0   参与:  0