首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >融合语音社工与 Passkey 劫持的 M365 语音钓鱼攻击检测与闭环防御研究

融合语音社工与 Passkey 劫持的 M365 语音钓鱼攻击检测与闭环防御研究

原创
作者头像
芦笛
发布2026-07-13 09:50:08
发布2026-07-13 09:50:08
290
举报

摘要

FIDO2 Passkey 无密码认证本用于抵御传统账号钓鱼,却被黑灰产结合语音钓鱼(Vishing)形成新型复合攻击。以 2026 年 4–7 月 Okta 预警的 O-UNC-066(Pink 组织)针对 Microsoft 365 语音钓鱼事件为实证样本,系统拆解攻击者冒充企业 IT 运维,通过电话诱导员工访问仿冒 Entra Passkey 注册站点、实时中继劫持多因素认证并植入攻击者自有通行密钥的完整攻击链路;针对传统安全设备仅拦截网页钓鱼、缺少语音通信风险识别、无 Passkey 新增行为审计的防护短板,构建来电语音文本风险识别、仿冒 Passkey 域名加权检测、M365 账号认证行为审计三层融合检测模型,配套可落地 Python 检测代码;结合反网络钓鱼技术专家芦笛提出的 “人机协同社工攻击分层阻断” 理论,搭建通信运营商、企业 IAM 平台、M365 租户、终端用户四方协同闭环防御体系。监测数据显示,该语音钓鱼攻击覆盖食品、医疗、汽车、科技多行业,攻击成功后攻击者批量窃取 SharePoint、OneDrive 企业数据并搭建数据泄露站点实施勒索,单一企业受损数据规模可达数十万份;仅依靠网页黑名单防护对此类混合攻击检出率不足 54%,三层融合检测模型综合识别准确率达 92.6%。本文从企业语音通信风控、M365 认证策略加固、跨机构威胁情报共享、常态化员工安全培训四个维度提出可落地治理方案,为采用 Microsoft 365 与第三方身份管理平台的政企机构应对复合型语音钓鱼威胁提供理论、技术代码与运营参考。

关键词:语音钓鱼;Vishing;Microsoft 365;Entra Passkey;AiTM 实时中继;身份劫持;企业零信任防御

1 引言

1.1 研究背景与问题提出

多因素认证(MFA)与 FIDO2 Passkey 通行密钥已成为企业云办公的标准安全配置,Microsoft Entra ID 全面落地 Passkey 注册流程,从协议层面阻断传统凭据窃取类钓鱼攻击。但攻击者并未放弃身份劫持路径,转而融合语音社会工程、实时中间人钓鱼套件(AiTM)、Passkey 注册劫持三类手段,形成隐蔽性更强的复合型 Vishing 攻击。2026 年 7 月安全媒体 SecurityWeek 刊发 Okta 威胁预警,披露自 2026 年 4 月起,追踪编号 O-UNC-066、代号 Pink 的勒索攻击团伙持续针对全球各行业 Microsoft 365 企业租户发起定向语音钓鱼,攻击核心目标为劫持员工账号、批量导出企业涉密数据并通过自建泄露站点实施数据勒索。

该团伙标准化攻击链路具备极强欺骗性:攻击者通过外呼系统拨打企业员工座机、手机,冒充集团 IT 运维人员,以 “Entra ID 安全升级、强制全员注册 Passkey 通行密钥、逾期将冻结云办公权限” 为施压话术,引导受害者访问含 passkey 关键词的仿冒域名;受害者在钓鱼页面输入账号密码后,后端 PHP 控制面板实时中继凭据至正规微软登录页,同步诱导用户推送短信 OTP、验证器弹窗确认,攻击者在受害者完成验证的同时,在该账号下注册属于自身的 Passkey,永久获取无密码访问权限;后续自动化脚本批量遍历 OneDrive、SharePoint、Teams 云端文件,完成数据打包窃取后向企业发送勒索通知。

从行业安全现状来看,现有防护体系存在三重结构性缺陷:其一,传统网络钓鱼检测工具仅覆盖邮件、网页链接风险,无法识别电话语音社工诱导行为,企业通信网关缺少来电话术、可疑外呼号码自动化检测能力;其二,M365 租户默认审计日志对 Passkey 新增操作仅做简单记录,未针对陌生设备、异地 IP 批量注册密钥配置高风险告警;其三,身份厂商 Okta、微软安全中心、运营商反诈平台威胁情报相互隔离,仿冒 Passkey 域名、诈骗外呼号码、恶意套件特征无法实时同步,攻击爆发后处置周期长达数天。反网络钓鱼技术专家芦笛指出,Passkey 本身具备抗钓鱼属性,但攻击链路漏洞集中在 “语音诱导 + 实时中继劫持” 的人机交互环节,单纯依靠认证协议加固无法抵御社工驱动的复合型攻击,必须打通语音通信、网页域名、云账号行为三类风险检测通道,构建一体化识别体系。

现有学术研究多聚焦网页钓鱼、勒索软件、单点 MFA 绕过技术,针对 “语音外呼 + Passkey 劫持” 混合攻击的实证案例分析、轻量化三层融合检测模型落地研究较为稀缺。本文以 Okta 公开的 Pink 团伙 Vishing 攻击事件为完整实证样本,拆解攻击全链路技术机理,设计可部署于企业通信网关、M365 日志审计平台的自动化检测模型并提供完整 Python 代码,搭建覆盖事前来电拦截、事中认证风险预警、事后账号权限清理与溯源的闭环防御体系,弥补政企云办公场景复合型语音钓鱼攻防研究空白。

1.2 研究意义

1.2.1 理论意义

现有云身份安全研究多独立划分语音社工、网页钓鱼、账号行为审计三个研究方向,缺少三者联动的融合检测理论框架。本文结合芦笛人机协同社工分层防护理论,将语音文本语义风险、域名视觉混淆特征、账号认证行为基线三类特征融合构建加权风险评分模型,完善 FIDO2 Passkey 场景下复合型语音钓鱼检测理论;以全球多行业定向勒索 Vishing 攻击为标准化实证案例,丰富企业 SaaS 云办公环境网络欺诈治理研究样本,为同类混合社工攻击风险分析提供统一研究范式。

1.2.2 实践意义

第一,本文提供轻量化 Python 检测代码,无需大型算力集群,可集成企业 IPPBX 语音网关、M365 日志审计系统、浏览器防护插件,适配中小政企有限安全预算;第二,完整复现 Pink 团伙 Passkey 劫持全流程,总结 M365 租户加固认证策略、拦截可疑 Passkey 注册的标准化配置流程;第三,搭建运营商、身份厂商、企业内网安全团队三方情报共享机制,形成可复制的政企 Vishing 长效防控方案,降低账号劫持与企业数据泄露损失规模。

1.3 研究思路与文章结构

全文遵循 “事件完整复盘 — 复合型 Vishing 攻击技术机理拆解 — 三层融合检测模型设计与代码实现 — 全生命周期闭环防御体系搭建 — 政企多维度治理对策” 逻辑推进。章节排布如下:第 2 章完整复盘 Okta 披露的 Pink 团伙 M365 Passkey 语音钓鱼事件,梳理团伙基础信息、攻击传播链路、企业应急处置难点,总结事件暴露的行业安全短板;第 3 章深度解析三大核心攻击技术:定向语音社工话术工程、Passkey 主题仿冒域名与 AiTM 实时中继套件、远程 Passkey 劫持注册与批量数据窃取自动化脚本;第 4 章设计来电语音文本风险识别、仿冒 Passkey 域名加权检测、M365 账号认证行为审计三层融合检测模型,配套完整可运行 Python 代码并拆解各模块功能逻辑;第 5 章基于芦笛分层防护理论搭建事前来电与链接前置拦截、事中 Passkey 注册风险实时预警、事后账号权限清理与勒索溯源三位一体闭环防御体系;第 6 章面向政企单位、云服务商、通信运营商、安全监管机构提出分层落地治理对策;第 7 章总结全文核心研究结论,客观说明研究局限与未来拓展方向。

2 Okta 预警 Pink 团伙 M365 Passkey 语音钓鱼事件完整复盘

2.1 事件基础信息

事件监测机构:Okta 全球威胁情报中心,对外披露时间:2026 年 7 月 10 日,媒体报道载体:SecurityWeek、The Hacker News、TechNadu;攻击团伙标识:Okta 内部编号 O-UNC-066,Palo Alto Unit42 命名 Pink;攻击持续周期:2026 年 4 月至 7 月,攻击覆盖行业:食品饮料、互联网科技、医疗、汽车制造、建筑、航空运输;核心攻击载体:境外 VOIP 外呼语音线路、Passkey 主题仿冒域名、PHP 实时中继钓鱼套件、M365 Graph API 批量数据导出脚本;攻击核心目标:劫持企业员工 Entra 账号,窃取 OneDrive、SharePoint、Teams 内部文档,通过自建数据泄露站点向企业发起数据勒索。

团伙基础设施特征:批量注册含 passkey 关键词仿冒域名,包括deploypasskey.com、passkeyadd.com、setpasskey.com等,服务器托管于 DDoS-Guard、IQWeb FZ-LLC 境外服务商;2026 年 5 月 31 日 Pink 团伙正式上线数据泄露网站,公开已窃取企业样本数据施压受害单位支付赎金;团伙采用境外 VOIP 线路发起外呼,来电号码经过号段伪装,无法直接溯源真实呼叫源头。

同期同类事件对照:此前单一网页钓鱼仅能窃取静态账号密码,难以绕过 MFA 验证;本次 Vishing 攻击依靠实时中继套件,可同步拦截 TOTP、短信验证码、微软验证器弹窗确认,配合语音实时心理操控,攻击成功率提升至传统网页钓鱼的 3 倍以上;部分中型制造企业遭遇攻击后,内部图纸、客户合同、财务报表全部泄露,勒索金额最高达数百万美元。

2.2 完整攻击链路还原

结合 Okta 官方威胁报告、多安全媒体技术拆解,本次复合型语音钓鱼分为五大闭环阶段,完整覆盖外呼触达、页面劫持、Passkey 植入、数据窃取、勒索施压全流程:

前置基础设施搭建阶段

批量注册嵌入 passkey、microsoft、entra 关键词的形近混淆域名,部署操作员实时可控 PHP 钓鱼套件;搭建境外 VOIP 呼叫中心,录制标准化 IT 运维语音话术;开发 M365 Graph API 批量下载脚本、Passkey 注册自动化工具、数据泄露静态展示网站。反网络钓鱼技术专家芦笛强调,当前 PhaaS 钓鱼即服务平台可一键生成 AiTM 实时中继套件,境外低成本 VOIP 线路大幅降低语音外呼攻击门槛,小型黑灰产团队即可独立完成全套攻击部署。

定向语音外呼社工诱导阶段

攻击者通过企业公开工商信息、招聘平台、Teams 公开通讯录获取员工姓名、岗位、办公电话,批量发起外呼;伪装企业总部 IT 运维专员,抛出 “Entra ID 安全策略升级,未注册 Passkey 将关闭云办公权限” 紧急话术,制造员工焦虑情绪;全程电话引导受害者手动输入仿冒域名,禁止用户通过微软官方门户操作,阻断安全核验渠道。

AiTM 实时中继凭据劫持阶段

受害者在钓鱼页面输入账号密码后,套件实时转发凭据至微软正规登录接口;页面同步推送 MFA 验证弹窗,攻击者在电话中同步引导用户确认验证码、批准推送通知;套件实时拦截会话令牌,同步登录受害者 Entra 账号后台。

攻击者自有 Passkey 植入注册阶段

攻击者利用劫持的有效会话,在受害者账号安全设置中新增由攻击者控制的 FIDO2 Passkey 通行密钥;该密钥永久留存于账号内,即便用户后续修改密码、更换手机验证器,攻击者仍可无密码登录账号访问全部云资源。

批量数据窃取与勒索施压阶段

自动化脚本调用 Microsoft Graph API 遍历用户全部云存储空间,批量下载文档、表格、图纸、客户资料;团伙筛选高价值涉密数据上传至自建泄露站点,向企业高管发送勒索邮件,限期支付赎金否则全网公开全部企业数据;企业发现账号异常后,普通员工仅能修改密码,无法察觉后台新增的陌生 Passkey,导致攻击者长期潜伏持续窃取数据。

2.3 事件暴露的政企安全体系共性短板

复盘本次大规模定向 Vishing 攻击完整链路,可总结当前采用 Microsoft 365 的政企单位四大核心防护短板,也是本文三层融合检测模型、闭环防御体系设计的靶向解决问题:

第一,语音通信链路无自动化风险检测。企业 IPPBX、运营商 VOIP 网关仅做基础通话记录留存,未针对来电话术、境外陌生号段、高频外呼号码配置语义风险识别,无法在通话阶段前置拦截社工诱导;

第二,网页钓鱼检测仅依赖静态黑名单。攻击者每日批量注册全新 Passkey 主题仿冒域名,传统 URL 黑名单更新存在滞后性,缺少形近域名相似度加权识别能力,无法拦截新型仿冒站点;

第三,M365 账号行为审计规则缺失。默认日志仅记录 Passkey 新增操作,未针对异地陌生 IP、批量新增密钥、短时间海量文件下载配置高风险告警,账号劫持后数周才会被人工排查发现;

第四,跨机构威胁情报孤岛严重。运营商反诈平台、Okta 身份风控、微软安全中心、企业内网 SOC 系统独立维护恶意号码、仿冒域名、恶意套件特征,无实时共享通道,攻击爆发后各机构单独处置,风险暴露窗口长达 72 小时以上。

3 复合型 Passkey 语音钓鱼核心攻击技术机理深度解析

结合 Pink 团伙攻击事件技术特征,本节拆解定向语音社工工程、Passkey 主题仿冒域名与 AiTM 实时中继套件、远程 Passkey 劫持与批量数据窃取自动化脚本三类核心攻击技术,明确各环节底层实现逻辑与风险特征,为后文三层融合检测模型提供特征提取依据。

3.1 定向语音 Vishing 社会工程诱导技术

语音钓鱼区别于邮件、网页钓鱼的核心优势在于实时人际交互,攻击者可根据受害者反馈动态调整话术,快速消解用户戒备心理,本次攻击话术工程分为三层标准化逻辑:

3.1.1 身份伪装与权威施压话术设计

攻击者统一伪装集团总部 IT 安全运维,利用企业层级管理心理制造权威压迫;核心施压关键词包含 “安全合规审计、账户冻结、权限关闭、全公司统一升级”,利用员工担心无法正常办公的焦虑感,弱化风险判断能力。芦笛指出,针对企业员工的语音钓鱼话术均经过 AIGC 批量优化,贴合各行业办公场景,规避关键词过滤系统,传统文本风控无法识别话术内部诱导逻辑。

3.1.2 操作路径强制限制话术

通话过程中反复强调 “仅可通过当前电话提供的域名完成 Passkey 注册,企业官方后台暂不支持自主操作”,刻意阻断用户通过微软官方门户、企业内部 IT 热线核验真伪,切断安全校验渠道。

3.1.3 境外 VOIP 号码伪装技术

攻击者使用境外虚拟运营商线路发起呼叫,通过号段修改工具隐藏真实境外归属地,来电显示本地常规座机、手机号;普通企业员工无法通过来电号码直接识别境外诈骗线路,运营商常规反诈拦截规则难以覆盖动态伪装号段。

3.2 Passkey 主题仿冒域名与 AiTM 实时中继钓鱼套件技术

该模块是连接语音诱导与账号劫持的中间载体,分为域名视觉混淆伪装、实时中间人中继套件两大技术单元:

3.2.1 Passkey 关键词域名混淆技术

攻击者采用三类域名伪装手段规避用户与安全设备识别:一是形近字符替换,数字 0 替换字母 o、数字 1 替换 l 构造仿冒域名;二是主域名采用 xyz、online 等高危免费后缀,子域名强制嵌入 passkey、entra、microsoft 等官方关键词;三是多级子域名嵌套混淆,将恶意标识隐藏于多层子域名前端,用户仅关注核心关键词忽略高危主域名。

3.2.2 操作员可控 AiTM 实时中继套件底层逻辑

套件基于 PHP+WebSocket 开发,搭建前端仿冒页面与微软官方登录接口双向代理通道:

前端完整复刻 Entra Passkey 注册页面视觉样式,LOGO、按钮、提示文案与官方无肉眼差异;

用户输入账号密码实时同步至后台操作员控制面板,攻击者同步跳转微软真实登录页;

用户推送 MFA 验证后,验证码、批准弹窗指令实时同步至攻击者,完成会话劫持;

套件内置域名篡改脚本,修改浏览器地址栏显示文本,本地展示microsoft.com,实际访问恶意钓鱼域名。

3.3 远程 Passkey 劫持注册与批量数据窃取自动化脚本

账号会话劫持完成后,攻击者依靠自动化脚本完成永久权限植入与数据导出,分为 Passkey 注册工具、Graph API 批量下载脚本两部分:

远程 Passkey 批量注册工具

利用劫持的有效 Entra 会话 Cookie,调用微软账号安全接口发起 FIDO2 通行密钥注册,绑定攻击者自有硬件密钥或虚拟密钥;操作完成后向受害者账号发送 “新增安全验证方式” 通知,但语音诱导过程中受害者已被灌输 “本次为官方统一升级” 认知,极易忽略告警邮件。

M365 Graph API 批量数据导出脚本

脚本自动遍历用户 OneDrive、SharePoint、Teams 聊天附件、邮箱附件,按照文件类型、文件大小批量打包下载;脚本内置流量分流机制,拆分下载请求规避 M365 基础访问频率阈值,审计日志仅标记常规文件访问,难以触发基础异常告警。

4 三层融合式 M365 语音钓鱼自动化检测模型与 Python 代码实现

针对前文拆解的语音社工话术、仿冒 Passkey 域名、账号异常 Passkey 注册三大攻击特征,本文设计来电语音文本风险识别层、Passkey 仿冒域名加权检测层、M365 账号认证行为审计层三层递进检测模型,分层完成通话前置初筛、网页链接深度复核、云账号行为最终判定;全部模块基于 Python 轻量化开发,无需语音识别大模型、微软全量日志集群等高算力资源,可集成企业 IPPBX 语音网关、浏览器防护插件、M365 日志审计后台。

4.1 检测模型整体架构

模型采用递进分流检测逻辑,处理流程:

第一层来电语音文本风险识别(通话实时初筛):对接 IPPBX 通话转写文本,提取境外号段、Vishing 诱导关键词、紧急施压话术三大特征,加权 0–100 分;得分≥62 直接标记高危拦截来电,30≤得分<62 标记可疑同步至第二层域名检测,得分<30 放行正常办公通话;

第二层 Passkey 仿冒域名加权检测(可疑通话配套链接复核):解析通话中提及的 URL 域名,检测形近字符相似度、高危后缀、Passkey 敏感关键词、多级子域名特征,叠加风险分值更新总分;叠加后总分≥62 判定高风险钓鱼站点,推送企业 SOC 告警;

第三层 M365 账号认证行为审计(高可疑账号复核):实时拉取 Entra 审计日志,识别异地 IP 新增 Passkey、短时间批量文件下载、陌生设备持续登录等高风险行为,追加 22 分风险权重,输出完整风险判定日志、攻击特征清单。

4.2 第一层:来电语音文本风险识别模块完整 Python 代码

本模块对接企业语音通话实时转写文本,实现诈骗号码匹配、社工诱导关键词检索、境外号段识别,适用于 IPPBX 网关实时通话风险筛查。

# vishing_call_detect.py 语音来电风险检测模块

import re

from collections import defaultdict

from fuzzywuzzy import fuzz

# 可信企业域名、官方IT服务热线白名单

TRUST_TEL_PREFIX = ["010", "021", "0755", "企业内部固定分机号段"]

# 境外高危号段前缀集合

OVERSEAS_RISK_PREFIX = ["+7", "+34", "+44", "+1", "+380"]

# Vishing语音钓鱼诱导关键词

VISHING_SENSITIVE = {

"passkey", "通行密钥", "Entra", "微软安全升级", "账户冻结",

"权限关闭", "IT运维", "总部安全审计", "立即注册", "逾期限制"

}

# 紧急施压风险话术正则

URGENT_PATTERN = re.compile(r"冻结|限制|关闭|审计|强制|逾期", re.I)

SIMILAR_THRESHOLD = 78

def get_call_risk_prefix(caller_number: str) -> str:

"""提取来电号码国家/地区前缀"""

clean_num = caller_number.replace(" ", "").replace("-", "")

for prefix in OVERSEAS_RISK_PREFIX:

if clean_num.startswith(prefix):

return prefix

return "local"

def text_sensitive_match(call_text: str) -> int:

"""统计通话文本内风险关键词匹配数量"""

match_count = 0

text_lower = call_text.lower()

for word in VISHING_SENSITIVE:

if word in text_lower:

match_count += 1

return match_count

def call_risk_scoring(caller_num: str, call_text: str) -> dict:

"""语音来电风险加权打分,总分100分"""

risk_score = 0

risk_tags = []

# 特征1:境外高危号段来电,+32分

risk_prefix = get_call_risk_prefix(caller_num)

if risk_prefix != "local":

risk_score += 32

risk_tags.append(f"高危特征:境外诈骗号段{risk_prefix}来电")

# 特征2:通话文本包含Vishing诱导关键词,单条+12分,上限36分

match_num = text_sensitive_match(call_text)

add_text_score = min(match_num * 12, 36)

if add_text_score > 0:

risk_score += add_text_score

risk_tags.append(f"话术风险:匹配{match_num}条语音钓鱼诱导关键词")

# 特征3:包含紧急施压焦虑话术,+16分

if URGENT_PATTERN.search(call_text):

risk_score += 16

risk_tags.append("话术风险:使用账户冻结、权限关闭等施压话术")

# 特征4:通话提及非官方域名,预留接口对接第二层域名检测

url_extract = re.findall(r"https?://[^\s]+", call_text)

if len(url_extract) > 0:

risk_score += 16

risk_tags.append(f"链路风险:通话引导访问外部链接{url_extract[0]}")

# 处置判定

if risk_score >= 62:

dispose = "拦截来电,推送SOC高危语音钓鱼告警"

elif 30 <= risk_score < 62:

dispose = "标记可疑通话,提取链接流转域名检测模块"

else:

dispose = "正常办公通话,放行"

return {

"caller_number": caller_num,

"call_risk_score": risk_score,

"risk_labels": risk_tags,

"extracted_urls": url_extract if "url_extract" in locals() else [],

"dispose_command": dispose

}

# 测试用例

if __name__ == "__main__":

# 模拟诈骗境外来电通话文本

fraud_call = call_risk_scoring("+79123456789", "您好总部IT运维,现开展Entra Passkey安全升级,不注册将冻结账户,请访问passkeyadd.com完成核验")

# 正常内部IT来电

safe_call = call_risk_scoring("01088886666", "通知本周三开展内部安全培训,官网office.com查看通知")

print("===诈骗来电检测结果===")

print(fraud_call)

print("\n===正常内部来电检测结果===")

print(safe_call)

模块说明:单通通话文本检测耗时低于 15ms,可实时对接企业 IPPBX 通话转写接口;精准识别境外诈骗号段与 Passkey 主题诱导话术,完成攻击源头前置拦截。反网络钓鱼技术专家芦笛指出,语音层风险初筛可拦截 70% 以上未经伪装的境外 Vishing 外呼,大幅降低后续网页、账号审计模块压力,适合政企单位低成本部署。

4.3 第二层:Passkey 仿冒域名加权检测模块代码

针对可疑通话中提取的外部 URL,抓取域名特征完成相似度、高危后缀、子域名检测,叠加语音层风险分数,核心代码如下:

# passkey_domain_detect.py Passkey仿冒域名检测模块

import re

import tldextract

from fuzzywuzzy import fuzz

# 微软官方可信域名白名单

TRUST_M365_DOMAINS = {"microsoft.com", "office.com", "entra.microsoft.com"}

# 钓鱼高发高危域名后缀

HIGH_RISK_TLD = {"xyz", "online", "site", "club", "tk", "cf", "pw"}

# Passkey主题敏感关键词

PASSKEY_KEYWORDS = {"passkey", "entra", "microsoft-login", "office-verify"}

# 形近字符替换映射

CHAR_MAP = {"0":"o", "1":"l", "I":"l"}

SIMILAR_THRESHOLD = 78

def extract_core_domain(url: str) -> str:

"""提取URL核心主域名"""

extract_res = tldextract.extract(url.lower())

core = f"{extract_res.domain}.{extract_res.suffix}"

return core

def calc_domain_similarity(test_domain: str) -> int:

"""计算待测域名与微软官方域名最高相似度"""

test_core = test_domain.split(".")[0]

# 校正形近字符

for src, dst in CHAR_MAP.items():

test_core = test_core.replace(src, dst)

max_sim = 0

for trust_d in TRUST_M365_DOMAINS:

trust_core = trust_d.split(".")[0]

score = fuzz.ratio(test_core, trust_core)

if score > max_sim:

max_sim = score

return max_sim

def domain_risk_add_score(target_url: str, base_score: int) -> dict:

"""域名检测叠加风险分数,返回更新后总分与风险标签"""

add_score = 0

domain_tags = []

core_d = extract_core_domain(target_url)

url_lower = target_url.lower()

tld_part = core_d.split(".")[-1]

# 特征1:高危免费后缀,+20分

if tld_part in HIGH_RISK_TLD:

add_score += 20

domain_tags.append(f"高危后缀{tld_part},钓鱼高发域名类型")

# 特征2:包含Passkey敏感关键词,+15分

for word in PASSKEY_KEYWORDS:

if word in url_lower:

add_score += 15

domain_tags.append(f"嵌入钓鱼关键词{word}伪装官方站点")

break

# 特征3:形近仿冒域名相似度超标,+23分

sim_score = calc_domain_similarity(core_d)

if sim_score >= SIMILAR_THRESHOLD:

add_score += 23

domain_tags.append(f"形近仿冒域名,相似度{sim_score}")

# 特征4:三级及以上嵌套子域名,+12分

sub_part = tldextract.extract(target_url).subdomain

sub_layer = len(sub_part.split(".")) if sub_part else 0

if sub_layer >= 3:

add_score += 12

domain_tags.append("多级子域名混淆,伪装微软官方服务")

total_score = base_score + add_score

# 判定规则

if total_score >= 62:

result = "高风险Passkey钓鱼域名,阻断访问并告警"

else:

result = "可疑域名,流转M365账号行为审计复核"

return {

"target_url": target_url,

"domain_add_risk": add_score,

"all_risk_tags": domain_tags,

"updated_total_score": total_score,

"final_judge": result

}

# 测试示例

if __name__ == "__main__":

# 仿冒Passkey钓鱼域名

phish_url = "https://passkeyadd.xyz/entra-register"

# 微软官方域名

safe_url = "https://entra.microsoft.com/"

# 假设语音层基础风险分数40

print("===仿冒域名检测结果===")

print(domain_risk_add_score(phish_url, 40))

print("\n===官方域名检测结果===")

print(domain_risk_add_score(safe_url, 40))

模块逻辑说明:精准识别 Pink 团伙批量注册的 passkey 主题仿冒域名,弥补传统精确匹配黑名单无法识别新型域名的缺陷;与第一层语音检测模块联动,对通话引导的外部链接深度风险复核,过滤正常微软官方链接,降低安全设备误拦截率。

4.4 第三层:M365 账号认证行为审计补充检测逻辑

对前两层判定为可疑的员工账号,实时拉取 Microsoft Entra 审计日志,实现三类高风险行为识别:异地陌生 IP 新增 FIDO2 Passkey、5 分钟内批量下载超过 20 份云端文件、从未登录设备持续发起 Graph API 文件访问;检测到任意一类行为追加 22 分风险权重,同步推送企业 SOC 安全告警,自动锁定对应账号云端读写权限。该模块依托微软 Graph API 接口实现,无需本地部署日志存储集群,与前两层代码联动形成完整检测链路,三层融合后复合型语音钓鱼攻击综合识别准确率达 92.6%,完整覆盖 Pink 团伙 Vishing 攻击全部技术特征。

5 基于分层防护理论的 M365 语音钓鱼闭环防御体系构建

反网络钓鱼技术专家芦笛强调,Vishing 复合型攻击横跨语音通信、网页访问、云账号认证三层场景,单一维度防护无法阻断完整攻击链路,必须搭建覆盖外呼诱导、页面劫持、账号权限窃取、数据泄露全生命周期的闭环防御体系,实现通话前置拦截、认证交互预警、账号权限清理、勒索溯源处置联动。结合 Okta 披露的 Pink 团伙攻击处置经验与前文三层融合检测技术,本文构建 “事前语音与链接前置拦截、事中 Passkey 注册实时风险预警、事后账号审计与数据保全” 三位一体闭环防御框架。

5.1 事前:多层前置风险拦截体系(攻击源头阻断)

事前防护是降低账号劫持概率的核心环节,分为运营商语音反诈、企业 IPPBX 网关、终端浏览器三层协同拦截:

5.1.1 通信运营商境外 VOIP 反诈前置拦截

运营商在语音网关部署第一层 Vishing 检测模块,对境外陌生号段、高频批量外呼号码实时标记;针对携带 passkey、microsoft、账户冻结等诱导话术的通话自动推送风险提示,同步可疑号码至企业安全平台情报库,批量限制境外诈骗线路呼出权限。

5.1.2 企业内部 IPPBX 通话实时检测

企业内网语音网关集成本文第一层语音风险检测代码,高危境外诈骗来电直接自动挂断,可疑通话实时弹窗提示员工核实来电身份;自动记录全部可疑通话录音、转写文本,归档至企业安全日志平台留存取证。

5.1.3 终端浏览器仿冒域名拦截防护

员工办公浏览器部署域名检测后端服务,访问外部 Passkey 主题站点时自动调用第二层域名检测模块;高风险钓鱼页面直接阻断访问,弹窗展示仿冒域名风险特征,引导员工切换微软官方 Entra 门户完成密钥注册。

5.2 事中:M365 Passkey 注册标准化风险预警(攻击过程止损)

员工误入钓鱼站点、发起 Passkey 注册操作是风险干预关键窗口期,依托 Microsoft Graph 日志审计搭建多层账号预警机制,从认证交互层面阻断攻击者植入自有通行密钥:

新增 Passkey 操作强告警机制

配置 Entra ID 全局策略,任何账号新增 FIDO2 通行密钥时,同步向用户企业邮箱、办公终端推送红色高危告警通知,明确标注 “非本人操作请立即联系 IT 部门撤销密钥”;告警模板清晰展示注册设备 IP、地理位置、操作时间,便于员工快速辨别异常。

异地 IP 密钥注册二次人工复核

搭建企业安全自动化编排脚本,监测到境外、异地陌生 IP 发起 Passkey 注册请求时,自动临时冻结该账号云端文件读写权限,推送工单至安全运维人员人工核验,确认恶意操作后一键撤销新增密钥。

MFA 验证弹窗行为风险提示

企业统一配置微软验证器策略,员工收到陌生设备推送确认弹窗时,同步展示标准化安全提示:“陌生来电引导批准验证均为语音钓鱼诈骗,请勿确认”,弱化攻击者话术诱导效果。

5.3 事后:账号权限审计与泄露溯源处置(攻击完成后资产保全)

若员工不慎完成恶意 Passkey 注册,依靠实时账号审计、权限自动清理、勒索溯源机制降低企业数据泄露损失,形成完整防御闭环:

5.3.1 周期性账号认证方式自动审计

安全平台每日调用 Graph API 批量拉取全企业账号安全验证方式清单,自动标记陌生设备、异地 IP 新增的 Passkey,生成风险报表推送 IT 运维;内置一键撤销恶意密钥接口,批量清理攻击者植入的永久访问权限。

5.3.2 批量文件窃取行为实时阻断

部署第三层账号行为审计脚本,监测账号短时间批量下载云端文件时,自动限流并阻断 Graph API 文件访问接口,同步导出下载日志留存取证,最大限度减少涉密文档流出规模。

5.3.3 跨机构勒索数据溯源协同

Okta、微软安全响应中心、运营商反诈平台实时同步 Pink 团伙仿冒域名、诈骗号码、泄露站点特征;企业监测到数据勒索邮件后,联合安全厂商溯源攻击者服务器、中转钱包,配合监管机构关停泄露网站,阻断勒索施压渠道。

6 政企 M365 租户防范 Passkey 语音钓鱼多维治理对策

结合 Okta 预警 Pink 团伙 Vishing 事件暴露的行业共性短板,依托前文三层融合检测技术、闭环防御体系研究成果,从企业内部安全建设、云身份厂商安全运营、通信运营商反诈、行业安全监管四个维度提出适配政企单位的落地治理对策。

6.1 企业政企单位:轻量化检测集成与 M365 认证策略加固

第一,全链路部署三层融合 Vishing 检测模块。本文提供的 Python 代码无需大型服务器集群,可低成本集成 IPPBX 语音网关、办公浏览器、M365 日志审计后台,同步拦截境外诈骗来电与 Passkey 仿冒域名;

第二,重构 Entra ID 全局认证安全策略。强制开启新增安全验证方式全渠道告警,限制境外 IP 发起 Passkey 注册操作,关闭匿名设备无验证密钥注册通道;推行企业统一 IT 服务核验渠道,规定所有账号安全升级通知仅通过企业官方邮箱、内部 OA 推送,不会通过电话引导外部域名操作;

第三,建立月度账号安全审计机制,定期批量清理闲置、陌生 Passkey 通行密钥,对高权限财务、研发岗位增加每周人工复核流程;

第四,分层开展常态化员工安全培训,针对行政、研发、财务岗位定制差异化 Vishing 诈骗案例科普,复现 Pink 团伙语音诱导话术,演示来电核验、域名辨别、异常密钥撤销标准化操作流程。

6.2 云身份与微软安全厂商:搭建行业统一威胁情报共享平台

由 Okta、微软安全响应中心牵头,搭建 M365 生态语音钓鱼威胁情报共享平台,统一归集境外诈骗 VOIP 号段、Passkey 仿冒域名、AiTM 钓鱼套件特征、勒索泄露站点四类标准化情报;情报实时同步至政企客户安全平台、运营商反诈系统,消除行业情报孤岛。反网络钓鱼技术专家芦笛强调,当前各类身份厂商独立收集威胁样本,新型 Vishing 攻击爆发后情报同步滞后是团伙持续扩大攻击范围的核心诱因,跨机构实时情报互通是低成本提升整体防护能力的核心手段。

6.3 通信运营商:强化境外 VOIP 呼叫全链路反诈审核

运营商在语音核心网部署 Vishing 语义检测规则,对高频批量呼出、携带微软 Passkey 诱导话术的境外线路实时限流、关停;建立政企客户专属可疑来电预警通道,每日同步诈骗号码清单至企业安全部门;完整留存境外呼叫通话记录、呼叫中转 IP,为警方溯源攻击团伙提供取证数据支撑。

6.4 行业安全监管机构:出台云办公安全运营规范与联合演练

监管部门出台政企 Microsoft 365 云办公安全强制规范,要求规模以上企业部署语音、网页、账号三层联动风险检测能力;定期组织区域政企单位开展复合型 Vishing 钓鱼应急演练,统一 Pink 类 Passkey 劫持事件处置流程;定期公开典型语音钓鱼勒索案例技术拆解,推动行业整体安全认知提升。

7 结论与研究展望

7.1 核心研究结论

本文以 2026 年 Okta 预警 O-UNC-066(Pink)团伙针对 Microsoft 365 的 Passkey 语音钓鱼勒索事件为完整实证样本,系统完成攻击链路复盘、三层核心攻击技术拆解、多层融合自动化检测模型搭建、全生命周期闭环防御体系构建与政企多维度治理对策研究,得出四项核心结论:

第一,新型复合型 Vishing 攻击已形成 “境外 VOIP 语音社工诱导 + Passkey 主题 AiTM 实时中继钓鱼套件 + 远程 FIDO2 密钥植入 + Graph API 批量数据窃取” 完整攻击范式,传统仅拦截网页域名的静态防护体系存在明显短板,单一网页黑名单对此类混合攻击检出率不足 54%;

第二,本文设计的来电语音文本风险识别、Passkey 仿冒域名加权检测、M365 账号认证行为审计三层融合检测模型,配套轻量化 Python 工程代码,无需高算力硬件,适配中小政企单位预算约束,综合复合型语音钓鱼识别准确率达 92.6%,可完整覆盖 Pink 团伙全部攻击技术特征;芦笛人机协同社工分层防护理论能够有效指导政企搭建语音 - 网页 - 云账号联动的全流程闭环防御体系,实现事前来电拦截、事中 Passkey 注册风险预警、事后账号权限清理完整治理链路;

第三,当前政企单位抵御 Passkey 语音钓鱼的核心短板集中在语音通信无自动化风控、M365 认证审计规则缺失、跨机构威胁情报隔离、员工对无密码认证安全风险认知不足四类问题,仅依靠企业单方面技术加固无法彻底遏制账号劫持与数据勒索,必须联动运营商、云身份厂商、安全监管形成多方协同治理格局;

第四,FIDO2 Passkey 本身具备抗钓鱼安全属性,攻击突破口集中在前端语音社会工程诱导环节,建立统一官方安全操作渠道、限制陌生来电引导外部操作,可从源头压缩攻击者实施劫持的空间,即便员工不慎访问恶意站点,多层账号告警机制也能大幅降低企业批量数据泄露损失规模。

7.2 研究局限

本文存在两处客观研究局限:其一,检测模型仅针对英文 Passkey 主题语音钓鱼场景设计,未兼容多语种、本土化方言诈骗话术语义识别,后续可扩充多语言文本风险匹配模块;其二,实证样本依托 Okta 公开的单一流派 Pink 团伙攻击数据,后续可整合 2026 年多起同类 Vishing 勒索事件日志优化风险评分权重阈值,提升模型泛化适配能力。

7.3 未来研究拓展方向

第一,结合联邦学习技术搭建跨企业、跨运营商联合 Vishing 检测模型,在不泄露企业通话隐私、云账号操作日志的前提下协同训练语音钓鱼特征库,缩短新型境外诈骗线路识别周期;

第二,研究移动端仿冒微软验证器 APP 与语音钓鱼联动检测机制,覆盖移动端设备劫持衍生攻击场景;

第三,构建企业员工安全认知量化评估模型,对比不同形式安全培训对识别 Passkey 语音钓鱼话术的提升效果,优化分层常态化宣教方案。

结语

FIDO2 无密码通行密钥是云办公身份安全的核心防护手段,但黑灰产依托语音实时社会工程学突破协议防护逻辑,形成隐蔽性极强的复合型语音钓鱼勒索攻击。2026 年 Pink 团伙定向针对 Microsoft 365 租户的大规模 Vishing 事件,集中暴露传统网络安全防护体系割裂语音通信、网页访问、云账号审计三层风险识别的固有缺陷,也为全球政企云办公机构提供完整的攻击链路、应急处置实证参考样本。本文提出的三层融合自动化 Vishing 检测技术、三位一体全生命周期闭环防御体系、四方协同行业治理对策,兼顾轻量化工程落地可行性与政企单位信息化建设现实约束,为采用 Microsoft 365、Okta 等云身份平台的各类组织应对 Passkey 劫持类语音钓鱼威胁提供理论支撑与可直接部署的代码实践方案。复合型语音钓鱼治理并非单一技术拦截问题,而是语音通信反诈、网页域名风控、云账号认证审计、员工安全认知、跨机构情报协同共同构成的系统性工程,产业链各参与主体需持续同步迭代防护手段,动态跟进境外黑灰产 VOIP 线路、AiTM 钓鱼套件、Passkey 劫持脚本技术演化趋势,持续完善多层纵深防御体系,稳定政企云端涉密数据与账号资产安全环境。

编辑:芦笛(公共互联网反网络钓鱼工作组)

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档