
提示词注入攻击:黑客如何劫持AI聊天机器人
提示词注入是排名第一的LLM安全风险。了解攻击者如何通过直接和间接注入劫持AI聊天机器人,并提供真实案例和面向开发者及安全团队的具体防御措施。...

令牌走私利用人类阅读文本与LLM分词器处理文本之间的差距。攻击者使用Unicode变体、零宽字符、同形异义字或异常编码来隐藏恶意指令,使其不被内容过滤器检测到,同时仍能被分词器读取。
令牌走私是一类针对AI系统中文本处理层之间差距的攻击。内容审核过滤器、输入验证和安全检查通常对人类可读文本进行操作。相比之下,LLM分词器在较低级别操作——将字符转换为数字令牌ID。通过利用这些层之间的差异,攻击者可以制作通过文本级过滤器但向LLM传递恶意指令的输入。
在LLM处理文本之前,分词器将输入字符串转换为整数令牌ID序列。这些ID映射到模型的词汇表——通常使用字节对编码(BPE)或WordPiece等算法进行编码。
攻击者利用的分词关键属性:
Unicode包含数千个视觉上类似常见ASCII字符的字符。查找"harmful"一词的过滤器可能无法识别"hármful"(带组合重音符)或"harⅿful"(带Unicode分数字符)。
示例: 单词"ignore"可能被编码为"іgnore"(使用西里尔字母"і"而不是拉丁字母"i")——对大多数人类读者和某些过滤器来说看起来完全相同,但在分词器级别可能处理方式不同。
零宽字符(如U+200B零宽空格或U+200C零宽非连接符)在渲染文本中是不可见的。在关键词的字符之间插入它们会破坏字符串匹配过滤器,而不影响视觉外观,在许多情况下也不影响分词表示。
示例: “ignore”(每个字符之间有零宽空格)在渲染时显示为"ignore",但会破坏简单的字符串模式匹配。
在提交前将文本转换为替代编码:
有效性取决于LLM是否经过训练来解码这些表示,而许多通用模型都具有这种能力。
简单但有时有效的变化:
一些分词器对分隔符字符给予特殊处理。通过引入分词器解释为段边界的字符,攻击者可以操纵模型如何将输入分割为有意义的单元。
越狱绕过: 使用通过安全过滤器层但被LLM解码的技术对越狱提示进行编码,从而绕过安全防护。
内容过滤器规避: 以编码形式嵌入仇恨言论、非法内容请求或违反政策的指令。
提示注入混淆: 使用编码从简单的模式匹配过滤器中隐藏注入的指令,同时确保LLM正确处理它们。
过滤器指纹识别: 系统地测试不同的编码变体,以识别目标系统的过滤器检测和不检测哪些变体——为更有针对性的攻击映射过滤器覆盖范围。
在过滤之前对所有输入应用Unicode规范化(NFC、NFD、NFKC或NFKD)。这将Unicode变体转换为规范形式,消除许多同形异义字和组合字符攻击。
在过滤之前实施显式同形异义字映射,将视觉上相似的字符规范化为其ASCII等效字符。大多数编程语言都有用于此目的的库。
使用基于LLM的过滤器在令牌表示上操作,而不是(或除了)基于字符串的过滤器。因为这些过滤器在与目标模型相同的级别处理文本,编码技巧的效果较差——过滤器看到与模型相同的表示。
安全评估应包括针对已知编码变体对内容过滤器进行系统测试。如果过滤器旨在阻止"ignore previous instructions”,则测试它是否也阻止Unicode同形异义字、零宽变体、Base64编码和其他混淆形式。
记录规范化输入的人类可读渲染以及原始输入。两者之间的差异可以在事件审查期间发现编码攻击。
令牌走私是一种攻击技术,利用人类可读文本与LLM分词器表示之间的差异。攻击者使用字符变体、Unicode技巧或异常格式对恶意指令进行编码,使内容过滤器无法检测到它们,但LLM的分词器仍会按预期处理它们。
内容过滤器通常对人类可读文本进行操作——检查特定字符串、模式或关键词。然而,LLM分词器在较低级别处理文本,可能会将视觉上不同的字符映射到相同或相似的令牌。这种差距使攻击者能够制作对过滤器呈现一种方式,而被分词器以不同方式处理的文本。
防御措施包括:在过滤前规范化输入文本(Unicode规范化、同形异义字替换),使用基于LLM的内容过滤器在令牌级表示而非原始文本上操作,针对已知编码变体测试过滤器,以及进行包含基于编码的攻击场景的安全评估。

提示词注入是排名第一的LLM安全风险。了解攻击者如何通过直接和间接注入劫持AI聊天机器人,并提供真实案例和面向开发者及安全团队的具体防御措施。...

提示词注入是排名第一的大语言模型安全漏洞(OWASP LLM01),攻击者在用户输入或检索内容中嵌入恶意指令,以覆盖AI聊天机器人的预期行为,可能导致数据泄露、安全防护绕过或未授权操作。...

LLM安全涵盖用于保护大语言模型部署免受一类独特的人工智能特定威胁的实践、技术和控制措施,包括提示注入、越狱、数据泄露、RAG投毒和模型滥用。...