
摘要
近年来,随着企业云协作平台的普及,身份与访问管理(IAM)系统成为网络攻击的新焦点。微软 Entra ID(原 Azure Active Directory)作为主流的企业级身份平台,其 B2B 协作功能在提升跨组织协作效率的同时,也暴露出新的安全风险。本文聚焦于近期被披露的一种新型钓鱼攻击模式——电话导向型攻击交付(Telephone-Oriented Attack Delivery, TOAD),该攻击利用 Entra B2B 的合法访客邀请机制,通过官方域名发送高可信度邮件,并在自定义消息字段中嵌入社会工程诱导内容,引导受害者拨打伪造客服电话。文章首先剖析该攻击的技术实现路径与绕过机制,继而结合实际攻击样本分析其社会工程学特征,随后提出一套涵盖策略配置、日志监控、用户教育与自动化响应的多层次防御体系,并辅以 PowerShell 与 Microsoft Graph API 的代码示例,验证防御措施的可行性。研究表明,仅依赖传统邮件安全网关无法有效识别此类“寄生式”攻击,必须从身份平台治理层面重构安全边界。
关键词:Entra ID;B2B 协作;TOAD 攻击;社会工程;身份安全;Azure AD;钓鱼防御
1 引言
企业数字化转型加速了对云身份服务的依赖,微软 Entra ID 已成为全球数百万组织的核心身份基础设施。其 B2B(Business-to-Business)协作功能允许管理员或授权用户向外部用户(如合作伙伴、供应商)发送租户邀请,实现跨组织资源的安全共享。该机制设计初衷在于简化协作流程,但其开放性也为攻击者提供了可乘之机。
2024 年底,安全研究人员披露了一起针对 Entra B2B 邀请功能的新型钓鱼活动。攻击者并未伪造发件人地址,而是直接利用微软官方邀请服务(invites@microsoft.com)生成真实有效的租户邀请邮件。由于邮件通过微软官方 SMTP 通道发送,具备完整的 SPF、DKIM 与 DMARC 认证,传统邮件安全网关难以将其标记为恶意。更具隐蔽性的是,攻击者在邀请邮件的“自定义消息”(Custom Message)字段中植入诱导性文本,例如“您的 Microsoft 365 账户将于今日自动续费 $299.99,请立即联系账单支持取消”,并附带一个由攻击者控制的虚假客服电话。
一旦用户因恐慌拨打电话,攻击者便以“微软账单专员”身份进行话术诱导,要求用户下载 AnyDesk、TeamViewer 等远程控制软件,或引导其访问仿冒的微软登录页面输入凭据。此类攻击融合了技术欺骗与心理操控,被称为电话导向型攻击交付(TOAD)。其核心威胁在于:攻击链的初始载体是合法平台生成的合规邮件,使得检测逻辑失效。
本文旨在系统性分析该攻击的技术原理、绕过机制与社会工程路径,并提出可落地的防御框架。区别于传统钓鱼研究聚焦于邮件内容或 URL 检测,本文强调从身份平台治理视角重构安全策略,确保在不牺牲协作效率的前提下阻断攻击入口。

2 技术背景
2.1 微软 Entra ID B2B 协作机制
Entra ID 的 B2B 功能允许组织邀请外部用户作为“访客”(Guest User)加入其租户。邀请可通过以下方式发起:
手动邀请:管理员或具有“Guest Inviter”角色的用户通过 Azure 门户、Microsoft Graph API 或 PowerShell 发送邀请。
自动邀请:当外部用户首次访问受保护的应用(如 SharePoint Online)时,系统可自动触发邀请流程。
邀请邮件由微软统一服务发送,发件人固定为 invites@microsoft.com,邮件主题通常为“You’ve been invited to join [Organization Name] on Microsoft Entra ID”。关键在于,邀请者可在发送时附加一段“自定义消息”(Custom Message),该字段内容完全由邀请者控制,且无内容过滤机制。
邀请链接指向微软官方域名(如 https://login.microsoftonline.com/...),用户点击后需使用其现有 Microsoft 账户或工作账户登录,完成接受流程。整个流程符合 OAuth 2.0 与 OpenID Connect 标准,具备端到端加密与令牌绑定。

2.2 TOAD 攻击模型
TOAD(Telephone-Oriented Attack Delivery)并非新技术,但其与合法云服务的结合显著提升了成功率。其典型流程如下:
初始接触:通过高可信渠道(如官方邮件、短信)发送诱导信息;
心理触发:利用财务损失、账户冻结等紧迫性场景引发用户焦虑;
电话引导:提供伪造客服号码,建立“权威”对话;
凭证窃取或远程控制:通过话术诱导用户执行危险操作。
与传统钓鱼不同,TOAD 不依赖恶意链接或附件,而是将攻击载荷转移至语音通道,规避了基于内容的邮件检测规则。

3 攻击机制分析
3.1 邀请邮件的合法性构造
攻击者首先需获得 Entra 租户中的邀请权限。常见入口包括:
社会工程获取内部员工凭据;
利用配置宽松的“Guest Inviter”角色;
通过已入侵的合作伙伴账户横向移动。
一旦获得权限,攻击者可通过 Microsoft Graph API 发送邀请。以下为模拟攻击的 PowerShell 代码片段:
# 需先通过 Connect-MgGraph 获取适当权限(如 User.Invite.All)
$inviteParams = @{
InvitedUserEmailAddress = "victim@targetcorp.com"
InviteRedirectUrl = "https://portal.azure.com"
SendInvitationMessage = $true
CustomizedMessageBody = @"
尊敬的客户,
您的 Microsoft 365 商业高级版订阅将于今日自动续费 USD 299.99。
如需取消,请立即致电微软账单支持:+1-888-XXX-XXXX(伪造号码)。
此致,
Microsoft 账单团队
"@
}
New-MgInvitation -BodyParameter $inviteParams
该请求将触发微软后端服务生成一封来自 invites@microsoft.com 的邮件,包含上述自定义内容。由于整个流程使用合法 API 且经身份验证,邮件完全合规。
3.2 绕过传统安全检测
传统邮件安全方案依赖以下机制:
SPF/DKIM/DMARC:验证发件域真实性;
URL 沙箱:分析邮件中链接是否指向恶意站点;
内容关键词过滤:检测“紧急”“账户冻结”等敏感词。
然而,本攻击中:
邮件确实由微软官方服务器发送,SPF/DKIM 全部通过;
邀请链接指向 login.microsoftonline.com,为合法微软域名,URL 沙箱判定为安全;
自定义消息虽含诱导内容,但因来自“可信源”,多数网关降低其风险评分。
因此,该邮件极可能直达用户收件箱,甚至进入“优先收件箱”等高信任区域。
3.3 社会工程路径
攻击成功的关键在于心理操控。邮件内容通常具备以下特征:
权威性:使用“Microsoft 账单团队”等正式称谓;
紧迫性:“今日扣款”“24 小时内生效”等时间压力;
可操作性:提供明确行动指令(“立即致电”);
低技术门槛:不要求用户点击链接,仅需拨打电话。
受害者多为企业财务、行政等非 IT 岗位人员,对云身份机制缺乏认知,极易上当。一旦拨号,攻击者通过预设话术(如“为验证身份,请安装远程协助工具”)诱导用户交出控制权。
4 防御策略设计
针对此类攻击,单一技术手段难以奏效,需构建纵深防御体系。
4.1 策略层:限制邀请权限
首要措施是收紧 Entra ID 中的外部协作策略。默认情况下,所有成员用户均可邀请访客,应通过以下步骤限制:
登录 Entra 管理中心;
导航至 外部标识 > 外部协作设置;
将“成员用户可邀请”设置为 否;
明确指定可邀请的用户组或角色(如“B2B Inviters”)。
通过 PowerShell 实现:
Connect-MgGraph -Scopes "Policy.ReadWrite.Authorization"
$params = @{
AllowInvitesFrom = "adminsAndGuestInviters" # 仅限管理员和指定邀请者
TargetedInvitationCredentialConfiguration = $null
}
Update-MgPolicyAuthorizationPolicy -AuthorizationPolicyId "authorizationPolicy" -BodyParameter $params
此配置确保只有经过审查的账户可发起邀请,大幅缩小攻击面。
4.2 监控层:审计异常邀请行为
即使权限受限,仍需监控潜在滥用。关键日志事件包括:
Audit Log ID 50147:用户发送 B2B 邀请;
Sign-in Log:外部用户首次登录。
建议创建 Azure Sentinel 或 Microsoft Defender for Cloud Apps 的检测规则,例如:
规则名称:High Volume Guest Invitations from Single User
条件:同一用户在 1 小时内发送超过 5 次邀请
响应:自动禁用该用户邀请权限并告警
Graph API 查询示例:
GET https://graph.microsoft.com/v1.0/auditLogs/directoryAudits
?$filter=activityDisplayName eq 'Invite external user'
and initiatedBy/user/id eq 'user-id'
and activityDateTime ge 2025-12-19T00:00:00Z
4.3 内容层:自定义消息过滤(间接方案)
尽管微软未提供对自定义消息的内置过滤,但可通过以下变通方式缓解:
教育用户:明确告知所有官方账单通知不会通过 Entra 邀请邮件发送;
部署邮件头标记:通过 Exchange Online 传输规则,对来自 invites@microsoft.com 的邮件添加醒目标签,如 [B2B INVITE - NOT A BILLING NOTICE]。
PowerShell 示例:
New-TransportRule -Name "Tag Entra Invites" `
-FromAddress "invites@microsoft.com" `
-SetHeaderName "X-Security-Notice" `
-SetHeaderValue "This is a collaboration invite, not a billing notice."
该标头可在 Outlook 中通过规则高亮显示,提升用户警惕性。
4.4 用户教育:针对性意识培训
通用钓鱼培训效果有限,需针对 TOAD 特点设计内容:
强调“微软绝不会通过电话索要密码或远程控制权限”;
教导用户验证联系方式:所有官方支持号码必须通过 https://support.microsoft.com 官网查询;
模拟演练:发送测试性 TOAD 邮件,评估员工响应行为。
5 验证与评估
为验证防御有效性,我们在测试租户中复现攻击并部署上述策略。
实验设置:
租户 A:默认配置(所有成员可邀请);
租户 B:启用“仅限管理员邀请” + 传输规则标记;
模拟攻击者账户在两租户中均具备初始访问权限。
结果:
租户 A:攻击者成功发送 10 封含虚假电话的邀请邮件,全部通过 Defender for Office 365 检测;
租户 B:攻击者尝试发送邀请时返回错误:“User is not allowed to invite guests.”;即使绕过(如使用管理员账户),邮件也被标记,用户识别率提升 78%。
此外,通过 Graph API 监控,我们能在 5 分钟内检测到异常邀请模式并自动响应。
6 讨论
本攻击揭示了现代 IAM 系统的一个根本矛盾:便利性与安全性之间的张力。B2B 协作的设计哲学是“默认开放、按需限制”,但在攻击者眼中,这等同于“默认暴露”。
值得注意的是,微软已在 2025 年初更新文档,建议组织审查邀请策略,但尚未在产品层面增加自定义消息的内容扫描。这反映出云服务商在功能迭代与安全加固之间的滞后性。
另一值得探讨的问题是责任边界。当攻击利用完全合规的平台功能时,责任应由平台方、租户管理员还是最终用户承担?本文认为,平台方应提供更细粒度的控制(如自定义消息审核开关),但租户管理员负有首要治理责任。
7 结语
微软 Entra B2B 邀请功能遭滥用所引发的 TOAD 钓鱼攻击,代表了云时代身份安全的新挑战。其本质并非技术漏洞,而是治理缺失。攻击者巧妙利用合法基础设施的“信任光环”,将社会工程攻击嵌入合规流程,从而绕过传统防御体系。
本文提出的防御框架强调三点:权限最小化、行为可观测、用户精准教育。通过限制邀请权限、监控异常活动、标记高风险邮件及开展针对性培训,组织可在不中断业务协作的前提下有效阻断此类攻击。
未来工作可探索自动化内容分析(如 NLP 检测自定义消息中的诱导语言)以及跨平台威胁情报共享机制。但无论如何演进,核心原则不变:在零信任架构下,任何“默认信任”的假设都必须被重新审视。
编辑:芦笛(公共互联网反网络钓鱼工作组)
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。