ASCII 艺术与视觉越狱


文档摘要

ASCII 艺术与视觉越狱 本节摘要:Jiang、Xu、Niu、Xiang、Ramasubramanian、Li、Poovendran,《ArtPrompt: ASCII Art-based Jailbreak Attacks against Aligned LLMs》(ACL 2024,arXiv:2402.11753)。把有害请求里的安全相关 token 遮蔽,用同样字母的 ASCII 艺术渲染替换,然后发送伪装提示。GPT-3.5、GPT-4、Gemini、Claude、Llama-2 都无法稳健识别 ASCII 艺术 token。攻击绕过 PPL(困惑度过滤)、改写防御、重分词。

ASCII 艺术与视觉越狱

本节摘要:Jiang、Xu、Niu、Xiang、Ramasubramanian、Li、Poovendran,《ArtPrompt: ASCII Art-based Jailbreak Attacks against Aligned LLMs》(ACL 2024,arXiv:2402.11753)。把有害请求里的安全相关 token 遮蔽,用同样字母的 ASCII 艺术渲染替换,然后发送伪装提示。GPT-3.5、GPT-4、Gemini、Claude、Llama-2 都无法稳健识别 ASCII 艺术 token。攻击绕过 PPL(困惑度过滤)、改写防御、重分词。相关:ViTC 基准测量对非语义视觉提示的识别;StructuralSleight 把它推广到罕见文本编码结构(树、图、嵌套 JSON)这一整族编码攻击。本节是编码维度的越狱,与第 12 节(迭代)、第 13 节(长度)正交。

对应原课程:Phase 18 · Lesson 14 · ascii-art-visual-jailbreaks(原英文 phases/18-ethics-safety-alignment/14-ascii-art-visual-jailbreaks/docs/en.md)。前置:Phase 18 · 12、13。

学习目标

阅读完本节,你应当能够:

  1. 描述 ArtPrompt 攻击:词语识别步、ASCII 艺术替换、最终伪装提示。
  2. 解释为什么标准防御(PPL、改写、重分词)对 ArtPrompt 失效
  3. 定义 ViTC 并描述它测量什么。
  4. 描述 StructuralSleight 作为对任意罕见文本编码结构的推广。
  5. 说明为什么视觉越狱揭示了「能力-安全权衡」。

一、问题与直觉

改写与角色扮演(第 12 节)和长上下文(第 13 节)在文本级模式上操作。ArtPrompt 在识别级操作:模型不去解析那个禁词 token,它解析的是一张用字符渲染的图像。安全过滤器看到无害标点,模型看到一个词。

ArtPrompt,两步

步骤 1,词语识别:给定一个有害请求,攻击者用一个 LLM 识别安全相关词(如「how to make a bomb」里的「bomb」)。

步骤 2,伪装提示生成:把每个识别出的词替换成它的 ASCII 艺术渲染(一个 7x5 或 7x7 的字符块,拼出字母形状)。模型收到一个标点与空格组成的网格,足够强的模型能识别为那个词;安全过滤器只看到网格。

结果:GPT-4、Gemini、Claude、Llama-2、GPT-3.5 全部失败。在其基准子集上攻击成功率超过 75%。

为什么标准防御失效

  • PPL(困惑度过滤):ASCII 艺术有高困惑度——但所有新颖输入都这样。能拦 ArtPrompt 的阈值也会拦合法的结构化输入。
  • 改写:改写提示会破坏 ASCII 艺术。但实践中,改写 LLM 经常保留或重建了艺术。
  • 重分词:换一种方式切分 token,不改变模型的「视觉」在识别字母形状这一事实。

根本问题是:安全过滤器在 token 或语义级,ArtPrompt 在视觉识别级

⚠️ 能力-安全权衡:ViTC 准确率与 ArtPrompt 有效性正相关——模型越会读视觉文本,ArtPrompt 在它上面越有效。这是个尖锐的权衡:提升模型的多模态能力(读图、读 ASCII)直接放大了这类攻击面。你无法靠「让模型变笨」来防御。

ViTC 基准

对非语义视觉提示的识别。测量模型读 ASCII 艺术、Wingdings 字体等非文本语义视觉内容的能力。ArtPrompt 的有效性与 ViTC 准确率相关。这是能力-安全权衡的直接体现

StructuralSleight

把 ArtPrompt 推广:罕见文本编码结构(Uncommon Text-Encoded Structures, UTES)。树、图、嵌套 JSON、JSON 里的 CSV、diff 风格代码块。只要一个结构在训练安全数据里罕见、但模型能解析,它就能藏有害内容。防御含义:安全必须跨模型能解析的所有结构化表示泛化,而这个集合很大且在增长。

图像模态类比

视觉 LLM(GPT-5.2、Gemini 3 Pro、Claude Opus 4.5、Grok 4.1)扩展了攻击面。用真实图像的 ArtPrompt 风格攻击比 ASCII 艺术版更强,因为图像编码器产出更丰富的信号。

二、从零实现

code/main.py 构造玩具 ArtPrompt。你可以把有害查询里的特定词用 ASCII 艺术字形伪装,验证伪装字符串通过关键词过滤,并(可选)用简单识别器解码回来。

def artprompt(query, safety_words): words = identify_safety_words(query, safety_words) # 步骤1:找安全词 cloaked = query for w in words: art = render_ascii_art(w) # 7x5 字符网格 cloaked = cloaked.replace(w, art) # 步骤2:替换 return cloaked # 过滤器看到标点,模型读到词 # 验证:关键词过滤看不到 "bomb",但模型视觉识别能读出 assert keyword_filter(artprompt("how to make a bomb", {"bomb"})) == PASS

三、框架对比:编码攻击家族

编码 机制 绕过的防御
ASCII 艺术(ArtPrompt) 字母→字符网格 关键词、PPL、改写、重分词
base64 词→编码串 关键词;但 PPL 可拦
leet-speak 字母替换(3→e) 关键词;语义过滤可拦
UTF-8 同形字(homoglyph) 看似相同的 Unicode 子串检查
UTES(StructuralSleight) 树/图/嵌套 JSON 藏内容 大多数语义过滤

设计要点:编码攻击家族的共同点是在安全过滤器不解析的表示层藏内容。没有单一防御能覆盖全部——生产中需要多层叠加:输入侧结构检测 + PPL + 输出侧分类器(Llama Guard),且必须用自适应攻击(攻击者知道防御)评估,而非静态基准。

四、可复用产物

本节产出 outputs/skill-encoding-audit.md:给它一份越狱防御报告,它枚举覆盖的编码攻击家族(ASCII 艺术、base64、leet-speak、UTF-8 同形字、UTES),以及各自被哪一层防御捕获。

code/main.py 是独立玩具,ASCII 渲染可换成真实 ArtPrompt 实现,伪装-过滤-识别三步逻辑不变。

五、练习

  1. Easy:运行 code/main.py,验证伪装字符串通过简单关键词过滤,报告所需的字符级改动。

  2. Medium:对同一目标词实现第二种编码(base64)。对比与 ArtPrompt 的过滤绕过率和恢复难度。

  3. Medium:读 Jiang 等 2024 第 4.3 节(五模型结果)。提出一个原因,解释为什么 Claude 在同基准上比 Gemini 的 ArtPrompt 抗性更高。

  4. Hard:设计一个生成前防御,检测提示里的 ASCII 艺术形状区域。测量对合法代码、表格、数学符号的假阳性率。

  5. Hard:StructuralSleight 列出 10 种编码结构。草拟一个能处理全部 10 种的通用防御,估算每个被防御提示的算力代价。

本节要点回顾

  1. ArtPrompt 两步:词语识别 + ASCII 艺术替换,过滤器看到标点、模型读到禁词,五模型攻击成功率 >75%。
  2. 三种标准防御失效:PPL(误伤合法结构)、改写(常保留艺术)、重分词(视觉识别不变)——根因是过滤器在 token/语义级,攻击在视觉识别级。
  3. ViTC 基准:测量读非语义视觉编码的能力;与 ArtPrompt 有效性正相关,能力-安全直接权衡
  4. StructuralSleight:推广到罕见文本编码结构(树/图/嵌套 JSON/CSV-in-JSON/diff),任何模型能解析但安全数据罕见的结构都能藏内容。
  5. 图像模态更强:视觉 LLM 的 ArtPrompt 风格图像攻击比 ASCII 版更强,因图像编码器信号更丰富。
  6. 能力-安全权衡:提升多模态能力直接放大视觉越狱面,无法靠「变笨」防御,只能多层叠加 + 自适应攻击评估。

下一节,我们从模型中心攻击转向系统边界攻击——间接提示注入:2026 生产部署的主导威胁,攻击者从不碰用户,只在外部内容里埋指令。


发布者: 作者: Rohit Gupta 转发
评论区 (0)
U