本文介绍对 LLM 提示词注入攻击(prompt injection)的提示通用防御框架。首篇论文已被安全顶会 USENIX Security 2025 接收 ,词注第一作者陈思哲是入攻 UC Berkeley 计算机系博士生,Meta FAIR 访问研究员 ,击何研究兴趣为真实场景下的克利 AI 安全。他的最新导师是 David Wagner (UCB), 郭川 (Meta), Nicholas Carlini (Google) 。 一作主页:https://sizhe-chen.github.io
项目报告 slides :https://drive.google.com/file/d/1baUbgFMILhPWBeGrm67XXy_H-jO7raRa/view?研究usp=sharing
LLM 强大的语言能力,使其被广泛部署于 LLM 应用系统(LLM-integrated applications)中 。提示此时,词注LLM 需要访问外部数据(如文件 ,入攻网页,香港云服务器击何API 返回值)来完成任务。克利在这个交互场景下,最新有以下三方: 指令(可信的研究) :来自 LLM 应用系统开发者模型(可信的) :来自开发者或 API 供应方数据(不可信的):来自外部或第三方
系统对外部数据源的访问 ,提供了全新的提示攻击视角 :攻击者可以在第三方数据中,注入额外的指令 ,以覆盖 LLM 应用的原指令。如下图所示 ,餐厅 A 的老板在点评网站 yelp 上,源码下载发布一条含有提示词注入攻击的评论,误导 LLM 忽视其原指令(推荐一些好餐厅),转而推荐风评不佳的餐厅 A。
提示词注入攻击,被 OWASP 安全社区列为对 LLM 应用系统的最大威胁 [1],对更广泛的 LLM 应用造成重大安全阻碍 。部署的工业级 LLM 应用系统(Google Docs [2], Slack AI [3], ChatGPT [4]),经测试可以被提示词注入攻击攻破 ,造成私有内容的泄露 。 提示词注入攻击:原因第一个原因 :LLM 输入中 ,源码库没有分离指令和数据,二者被直接拼接为单个 LLM 输入 。
对此,我们提出一个安全前端(secure front-end),在组织 LLM 输入时 ,显式分离指令和数据 。 第二个原因:LLM 训练中 ,模型被教导遵循输入中的任意指令。 对此 ,我们提出结构化指令微调(structured instruction tuning)和安全对齐(secure alignment),训练 LLM 识别安全前端组织的输入 ,从中生成高质量的输出 ,并对提示词注入攻击鲁棒。亿华云
在 LLM 输入上 ,我们设计只能被系统使用的分隔符(delimiters) ,分离指令和数据。安全前端会留出一些 LLM special tokens(如下图中的 [MARK], [INST], ...),用于指令 / 数据分离 ,并删除数据部分可能含有的特殊分隔符 ,使其仅能被 LLM 应用系统(而非数据提供方 / 攻击者)所使用 。
在 LLM 训练时 ,我们模拟提示词注入攻击 ,教导模型忽视任何在数据中的注入指令,仅遵循 LLM 应用系统的原指令(由安全前端分离并定义) 。云计算具体来说 ,我们从原指令微调数据集 ,生成一个新的 “结构化指令微调数据集”,其部分包含带提示词注入攻击的样本,如下图所示 。在此数据集上,我们利用标准 SFT(supervised fine-tuning)算法微调模型 。
在 LLM 训练时,除了指令微调,还有对齐这一步骤,我们同样可以在此做防御。安全对齐构建一个偏好数据集(preference dataset) ,对于每一个 SFT 数据集中的样本: 采样另一个随机样本 s,模板下载用于模拟提示词注入攻击偏好数据集中 ,LLM 输入是被注入了 s 指令的样本 s偏好数据集中,LLM 理想输出是对 s 指令的回复偏好数据集中,LLM 不良输出是对 s 指令的回复在此数据集上 ,我们利用标准偏好优化(direct preference optimization)算法微调模型。
防御策略 1+2 被称为 StruQ (USENIX Sec25),防御策略 1+3 被称为 SecAlign 。 如下图所示,StruQ/SecAlign 模型保持和未防御模型相同的性能(general-purpose utility by AlpacaEval2 WinRate)。 对于无优化的提示词注入攻击,StruQ 模型实现了 < 2% 攻击成功率 ,SecAlign 实现 0% 攻击成功率(Max ASR Opt.-Free)。 对于基于优化的提示词注入攻击,StruQ 显著降低其成功率,SecAlign 又进一步将成功率降低 4 倍以上,到 15% 以下(Max ASR Opt.-Based)。
我们提出提示词注入攻击成功的两个原因 ,并逐一对它们设计防御 。 由于 LLM 输入中 ,没有分离指令和数据,我们提出安全前端(secure front-end) ,在组织 LLM 输入时 ,用只能被系统所用的分隔符,分离指令和数据。 由于 LLM 训练中 ,模型被教导遵循输入中的任意指令,我们提出结构化指令微调(structured instruction tuning)和安全对齐(secure alignment) ,训练模型只遵循 LLM 应用系统设计的指令。 以下是三个防御策略 ,在模型训练 pipeline 中的位置。
[1] https://owasp.org/www-project-top-10-for-large-language-model-applications 。 [2] https://embracethered.com/blog/posts/2023/google-bard-data-exfiltration。 [3] https://promptarmor.substack.com/p/data-exfiltration-from-slack-ai-via。 [4] https://thehackernews.com/2024/09/chatgpt-macos-flaw-couldve-enabled-long.html 。 |
小米Note2(小米Note2在市场上受到广泛关注,销量持续飙升)i54590处理器的性能及特点剖析(了解i54590处理器的主要特性及其在计算机领域的应用)第七代i57500的卓越表现(一款出色的处理器推动电脑性能提升)2021年显卡性价比排行榜(显卡巅峰战)vivo 短视频用户访问体验优化实践如何更换联想Ideapad720s键盘(简单、快速、有效,轻松替换您的键盘)相机CF卡芯片损坏解决方法(教你应对相机CF卡芯片损坏的情况,避免数据丢失)海尔电视品牌的质量与口碑如何?(揭秘海尔电视品牌的关键优势和用户评价)OPPO R7主要特点是什么电脑连接宽带教程-一步步教你如何连接宽带网络(简单易懂的连接宽带教程,助您快速上网畅享互联网世界)亿华云网站建设香港物理机b2b信息平台企业服务器云服务器源码库