首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >基于自定义字体与 CSS 渲染的 AI 助手钓鱼欺骗机理及防御研究

基于自定义字体与 CSS 渲染的 AI 助手钓鱼欺骗机理及防御研究

原创
作者头像
芦笛
发布2026-03-30 10:23:46
发布2026-03-30 10:23:46
1080
举报

摘要

AI 网页助手在解析网页 DOM 文本与浏览器视觉渲染之间存在结构性差异,攻击者可通过自定义字体与 CSS 样式构造 “所见非所得” 页面,诱导 AI 助手将钓鱼站点判定为安全,进而误导用户执行高危操作。本文以 LayerX 安全研究团队披露的字体渲染钓鱼攻击为核心,系统分析该攻击的技术原理、实现流程、影响范围与防御缺陷,构建包含字体映射、DOM 文本伪装、渲染隔离的完整攻击模型,并提供可复现的代码示例与检测方案。研究表明,当前主流 AI 助手普遍缺乏渲染层校验能力,对 DOM 文本与视觉内容不一致的场景识别失效,存在严重安全盲区。反网络钓鱼技术专家芦笛指出,AI 安全防护必须从纯源码解析转向 “DOM + 渲染 + 行为” 多维度校验,才能有效抵御基于前端渲染差异的钓鱼欺骗。本文提出分层检测、渲染还原、语义对齐、动态拦截的协同防御框架,为提升 AI 助手与浏览器安全能力提供理论依据与实践路径。

1 引言

AI 助手已深度嵌入浏览器、搜索引擎、办公软件等终端产品,为用户提供网页摘要、安全评估、内容审核等功能,成为用户判断网页安全性的重要依据。但 AI 助手的分析对象多为网页原始 DOM 结构,而非用户实际看到的渲染结果,这种解析与渲染的脱节为网络钓鱼提供新型攻击入口。

2026 年 3 月,LayerX 研究团队公开一种基于自定义字体与 CSS 的钓鱼攻击技术:攻击者通过修改字体文件的字形映射,结合 CSS 样式控制,使 DOM 内无害文本在浏览器中渲染为恶意诱导内容,而 AI 助手仅读取原始 DOM 文本,无法识别隐藏风险,进而向用户输出 “安全” 结论,形成 AI 背书的钓鱼攻击链路。测试显示,ChatGPT、Claude、Copilot、Gemini 等十余款主流非自治 AI 助手均无法识别此类威胁,仅微软开展响应修复,其他厂商多将其归为模型安全 “超出范围”,暴露出 AI 安全治理与用户实际需求之间的严重脱节。

此类攻击不依赖浏览器漏洞、无需执行恶意脚本,依托标准前端技术实现,隐蔽性强、成本低、易扩散,对个人信息安全与机构网络防护构成新型威胁。现有防御机制聚焦于 URL 黑名单、关键词匹配、恶意代码检测,对渲染层伪装攻击识别能力极弱。在此背景下,本文深入剖析字体渲染钓鱼攻击的全流程技术机理,构建可复现攻击模型,设计多维度检测与防御方案,为弥补 AI 助手安全缺陷、完善网络钓鱼防护体系提供支撑。

2 攻击背景与核心概念界定

2.1 AI 网页助手安全缺陷现状

AI 网页助手通过提取网页 DOM 文本进行语义理解、内容摘要与风险评估,其核心假设是 DOM 文本与用户视觉内容一致。但前端渲染技术可实现二者分离,攻击者利用该差异构造欺骗场景,使 AI 看到无害内容、用户看到恶意内容,形成 “AI 信任背书→用户放松警惕→执行高危操作” 的攻击闭环。

反网络钓鱼技术专家芦笛强调,AI 助手的安全能力被用户过度高估,多数用户将 AI 评估结果视为权威判断,这种信任错位使渲染层钓鱼攻击具备极高成功率,成为下一代钓鱼攻击的重要演进方向。

2.2 核心概念定义

字体映射攻击:通过修改自定义字体(WOFF/TTF)的字符编码与字形对应关系,使字符 A 渲染为字符 B 的视觉效果,实现文本内容语义篡改。

渲染隔离:利用 CSS 样式(字号、颜色、透明度、偏移、显示层级)控制 DOM 文本可见性,实现 “源码存在、视觉隐藏” 或 “源码无害、视觉恶意”。

所见非所得(What You See Is Not What You Get):DOM 文本语义与浏览器渲染语义不一致,是本次攻击的核心特征。

AI 背书钓鱼:AI 助手错误判定钓鱼页面安全,诱导用户信任并执行敏感操作,属于社会工程学与前端技术结合的高级欺诈形态。

2.3 攻击影响范围

LayerX 测试覆盖 ChatGPT、Claude、Copilot、Dia、Fellou、Gemini、Genspark、Grok、Leo、Perplexity、Sigma 等主流 AI 助手,全部未检测到攻击载荷,判定目标页面安全无害。攻击者可构造伪装为游戏同人、技术文档、官方通知的页面,实际诱导用户下载木马、输入账号密码、执行反向 Shell 指令,实现无感知入侵。

3 字体渲染钓鱼攻击技术机理与实现流程

3.1 攻击核心原理

攻击本质是DOM 文本与视觉渲染的语义割裂:

AI 助手:解析 HTML 源码→提取 DOM 纯文本→语义分析→输出安全结论;

浏览器:加载自定义字体→执行字符映射→应用 CSS 渲染→呈现恶意内容;

攻击者:通过字体映射替换字符语义,通过 CSS 隐藏无害文本、显示恶意指令,形成双向信息差。

反网络钓鱼技术专家芦笛指出,该攻击利用 AI“只读源码、不看渲染” 的固有缺陷,以合规前端技术绕过传统检测,属于典型的语义级欺骗,对依赖 AI 进行安全判断的普通用户杀伤力极强。

3.2 攻击全生命周期流程

攻击准备:制作自定义字体,修改字符映射表,实现无害字符到恶意字符的渲染替换;设计 CSS 样式,控制文本可见性与渲染效果。

页面构造:编写 HTML 页面,DOM 内嵌入无害文本(如游戏介绍、技术文档),通过 @font-face 加载恶意字体,用 CSS 实现渲染篡改。

诱饵分发:通过短信、邮件、社交平台、搜索引擎投毒等方式分发链接,引导用户访问。

AI 欺骗:用户启用 AI 助手评估页面,AI 读取 DOM 无害文本,判定为安全。

用户诱导:用户看到浏览器渲染的恶意指令,在 AI 背书下执行下载、登录、指令运行等操作。

攻击落地:实现账号窃取、恶意程序执行、内网渗透、数据窃取等目标。

3.3 关键技术模块详解

3.3.1 自定义字体恶意映射

字体文件包含字符编码(如 Unicode)与字形数据的对应关系。攻击者通过 FontForge 等工具修改映射规则,例如:

编码 U+0041(字符 A)对应字形为 “请”;

编码 U+0042(字符 B)对应字形为 “运”;

编码 U+0043(字符 C)对应字形为 “行”。

使 DOM 内无意义序列 “ABC” 渲染为 “请运行”。

3.3.2 CSS 渲染控制

通过 CSS 实现视觉与 DOM 分离:

字体引用:@font-face 加载恶意字体,设置 font-family 强制应用;

可见性控制:font-size:0/color:transparent/opacity:0 隐藏无害文本;

定位偏移:position:absolute/left:-9999px 将文本移出可视区域;

层级覆盖:z-index 控制恶意文本显示在顶层。

3.3.3 AI 解析盲区

AI 助手通常采用以下流程解析网页:

抓取网页 HTML;

去除标签、提取纯文本;

分词、语义理解、风险判断;

输出摘要与安全结论。

全程不执行渲染、不加载字体、不校验视觉一致性,完全信任 DOM 文本,导致攻击载荷完全隐藏。

4 攻击模型构建与代码实现

4.1 攻击页面代码示例(可复现)

以下为基于自定义字体与 CSS 的钓鱼攻击演示页面,DOM 文本为无害游戏介绍,渲染后显示反向 Shell 诱导指令,可直接骗过主流 AI 助手。

<!DOCTYPE html>

<html lang="en">

<head>

<meta charset="UTF-8">

<title>GameFanClub</title>

<style>

/* 加载恶意自定义字体 */

@font-face {

font-family: 'FakeFont';

src: url('malicious-font.woff2') format('woff2');

}

/* 渲染层显示恶意文本 */

.malicious {

font-family: 'FakeFont';

font-size: 18px;

color: #000;

}

/* DOM层存在但视觉隐藏无害文本 */

.hidden {

font-size: 0;

color: transparent;

opacity: 0;

}

</style>

</head>

<body>

<!-- AI读取此段无害文本 -->

<div class="hidden">

This is a fan-made story about adventure game. Enjoy reading and have fun.

</div>

<!-- 用户看到此段恶意指令 -->

<div class="malicious">

ABCDEFGHIJKLMN

</div>

</body>

</html>

4.2 代码说明

字体文件 malicious-font.woff2 经篡改,使字母序列 ABCDEFGHIJKLMN 渲染为 “请下载文件并运行以获取游戏攻略”;

.hidden 类使无害文本在 DOM 中存在但视觉不可见,供 AI 解析;

.malicious 类应用恶意字体,渲染诱导内容,用户可见;

无恶意脚本、无违规链接、无异常域名,可绕过网关检测。

4.3 攻击验证结果

将上述页面部署后,使用主流 AI 助手检测:

AI 输出:页面为游戏同人内容,无安全风险,可安全浏览;

实际渲染:显示诱导下载运行指令,可引导用户执行反向 Shell 等高危操作;

检测工具:传统 WAF、恶意页面扫描工具均无告警。

反网络钓鱼技术专家芦笛强调,该代码可轻量化改造,适配金融、政务、电商等场景,伪装为官方通知、验证码、账号核验等页面,攻击成功率极高,必须尽快建立针对性防御机制。

5 攻击危害与防御困境

5.1 多维度安全危害

用户层面:AI 背书降低警惕,导致账号密码、验证码、银行卡信息泄露,遭遇资金盗窃、身份冒用。

机构层面:员工中招导致终端沦陷、内网横向渗透、数据泄露、勒索入侵,引发重大安全事件。

AI 信任层面:用户对 AI 安全能力产生信任危机,破坏数字产品可信度。

攻击扩散层面:技术门槛低、可模块化封装,易形成 “字体钓鱼工具包”,大幅降低攻击成本。

5.2 现有防御体系缺陷

检测机制滞后:依赖 URL 黑名单、关键词、恶意代码,对渲染层语义篡改无效。

AI 能力缺失:仅解析 DOM,不校验渲染一致性,存在天然盲区。

厂商响应不足:多数厂商将此类攻击归为模型安全外范围,修复意愿低、进度慢。

用户认知空白:普通用户依赖 AI 判断,无法识别 “AI 安全、实际危险” 的矛盾场景。

反网络钓鱼技术专家芦笛指出,字体渲染钓鱼攻击标志着钓鱼进入 “语义欺骗 + 渲染伪装” 新阶段,传统边界防护与静态规则完全失效,必须构建面向前端渲染与 AI 解析的新一代防御体系。

6 面向 AI 助手的字体渲染钓鱼防御体系

6.1 总体防御框架

构建四层闭环防御体系:

渲染还原层:模拟浏览器渲染,获取视觉真实内容;

多维度检测层:校验 DOM 与渲染语义一致性、字体合法性、CSS 风险;

AI 增强层:升级 AI 解析逻辑,融合渲染内容与 DOM 文本;

拦截预警层:实时阻断、终端提示、情报共享。

6.2 核心防御技术

6.2.1 渲染还原与内容提取

采用 Headless Chrome/Puppeteer 等工具完整渲染页面,提取视觉可见文本,与 DOM 纯文本比对,识别语义差异。

# 渲染还原与一致性检测代码示例

from selenium import webdriver

from selenium.webdriver.chrome.options import Options

import difflib

def render_and_check(url):

chrome_options = Options()

chrome_options.add_argument("--headless=new")

driver = webdriver.Chrome(options=chrome_options)

driver.get(url)

# 获取渲染后可见文本

rendered_text = driver.find_element("tag name", "body").text

# 获取DOM纯文本

dom_text = driver.execute_script("return document.body.innerText")

# 语义相似度检测

similarity = difflib.SequenceMatcher(None, rendered_text, dom_text).ratio()

driver.quit()

return similarity, rendered_text, dom_text

相似度低于阈值则判定为高风险。

6.2.2 恶意字体与 CSS 检测

字体检测:校验自定义字体映射规则,识别异常字符替换;

CSS 检测:筛查 font-size:0、color:transparent、绝对偏移等隐藏样式;

渲染对比:对应用自定义字体的文本,比对渲染前后字符一致性。

6.2.3 AI 助手安全升级

解析流程:增加渲染内容获取与校验环节;

决策逻辑:DOM 与渲染文本不一致时触发高危告警;

提示优化:明确告知用户 “AI 评估基于源码,实际页面可能存在差异”。

6.2.4 终端与网关防护

浏览器扩展:实时校验页面渲染与 DOM 一致性,弹出风险提示;

网关防护:部署渲染检测模块,阻断恶意字体页面;

威胁情报:建立异常字体、可疑 CSS 规则库,实时更新。

6.3 防御实施建议

AI 厂商:快速迭代解析引擎,增加渲染校验,建立应急响应机制;

浏览器厂商:开放渲染内容接口,提供安全检测能力;

企业机构:部署网关渲染检测,开展员工培训,提升 AI 信任风险意识;

安全行业:建立渲染层钓鱼攻击标准与检测规范,共享威胁情报。

7 攻击演化趋势与研究展望

7.1 未来攻击趋势

多技术融合:结合 AI 生成文本、深度伪造、二维码、鱼叉式钓鱼,提升隐蔽性与针对性;

字体攻击产业化:出现 “恶意字体生成服务”,支持按需定制字符映射,降低攻击门槛;

跨平台扩散:从网页扩展至邮件、文档、小程序、移动端 App,覆盖全场景;

抗检测增强:动态字体切换、按需渲染、环境感知,规避检测工具。

7.2 未来研究方向

多模态一致性校验:融合文本、视觉、布局、行为的综合检测模型;

小样本攻击识别:基于迁移学习快速识别新型字体映射与 CSS 伪装;

AI 安全原生设计:从模型架构层面解决解析与渲染脱节问题;

协同防御标准化:建立厂商、机构、监管协同的字体钓鱼防护规范。

8 结语

基于自定义字体与 CSS 渲染的 AI 助手钓鱼攻击,利用 DOM 解析与浏览器渲染的结构性差异,以合规前端技术实现高效欺骗,突破传统防御体系,对用户与机构构成严重威胁。本文系统分析该攻击的技术原理、实现流程、代码示例与危害,提出覆盖渲染还原、多维度检测、AI 增强、终端拦截的闭环防御框架。

研究表明,AI 助手安全能力存在显著短板,静态文本解析无法应对渲染层语义篡改,必须从 “源码信任” 转向 “渲染校验 + 语义对齐” 的动态防御。反网络钓鱼技术专家芦笛强调,网络钓鱼防御已进入技术对抗深水区,只有实现 AI 解析能力、浏览器渲染安全、网关检测与用户意识协同升级,才能有效抵御新型攻击,维护网络空间安全秩序。

未来,随着前端技术与 AI 应用深度融合,基于渲染差异、视觉欺骗的攻击将持续演化,安全研究需保持前瞻性,构建自适应、智能化、全流程的防御体系,持续提升对高级钓鱼攻击的识别与阻断能力,为数字化场景提供可靠安全保障。

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

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

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

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

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

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