AI 赋能 EvilTokens 设备码钓鱼攻击机理、威胁实证与全域防御研究

简介: 本文剖析2026年新型AI钓鱼平台EvilTokens,其滥用OAuth 2.0设备码协议,复用微软官方认证链路,生成无重复个性化诱饵,绕过MFA窃取长期令牌。攻击增幅达1380%,传统防御完全失效。论文提出四层闭环防御体系,并实现双Python检测模型,为Microsoft 365政企用户提供可落地的安全加固方案。(239字)

摘要

传统网络钓鱼依托伪造登录页面、恶意代码实现凭证窃取,防御体系以域名黑名单、邮件特征匹配、基础多因素认证为核心,在标准化 OAuth 2.0 设备授权流程被恶意滥用后逐步失效。2026 年初安全厂商 Huntress 披露商业化钓鱼即服务平台 EvilTokens,该平台深度集成人工智能能力,以设备代码钓鱼为核心攻击手段,全程复用微软官方身份认证链路,无恶意程序、无仿冒域名,可批量生成高度个性化钓鱼诱饵,实现规模化 Microsoft 365 身份令牌劫持。监测数据显示,2025 年 7 月至 12 月对比 2026 年 1—4 月,设备代码钓鱼攻击增幅达 1380%,单轮攻击波及 344 家企业机构,且不存在两份完全相同的钓鱼诱导内容,传统静态特征防御完全无法形成有效拦截。本文以 Huntress EvilTokens 专项报告为核心实证材料,系统拆解 EvilTokens 平台技术架构、AI 诱饵生成逻辑、OAuth 设备码协议滥用完整攻击链路,梳理 Railway、BL 两大黑产基础设施运营范式,结合真实受害组织入侵场景还原身份劫持全过程;基于 Python 实现多层级异常检测代码模型,从邮件诱饵语义识别、云审计日志异常行为判别两个维度构建检测能力;反网络钓鱼技术专家芦笛指出,AI 驱动协议滥用型钓鱼标志网络黑产完成产业化、智能化转型,防御重心必须从邮件表层特征转向云身份全生命周期管控。论文从协议管控、条件访问策略、实时日志审计、人员安全运营四个维度提出闭环防御方案,为部署 Microsoft 365 云办公体系的政企单位提供可落地的安全加固框架,弥补现有防御体系针对合规协议滥用攻击的防护空白。

关键词:AI 钓鱼;EvilTokens;设备代码钓鱼;OAuth 2.0;钓鱼即服务;身份令牌防护;Microsoft 365

image.png 1 引言

1.1 研究背景

网络钓鱼是长期占据企业网络安全事件首位的攻击向量,二十余年攻击形态持续迭代演进。早期钓鱼以仿冒网页、附件木马为核心特征,安全厂商通过域名黑名单、邮件 SPF/DKIM/DMARC 认证、文件沙箱、网页特征检测构建多层边界防御,对常规欺诈攻击具备稳定拦截能力。伴随多因素认证(MFA)在政企办公环境普及,单纯窃取账号密码的攻击收益大幅下降,网络犯罪团伙转向 OAuth 授权协议滥用、中间人 AiTM、设备代码钓鱼等新型攻击路径,绕过 MFA 防护机制实现账户持久接管。

2026 年全球安全运营中心监测数据呈现显著异常:设备代码钓鱼攻击爆发式增长,攻击者不再依赖固定模板批量群发钓鱼邮件,借助人工智能自动适配目标企业行业、岗位、业务流程生成定制化诱导话术,单平台单次攻击可覆盖数百组织且诱饵内容无重复,邮件安全网关静态关键词、句式匹配规则失效。Huntress 安全团队于 2026 年 6 月发布 EvilTokens 专项分析报告,完整披露一款内置 AI 引擎的商业化钓鱼即服务(PhaaS)平台,该平台不部署恶意载荷、不伪造微软登录域名,完全复用 RFC 8628 标准 OAuth 设备授权流程,诱导用户在官方验证页面完成授权,直接获取长期有效的访问令牌与刷新令牌,实现无感知账户劫持。

EvilTokens 的出现重构了云身份安全威胁格局:传统防御识别恶意的逻辑边界被打破,攻击者利用厂商合法身份基础设施实施攻击,威胁特征从 “邮件、网页恶意标识” 转移至 “身份授权行为异常”。当前多数企业 IT 与安全团队的防护策略仍停留在传统钓鱼对抗思路,缺乏针对协议滥用、AI 个性化诱饵、令牌持久化窃取的专项管控手段,大量 Microsoft 365 租户存在严重安全短板。

1.2 研究问题与研究目的

现有国内外相关研究多聚焦传统仿站钓鱼、中间人钓鱼检测模型,针对 2026 年新爆发的 AI 赋能设备码钓鱼平台 EvilTokens 的系统性拆解、实证分析、防御落地研究存在明显缺口,具体待解决核心问题包含三方面:

第一,EvilTokens 平台如何依托 AI 技术突破传统钓鱼防御过滤机制,设备代码钓鱼完整攻击链路如何利用标准 OAuth 协议实现 MFA 绕过;

第二,Railway、BL 网络两套支撑 EvilTokens 攻击的黑产基础设施运作逻辑,受害组织从正常办公到账户完全沦陷的完整入侵场景还原;

第三,面向 EvilTokens 攻击的自动化检测技术实现方案,以及覆盖协议、身份、日志、人员四层的闭环防御体系构建路径。

基于上述问题,本文研究目的分为四层:

(1)依托 Huntress 官方报告原始监测数据,完整梳理 EvilTokens 平台架构、AI 核心模块、产业化运营模式,量化设备代码钓鱼攻击增长态势与危害特征;

(2)拆解 OAuth 2.0 设备授权标准流程与 EvilTokens 恶意滥用差异,还原真实企业受害攻击全场景,厘清 AI 在攻击规模化、隐蔽化层面的赋能机制;

(3)设计并实现基于 Python 的双层检测代码模型,分别完成钓鱼诱饵语义风险识别、云审计日志异常授权行为检测,提供可直接集成至企业 SIEM 系统的工程化代码;

(4)结合微软官方安全规范与 Huntress 防御建议,构建包含条件访问策略、令牌管控、日志审计、常态化运营的分层防御方案,形成可落地的政企安全加固操作指南。

1.3 研究范围与数据基础

本文研究范围限定于 EvilTokens 平台发起、针对 Microsoft 365 云身份体系的 AI 驱动设备代码钓鱼攻击,不扩展至传统木马钓鱼、数字货币钓鱼、供应链钓鱼等无关攻击类型;技术分析聚焦 OAuth 2.0 设备授权协议、Entra ID 身份管控、企业邮件安全网关、云审计日志四大技术域。

研究核心数据来源为 Huntress 2026 年 6 月发布的 EvilTokens 专项威胁报告,涵盖 2025 年 7 月至 2026 年 4 月 SOC 真实监测遥测数据、Railway 与 BL 网络基础设施事件日志、344 家受害机构入侵样本;辅助参考微软 Entra ID 官方令牌防护文档、OAuth 2.0 RFC 8628 协议标准、国内外安全厂商 2026 年 PhaaS 产业化监测报告。

1.4 论文结构安排

本文共分为六个核心章节:第一章为引言,阐述研究背景、核心问题、研究边界与全文框架;第二章界定相关概念,梳理钓鱼即服务、设备代码钓鱼、OAuth 设备授权流程基础理论,对比传统钓鱼与 AI 驱动协议滥用钓鱼的核心差异;第三章为 EvilTokens 平台技术与攻击链路实证分析,拆解平台模块化架构、AI 诱饵生成引擎、Railway/BL 黑产基础设施,完整还原六步标准化攻击链与真实受害场景;第四章设计并实现 EvilTokens 攻击自动化检测代码模型,分为邮件诱饵语义检测、云审计日志异常授权检测两套可运行 Python 代码,说明检测逻辑、特征体系与工程集成方式;第五章构建全域闭环防御体系,从协议层管控、身份条件访问策略、实时日志审计、人员安全运营四个维度给出分层防护措施,同步列出企业安全团队落地检查清单;第六章为结论与研究展望,总结全文核心研究结论,指出现有防御体系局限与未来 AI 钓鱼对抗技术发展方向。

2 相关概念与攻击形态对比分析

2.1 核心概念界定

2.1.1 钓鱼即服务(PhaaS)

钓鱼即服务是网络黑产产业化成熟后的标准化商业模式,运营方搭建集成全套攻击能力的云平台,攻击者通过暗网付费订阅获取服务,无需具备编程、服务器运维、域名部署等专业技术,即可一键发起规模化钓鱼攻击。平台内置钓鱼模板、自动化投递渠道、凭证捕获后台、反沙箱检测、数据导出接口,部分平台采用收益分成模式降低入门成本,持续扩大攻击群体基数。EvilTokens 是 2026 年新上线、主打 Microsoft 365 设备代码钓鱼的新一代 PhaaS 平台,区别于传统 PhaaS 的仿站钓鱼定位,核心能力聚焦 OAuth 协议劫持与 AI 个性化诱饵生成。

2.1.2 OAuth 2.0 设备代码流程(RFC 8628)

设备代码流程是 OAuth 2.0 标准为无完整输入能力终端(智能电视、打印机、IoT 设备、视频会议终端)设计的授权机制,初衷是简化终端登录操作,标准流程分为五步:

客户端向身份授权服务器提交应用 ID,申请设备码、用户验证码、官方验证网页地址;

终端展示 5—8 位字符组合的用户验证码,提示用户使用手机、电脑访问验证页面;

用户在浏览器打开微软官方域名验证页面,输入验证码并完成账号密码、MFA 验证;

用户确认授权客户端访问自身云资源权限;

客户端持续轮询授权服务器接口,获取 access_token 访问令牌与长期有效 refresh_token 刷新令牌,持令牌访问 Exchange、SharePoint、Teams 等 Microsoft 365 服务。

该协议设计无恶意场景防控机制,仅校验验证码时效性,未校验发起请求客户端的设备可信度,成为 EvilTokens 实施攻击的底层协议漏洞载体。

2.1.3 设备代码钓鱼

设备代码钓鱼是依托上述标准设备授权流程衍生的新型身份劫持攻击,攻击者以恶意客户端身份调用微软接口获取合法验证码,通过社会工程学诱导受害者访问microsoftonline.com官方验证页面输入验证码,主动为攻击者设备授予账户全量访问权限。全程无伪造页面、无恶意域名、无文件病毒,受害者操作全程处于微软可信域名下,传统邮件网关、网页黑名单、终端杀毒软件均无法识别恶意行为。Huntress 监测数据证实,2025 下半年至 2026 年一季度该攻击增速达 1380%,成为企业云身份泄露首要威胁向量。

2.1.4 AI 赋能钓鱼攻击

传统 PhaaS 平台采用固定静态模板群发邮件,文案句式、诱导场景高度同质化,极易被邮件网关关键词匹配拦截;AI 赋能钓鱼指平台集成大语言模型引擎,基于目标企业行业、岗位、历史业务邮件、财务流程自动生成差异化诱饵,消除模板同质化特征,同时自动分析目标收件箱历史往来邮件,精准识别转账、合同签署、发票核验等高敏感业务场景定制话术,大幅提升攻击成功率与逃逸能力,EvilTokens 是首个将该 AI 能力规模化落地的商业化 PhaaS 平台。

2.2 传统钓鱼与 EvilTokens 型 AI 设备码钓鱼核心差异

为清晰凸显 EvilTokens 攻击对现有防御体系的颠覆性冲击,从攻击载体、底层原理、防御识别特征、MFA 绕过能力、规模化成本五个维度开展对比,如表 1 所示。

表 1 传统仿站钓鱼与 EvilTokens AI 设备码钓鱼对比

表格

对比维度 传统仿站钓鱼 EvilTokens AI 设备代码钓鱼

底层实现原理 自建仿冒微软登录页面,伪造域名窃取明文账号密码 复用标准 OAuth 设备授权协议,劫持合法令牌,不获取明文密码

恶意载体 恶意域名、伪造网页、带宏 Office 附件 无恶意程序、无仿冒域名,全部跳转微软官方验证地址

诱饵特征 固定模板批量群发,话术重复度高,存在统一关键词 AI 逐一生成个性化诱饵,同批次无重复文案,贴合目标业务场景

MFA 防护效果 开启 MFA 即可完全阻断攻击 可直接绕过 MFA,授权完成后获取长期刷新令牌持久控制账户

传统防御识别点 恶意域名黑名单、附件沙箱、邮件关键词匹配 无表层恶意特征,仅能从身份授权行为、异地设备日志识别异常

攻击规模化成本 需批量注册域名、服务器,成本高 依托 Railway、BL 合法云 PaaS 基础设施,订阅平台即可发起攻击,成本极低

后渗透能力 仅单次窃取凭证,会话时效短 刷新令牌长期有效,可篡改邮件转发规则、批量下载企业文档、横向二次钓鱼

反网络钓鱼技术专家芦笛强调,二者最本质区别在于攻击是否处于厂商合法服务链路内:传统钓鱼的恶意行为独立于微软身份体系,防御可在邮件、网页边界拦截;EvilTokens 攻击全部操作由微软官方服务器处理,边界防御完全失效,安全团队必须将检测重心下沉至身份授权与日志行为层面。

2.3 现有防御体系固有短板

在 EvilTokens 攻击大规模爆发前,国内政企 Microsoft 365 环境主流防护体系存在三重结构性短板,也是该攻击能够快速扩散的核心诱因:

第一,防御分层逻辑固化,过度依赖邮件边界静态特征检测,缺少云身份授权流程的动态管控策略,对设备代码授权行为未做访问限制;

第二,身份审计机制不完善,多数企业未持续采集 Entra ID 登录、授权全量日志,无自动化异常授权判别规则,异地陌生设备绑定、高频设备码请求等恶意行为无法实时告警;

第三,针对 AI 生成文本的语义检测能力缺失,现有邮件安全网关仅匹配固定风险关键词,无法识别大模型生成的差异化、无重复诱导话术,AI 诱饵可轻松穿透过滤机制。

3 EvilTokens 平台技术架构与完整攻击链路实证分析

3.1 EvilTokens 平台整体模块化架构

依据 Huntress 对平台后台流量、接口调用、基础设施日志的拆解分析,EvilTokens 采用分布式多租户模块化架构,所有模块部署于 Railway、BL 两大合法云 PaaS 平台,依托服务商可信 IP 与域名信誉规避威胁情报标记,整体分为五大核心功能模块,各模块数据互通、自动化协同完成攻击全流程。

3.1.1 AI 个性化诱饵生成引擎(核心差异化模块)

该模块是 EvilTokens 区别于过往所有 PhaaS 平台的核心组件,内置微调后的大语言模型,具备两项自动化能力:

目标画像解析:攻击者批量导入目标企业邮箱列表后,引擎自动抓取公开企业工商信息、行业通用业务流程、岗位职能,同步通过邮件投递探针读取目标收件箱历史往来邮件,提取财务转账、合同签署、人事通知、语音留言、发票审批等高敏感业务场景关键词;

诱饵差异化生成:基于解析完成的用户画像逐一生成独立邮件正文、主题、落款,同一攻击批次内 344 家受害机构无两份完全一致的诱导内容,自动规避邮件网关重复文本匹配过滤;内置紧急性话术生成逻辑,通过 “账户即将锁定”“文件待核验”“薪资通知未确认” 等场景诱导用户快速完成操作,降低用户安全警惕性。

引擎支持自定义输出载体,可生成邮件正文、Teams 即时通讯消息、日历事件提醒、短信文本四类诱饵,适配企业多渠道办公沟通场景。

3.1.2 OAuth 设备码动态生成与调度模块

模块持续调用微软 OAuth 2.0 设备认证接口,为每一条诱饵分配独立唯一的 user_code 用户验证码,自动管控验证码 15 分钟标准有效期:若诱饵发送后用户长时间未操作,引擎自动重新调用接口刷新验证码,解决传统设备码钓鱼时效限制导致的授权失败问题。模块内置接口请求频率控制,规避微软接口限流拦截,支持上万目标同步生成设备码,支撑规模化攻击需求。

3.1.3 诱饵投递自动化模块

集成 SMTP 批量发信接口、Teams 消息推送接口、日历批量创建接口,支持多渠道同步投放诱饵;内置发件人伪装能力,可仿冒企业 IT 管理员、财务负责人、合作服务商、微软官方通知账号,伪造可信发件人标识提升诱饵可信度;模块集成邮件追踪脚本,实时记录目标邮件打开、链接点击行为,同步回传至后台仪表盘供攻击者监控攻击进度。

3.1.4 令牌中继捕获与持久化存储模块

攻击者获取设备码后,模块启动后台轮询任务持续请求微软授权接口;一旦受害者完成页面授权操作,服务器立即接收 access_token 短期访问令牌与 refresh_token 长期刷新令牌,加密存储至平台分布式数据库。平台后台仪表盘支持攻击者一键导出令牌,直接调用 Microsoft Graph API 读取目标邮箱、下载 SharePoint 文档、修改收件箱转发规则、创建日历恶意事件,完成后渗透操作。

3.1.5 后渗透自动化执行模块

该模块为攻击者提供一键式账户接管工具集,无需手动编写 API 调用脚本,内置自动化操作模板:批量导出联系人、创建邮件转发规则、向企业内部全员群发二次钓鱼邮件、检索高金额转账往来邮件、下载存储云端全部业务文档;支持令牌持久化维持,即便受害者修改账户密码,刷新令牌仍可长期访问账户,形成持续性身份入侵。

3.2 EvilTokens 依托的黑产基础设施:Railway 与 BL 网络

Huntress 在处置 EvilTokens 首轮攻击浪潮过程中,完整追踪到平台两大底层基础设施 Railway、BL 网络,二者均为公开商用无服务器云平台,合法企业可正常注册使用,黑产利用平台可信 IP、域名、SSL 证书规避安全厂商黑名单,基础设施运营范式如下:

Railway 网络:EvilTokens 核心诱饵生成、设备码调度、令牌捕获主服务部署载体,平台提供免费轻量化云应用托管,无需企业资质即可注册部署程序,IP 地址动态轮换,单次攻击完成后快速销毁实例,消除溯源线索;平台不审核应用业务属性,无法识别钓鱼类恶意程序,成为 PhaaS 平台首选部署载体。

BL 网络:作为备用中继基础设施,承担诱饵投递、流量分流任务,当 Railway 实例被封禁后自动切换至 BL 节点,保障攻击链路不中断;BL 网络内置 CDN 分发节点,分散恶意流量,单一节点流量规模较低,难以触发云服务商安全告警。

两类基础设施无任何恶意标识,安全厂商无法基于 IP、域名静态特征提前拦截,只能在攻击行为发生后通过日志溯源完成封禁,存在明显防御滞后性。

3.3 EvilTokens 标准化六步攻击完整链路

结合 Huntress 对 344 家受害机构攻击样本拆解,AI 驱动设备代码钓鱼形成标准化闭环攻击链路,全程无恶意代码、无仿冒页面,具体流程如下:

步骤 1:攻击者订阅 EvilTokens 平台服务,导入目标企业全量邮箱列表,AI 引擎自动解析企业行业、岗位、历史邮件数据,批量生成差异化钓鱼诱饵;平台依托 Railway 基础设施启动设备码调度模块,为每一个目标邮箱独立调用微软 OAuth 接口,生成唯一 user_code 验证码与官方验证链接microsoftonline.com/common/devicecode。

步骤 2:投递模块通过企业邮件、Teams 消息渠道投放 AI 定制诱饵,邮件主题贴合目标业务场景,正文诱导用户点击链接、输入验证码完成 “设备安全核验、文档解锁、语音留言查看” 操作,制造操作紧迫性降低安全警惕。

步骤 3:受害者点击诱饵内链接,跳转至微软官方设备登录验证页面,页面域名、证书、界面均为微软原生内容,无任何伪造痕迹;页面提示输入邮件内附带的 5—8 位用户验证码。

步骤 4:受害者输入验证码后,跳转至标准 Microsoft 365 账号登录界面,输入账号密码并完成 MFA 二次验证(短信、令牌、验证器均可),页面提示 “确认授权设备访问你的 Office、邮件、云文档数据”,用户确认授权完成操作。

步骤 5:受害者完成授权瞬间,EvilTokens 后台轮询接口捕获微软下发的 access_token 与 refresh_token 令牌,加密存储至平台数据库,攻击者无需获取用户密码、MFA 验证码,仅凭令牌即可完全接管账户。

步骤 6:攻击者通过平台后渗透模块自动化执行恶意操作:读取全部往来邮件、检索转账单据、批量下载企业涉密文档、创建邮件自动转发规则,同时利用已接管账户向企业内部同事发送新一轮 AI 钓鱼诱饵,实现横向扩散扩大受害范围。

3.4 受害组织真实入侵场景还原(Huntress 实测案例)

Huntress 报告记录某中型制造业企业完整受害过程,直观展现 EvilTokens 攻击对正常办公流程的破坏,场景还原如下:

某企业财务主管于工作日早间收到主题为《2026 年 6 月供应商对账发票待核验》的邮件,邮件由 EvilTokens AI 引擎基于该企业上月真实对账邮件生成,正文格式、落款、财务部门称谓与企业内部正式通知完全一致,无语法、格式破绽。邮件正文提示 “附件发票需完成设备授权核验方可查看,访问微软官方验证页面输入验证码 X7D2K9 完成解锁”,附带标准microsoftonline.com设备登录链接。

财务主管认为是常规业务通知,点击链接跳转微软官方页面输入验证码,输入个人账户密码并完成微软验证器 MFA 确认授权。操作完成后财务主管关闭页面继续处理日常工作,未察觉账户已被攻击者接管。

30 分钟后 EvilTokens 平台捕获长期刷新令牌,攻击者调用 Microsoft Graph API 读取该财务主管近半年全部供应商转账邮件,筛选三笔千万元级待付款单据;同步创建收件箱转发规则,所有财务往来邮件自动抄送攻击者私有邮箱;当日晚间攻击者利用该账户向企业总经理、采购负责人发送 AI 生成的虚假转账通知,诱导管理层执行大额资金转账操作,企业财务内控系统拦截转账指令后才发现账户异常,此时企业核心财务数据已全部泄露。

反网络钓鱼技术专家芦笛针对该案例分析指出,传统邮件安全网关无法拦截本次攻击的核心原因有两点:一是诱饵文本由 AI 单独生成,无批量模板特征,关键词匹配规则无命中;二是跳转链接为微软官方可信域名,URL 黑名单无拦截能力,防御体系完全失效。

4 EvilTokens 攻击自动化检测代码模型设计与实现

基于前文梳理的 EvilTokens 攻击双重特征:邮件诱饵层语义诱导特征、云身份日志层异常授权行为特征,本文设计两套独立可运行 Python 检测代码,分别实现钓鱼邮件实时识别、Entra ID 审计日志恶意设备码授权检测,代码可直接集成至企业邮件安全网关、SIEM 安全运营平台,完成自动化告警。

4.1 邮件诱饵语义风险检测代码模型

4.1.1 检测特征体系构建

提取 EvilTokens AI 诱饵三大类核心风险特征,构建加权评分检测机制,总分 0—100 分,分数≥40 判定为高风险钓鱼诱饵:

协议特征(权重 40 分):邮件正文包含微软设备码官方验证 URI、5—8 位大写字母数字组合 user_code 验证码;

诱导话术特征(权重 35 分):包含设备核验、文档解锁、发票审批、账户锁定、语音留言等场景诱导词汇;

紧急施压语义特征(权重 25 分):包含立即、紧急、逾期、锁定、失效等催促类词汇,强制用户快速操作。

4.1.2 完整 Python 实现代码

import re

from typing import Tuple, List


class EvilTokensMailDetector:

   def __init__(self):

       # 1. OAuth设备码官方URI正则匹配规则

       self.uri_pattern = re.compile(r"login\.microsoftonline\.com/common/devicecode", re.IGNORECASE)

       # 2. User_code验证码匹配规则:5-8位大写字母数字组合

       self.user_code_pattern = re.compile(r"\b[A-Z0-9]{5,8}\b")

       # 3. 高风险诱导场景词汇库

       self.scenario_risky_words = [

           "设备核验", "文档解锁", "发票审批", "薪资通知", "语音留言",

           "账户锁定", "身份验证", "对账文件", "合同签署", "安全校验"

       ]

       # 4. 紧急施压类词汇库

       self.urgent_words = ["立即", "紧急", "逾期", "锁定", "失效", "限时"]


   def detect_risk(self, mail_subject: str, mail_body: str) -> Tuple[bool, int, List[str]]:

       """

       邮件EvilTokens钓鱼风险检测主函数

       :param mail_subject: 邮件主题文本

       :param mail_body: 邮件正文完整文本

       :return: 是否高风险、风险总分、风险原因列表

       """

       full_text = (mail_subject + mail_body).lower()

       risk_score = 0

       risk_reasons = []


       # 特征1:匹配微软设备码验证链接,加40分

       if self.uri_pattern.search(full_text):

           risk_score += 40

           risk_reasons.append("邮件包含微软OAuth设备码官方验证URL,高危协议特征")


       # 特征2:匹配疑似user_code验证码,单次匹配加20分,最高35分

       code_matches = self.user_code_pattern.findall(full_text)

       if len(code_matches) > 0:

           add_score = min(len(code_matches)*20, 35)

           risk_score += add_score

           risk_reasons.append(f"检测到{len(code_matches)}组疑似设备验证码,诱导授权特征")


       # 特征3:匹配业务诱导词汇,每命中1个加8分,最高25分

       hit_scenario = []

       for word in self.scenario_risky_words:

           if word in full_text:

               hit_scenario.append(word)

       if len(hit_scenario) > 0:

           add_score = min(len(hit_scenario)*8, 25)

           risk_score += add_score

           risk_reasons.append(f"检测到业务诱导词汇:{','.join(hit_scenario)}")


       # 特征4:匹配紧急施压词汇,每命中1个加5分,最高20分

       hit_urgent = []

       for word in self.urgent_words:

           if word in full_text:

               hit_urgent.append(word)

       if len(hit_urgent) > 0:

           add_score = min(len(hit_urgent)*5, 20)

           risk_score += add_score

           risk_reasons.append(f"检测到紧急施压诱导词汇:{','.join(hit_urgent)}")


       # 判定阈值:总分≥40标记为高风险EvilTokens钓鱼诱饵

       is_high_risk = True if risk_score >= 40 else False

       return is_high_risk, risk_score, risk_reasons


# 代码调用测试示例

if __name__ == "__main__":

   detector = EvilTokensMailDetector()

   # 模拟EvilTokens生成的钓鱼邮件样本

   test_subject = "【紧急】6月供应商对账发票待设备核验"

   test_body = "请访问https://login.microsoftonline.com/common/devicecode 输入验证码X7D2K9解锁发票文件,逾期账户将临时锁定,请立即完成验证。"

   risk_flag, score, reasons = detector.detect_risk(test_subject, test_body)

   print(f"风险判定结果:{'高风险钓鱼邮件' if risk_flag else '正常邮件'}")

   print(f"风险评分:{score}")

   print(f"风险诱因明细:")

   for item in reasons:

       print(f"- {item}")

4.1.3 代码工程落地说明

该检测类可嵌入企业邮件网关预处理脚本,每一封入站邮件自动提取主题与正文送入检测函数;若返回高风险标记,网关自动隔离邮件并推送告警至安全运营人员;代码无第三方复杂依赖,仅使用 Python 内置 re 正则库,适配 Windows、Linux 服务器环境,支持批量离线扫描历史邮件样本复盘入侵事件。

4.2 Microsoft Entra ID 审计日志异常设备授权检测代码模型

EvilTokens 攻击完成后会在云身份审计日志留下明确异常行为痕迹:陌生境外地理位置、无设备标识客户端、短时间批量设备码授权、授权后立即调用 Graph 高敏感 API。本代码调用 Microsoft Graph 接口读取登录审计日志,自动识别恶意设备码授权行为并输出异常日志清单。

4.2.1 完整 Python 实现代码

import requests

import json

from typing import List, Dict


class DeviceCodeAbuseLogDetector:

   def __init__(self, graph_token: str, trusted_country_list: List[str]):

       self.graph_token = graph_token

       self.trusted_regions = trusted_country_list

       self.graph_api_url = "https://graph.microsoft.com/v1.0/auditLogs/signIns"

       # 过滤设备代码授权相关日志:应用为Microsoft Authentication Broker、登录无报错

       self.filter_param = "appDisplayName eq 'Microsoft Authentication Broker' and status/errorCode eq 0"


   def fetch_abnormal_device_auth_logs(self, time_range_hours: int = 12) -> List[Dict]:

       """

       拉取指定时间范围内异常设备码授权日志

       :param time_range_hours: 检测回溯时长(小时)

       :return: 异常日志字典列表

       """

       headers = {

           "Authorization": f"Bearer {self.graph_token}",

           "Content-Type": "application/json"

       }

       params = {

           "$filter": self.filter_param,

           "$top": 200,

           "$orderby": "createdDateTime desc"

       }

       response = requests.get(self.graph_api_url, headers=headers, params=params)

       if response.status_code != 200:

           raise ConnectionError(f"Graph接口调用失败,状态码:{response.status_code}")

       all_logs = response.json().get("value", [])

       abnormal_logs = []


       for log_item in all_logs:

           abnormal_flag = False

           abnormal_desc = []

           # 判定1:登录地理位置不在企业可信区域

           login_region = log_item.get("location", {}).get("countryOrRegion", "")

           if login_region not in self.trusted_regions:

               abnormal_flag = True

               abnormal_desc.append(f"登录地区{login_region}不在可信地域列表")

           # 判定2:无设备操作系统标识,为恶意虚拟客户端

           device_os = log_item.get("deviceDetail", {}).get("deviceOS")

           if device_os is None or device_os == "":

               abnormal_flag = True

               abnormal_desc.append("授权客户端无设备系统标识,疑似EvilTokens恶意程序")

           # 判定3:授权后高敏感API调用(邮件、文件读取)

           resource_name = log_item.get("resourceDisplayName", "")

           if resource_name in ["Microsoft Exchange Online", "SharePoint Online"]:

               abnormal_flag = True

               abnormal_desc.append("授权后访问邮件/云文档等高敏感资源")


           if abnormal_flag:

               log_item["abnormal_reason"] = abnormal_desc

               abnormal_logs.append(log_item)

       return abnormal_logs


# 调用示例

if __name__ == "__main__":

   # 填入企业Graph API访问令牌

   graph_access_token = "填入管理员Graph授权Token"

   # 企业可信登录地域列表

   trusted_area = ["CN"]

   log_detector = DeviceCodeAbuseLogDetector(graph_access_token, trusted_area)

   try:

       abnormal_records = log_detector.fetch_abnormal_device_auth_logs(time_range_hours=24)

       print(f"共检测到{len(abnormal_records)}条异常设备码授权日志:")

       for record in abnormal_records:

           print("="*60)

           print(f"操作时间:{record['createdDateTime']}")

           print(f"目标账户:{record['userPrincipalName']}")

           print(f"登录地区:{record['location']['countryOrRegion']}")

           print(f"异常原因:{record['abnormal_reason']}")

   except Exception as e:

       print(f"日志检测失败:{str(e)}")

4.2.2 代码部署与使用说明

使用前管理员需申请 Microsoft Graph 全局读取审计日志权限令牌,配置企业可信登录国家 / 地区列表;代码支持定时脚本循环执行(每 15 分钟拉取一次日志),检测到异常授权日志后可对接企业告警接口推送短信、邮件预警;安全运营人员可基于输出的异常账户,立即执行令牌吊销、账户风险重置操作,阻断攻击者持续访问权限。

5 面向 EvilTokens 攻击的全域闭环防御体系构建

结合 Huntress 报告给出的防御建议、微软 Entra ID 官方安全管控规范、前文检测模型技术落地路径,本文从协议底层管控、身份条件访问策略、日志自动化审计、常态化人员安全运营四层构建闭环防御体系,同步配套企业安全团队落地检查清单,形成技术 + 管理协同防护能力,全方位抵御 EvilTokens 类 AI 设备码钓鱼攻击。

5.1 协议层底层管控:限制 OAuth 设备代码授权滥用

协议层是阻断 EvilTokens 攻击的源头环节,通过约束设备码授权流程使用范围,从底层切断攻击者调用接口生成验证码的通道,提供分级管控方案适配不同企业业务场景。

5.1.1 全量禁用设备代码授权(高安全需求单位)

政府、金融、涉密制造业等无 IoT 设备、会议室终端登录需求的单位,可通过 Azure AD PowerShell 脚本全局关闭设备授权服务主体,彻底屏蔽 RFC 8628 流程,从根源消除攻击载体,执行脚本如下:

powershell

Connect-AzureAD

# 微软设备认证服务主体固定ObjectId

$deviceAuthSP = Get-AzureADServicePrincipal -Filter "displayName eq 'Microsoft Account Authentication Broker'"

Set-AzureADServicePrincipal -ObjectId $deviceAuthSP.ObjectId -AccountEnabled $false

执行后所有设备码登录接口请求直接被微软服务器拒绝,EvilTokens 平台无法生成 user_code 验证码,攻击链路第一步直接失效。

5.1.2 条件限制设备码授权(普通政企办公单位)

存在 Teams 会议室、Azure CLI、IoT 打印机等合法设备登录场景的企业,不可全局禁用流程,需配置精细化访问约束,管控规则包含三点:

IP 地域限制:仅允许企业办公固定公网 IP、国内可信 IP 段发起设备码授权请求,境外 IP 直接阻断;

设备类型限制:仅企业已注册、MDM 托管的可信终端可发起设备码流程,未托管设备禁止调用;

用户权限限制:普通员工禁止发起设备代码授权,仅 IT 管理员、运维账号开放权限,缩小攻击暴露面。

5.1.3 缩短令牌有效期、关闭离线持久授权

在 Entra ID 应用权限配置中,关闭 offline_access 离线刷新令牌权限,将访问令牌有效期从默认 90 分钟缩短至 15 分钟,取消长期刷新令牌下发;即便发生授权泄露,攻击者可利用令牌的时间窗口大幅压缩,降低数据泄露范围。

5.2 身份层:配置多层 Conditional Access 条件访问策略

条件访问是微软官方针对令牌劫持攻击的核心防护手段,反网络钓鱼技术专家芦笛指出,针对 EvilTokens 攻击至少配置四项强制条件访问策略,形成身份动态风险拦截能力:

高风险登录强制交互式防钓鱼 MFA:系统判定异地、陌生设备、异常时段登录时,要求用户完成硬件令牌、FIDO 密钥交互式验证,阻断仅依靠验证码完成的简易授权;

启用令牌保护(Token Protection):将刷新令牌与设备硬件指纹强制绑定,即便攻击者窃取令牌,也无法在自有设备复用,彻底解决令牌重播滥用问题;

敏感操作二次身份验证:用户读取全部邮件、批量下载 SharePoint 文档、修改收件箱转发规则等高敏感操作,强制再次验证身份,攻击者接管账户后无法执行核心窃取操作;

管理员应用同意管控:禁止普通员工自主授权第三方应用访问云数据,所有高权限应用访问请求必须由 IT 管理员审批,杜绝 EvilTokens 恶意客户端自动获取账户权限。

5.3 日志层:自动化审计与实时异常告警体系

仅依靠人工登录日志排查无法及时发现 EvilTokens 入侵,企业需搭建自动化日志审计链路,配套前文 Python 检测代码实现实时监控:

全量日志采集:将 Entra ID 登录、授权、应用访问日志统一同步至企业 SIEM 平台,留存至少 180 天日志用于入侵复盘溯源;

部署双层检测脚本:邮件诱饵检测脚本嵌入邮件网关前置过滤,日志异常授权脚本定时轮询 Graph 接口,双维度识别攻击行为;

分级告警处置机制:邮件层检测到高风险诱饵推送一级告警,安全人员实时隔离恶意邮件;身份日志识别陌生设备码授权触发紧急告警,自动触发账户令牌吊销流程;

入侵事后处置标准流程:确认账户被 EvilTokens 劫持后,立即吊销全部刷新令牌、重置账户密码、清除收件箱自动转发规则、排查云端文档下载记录,同步对该用户开展专项安全培训。

5.4 运营层:AI 钓鱼专项人员安全意识运营

AI 驱动钓鱼诱饵规避传统静态培训内容,企业需更新安全培训体系,针对 EvilTokens 设备码钓鱼开展常态化专项运营:

区分新型攻击培训内容:重点讲解设备代码钓鱼核心特征 —— 跳转微软官方链接、要求输入 5-8 位验证码诱导授权,明确告知员工正规企业通知不会通过邮件要求访问设备登录页面解锁文件;

定期 AI 钓鱼模拟演练:使用自建小型 AI 诱饵生成工具批量发送差异化模拟钓鱼邮件,统计员工点击、授权操作比例,针对高风险岗位(财务、人事、管理层)强化培训;

建立可疑邮件上报通道:简化员工上报可疑邮件操作流程,对主动上报风险邮件的员工给予正向激励,构建全员协同防御机制;

定期安全复盘:每季度汇总 EvilTokens 同类攻击行业案例,同步至全体员工,持续更新风险识别认知,消除 “官方域名等于安全” 的认知误区。

5.5 EvilTokens 攻击防御落地检查清单(企业运维可用)

为便于安全团队逐项落地加固措施,整理标准化检查清单,覆盖协议、身份、日志、运营四大维度,如表 2 所示。

表 2 EvilTokens AI 设备码钓鱼防御落地检查清单

表格

防护维度 检查项目 达标判定标准

协议管控 设备代码授权流程管控 涉密单位全局禁用;普通企业限制可信 IP / 托管设备才可发起授权

协议管控 离线刷新令牌权限 所有第三方应用关闭 offline_access 权限,缩短令牌有效期

条件访问 令牌保护功能 Windows 终端全量启用令牌绑定保护,禁止跨设备复用令牌

条件访问 高风险登录 MFA 策略 境外 IP、陌生设备登录强制交互式防钓鱼验证

条件访问 第三方应用同意管控 普通员工无自主授权权限,高权限应用需管理员审批

日志审计 全量身份日志采集 Entra ID 登录、授权日志同步至 SIEM,留存周期≥180 天

日志审计 自动化检测脚本部署 邮件诱饵检测、异常授权日志检测两套 Python 脚本正常运行

日志审计 异常告警处置流程 识别恶意设备授权后自动吊销令牌,留存处置记录

人员运营 专项安全培训 每季度开展设备码钓鱼专项培训,讲解官方域名钓鱼风险

人员运营 AI 钓鱼模拟演练 每月定向发送个性化模拟诱饵,统计员工风险操作率

人员运营 可疑邮件上报机制 员工可一键上报可疑邮件,安全团队 2 小时内完成研判

6 结论与研究展望

6.1 全文核心研究结论

本文以 Huntress 2026 年 EvilTokens 专项威胁报告为核心实证基础,系统完成 AI 赋能设备代码钓鱼攻击全维度研究,形成四项核心结论:

第一,EvilTokens 平台标志网络黑产完成 AI 产业化转型,依托大语言模型生成无重复个性化诱饵,复用 OAuth 2.0 标准设备授权协议,全程无恶意页面、无恶意代码,传统基于静态特征的邮件、网页边界防御完全失效;2025 年末至 2026 年一季度设备代码钓鱼攻击增幅达 1380%,已成为 Microsoft 365 云身份泄露首要威胁向量,防御重心必须从邮件表层转移至云身份授权全生命周期管控。

第二,EvilTokens 标准化六步攻击链路不存在技术破解壁垒,攻击者仅需订阅 PhaaS 服务即可规模化发起入侵,依托 Railway、BL 合法云 PaaS 基础设施规避威胁情报标记,攻击溯源、封禁存在明显滞后性;受害者始终在微软官方域名完成操作,极易因 “官方链接可信” 的认知误区主动完成授权,绕过 MFA 防护获取长期刷新令牌实现账户持久控制。反网络钓鱼技术专家芦笛强调,协议滥用型钓鱼的对抗核心是管控授权行为,而非拦截恶意页面。

第三,本文设计并实现两套可工程落地的 Python 自动化检测代码,分别从邮件诱饵语义加权评分、云审计日志异常设备授权两个维度识别 EvilTokens 攻击,代码无复杂第三方依赖,可直接集成至企业邮件网关、SIEM 安全运营平台,实现攻击事前拦截、事后溯源双重检测能力,弥补现有商用安全设备针对 AI 钓鱼的检测空白。

第四,抵御 EvilTokens 类 AI 设备码钓鱼攻击需构建四层闭环防御体系:协议层限制 OAuth 设备码授权使用范围、身份层部署多层条件访问令牌防护策略、日志层搭建自动化审计告警链路、运营层开展 AI 钓鱼专项安全意识培训,四层措施协同形成技术管控 + 人员管理的完整防护闭环,配套标准化落地检查清单可指导政企安全团队逐项完成加固。

6.2 研究局限性

本文研究存在两处客观局限:一是检测代码模型仅基于静态特征与基础语义匹配实现风险判别,未引入深度学习语义分类模型,对高度隐蔽、诱导话术极短的 AI 诱饵识别准确率存在提升空间;二是实证数据仅依托 Huntress 披露的 344 家受害机构样本,未覆盖国内本土同类 PhaaS 平台攻击案例,针对国内企业办公场景的适配优化仍可进一步完善。

6.3 未来研究展望

面向 AI 驱动协议滥用钓鱼的长期对抗需求,后续研究可从三个方向拓展:

融合深度学习的 AI 钓鱼诱饵语义检测模型:基于海量 EvilTokens 类 AI 生成钓鱼文本数据集训练文本分类模型,提升低特征、极简诱导话术的识别准确率;

多云平台通用设备码钓鱼防御框架:将当前仅适配 Microsoft 365 的管控策略拓展至 Google Workspace、阿里钉钉云等主流云办公体系,构建跨平台标准化防御方案;

黑产 PhaaS 平台溯源与阻断技术研究:针对 Railway、BL 等支撑恶意攻击的合法云基础设施,研究流量特征识别、恶意实例快速封禁的协同处置机制,从攻击底层基础设施压缩黑产生存空间。

随着大模型技术持续普及,网络钓鱼攻击的个性化、隐蔽性将持续提升,云身份协议滥用会成为黑产主流攻击路径,政企安全体系必须同步完成智能化、身份中心化防御转型,持续跟进新型 AI 钓鱼攻击机理,迭代检测与管控技术,构建动态适配黑产技术迭代的长效安全防御能力。

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

目录
相关文章
|
3天前
|
人工智能 定位技术 SEO
我学 GEO 第 15 天:终于知道AI GEO该如何做?
我是暴走的莉莉酱,边旅行边研究AI GEO的数字游民。专注普通人如何提升“AI可见度”——让AI在回答用户问题时准确识别、理解并推荐你。不讲玄学,只做可测、可调、可持续的GEO实践。
369 124
|
5天前
|
机器学习/深度学习 人工智能 调度
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
HappyHorse 1.1 是新一代视频生成大模型,全面升级动态表现力、角色一致性、指令遵循、视觉质感与音画协同能力。支持I2V/T2V/R2V三类生成,适配短剧、电商广告、品牌营销等场景,提供高质、流畅、可控的AI视频生产力。
633 4
🐴 HappyHorse 1.1 现已上线阿里云百炼!快来查收模型使用指南,现在调用享 6 折~
|
1天前
|
人工智能 自然语言处理 API
阿里云Token Plan团队版解析:功能、三档套餐与省钱订阅指南
阿里云百炼平台推出的Token Plan团队版,是面向企业与团队的AI大模型订阅服务,以Credits为统一计量单位,整合文本与图像生成模型,提供团队管理、数据安全、多工具兼容等核心能力,解决团队零散订阅AI服务的管理混乱、成本失控、数据安全等痛点。本文将从核心定位、套餐详情、计费规则、团队管理、工具兼容、便宜订阅技巧等方面,全面解析Token Plan团队版,帮助企业与团队高效、低成本地使用AI服务。
283 108
|
3天前
|
缓存 人工智能 运维
阿里云618百炼大模型Qwen3.7-Max功能、免费试用、订阅计费、配置接入详解
Qwen3.7-MAX是阿里云百炼平台推出的通义千问3.7系列旗舰大语言模型,专为智能体时代复杂任务打造,依托阿里云全域算力与自研技术,在逻辑推理、长文本处理、代码工程、长周期自主执行等领域达到行业顶尖水平。2026年618期间,该模型推出多重免费试用权益、按量计费5折、订阅套餐优惠等专属福利,覆盖个人开发者、团队与企业全场景需求,以下从核心功能、免费试用、订阅计费、配置接入四方面展开详细解析。
373 123
|
16天前
|
缓存 测试技术 API
Qwen 3.7 Plus 与 Max 实测:性价比与多模态能力差异解析(2026)
2026 年 6 月 1 日,阿里悄无声息地发布了 Qwen 3.7 Plus,距 Qwen 3.7 Max 上线刚好 11 天。同样的 1M 上下文,同样的 35 小时自治上限。但价格才是头条:Plus 是 0.40/M输入,Max是 2.50/M——便宜约 6 倍——并且还能看图、看视频。Vision Arena 上 Plus 已经排到 #16。所以这周真正值得讨论的问题不是”要不要为视觉能力买单”,而是”Max 凭什么用 6 倍价格换来 2 个百分点的 benchmark 领先”。
|
2天前
|
存储 人工智能 数据可视化
别再手动复制 Skill 了:多 Agent 时代的 Skill 管理方案
多 Agent 场景下 Skill 的统一管理与同步。
190 122
|
9天前
|
缓存 人工智能 运维
GLM 5.2自托管全流程实战:硬件选型、vLLM/SGLang部署与成本盈亏测算
2026年智谱发布GLM 5.2超大混合专家模型,区别于以往仅开放API的闭源大模型,该模型权重以MIT开源协议对外发布,企业与开发者可完整下载、本地审计、私有化部署,实现数据不出环境、自定义微调、自主调度推理资源。GLM 5.2拥有753B总参数,原生支持百万级上下文窗口,在代码生成、长文档推理、数学逻辑等多项基准测试中对标国际顶尖商用模型,是首款可完整自托管的前沿代码向大模型。
764 0
|
2天前
|
SQL 存储 运维
日志能不能改?SLS LogStore 原生支持更新和删除了
随着日志承载的业务语义越来越多,数据订正、回填、清理等需求变得越来越常见。SLS 现已为 LogStore 提供原生 update/delete 能力——支持按 RowID 精确修改,按查询条件批量操作,类似计费调账、标签刷新、反馈回填等场景都可以直接在 LogStore 内完成闭环。
173 124

热门文章

最新文章