AI安全 - Awesome AI Jailbreak & LLM WAF技术
0x0 前言: 大语言模型时代
2022 年,GPT-3.5 横空出世。而我印象中第一次听说 ChatGPT 是在 2023 年的一篇博客园推荐文章中。第一次使用更是在 2024 年。这一年,各家大语言模型百花齐放。记得当时的文心一言还是很强的,现在的话只能不予置评了。
短短三年时间,我们就经历了大语言模型元年。我们用大语言模型完成日常任务,用 Kimi、豆包这样的 APP 帮忙写作业,用 GPT、Qwen 等“代码能力更强”的模型来写代码。LLM 用近于人类的表达与推理能力,成为了近二十年最伟大的发明之一(甚至可以说没有之一?)。
但与此同时,与 LLM 相关的安全也成为了一个新的研究方向。LLM 若使用不当,很可能会造成对现实社会或人类的危害。2023 年 8 月 1 日,OWASP(全球开放应用软件安全项目组织)发布了 OWASP TOP 10 for LLM。2024 年 2 月 29 日,全国网络安全标准化技术委员会发布了《生成式人工智能服务安全基本要求》。AI 安全也在随着 AI 应用加速落地而不断发展。
0x1 LLM 究竟有何安全漏洞 - OWASP TOP 10 for LLM
首先,来速览一下 OWASP TOP 10 for LLM:
-
LLM01:提示词注入(Prompt Injection)
通过精心构造的提示词来操控大语言模型,使得该模型忽略先前的指令或者执行意外操作,导致数据泄漏、未经授权的访问等后果。 -
LLM02:不安全输出(Insecure Output Handling)
盲目接受未经验证的输出,则可能导致严重后果,如 XSS、CSRF、SSRF、权限提升或远程代码执行等。 -
LLM03:训练数据投毒(Training Data Poisoning)
当 LLM 训练数据被恶意篡改,引入损害安全性、有效性行为的漏洞时,这可能会产生带有虚假或未经证实的内容输出,可能会操纵用户传播仇恨言论等。 -
LLM04:模型拒绝服务(Model Denial of Service)
这是在其他领域很常见的攻击类型。如果 LLM 收到大量资源密集型请求,则可能会出现拒绝服务(DoS)攻击,导致 LLM 服务停止或者服务速度减慢。而且因为 LLM 的资源密集性和用户输入的不可预测性,将导致更大的风险。 -
LLM05:供应链漏洞(Supply Chain Vulnerabilities)
LLM 应用程序中的供应链漏洞包括第三方数据集和预训练模型中的漏洞,风险也可能存在于插件中。通过仔细审查每个组件的引入可以缓解供应链漏洞风险。 -
LLM06:敏感信息泄露(Sensitive Information Disclosure)
LLM 可能会在其输出中泄露机密数据,例如贸易信息,知识产权,专有算法等,导致未经授权的数据访问、隐私侵犯和安全漏洞。因此,建议预先实施数据清理,以避免敏感信息和用户数据进入训练数据。还有实施严格的用户策略来缓解这种风险。 -
LLM07:不安全的插件设计(Insecure Plugin Design)
LLM 会自动调用插件,为用户请求收集更多上下文。插件可能具有输入不安全以及缺乏访问控制的情况,有可能导致远程代码执行等后果。 -
LLM08:过度代理(Excessive Agency)
该风险是由于授予了基于 LLM 的系统过度的功能、权限或自主权。最好使用最小权限模型限制访问范围,以确保 LLM 只访问工作所需的插件和功能。 -
LLM09:过度依赖(Overreliance)
LLM 很强大,但人类不应该完全依赖它们来做出决策。在没有监督的情况下过度依赖 LLM 可能会因 LLM 生成的不正确或不适当的内容而面临错误信息、法律问题和安全漏洞。 -
LLM10:模型窃取(Model Theft)
该风险涉及对 LLM 模型的未经授权的访问、复制或泄露。其影响包括经济损失、竞争优势受损以及敏感信息泄漏。
其中,当下最受关注的便是提示词注入、敏感信息泄露和过度代理。当然,重要的还有LLM09:过度依赖。人永远是最薄弱的环节。
0x2 越狱与过滤器 - 提示词注入对抗
AI Jailbreak 技术在此前的文章也有所提及。但是对于现在的大模型,例如你随手打开 Kimi 的网页版,或者 Deepseek,再只是把古早的越狱提示词发送过去,它大概率会告诉你无法答复。显然某些方法已经过时了…吗?
其实,大概率只是厂商让它们变聪明了,但也只是聪明了“一点”。如果你用上一些手段,再结合此前的越狱方案——例如 DAN 或者恶意 prompt/敏感提示词,你依然有很大的概率能得到一个越狱的大模型。
例如,你可以使用如下的方式——对于提问输入,我们假设它为attack_query
,我们每隔 1-2 个字符就插入一个|
或者#
这样的分隔符。AI 在读入时,仍然能读取恶意提示词并完成越狱,就像你用肉眼可以读懂它们一样。分隔符不过是占用了一部分注意力,LLM 仍然会将攻击部分的提示词结合在一块理解。
1 | import random |
同时你也摸清了提示词注入对抗中最基础的防护方案:过滤器。
直接禁止某些有害的提示词传递给 LLM,在输入之前就对有害部分进行深度的匹配与过滤,我们称之为“前过滤”。
而在绕过简单的匹配过滤器之后,还可以使用Token Bomb
的思路。在绕过了过滤器后,某些厂商还会使用语义预测的方式,对输入意图进行一次大致的判断。一旦识别出有害的意图就阻止输入。Token Bomb
即超长上下文,使用该技术来分散识别阶段的注意力,从而绕过语义预测阶段的前过滤。例如你可以为攻击序列前后各加上3000
字符的空白符或分隔符,用于注意力分散。
1 | def create_token_bomb(attack_query, padding_char=' ', padding_length=3000): |
近期的研究还有从训练数据阶段入手的对抗方式,例如emoji attack
等(https://arxiv.org/abs/2411.01077),在输入时插入😊或者😇这样的emoji,会增大模型倾向于积极语义的预测概率,而😈则会增大模型倾向于消极语义的预测概率。在越狱词中利用😇等emoji,可以提高越狱的成功率。在越狱阶段,还有场景分割、同音同义混淆(例如l33t风格书写、汉语中的多音字等)、多语种攻击等方式。当然,你完全可以把这些技术结合起来,同时运用其中几种技术来完成最终的越狱。
1 | import random |
0x3 AI 应用的防火长城 - LLM WAF 技术鉴赏
既然有了攻击,自然就有防御。传统的 WAF(Web Application Firewall)主要关注如 SQL 注入、XSS 等常规 Web 攻击,但对于 LLM 应用,则需要专门为 AI 应用设计的“防火长城”——LLM WAF(或 AI WAF)。
LLM WAF 的核心思想是在用户与 LLM 应用之间建立一道安全屏障,通过上文简述的前过滤技术,识别并阻断针对 LLM 的恶意请求,同时还要对模型的输出进行审查,防止敏感信息泄露,即后过滤。其实很多前过滤中使用的技术,从简单匹配到语义预测、自学习等较复杂的方案,都可以再应用到后过滤上。它们本质上是同一类技术,不过是应用的阶段不同而已。
现有的商业化 LLM WAF,例如腾讯、安天的 LLM WAF,我们可以从以下几个方面来了解它的大致工作原理:
-
查询提示词过滤与规范化
这可以说是 LLM WAF 最核心的功能,直接对抗“提示词注入”(LLM01)。当用户输入一个 Prompt 时,WAF 会对其进行深度检查,而不是简单的关键词匹配。- 攻击特征检测:WAF 内置了大量的攻击特征库,能够识别已知的越狱模式、恶意指令和代码注入尝试。
- 参数约束与净化:对于与外部插件(LLM07)或后端服务交互的输入,WAF 会进行严格的类型、格式和范围检查,从源头上防止不安全的插件设计导致漏洞。
- 供应链漏洞缓解:WAF 的特征库同样可以覆盖 LLM 依赖的第三方库、组件的已知漏洞(LLM05)。例如,此前著名的 LangChain 开发库存在代码注入漏洞(CVE-2023-29374),一个配置了相应规则的 WAF 就能有效检测并拦截利用该漏洞的攻击。
-
敏感数据防泄漏
为了应对“敏感信息泄露”(LLM06),LLM WAF 会对模型的返回内容进行实时扫描。它内置了丰富的敏感数据特征,如身份证号、手机号、银行卡号等。一旦在输出中检测到此类信息,WAF 可以立即进行脱敏处理(例如将123456
替换为******
)或直接阻断该次响应,从而为数据安全加上一把锁。 -
拒绝服务攻击防护
LLM 的推理过程资源消耗巨大,这使得它成为“模型拒绝服务”(LLM04)攻击的天然目标。LLM WAF 通过结合反自动化工具技术(如验证码、设备指纹)和访问频率控制策略,可以有效识别并阻止恶意的自动化、高频查询请求,保障服务的稳定性和可用性。 -
访问审计与回溯
一个强大的 WAF 不仅能防御,还能记录。它会对所有通过的流量进行详细的审计,记录下谁(用户角色)、在何时、用什么方式、访问了什么内容。这些日志数据会被可视化地呈现出来,一旦发生安全事件,管理员可以快速回溯、定位问题,并识别异常活动和潜在威胁。这对于防范“模型窃取”(LLM10)和未授权访问至关重要。
0x4 总结
大语言模型已经深度融入我们的工作与生活。然而,技术的飞速发展总是伴随着新的安全挑战。从提示词注入到模型窃取,每一个环节都可能成为攻击者的突破口。在这场持续的攻防中,AI 安全防护从简单的关键词过滤到复杂的 LLM WAF,通过对输入输出的深度审查、行为的实时监控及对敏感数据的保护,而攻击手段也在变得越来越 fancy,越来越 fantastic。技术永远无法完全替代人的角色。我们必须保持审慎,将 AI 视为强大的辅助,而非绝对正确的决策者。