主要发现
检查点研究团队发现了微软Teams中的四个漏洞,允许攻击者冒充高管、操纵消息、更改通知以及在视频和音频通话中伪造身份。
外部访客用户和恶意内部人员都可能利用这些缺陷,从根本上破坏了全球3.2亿多人使用的平台信任。
实际风险包括高管冒充、金融欺诈、恶意软件传播、虚假信息活动和敏感通信中断。
检查点研究团队于2024年3月23日向微软负责任地披露了这些漏洞。微软确认了报告并进行了调查,随后为报告的问题发布了修复程序。到2025年10月底,所有漏洞均已解决,微软正式将其中一个——通知欺骗漏洞——追踪为CVE-2024-38197。
研究背景
微软Teams于2017年3月推出,已成为全球使用最广泛的通信和协作平台之一。作为Microsoft 365家族的一部分,Teams为工作场所提供聊天、视频会议、文件存储和应用程序集成,月活跃用户超过3.2亿。从最大的全球企业到中小型企业,Teams已成为现代工作场所通信的关键支柱。
我们的研究揭示了Teams中破坏这些可信通信渠道的一系列漏洞。我们发现外部访客用户和恶意内部人员都可以操纵消息、冒充高管,甚至伪造通知。实际上,这意味着攻击者可以以访客身份进入,并令人信服地伪装成CEO,这是组织依赖安全运营的信任基础的根本崩溃。
不断演变的威胁环境
近年来,我们目睹了复杂的威胁行为者,包括国家支持的组织和国家行为者,越来越多地将协作平台和通信工具作为更广泛间谍活动和数据外泄活动的一部分。这些高级持续性威胁(APT)组织表现出特别的兴趣:
- 针对广泛使用软件平台的供应链攻击
- 利用可信通信渠道的社会工程活动
- 利用熟悉界面信任的商业电子邮件入侵(BEC)攻击
- 针对远程工作人员工具的凭据收集操作
如今,威胁行为者利用用户对熟悉通信和工作空间界面固有的信任,使用社会工程策略通过组织依赖日常运营的平台来操纵员工。
研究发现
我们从两个关键攻击角度进行了研究:试图渗透组织的外部访客用户,以及寻求滥用其现有访问权限的内部恶意用户(如受感染员工或内部威胁)。
我们的研究揭示了微软Teams内的几个漏洞,这些漏洞可能被利用来操纵消息内容和发送者身份,更改通知外观。最关键的是,我们发现外部访客用户和内部恶意行为者都可以有效地转换其身份,以显示为受信任人员,包括C级高管,从根本上破坏了组织依赖的安全通信信任边界。
具体来说,我们能够:
无痕迹编辑消息:我们发现了一种方法来更改已发送消息的内容,而不留下通常的"已编辑"标签。
操纵消息通知:我们的研究发现了一种技术,可以更改消息的明显发送者,从而能够显示来自像CEO这样的知名人士的通知,从而利用通常与此类通信相关的信任和紧迫感。
通过私聊中的对话主题更改显示名称:我们发现了一个漏洞,允许攻击者通过修改对话主题来更改私人聊天对话中显示的名称。两个参与者都将更改后的主题视为对话名称,可能误导他们关于对话的上下文。
在视频/音频通话中伪造呼叫者身份:我们发现呼叫通知中使用的显示名称(以及后来在通话本身期间)可以通过特定操纵呼叫发起请求来任意修改。此缺陷允许攻击者伪造呼叫者身份,向呼叫接收者显示任何选择的名称。
技术深度剖析
虽然微软Teams提供功能相似的Web版和应用程序版,但我们将研究重点放在Web版本上。该版本与其应用程序对应版本一样,接受和处理各种操作的JSON有效负载,例如发送消息和进行呼叫。
理解Teams消息架构
当发送消息时,请求体中包含几个参数:
content:围绕HTML标签的实际消息文本messagetype:对于标准文本消息,通常设置为RichText/Htmlclientmessageid:每个用户消息的唯一标识符imdisplayname:发送消息用户的显示名称
发送POST请求后,响应包括OriginalArrivalTime参数,该参数携带Unix时间戳值,这对于发送后修改消息的操作至关重要。
此外,获得的另一个关键信息是分配给每个用户的唯一UUID。它可以通过获取特定用户的对话或其消息(无论是来自私人还是群组聊天)来找到:
这个UUID对于识别系统内的用户至关重要,并在我们将探讨的漏洞中扮演重要角色。
消息操纵技术
让我们从基础开始,探索可以对自己消息进行的修改。如前所述,当我们发送消息时,我们包含一个clientmessageid参数(以及消息内容),并接收OriginalArrivalTime参数的Unix时间戳值:
|
|
检索整个聊天历史记录后,我们可以观察到这些值。
现在,让我们尝试直接在MS Teams中编辑我们的消息。不幸的是,此操作会导致"已编辑"标签出现在我们的消息上方。要绕过此限制,我们可以制作新消息,并将clientmessageid替换为先前消息中的值——2711247313308716623。这种方法有效地掩盖了我们的编辑,使其对他人不可检测。
操纵通知
无论是在手机应用程序还是PC上,这些警报都会立即引起我们的注意,特别是当它们暗示来自组织内关键人物的消息时。例如,收到暗示消息来自CEO或其他高级官员的通知本质上要求更高的紧迫性和重要性。这种心理效应使得通知不仅具有信息性,而且具有影响力。
在每个发送的消息中,都有一个名为imdisplayname的参数,默认情况下显示发送者的名称:
通过我们的调查,我们发现此参数可以更改为任何所需的值。这种操纵导致接收者收到似乎来自实际发送者以外的人的通知:
结果:
更改私聊中的显示名称
微软Teams通过特定的PUT端点提供更新群组聊天中对话主题的功能。此功能旨在帮助用户更有效地组织和识别其聊天。
|
|
通过操纵对此端点的请求,不仅可以更改群组聊天中的对话主题(这是预期和允许的),而且令人惊讶的是,在私人对话中也可以更改。
在私人聊天的情况下——两个人之间的直接对话——对主题的任何更改理想情况下应受到限制或不适用,因为私人聊天在传统意义上没有"主题"。
之前:
之后:
当执行这样的更改时,可能会误导用户相信他们正在与不同的人进行对话。
在视频/音频通话中伪造呼叫者身份
我们发现呼叫通知中使用的显示名称可以通过特定操纵呼叫发起请求来任意修改。此缺陷允许攻击者伪造呼叫者身份,向呼叫接收者显示任何选择的名称。
在呼叫发起阶段,JSON有效负载被发送到:
|
|
包含定义呼叫特征的各种参数。其中,“participants"部分内的"displayName"参数特别值得关注。此参数旨在显示呼叫者的名称,因为它出现在接收者面前。
通过修改有效负载中的"displayName"值,我们能够更改呼叫者的明显身份。例如,将其更改为任意名称会导致呼叫接收者看到来自修改后名称的来电,而不是实际呼叫者的身份:
这导致:
实际攻击场景
这些漏洞创造了几个令人担忧的攻击场景,这些场景与复杂威胁行为者(包括国家行为者团体)使用的技术一致:
高管冒充和社会工程:攻击者可以显著冒充他人,使消息看起来是由其他人发送的。在私人聊天中,恶意访客用户可以冒充内部人员,例如财务部门成员。通知可以被欺骗以显示错误的发送者名称,利用信任官方外观通知的本能,可能来自权威人物或高层管理人员。
高级持续性威胁和数据外泄:这些攻击可以直接促进更严重的恶意活动,通常在国家行动中看到:
- 恶意软件传播:攻击者可以发送伪造通知,似乎来自受信任的来源,如高层管理人员,要求紧急行动或点击链接,然后安装恶意软件。
- 凭据收集/欺诈:通过冒充内部人员,特别是在财务部门,攻击者可以通过假装讨论预算数字或其他敏感信息来钓鱼敏感数据或实施欺诈。
- 虚假信息活动:创建虚假消息历史和破坏对话完整性信任的能力使得能够传播虚假信息活动。
- 隐私泄露:整体漏洞影响包括隐私泄露。
- 简报中断:在Teams上托管敏感简报期间冒充个人的能力可以传播混乱或诱使参与者泄露敏感信息。这对任何参与高风险通信的角色都意味着广泛风险。
风险缓解策略
组织如何降低风险
微软已经解决了我们在Teams中报告的漏洞,不需要用户采取任何行动。然而,协作平台仅提供本地安全性的基线,我们的研究表明这一层可以被绕过。
为了保护免受信任利用,组织需要一个额外的防御层,包括:
- 零信任访问控制——持续验证用户身份和设备状态,而不仅仅在登录时。
- 高级威胁防护——检查在协作应用程序内共享的文件、链接和有效负载。
- 数据丢失防护(DLP)——强制执行细粒度策略以防止未经授权的数据外泄。
- 用户意识和验证协议——培训员工质疑高风险请求,并对敏感操作使用带外验证。
保护现代工作场所需要超越协作平台本地提供的安全性。只有通过第二层、多层次的防御,组织才能保护保持业务运行的通信、数据和信任。
披露时间表
- 2024年3月23日——向微软披露漏洞。
- 2024年3月25日——微软确认披露并确认将调查报告的问题。
- 2024年4月18日——微软确认报告的行为,并表示将继续调查以确定适当的解决方案。
- 2024年5月8日——“无痕迹编辑消息"问题已修复。
- 2024年7月31日——“更改私聊中的显示名称"已修复。
- 2024年8月13日——计划发布解决"操纵通知"问题的修复程序,追踪为CVE-2024-38197。
- 2024年9月13日——“操纵通知"问题已修复。
- 2025年10月——“视频/音频通话中的呼叫者身份"问题已修复。