检测可疑的 OAuth 应用授权同意
概述
非法同意授权攻击(Illicit Consent Grant Attack)诱骗用户在 Azure AD / Microsoft Entra ID 中向恶意 OAuth 应用程序授予过多权限。本 skill 使用 Microsoft Graph API 枚举 OAuth2 权限授权,分析应用程序权限是否范围过于宽泛,审查授权同意事件的目录审计日志,并根据发布者验证状态和权限范围标记高风险应用程序。
前置条件
- 具有全局读者或安全读者角色的 Azure AD / Entra ID 租户
- 具有
Application.Read.All、AuditLog.Read.All、Directory.Read.All权限的 Microsoft Graph API 访问 - Python 3.9+,安装
msal、requests - 配置了客户端密钥或证书以进行身份验证的应用注册
工作流程
- 使用 MSAL 客户端凭据流向 Microsoft Graph 进行身份验证
- 通过
/oauth2PermissionGrants枚举所有 OAuth2 权限授权 - 列出服务主体及其分配的应用程序权限
- 查询
Consent to application事件的目录审计日志 - 标记具有高风险权限范围的应用程序(Mail.Read、Files.ReadWrite.All 等)
- 检查每个应用程序的发布者验证状态
- 生成包含修复建议的风险报告
输出格式
- JSON 报告,列出所有 OAuth 应用程序及其授予的权限、风险评分、未验证发布者和可疑授权同意模式
- 包含用户和 IP 详情的授权同意事件审计跟踪