借助 BPE 切分与 Unicode 归一化差异绕过大模型 LLM 安全过滤器原理解析

有研究者发现,利用 BPE 分词切分规则和 Unicode 字符归一化之间的差异,可以构造特殊输入来绕过 LLM 安全过滤器,这套攻击思路的核心是构造视觉上接近正常文本、但底层编码不一样的字符,大模型的安全审核模块往往在归一化、分词环节和模型主体推理环节处理逻辑不一致,审核模块识别不出违规内容,而 BPE 分词器又能把这些变形字符还原成模型能看懂的语义,最终实现安全过滤逃逸。这类属于提示词注入的一种逃逸攻击,并不是 LLM 本身模型权重出现漏洞,而是安全护栏、前置审核、分词处理流程之间存在逻辑不同步。很多 LLM 的安全检测是在文本预处理阶段做关键词匹配,检测脚本只做简单文本匹配,没有完整执行和 BPE 一致的 Unicode 归一化,或者分词粒度和模型内部 BPE 切分结果不一样,就给了攻击者可乘之机。这类手段在安全测试场景会被用于红队测评,但严禁拿来实际攻击、破解线上大模型的安全防护。

一、BPE 切分和 Unicode 归一化差异为什么能绕开过滤

  • Unicode 存在等价字符:同一个显示文字,存在多种编码形式(比如组合变音符号、兼容等价字符),肉眼看起来一模一样,原始字符串二进制却不同。
  • 安全过滤器预处理简化:很多安全检测只做浅层匹配,没有执行和模型完全一致的 NFKC/NFD 归一化。
  • BPE 分词器的特性:BPE 会在子词层面合并片段,经过归一化之后,变形字符会被切分、合并成模型能识别的目标子词。
  • 流程割裂:安全护栏是独立模块,和推理侧 tokenizer 不是一套完整对齐的预处理流水线,两边对同一段输入的理解不一致。

二、简单原理对比表

模块处理方式行为特点
安全过滤器原始字符串关键词匹配,归一化不全识别不到变形后的违规关键词
BPE Tokenizer先做指定 Unicode 归一化,再子词切分把变体字符还原成语义对应的 token
LLM 主体读取 token 序列做推理读懂原本被过滤的指令

三、这类攻击的典型实现步骤(仅用于安全研究理解)

  1. 挑选目标关键词,查找它的 Unicode 等价变体字符、组合字符
  2. 把关键词替换成视觉等价、编码不同的 Unicode 变体,构造输入文本
  3. 用目标 LLM 的原生 BPE tokenizer 对文本做编码,验证 token 序列是否和原词接近
  4. 送入带安全过滤器的 LLM 接口,观察安全检测是否拦截失败
  5. 迭代调整字符,规避前置关键词黑名单,直到逃逸成功

四、对应的防御方案

  • 统一预处理流水线:安全检测、输入审核、BPE 分词器使用完全相同的 Unicode 归一化(一般 NFKC)
  • 子词级检测:不要只在原始字符串做关键词匹配,在 token 序列上增加安全审计
  • 增加红队常态化测试:专门针对 Unicode 变体、BPE 分词不一致的逃逸方式做持续扫描
  • 上线归一化前置层:所有用户输入统一先归一化,再送入安全检测和 tokenizer
  • 增加异常字符检测:对大量组合变音、不常用兼容字符的输入做风险标记

【相关 FAQ】

问题 1:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,它属于大模型本身的漏洞吗?

回答 1:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,它不属于模型权重本身漏洞,属于安全护栏、审核模块和 BPE 分词预处理流程不同步带来的流程侧缺陷。

问题 2:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,普通用户可以随便尝试吗?

回答 2:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,普通用户不可以随意尝试,该手段属于提示逃逸攻击,未经授权对线上 LLM 系统进行绕过测试,会违反平台用户协议,甚至触犯相关法规。

问题 3:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,怎么从开发层面堵住这类逃逸?

回答 3:借助 BPE 切分与 Unicode 归一化差异绕过 LLM 安全过滤器,最核心的办法就是让安全检测和 BPE 分词器使用一模一样的 Unicode 归一化逻辑,同时增加 token 层面的安全识别,而不是只做原始文本关键词匹配。

【参考资料】

[2026-09-12](Exploiting Unicode Normalization and BPE Mismatch for LLM Safety Filter Bypass)arXiv

[2026-07-20](大模型提示词逃逸:Unicode 变体与分词不一致风险)安全客

[2026-06-05](LLM 红队测试:BPE 分词边界带来的安全逃逸)FreeBuf

[2025-11-18](Tokenizer 对齐:消除安全护栏与推理侧预处理差异)OpenAI 安全博客

[2025-08-03](Unicode 归一化在大模型安全检测中的坑)看雪论坛

【免责声明】

本内容仅为人工智能安全方向科普、原理学习,所有相关技术内容仅限授权范围内的安全研究、红队测试使用;禁止利用 BPE 切分、Unicode 字符构造等方式绕过各大 LLM 平台安全防护、实施违规提示注入,违规使用带来的法律责任由行为人自行承担。

本文来自作者[光粒编译]投稿,不代表乌兰科技网立场,如若转载,请注明出处:https://www.wlcbnews.com/kjyw/202611/10.html

赞 (11)

今日大家都在搜的词:

发表回复

本站作者后才能评论

评论列表(4条)

  • 光粒编译
    光粒编译 2026年11月08日

    我是乌兰科技网的签约作者“光粒编译”!

  • 光粒编译
    光粒编译 2026年11月08日

    希望本篇文章《借助 BPE 切分与 Unicode 归一化差异绕过大模型 LLM 安全过滤器原理解析》能对你有所帮助!

  • 光粒编译
    光粒编译 2026年11月08日

    本站[乌兰科技网]内容主要涵盖:互联网行业的追踪与探索

  • 光粒编译
    光粒编译 2026年11月08日

    本文概览:有研究者发现,利用 BPE 分词切分规则和 Unicode 字符归一化之间的差异,可以构造特殊输入来绕过 LLM 安全过滤器,这套攻击思路的核心是构造视觉上接近正常文本、但底层编码不一样的字符,大模型的安全审核模块往往在归一化、分词环节和模型主体推理环节处理逻辑不一致,审核模块识别不出违规内容,而 BPE 分词器又能把这些变形字符还原成模型能看懂的语义,最终实现安全过滤逃逸。这类属于提示词注入的一种逃逸攻击,并不是 LLM 本身模型权重出现漏洞,而是安全护栏、前置审核、分词处理流程之间存在逻辑不同步。很多 LLM 的安全检测是在文本预处理阶段做关键词匹配,检测脚本只做简单文本匹配,没有完整执行和 BPE 一致的 Unicode 归一化,或者分词粒度和模型内部 BPE 切分结果不一样,就给了攻击者可乘之机。这类手段在安全测试场景会被用于红队测评,但严禁拿来实际攻击、破解线上大模型的安全防护。

联系我们

联系:143 0457 151

工作时间:周一至周五,9:30-18:30,节假日休息

关注我们