EvilTokens 设备码钓鱼即服务攻击机理与全域防御研究

在线体验各类最新模型,更有模型 免费Token 额度领取!
立即体验
简介: EvilTokens是2026年商用的设备码钓鱼即服务(PhaaS)平台,滥用OAuth 2.0设备授权流(RFC 8628),全程复用微软官方域名,绕过短信/MFA验证,窃取长效刷新令牌。攻击无仿冒域名、无恶意载荷,传统防护完全失效。本文系统剖析其六阶段攻击链,提出四层纵深防御体系及三套Python检测代码,推动企业防护从“页面黑名单”转向“授权行为管控”。

摘要

传统仿站钓鱼、中间人攻击依托伪造域名、恶意页面实施凭证窃取,多因素认证体系可形成基础拦截能力。2026 年 2 月上线的 EvilTokens 商业化钓鱼工具平台滥用 OAuth 2.0 设备授权标准 RFC 8628,构建全自动化设备码钓鱼链路,全程复用微软官方身份认证域名,可绕过短信、软件推送类常规 MFA 机制,实现企业邮箱、云文档、协同工具全权限令牌持久窃取。《The Register》2026 年 7 月专项调研证实,该平台集成 AI 诱饵生成、动态设备码调度、令牌轮询劫持、商业邮件欺诈自动化模块,依托 Telegram 黑产渠道订阅分发,上线 3 个月内设备码钓鱼攻击规模暴涨 37.5 倍,单轮攻击波及全球 344 家跨行业企业。本文系统拆解 EvilTokens 平台架构、标准化六阶段攻击闭环,厘清 OAuth 设备码协议原生设计缺陷;对比传统钓鱼、AitM 中间人攻击的差异化威胁特征,剖析现有邮件网关、身份审计、终端防护体系失效底层逻辑;搭建四层纵深闭环防御架构,配套三套可落地 Python 检测工程代码,覆盖诱饵语义识别、云日志异常研判、设备码请求拦截场景。反网络钓鱼技术专家芦笛指出,EvilTokens 标志设备码钓鱼完成黑产工业化转型,攻击无恶意域名、无木马载荷、依托官方认证站点的特征,完全突破传统静态特征库防御逻辑,企业防护重心必须由页面黑名单转向授权流程动态行为管控。实测日志与受害企业溯源数据证明,仅依靠账号密码校验、基础多因素认证无法抵御该类攻击,需同步落地协议管控、实时行为检测、令牌生命周期加固、人员安全培训多重手段。

关键词:EvilTokens;设备码钓鱼;OAuth 2.0;钓鱼即服务;MFA 绕过;身份令牌劫持;纵深防御

image.png 1 引言

1.1 研究背景

OAuth 2.0 设备授权流(RFC 8628)专为无完整输入界面的智能电视、IoT 设备、命令行工具设计,通过分离式设备验证码交互完成第三方应用授权,微软 Entra ID 原生开放该接口支撑海量终端设备接入。该协议在设计阶段未约束验证码会话归属绑定关系,仅依靠用户人工识别页面真实性,存在可被黑产规模化利用的结构性缺陷。2025 年少量定向 APT 团伙零散使用设备码钓鱼手段,但工具搭建门槛高、自动化能力弱,仅能开展小范围定点入侵,未形成全域安全风险。

2026 年 2 月中旬,名为 EvilTokens 的钓鱼即服务(PhaaS)套件在 Telegram 地下渠道正式上架,黑产从业者支付订阅费用即可获得完整攻击链路工具,包含多品牌仿钓鱼页面模板、AI 个性化诱饵生成引擎、动态设备码实时请求后端、令牌持续轮询劫持服务、企业商业邮件欺诈(BEC)自动化分析模块。《The Register》2026 年 7 月深度跟踪报道披露,该平台创新性解决传统设备码钓鱼 15 分钟验证码时效限制问题,受害者点击页面瞬间实时调用微软设备码接口生成全新会话验证码,消除攻击窗口期损耗;同时依托 Vercel、AWS Lambda、Railway 合法云服务托管中转页面,规避沙箱、URL 信誉库检测。

从威胁规模层面,Push Security 监测数据显示,EvilTokens 商用化后全球设备码钓鱼页面数量较往年基准提升 37.5 倍,金融、医疗、政务、制造、跨境贸易企业成为核心受害目标。攻击区别于传统钓鱼的核心特征在于:用户全程访问microsoft.com官方认证域名,不存在任何仿冒站点;完成短信、微软验证器推送等常规 MFA 后,攻击者直接获取长效刷新令牌,即便受害者修改账号密码,攻击者仍可持续访问企业全部云资源。大量企业部署的邮件安全网关、域名过滤、终端 EDR 产品基于恶意域名、恶意附件、伪造登录页面特征匹配拦截,面对无伪造资源、无恶意载荷的 EvilTokens 攻击完全失效,形成大面积防护盲区。

1.2 现有安全体系核心短板

当前面向 Microsoft 365 的企业安全防护框架存在四项结构性短板,无法有效抵御 EvilTokens 设备码钓鱼攻击:

第一,防御检测逻辑依赖静态特征匹配。邮件网关、威胁情报平台依靠恶意域名、恶意附件、仿站页面截图、已知钓鱼文本关键词完成拦截,EvilTokens 使用微软原生域名、纯文本 AI 定制诱饵、无附件无木马载体,不存在可匹配静态风险特征,检测命中率趋近于零;

第二,常规多因素认证不具备钓鱼抵抗能力。短信、移动端推送类 MFA 仅校验用户身份合法性,无法识别授权会话对应的应用归属,用户完成二次验证等同于主动向攻击者控制的恶意客户端授予全量资源权限;

第三,云身份审计缺乏设备码流专项监控。多数企业仅配置异地登录、陌生设备登录告警,未对高频批量设备码申请、短时间跨地域令牌调用、异常第三方高权限授权建立实时告警规则,入侵行为发生数周后才被人工复盘发现;

第四,黑产产业化防御应对滞后。以往设备码钓鱼为高级攻击者专属手段,EvilTokens 大幅降低攻击技术门槛,无代码基础黑产从业者可批量发起攻击,安全厂商规则更新、企业策略调整速度跟不上攻击扩张速度。

反网络钓鱼技术专家芦笛强调,多数企业在身份安全建设中将重心放置于账号泄露、暴力破解防护,完全忽视 OAuth 第三方授权流程风险,设备码流作为低关注度认证通道,成为当前黑产入侵企业云环境最优突破口。

1.3 研究内容与创新点

本文依托《The Register》EvilTokens 专项调查、IBM X-Force、CSA 云安全联盟配套实测数据开展体系化实证研究,核心研究内容分为五个模块:

梳理 OAuth 2.0 设备授权标准原生交互逻辑,完整还原 EvilTokens 六阶段标准化攻击闭环,拆解平台后端技术架构与各模块功能;

多维度对比 EvilTokens 设备码钓鱼、传统仿站钓鱼、AitM 中间人攻击的威胁差异,量化攻击绕过常规防护的底层原理;

汇总 2026 年 2—6 月真实受害企业入侵案例,梳理攻击后续 BEC 欺诈、数据外发、持久后门搭建完整衍生风险;

构建协议管控、实时行为检测、令牌加固、人员管控四层纵深防御体系,提供三套 Python 自动化检测代码,覆盖诱饵语义风险研判、云审计日志异常识别、批量设备码请求拦截场景;

提出企业 Microsoft Entra 条件访问、邮件安全、终端协同落地标准化运营规范,给出攻击发生后的令牌吊销、权限清理应急处置流程。

本文创新点:

基于 2026 年规模化野外攻击实测数据,完整量化 EvilTokens 产业化带来的风险扩张幅度,明确设备码协议不可修补的底层安全缺陷;

区分常规 MFA 与钓鱼抵抗型 FIDO2 密钥防护能力差异,给出可落地身份认证升级方案;

打通邮件入口、云授权、令牌调用全链路检测逻辑,提供轻量化自动化检测代码原型,可直接集成企业安全运营平台;

构建事前收敛攻击面、事中实时拦截、事后快速溯源处置的闭环防御框架,填补现有企业身份安全体系针对设备码钓鱼的防护空白。

1.4 论文组织结构

本文共设六个一级章节:第一章阐述研究背景、现有防护短板、核心研究内容与创新方向;第二章介绍 OAuth 设备码协议标准流程,拆解 EvilTokens 平台架构、六阶段完整攻击链路;第三章横向对比三类主流钓鱼攻击,分析传统防护体系失效机理与攻击衍生危害;第四章结合多行业真实受害案例,还原入侵后数据窃取、商业欺诈操作流程;第五章设计四层纵深防御架构,附三段完整可运行 Python 检测代码与常态化运营、应急处置细则;第六章总结全文核心结论,研判 EvilTokens 类 PhaaS 工具演化趋势,说明研究客观局限与后续拓展研究方向。

2 OAuth 设备码协议与 EvilTokens 攻击全链路解析

2.1 RFC 8628 标准设备授权正常交互流程

OAuth 2.0 设备授权流专为输入受限设备设计,整体分为五步合法交互,各主体数据交互逻辑清晰:

无键盘终端设备携带官方客户端 ID,向微软/oauth2/v2.0/devicecode接口发起授权申请,指定需要获取的云资源权限范围;

微软身份服务器校验客户端合法性,返回三组核心数据:device_code(设备与服务端绑定唯一会话凭证)、user_code(面向用户展示短验证码)、官方验证地址microsoft.com/devicelogin,同时标注验证码 15 分钟有效期、客户端轮询间隔;

终端设备展示 user_code 与官方验证链接,提示用户使用手机、电脑访问链接完成身份授权;

用户在任意终端打开微软原生登录页面,输入账号、密码并完成 MFA 二次验证,确认授予第三方设备对应资源访问权限;

设备客户端持续轮询微软令牌接口,用户完成授权后,服务器下发短期访问令牌与长效刷新令牌,设备凭借令牌调用 Microsoft Graph 接口读取邮件、文档、通讯录数据。

协议原生安全漏洞集中于会话绑定逻辑:服务器仅关联 device_code 与授权操作,不校验发起设备码请求的客户端物理身份,任何持有对应 device_code 的主体均可接收授权生成的令牌,EvilTokens 正是利用该分离式会话缺陷完成劫持。

2.2 EvilTokens 平台整体技术架构

《The Register》披露的平台逆向分析数据显示,EvilTokens 采用前后端分离分布式架构,整体分为五大核心功能模块,全部操作通过 Telegram 机器人控制台完成,黑产从业者无需服务器运维、代码开发能力:

目标情报与 AI 诱饵生成模块:导入企业邮箱列表后,AI 大模型读取公开企业业务信息、岗位职能,自动生成差异化钓鱼邮件,主题覆盖合同签署、发票查看、共享文档、语音留言、系统安全核验,规避统一模板带来的特征拦截;

动态设备码调度引擎:受害者点击钓鱼中转页面瞬间,后端并行调用微软设备码接口生成独立会话,解决传统工具静态验证码过期损耗问题,单台云节点每秒可处理上百次设备码请求;

云中转托管集群:依托 Vercel、AWS Lambda 等合规无服务器平台部署中转页面,页面仅展示 user_code,不存储任何用户凭证,规避恶意页面标记;多地域分布式节点分散请求 IP,防止单一 IP 被封禁;

令牌轮询劫持后台:持续循环请求微软令牌接口,用户完成授权后即时捕获 access_token 与 refresh_token,自动存储至攻击者后台数据库;内置邮箱检索工具,自动筛选往来财务邮件、合同信息用于 BEC 欺诈;

持久化后门模块:利用窃取的令牌在目标租户内注册恶意第三方设备,生成主刷新令牌(PRT),实现账号长期控制,即便用户修改登录密码、更换 MFA 设备,攻击者仍维持访问权限。

平台采用分层订阅收费模式,基础版提供单一模板钓鱼页面,高级版开放批量企业攻击、AI 诱饵、多节点托管、自动化 BEC 分析全部功能,上线 4 个月黑产付费使用者突破千人,形成成熟商业化黑产供应链。

2.3 EvilTokens 六阶段标准化攻击闭环

结合 Sekoia、Huntress 实验室对 344 家受害企业样本溯源,完整攻击链路分为递进六阶段,全程无伪造域名、无恶意程序,欺骗性远高于传统钓鱼手段:

2.3.1 情报导入与 AI 诱饵生成阶段

攻击者在 Telegram 机器人后台导入目标企业全体员工邮箱地址,填写企业所属行业、常用办公软件类型;平台内置 LLM 自动生成高度贴合日常办公的钓鱼文本,模板涵盖 Adobe 电子签名、SharePoint 共享文件、邮政发票通知等高频办公场景,每一封邮件内容语义均存在差异,无法通过固定关键词拦截。

2.3.2 钓鱼载荷批量投递阶段

平台调用第三方邮件投递接口、Teams 企业消息接口批量推送诱饵,邮件内链接指向云服务商托管的合法中转页面,不直接跳转微软域名,规避邮件网关 URL 扫描检测;正文刻意制造操作紧迫感,标注验证码 15 分钟内失效,降低用户安全思考时间。

2.3.3 实时设备码申请与页面展示阶段

受害者点击链接访问中转页面,页面前端脚本同步向后端调度引擎发送请求,后端即时调用微软官方设备码接口生成全新 user_code 与绑定 device_code;中转页面仅展示 5—8 位短验证码,提示用户复制至微软官方验证页面完成身份解锁,页面无任何恶意代码、表单采集组件。

2.3.4 用户访问微软官方站点完成认证

用户复制验证码,打开邮件内附带的microsoft.com/devicelogin链接,页面为微软原生界面,SSL 证书、域名、页面代码无任何伪造;用户输入企业邮箱账号、登录密码,完成短信或微软验证器推送 MFA 确认,页面展示授权权限列表(邮箱、云文件、通讯录、日历全部开放权限),用户点击确认完成授权。

2.3.5 攻击者后台劫持长效令牌

从用户点击确认授权瞬间,EvilTokens 轮询后台立即接收微软下发的短期访问令牌(60—90 分钟有效期)与滚动刷新令牌(90 天有效期),自动加密存储至攻击者数据库;平台内置邮箱爬虫,实时拉取受害者全部邮件内容,自动标记财务转账、合同往来高价值会话。

2.3.6 持久后门搭建与衍生攻击实施阶段

攻击者利用刷新令牌调用设备注册接口,在目标租户内新增恶意终端设备,获取长期 PRT 凭证;后续可发起多类衍生攻击:伪造高管邮箱下发转账指令实施 BEC 商业邮件欺诈、批量导出客户与财务数据打包泄露、修改邮箱转发规则拦截企业全部往来邮件、横向渗透同租户其他员工账号。

2.4 攻击天然绕过主流防护的核心逻辑

EvilTokens 攻击从底层规避企业现有多重安全设备检测规则,四大绕过机制形成完整防护盲区:

域名完全合法:用户核心认证操作全程访问微软官方域名,不存在仿冒钓鱼站点,基于恶意域名黑名单、页面相似度检测的防护手段完全失效;

无恶意载荷:钓鱼邮件仅包含文本与跳转链接,无病毒附件、宏文档、恶意脚本,EDR、邮件沙箱无法检出风险;

MFA 机制失效:短信、推送类 MFA 仅校验用户身份,不校验授权客户端安全性,用户完成二次验证等同于主动向攻击者开放权限;

分布式动态 IP 集群:设备码请求、中转页面访问依托全球合规云节点,无固定攻击 IP,传统 IP 封禁策略无法阻断批量攻击。

3 EvilTokens 与传统钓鱼攻击对比及衍生安全危害

3.1 三类主流钓鱼攻击多维对比

将 EvilTokens 设备码钓鱼、传统仿站钓鱼、AitM 中间人钓鱼从流量载体、域名真实性、MFA 绕过能力、检测难度、攻击持久性五个维度横向对比,清晰凸显新型威胁独特风险:

表格

攻击类型 域名是否伪造 MFA 绕过能力 攻击载荷 静态特征检测难度 账号持久控制

EvilTokens 设备码钓鱼 全程使用微软官方域名 完全绕过常规短信 / 推送 MFA 纯文本链接,无附件 极高,无匹配风险特征 极高,刷新令牌有效期 90 天

传统仿站钓鱼 伪造相似品牌域名 无法绕过任意 MFA 钓鱼表单页面 低,页面截图、域名可匹配拦截 低,仅窃取单次密码

AitM 中间人钓鱼 前端页面仿冒微软登录 可拦截 MFA 验证码 中间人代理脚本 中等,存在伪造页面特征 中等,会话时效较短

对比可见,EvilTokens 是当前唯一同时具备官方可信域名、绕过常规多因素认证、无恶意载荷、长效账号控制四大特征的规模化商用钓鱼工具,对企业云身份体系破坏力显著高于过往所有钓鱼手段。

3.2 设备码钓鱼协议缺陷不可修补的客观事实

RFC 8628 协议设计之初面向可信硬件终端场景,未考虑被恶意第三方客户端滥用场景,核心会话分离缺陷无法通过微软服务端补丁修复:

设备码生成、用户授权、令牌下发三个流程天然分离,服务器无法强制关联用户操作终端与发起设备码请求终端;若微软强制限制设备码客户端范围,会阻断智能电视、IoT 打印机、运维命令行工具等合法业务场景,大规模企业硬件设备将无法接入云服务,不存在无业务损耗的修复方案。企业只能通过自身租户条件访问策略、身份审计收敛攻击面,无法依靠云服务商从根源消除该攻击向量。

3.3 EvilTokens 攻击衍生多级安全危害

单次设备码授权劫持并非攻击终点,攻击者依托长效刷新令牌可实施多层级衍生风险,覆盖财产损失、数据泄露、业务中断、声誉损毁全维度:

商业邮件欺诈(BEC):检索高管、财务人员历史邮件行文风格,伪造转账通知、供应商付款邮件,诱导财务人员大额资金转出;单起成熟 BEC 欺诈可造成百万级企业财产损失;

全域企业数据外泄:调用 Graph 接口批量下载 OneDrive、SharePoint 内合同、客户资料、财务报表,打包售卖至黑产数据交易渠道;

邮箱持久劫持:修改邮件自动转发、过滤规则,企业全部往来邮件实时同步至攻击者邮箱,长期窃取商业机密;

横向租户渗透:利用窃取的账号权限读取企业组织通讯录,对全体员工批量发起 EvilTokens 二次钓鱼,扩大入侵范围;

合规处罚风险:医疗、金融、政务行业企业客户隐私数据泄露,违反数据安全、个人信息保护相关法规,面临监管机构高额处罚。

4 EvilTokens 野外真实受害企业案例实证分析

《The Register》联合多家全球安全厂商汇总 2026 年 2—5 月完整入侵案例,选取金融、医疗两大高敏感行业样本还原完整入侵与损失流程,直观验证攻击实际危害。

4.1 案例一:北美区域中型商业银行入侵事件

攻击时间窗口:2026 年 3 月 12 日 —3 月 27 日;攻击工具:EvilTokens 高级订阅版;受害规模:12 名财务、风控员工账号被劫持;

入侵流程:攻击者导入银行员工邮箱,AI 生成 “信贷合同电子签署” 钓鱼邮件,员工点击中转页面获取动态设备码,在微软官方页面完成短信 MFA 授权;平台后台同步获取全体受害者长效刷新令牌;

衍生攻击操作:攻击者拉取近一年企业对公转账邮件,伪造行长邮件下发 480 万元供应商转账指令,财务人员险些执行付款;批量导出上万企业客户征信、银行卡隐私数据;

企业处置滞后原因:银行仅配置异地登录告警,未开启设备码流专项审计,入侵 15 天后财务对账发现异常邮件转发规则,才定位入侵行为;全部受害账号刷新令牌花费 48 小时批量吊销,期间已有部分客户数据流出。

4.2 案例二:澳洲连锁医疗机构数据泄露事件

攻击时间窗口:2026 年 4 月 3 日 —4 月 18 日;受害规模:27 名门诊、病案管理员工账号沦陷;

入侵链路:诱饵以 “体检报告共享文档” 为主题,医护人员工作场景警惕性较低,批量完成设备码授权;攻击者注册恶意后门设备,持续 15 天访问病案系统云存储;

损失后果:超过三万患者病历、联系方式、诊疗记录被打包外泄,媒体曝光后品牌声誉严重受损,监管机构依据当地隐私法规处以高额行政罚款;

防护短板复盘:医疗机构仅部署基础邮件病毒扫描,未启用 Entra 条件访问阻断非必要设备码授权流程,无基于 NLP 的钓鱼诱饵语义检测机制。

4.3 多区域批量攻击共性特征

综合 344 家受害企业日志溯源,EvilTokens 批量攻击存在统一行为特征,可作为安全运营团队检测基线:

设备码申请请求集中来源于海外云服务商 IP 段,单 IP 短时间内发起数十次独立设备码调用;

授权行为发生在非工作时段(凌晨、周末),用户授权后短时间内出现批量 Graph 邮箱读取请求;

授权客户端名称多伪装为 “云备份服务”“文档同步工具” 等企业常用第三方应用;

授权完成后 12 小时内,出现新增设备注册、邮件转发规则修改等高风险操作。

5 四层纵深闭环防御体系与 Python 检测代码实现

针对 EvilTokens 攻击六阶段全链路,构建协议管控层、邮件诱饵检测层、云身份审计层、人员运营管控层四层纵深防御架构,从前置收敛攻击面、事中实时拦截、事后快速溯源处置形成闭环,配套三段完整可运行 Python 代码,分别实现钓鱼诱饵语义风险打分、云审计日志异常识别、批量设备码请求拦截检测。

5.1 四层防御体系标准化落地规范

5.1.1 第一层:协议管控层(事前收敛攻击面,最核心防御手段)

通过 Microsoft Entra 条件访问策略限制设备码授权流,从源头切断 EvilTokens 攻击基础,落地细则:

新建专用条件访问策略,命名 “阻断恶意设备码钓鱼授权”,覆盖企业全部员工账号;身份验证流勾选设备代码流,访问控制设置阻止访问;

建立可信例外清单,仅保留智能打印机、运维 CLI 工具、合规智能电视对应的官方客户端 ID,定期审核清理例外账号;

策略上线初期切换仅报告模式,观测 7 天合法设备授权日志,无业务中断后正式启用阻断;

全局开启连续访问评估(CAE),账号出现异地、异常设备访问风险信号时,自动实时吊销全部有效令牌。

反网络钓鱼技术专家芦笛强调,条件访问阻断设备码流是抵御 EvilTokens 成本最低、效果最优的手段,所有无 IoT、运维设备特殊需求的企业应全员启用该策略。

5.1.2 第二层:邮件诱饵检测层(事中拦截攻击入口)

在邮件安全网关前端集成语义检测能力,识别 AI 生成设备码钓鱼诱饵,落地规范:

部署 NLP 文本风险研判工具,对全部外部邮件做语义打分,高风险诱饵隔离至隔离邮箱;

拦截正文包含 “输入验证码解锁文档、15 分钟过期验证、官方设备登录链接” 等组合语义内容;

限制外部邮件短链接跳转层数,阻断多层云服务商中转页面跳转链路;

定期更新办公场景钓鱼语义特征库,适配 EvilTokens 持续迭代的 AI 诱饵模板。

5.1.3 第三层:云身份审计层(实时识别入侵行为,事后溯源处置)

采集 Entra ID 全量登录、设备码、Graph 接口访问日志,配置自动化告警与处置规则:

建立告警基线:单 IP1 小时发起超过 5 次设备码申请、非工作时段批量设备码授权、授权后立刻读取全部邮箱,触发安全运营人员实时告警;

开启令牌全生命周期日志留存,记录每一枚刷新令牌的生成时间、授权范围、使用 IP;

设计自动化应急脚本,检测到异常设备码授权后,一键吊销对应账号全部刷新令牌、删除恶意注册后门设备;

按月复盘设备码申请、授权审计日志,梳理潜在攻击苗头。

5.1.4 第四层:人员运营管控层(消除社会工程学利用空间)

常态化专项安全培训,单独讲解设备码钓鱼攻击原理,明确官方不会通过邮件发送验证码要求用户登录微软站点;

制定企业授权规范:任何外部文档、合同无需通过设备验证码解锁,收到相关邮件直接转发安全团队核验;

定期模拟 EvilTokens 钓鱼演练,统计员工点击、授权操作风险比例,针对性强化高风险岗位培训;

官网、企业 OA 公示全部官方业务验证渠道,统一对外风险提示。

5.2 三段完整 Python 工程检测代码实现

5.2.1 代码一:钓鱼诱饵语义风险检测脚本(邮件网关集成工具)

基于文本关键词组合、语义相似度对邮件正文打分,识别 EvilTokens 类设备码钓鱼诱饵,可对接邮件安全网关 API 批量扫描外部邮件。

import re

from typing import Tuple


# 设备码钓鱼高风险语义特征库,匹配EvilTokens诱饵固定话术

RISK_PHRASES = [

   "输入验证码查看共享文档",

   "15分钟内完成身份验证",

   "microsoft.com/devicelogin",

   "设备验证码解锁合同",

   "电子签名验证码过期",

   "复制验证码至微软官方页面"

]

# 风险权重配置

BASE_SCORE = 0

PHRASE_WEIGHT = 25

HIGH_RISK_THRESHOLD = 60


def calculate_email_risk(email_content: str) -> Tuple[int, str]:

   """

   输入邮件正文文本,输出风险分数与风险判定结果

   """

   risk_score = BASE_SCORE

   lower_text = email_content.lower()

   # 匹配风险短语累加分数

   for phrase in RISK_PHRASES:

       if phrase in lower_text:

           risk_score += PHRASE_WEIGHT

   # 判定风险等级

   if risk_score >= HIGH_RISK_THRESHOLD:

       return risk_score, "critical_risk"

   elif risk_score >= 30:

       return risk_score, "medium_risk"

   else:

       return risk_score, "safe"


# 调用测试示例

if __name__ == "__main__":

   # 模拟EvilTokens钓鱼邮件正文

   test_phish_text = "您好,您有一份信贷合同待签署,请复制下方验证码前往microsoft.com/devicelogin完成验证,验证码15分钟内失效,超时文档将无法打开。"

   # 正常办公邮件文本

   test_normal_text = "本周三下午三点召开财务对账会议,请各位携带纸质报表参会。"

   score1, level1 = calculate_email_risk(test_phish_text)

   score2, level2 = calculate_email_risk(test_normal_text)

   print(f"钓鱼邮件检测结果:风险分数{score1},等级{level1}")

   print(f"正常邮件检测结果:风险分数{score2},等级{level2}")

部署说明:脚本封装为接口部署于邮件网关,外部入站邮件自动调用检测,critical_risk 等级邮件直接隔离并推送安全告警。

5.2.2 代码二:Entra 审计日志异常设备码行为识别工具

读取导出的云身份日志,批量识别短时间高频设备码申请、跨时段异常授权行为,输出风险账号清单供安全运营处置。

import json

from collections import defaultdict

from datetime import datetime


# 风险判定阈值配置

REQUEST_THRESHOLD = 5  # 单IP一小时超过5次设备码申请判定风险

WORK_START = 9

WORK_END = 18


def parse_log_timestamp(time_str: str) -> datetime:

   """解析日志标准时间格式"""

   return datetime.strptime(time_str, "%Y-%m-%dT%H:%M:%SZ")


def scan_devicecode_log(log_list: list) -> list:

   """

   批量扫描Entra设备码日志,返回风险账号、风险IP清单

   log_list:从Microsoft Entra导出的设备码事件日志数组

   """

   ip_request_count = defaultdict(int)

   risk_accounts = []

   for log in log_list:

       event_type = log.get("operationName", "")

       if "devicecode" not in event_type.lower():

           continue

       # 提取日志核心字段

       ip_addr = log.get("clientIpAddress", "")

       user_upn = log.get("userPrincipalName", "")

       log_time = parse_log_timestamp(log.get("timeGenerated"))

       hour = log_time.hour

       ip_request_count[ip_addr] += 1

       # 判定风险条件1:单IP请求超限

       if ip_request_count[ip_addr] >= REQUEST_THRESHOLD and user_upn not in risk_accounts:

           risk_accounts.append(user_upn)

       # 判定风险条件2:非工作时段授权

       if hour < WORK_START or hour > WORK_END:

           if user_upn not in risk_accounts:

               risk_accounts.append(user_upn)

   # 去重风险账号

   unique_risk = list(set(risk_accounts))

   return unique_risk


# 测试用例

if __name__ == "__main__":

   # 模拟两条日志,一条异常攻击行为,一条正常运维

   test_logs = [

       {

           "operationName": "DeviceCodeAuthentication",

           "clientIpAddress": "3.21.145.89",

           "userPrincipalName": "finance01@bank-example.com",

           "timeGenerated": "2026-07-02T02:15:30Z"

       },

       {

           "operationName": "DeviceCodeAuthentication",

           "clientIpAddress": "192.168.1.10",

           "userPrincipalName": "ops@bank-example.com",

           "timeGenerated": "2026-07-02T14:20:10Z"

       }

   ]

   risk_users = scan_devicecode_log(test_logs)

   print(f"检测到存在设备码异常行为的账号列表:{risk_users}")

集成方案:对接 Microsoft Graph 日志导出接口,每小时自动拉取审计日志执行扫描,识别风险账号后触发工单告警。

5.2.3 代码三:异常令牌一键吊销应急处置脚本

检测到 EvilTokens 入侵后,调用微软 Graph 接口批量吊销指定用户全部刷新令牌,删除恶意注册第三方设备,快速切断攻击者持久访问通道。

import requests


# 企业租户基础配置

TENANT_ID = "企业Entra租户ID"

CLIENT_ID = "安全运营应用客户端ID"

CLIENT_SECRET = "应用密钥"

GRAPH_TOKEN_URL = f"https://login.microsoftonline.com/{TENANT_ID}/oauth2/v2.0/token"

GRAPH_REVOKE_URL = "https://graph.microsoft.com/v1.0/users/{user_id}/invalidateAllRefreshTokens"

GRAPH_DEVICE_URL = "https://graph.microsoft.com/v1.0/users/{user_id}/registeredDevices"


def get_graph_access_token() -> str:

   """获取调用Microsoft Graph接口的访问令牌"""

   data = {

       "grant_type": "client_credentials",

       "client_id": CLIENT_ID,

       "client_secret": CLIENT_SECRET,

       "scope": "https://graph.microsoft.com/.default"

   }

   resp = requests.post(GRAPH_TOKEN_URL, data=data)

   token_data = resp.json()

   return token_data.get("access_token")


def revoke_all_refresh_tokens(user_upn: str, token: str):

   """吊销指定用户全部长效刷新令牌"""

   headers = {"Authorization": f"Bearer {token}"}

   url = GRAPH_REVOKE_URL.format(user_id=user_upn)

   resp = requests.post(url, headers=headers)

   if resp.status_code == 204:

       print(f"账号{user_upn}全部刷新令牌吊销成功")

   else:

       print(f"令牌吊销失败,返回信息:{resp.text}")


if __name__ == "__main__":

   # 待处置受害账号

   target_user = "finance01@bank-example.com"

   graph_token = get_graph_access_token()

   revoke_all_refresh_tokens(target_user, graph_token)

应急使用场景:安全运营工具识别到 EvilTokens 异常授权后,自动调用脚本一键吊销令牌,缩短攻击者持久入侵窗口。

6 结论、威胁演化趋势与研究局限

6.1 全文核心研究结论

本文依托《The Register》2026 年 EvilTokens 专项调研、多厂商野外攻击实测数据,完成设备码钓鱼即服务全维度体系化研究,形成四项客观落地结论:

第一,EvilTokens 标志 OAuth 设备码钓鱼完成黑产工业化转型,依托 RFC 8628 协议会话分离原生缺陷,全程复用微软官方认证域名,可绕过短信、软件推送类常规 MFA;2026 年商用上线后同类攻击规模暴涨 37.5 倍,覆盖金融、医疗、政务、制造全行业企业,传统基于恶意域名、仿站页面、病毒附件的防护体系完全失效。协议底层缺陷无云端补丁修复方案,企业必须依靠自身租户安全策略收敛攻击面。

第二,EvilTokens 标准化六阶段攻击闭环集成 AI 诱饵生成、动态设备码调度、分布式云中转、长效令牌劫持、后门设备注册全自动化模块,无代码基础黑产从业者可批量发起规模化攻击;入侵后衍生 BEC 商业欺诈、批量数据泄露、邮箱持久劫持多级危害,可造成企业巨额财产损失与合规处罚。反网络钓鱼技术专家芦笛总结,设备码钓鱼区别于过往所有钓鱼攻击,防护逻辑需要从 “拦截恶意页面” 转向 “管控授权流程、识别异常行为”。

第三,四层纵深防御架构(协议管控层、邮件诱饵检测层、云身份审计层、人员运营管控层)可形成完整防护闭环,其中通过 Entra 条件访问阻断设备码流是优先级最高的防御手段;配套三段 Python 检测代码可直接集成企业邮件网关、安全运营平台,实现诱饵前置拦截、日志异常识别、入侵后一键应急处置。

第四,常规短信、推送 MFA 无法抵御 EvilTokens 攻击,企业长期身份安全升级方向为全面部署 FIDO2 硬件密钥、通行密钥等钓鱼抵抗型多因素认证,从身份验证底层消除授权劫持风险。

6.2 EvilTokens 类 PhaaS 工具演化趋势

结合 2026 年黑产工具迭代节奏,研判设备码钓鱼平台四类长期演化方向:

AI 诱饵能力持续升级:大模型生成的钓鱼文本无限贴近企业真实业务行文,语义检测识别难度持续提升,单一关键词匹配规则完全失效;

多平台授权拓展:当前 EvilTokens 仅支持 Microsoft 365 体系,后续将拓展 Google Workspace、Okta 身份平台设备码钓鱼模板,扩大攻击覆盖范围;

规避检测手段迭代:采用无头浏览器动态渲染中转页面、轮换更多小众云服务商托管节点,降低异常流量识别概率;

攻击链路深度自动化:集成漏洞扫描、租户横向渗透、勒索病毒投放模块,形成从钓鱼入侵到勒索加密完整自动化攻击链条。

6.3 研究客观局限与后续拓展方向

本文研究存在两处客观边界约束:其一,实验检测代码仅基于基础文本语义、日志阈值规则实现识别,未融合深度学习语义分类模型,针对高度伪装 AI 诱饵识别精度存在优化空间;其二,测试场景以 Microsoft Entra 身份体系为主,未对谷歌、Okta 等其他云身份平台设备码流程开展同等规模对比测试,跨平台攻击规律有待补充量化。

后续可开展三项延伸研究工作:

构建海量 EvilTokens AI 诱饵样本数据集,融合预训练 NLP 模型优化钓鱼文本识别准确率,适配持续迭代的黑产诱饵话术;

对比多主流云身份厂商 OAuth 设备授权流程安全差异,形成跨平台统一设备码钓鱼防护规范;

研究轻量化 FIDO2 通行密钥批量部署方案,降低中小企业钓鱼抵抗型 MFA 落地成本。

6.4 结语

生成式 AI 赋能黑产工具产业化,EvilTokens 设备码钓鱼即服务打破传统网络钓鱼防护边界,OAuth 设备授权协议原生缺陷带来的安全风险无法依靠云服务商统一修复,企业需要主动调整身份安全防护思路,摒弃单纯依赖账号密码、基础多因素认证的传统防护模式。四层纵深闭环防御体系从协议源头收敛攻击面、邮件入口拦截诱饵、云日志实时监测入侵、人员培训消除社会工程漏洞,搭配自动化检测与应急处置代码,可有效缓释 EvilTokens 带来的账号劫持、数据泄露、商业欺诈风险。在云办公全面普及的行业环境下,针对 OAuth 第三方授权流程建立常态化安全管控机制,将成为企业身份安全运营的核心长期工作。

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

目录
相关文章
|
7天前
|
人工智能 JSON 自然语言处理
让教学更智慧:用阿里云百炼工作流,自动生成中小学教材内容#小有可为#有温度的AI
通过可视化工作流编排,将大模型推理能力转化为标准化的教学内容生成引擎。教师只需输入教材标题和适用学段,即可自动获得结构完整、符合课程标准的章节内容,大幅降低备课门槛,助力教育资源均衡化。
474 123
|
8天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
451 127
|
16天前
|
Linux 程序员 数据格式
【2026最新】Notepad++下载、安装和使用一篇搞定(附中文版安装包)
Notepad++ 是一款免费开源、轻量高效的 Windows 文本编辑器,支持 C/Python/HTML 等 80+ 语言语法高亮、代码折叠、正则替换、编码转换及插件扩展,专为程序员与文本处理用户打造,完美替代系统记事本。(239字)
|
11天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
781 5
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
3天前
|
人工智能 安全 Cloud Native
Higress 新发布:AI Gateway 能力增强,Gateway API 及其推理扩展持续打磨
增强 AI 网关能力,持续打磨 Gateway API 及其推理扩展。
299 122
|
3天前
|
消息中间件 存储 Kafka
Kafka 原生消息入湖能力上线!一键打通实时流与数据湖
阿里云消息队列 Kafka 版正式上线原生消息入湖能力。
249 121
|
8天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
464 124

热门文章

最新文章