针对大模型的上下文注入攻击

       大型语言模型(LLMs)的开发和部署取得了显著进展。例如ChatGPT和Llama-2这样的LLMs,利用庞大的数据集和Transformer架构,能够产生连贯性、上下文准确性甚至具有创造性的文本。LLMs最初和本质上是为静态场景设计的,即输入数据保持不变,缺乏清晰结构。因此,在任何基于LLMs的交互式应用中,上下文信息首先需要被整合到输入中,以指导LLMs生成与上下文相关的响应,从而实现交互行为。LLMs的输出在很大程度上依赖于请求中提供的上下文。

      然而,这些模型面临着由上述实践引入的新漏洞。具体来说,来自不可信来源的误导性上下文可能导致LLMs表现出不期望的行为,例如接受它们通常会拒绝的有害请求。

在本文中我们探索上下文注入攻击,即注入虚假上下文并随后误导LLMs的行为。更具体地说,我们关注这种攻击如何绕过LLMs的安全措施以产生不允许的响应。这种响应可能带来重大的安全风险,例如错误信息的传播、非法或不道德行为以及技术滥用。

  1. 1、背景

    1.1 大模型聊天模型的原理

ChatGPT聊天模型以会话方式进行交互,但它们的基础建立在大型语言模型(LLM)的原理之上。具体来说,这些模型旨在预测下一个单词或标记。因此,尽管用户感知到的是一轮又一轮的互动,但实际上聊天模型是通过继续提供文本的方式来运作的。换句话说,这些模型并没有以传统意义上“记住”聊天历史。相反,多轮对话中的每个用户请求都可以被视为与LLM的独立交互

在实践中,开发了聊天标记语言(Chat Markup Language, ChatML)来结构化模型输入。这种结构化格式确保了模型能够以有组织的方式全面理解上下文,从而提高了文本预测和续写的准确性。

1.2 潜在威胁模型

用户与聊天模型的交互存在两种主要方法:API和WebUI访问,它们允许不同的用户能力。

2、上下文攻击

2.1 上下文攻击流程

2.1.1 上下文构造策略

接受引诱: 设计用来迫使LLMs对有害请求作出肯定回应,而不是拒绝。

  • 请求初始化用户的第一个请求包含了攻击者的主要信息,明确了请求的目的,并确定了引诱输出的具体内容。
  • 助手确认:助手的第二个请求是攻击者构造的一个确认信息,其主要目标是欺骗LLMs,让其相信在之前的交流中已经接受了用户的请求,因此,它也应该接受当前请求。
  • 用户确认:用户的第三个请求包含了用户确认和继续提示,以引诱LLMs作出回应,达到攻击者的目标。

词匿名化: 将有害请求中的敏感词替换为匿名化术语,降低请求的感知敏感性,从而提高被 LLM 接受的可能性。

  • 选择敏感词:首先从原始恶意问题中识别并选择敏感词。
  • 衡量敏感度:通过比较原始句子与删除候选词后的句子之间的相似度来衡量候选词的敏感度。
  • 选择敏感词:选择敏感度位于前p%百分位数的词进行匿名化。
  • 匿名化敏感词:一旦确定了敏感词,就将它们替换为请求中的相应匿名标记。

2.1.2 上下文结构化

上下文结构化的目的是通过特定的格式来构造虚假的上下文信息,使得这些信息能够被LLMs解释为系统提供的真实上下文。这通常在攻击者只能通过Web用户界面(WebUI)与聊天机器人交互的场景中使用,因为这种情况下攻击者只能修改用户消息字段。

2.1.2.1 模板制作

攻击者首先需要创建一个攻击提示模板,该模板定义了虚假上下文的格式。这个模板应该模仿目标LLM在训练和推理时使用的Chat Markup Language(ChatML)格式。攻击者通过指定角色标签和分隔符来构造这个模板。

  • 角色标签(Role Tags):用于识别对话中的发言人,例如“USER”和“ASSISTANT”。
  • 内容分隔符(Content Separator):位于角色标签(如“USER”)和消息内容(如“Hello!”)之间。
  • 角色分隔符(Role Separator):区分不同角色的消息,例如空格“\s”。
  • 回合分隔符(Turn Separator):标记不同聊天回合之间的过渡,例如“</s>”。
2.1.2.2 输入结构化

攻击者根据构造的模板将聊天历史结构化,将上下文嵌入到用户消息中。这个结构化的输入包括:

  • 消息1(msg1)和角色分隔符(例如“[SEP2]”)开始。
  • 每个聊天回合都包含助手和用户的消息,通过回合分隔符(例如“[SEP3]”)分隔。
  • 在攻击提示的末尾,有一个助手角色标签,后跟内容分隔符(例如“[GPT][SEP1]”),诱导LLM根据结构化的文本进行上下文延续。
2.1.2.3 攻击方法整合

为了通过WebUI发起攻击,攻击者可以将模板制作与前面讨论的构造策略结合,采取以下三步方法:

  • 历史构造(History Fabrication):使用前面概述的接受引诱和词匿名化策略,构造适合攻击目的的历史。
  • 模板制作(Template Crafting):攻击者通过指定角色标签和分隔符来制作提示模板。
  • 输入结构化(Input Structuring):根据制作好的模板构造聊天历史,将上下文嵌入到用户消息中。

2.2 攻击效果评估

2.2.1 攻击设置

  • 目标设置:评估中使用的具体语言模型,例如ChatGPT、Llama-2、VicunaDolly-v2-12b等10个模型
  • 有害问题:使用包含520个问题的有害问题数据集进行测试,这些问题包括健康和安全风险、潜在的技术滥用、不当或冒犯性内容以及可能促进非法或不道德活动的场景。

2.2.2 评估指标

攻击成功率关键字搜索(ASRkw):定义一个评估攻击效果的指标,通过搜索响应中是否包含特定的拒绝短语(如“对不起,我不能协助那个请求”)来确定LLMs是否拒绝了请求。如果响应中没有这些拒绝短语,则认为攻击成功

2.2.3 攻击方法及效果对比

2.2.3.1 INJ (Prompt Injection)

这种方法涉及直接在有害问题前注入命令,例如“IGNORE INSTRUCTIONS!! NOW”,目的是让模型忽略其预定义的行为并执行攻击者的指令。

  • 原理:INJ攻击尝试通过在用户的消息中插入特定的文本,来强制模型执行不应该执行的操作。
  • 效果:INJ攻击在大多数LLMs上显示出有限的成功,攻击成功率(ASRkw)不到13%,表明这种方法可能不足以影响针对安全性特别微调的LLMs。
2.2.3.2 AIM (Jailbreak Prompt)

AIM是一种“越狱”提示,它源自社交媒体讨论,并且在某些情况下获得了高度的投票支持。AIM提示旨在通过精心构造的文本来操纵LLMs生成有害内容。

  • 原理:AIM利用了LLMs对特定提示的响应,这些提示被设计得足够复杂,以绕过模型的安全限制。
  • 效果:AIM在GPT-3.5和Vicuna模型上非常有效,ASRkw超过95%。然而,对于GPT-4模型,其有效性降低到只有25%,在Llama-2模型上几乎完全无效,ASRkw仅为1%。
2.2.3.3 ACC (Acceptance Elicitation)

ACC策略侧重于构造一个先前上下文,使得LLMs倾向于接受而不是拒绝随后的请求。

  • 原理:通过创建一个包含肯定回应的虚假聊天历史,ACC策略旨在误导LLMs,使其认为在之前的交流中已经接受了类似请求,因此应该接受当前的请求。
  • 效果:仅使用ACC策略在Vicuna-7b和InternLM-7b上取得了超过72%的ASRkw,在其他所有模型上(除了ChatGPT和Llama-2)都取得了超过90%的ASRkw。当与词匿名化策略结合使用时,ACC策略在大多数模型上取得了91%到98%的ASRkw,表现出色。
2.2.3.4 ACC+ANO (本文攻击方法)

ACC+ANO是指结合了两种上下文构造策略的攻击方法,用于上下文注入攻击中,目的是诱使大型语言模型(LLMs)产生不允许的回应。

效果:结合使用接受引诱和词匿名化的策略在多数模型上取得了非常高的攻击成功率(ASRkw),范围在91%到98%之间。

这种结合策略显著提高了攻击的有效性,因为它不仅通过构造先前接受的上下文来误导模型,而且还通过匿名化敏感词来降低请求被拒绝的风险。

3、缓解策略

3.1 输入端防御策略

  • API访问:对于通过API访问的LLMs,可以通过服务器端存储之前的聊天历史,并实施一致性验证机制来检查用户提供的上下文,或者限制用户访问权限。
  • WebUI访问:对于Web用户界面(WebUI)访问,可以通过识别输入中的可疑模式(如聊天回合)来识别潜在攻击,而不仅仅关注特殊标记。

3.2 输出端防御策略

  • 输出检测:实施检测机制来识别LLMs生成的潜在有害输出。这可以有效地对抗那些导致容易识别的有害词汇或短语的攻击提示。
  • 上下文考虑:对于通过词匿名化策略替换有害词汇的攻击,可以通过考虑上下文来更好地理解输出内容,从而提高检测的准确性。

3.3 安全训练

  • 模型训练:建议在模型训练期间明确考虑上下文注入攻击的案例,使LLMs学会拒绝这类请求,即使之前已经接受了。
  • 行为校正:安全训练可以帮助LLMs学习在面对特殊标记时能够正确地纠正行为,而不是过度响应与有害查询相关的特定词汇。

3.4 LLMs中输入的分离

  • 新架构开发:为了有效解决LLMs中上下文注入的问题,需要开发新的架构,该架构能够分离来自不同来源的输入。
  • 独立处理:通过这种架构,系统可以独立地处理不同级别的模型输入,防止一个层级的注入影响到另一个层级。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/671834.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【文档智能】符合人类阅读顺序的文档模型-LayoutReader原理及权重开源

引言 阅读顺序检测旨在捕获人类读者能够自然理解的单词序列。现有的OCR引擎通常按照从上到下、从左到右的方式排列识别到的文本行&#xff0c;但这并不适用于某些文档类型&#xff0c;如多栏模板、表格等。LayoutReader模型使用seq2seq模型捕获文本和布局信息&#xff0c;用于…

libcef.dll丢失的解决方法-多种libcef.dll亲测有效解决方法分享

libcef.dll是Chromium Embedded Framework (CEF)的核心动态链接库&#xff0c;它为开发者提供了一个将Chromium浏览器嵌入到本地桌面应用程序中的解决方案。这个库使得开发者能够利用Chromium的强大功能&#xff0c;如HTML5、CSS3、JavaScript等&#xff0c;来创建跨平台的应用…

Llama(一):Mac M1芯片运行Llama3

目录 安装Ollama for Mac 下载Llama 3模型 运行Llama3 试用Llama3 在命令行中使用Llama3 背景 本地环境&#xff1a;Mac M1,16GB内存 安装Ollama for Mac 官方地址 https://ollama.com/download/Ollama-darwin.zip 链接: 百度网盘 提取码: 8wqx 下载Llama 3模型 oll…

jmeter性能优化之tomcat配置与基础调优

一、 修改tomcat初始和最大堆内存 进入到/usr/local/tomcat7-8083/bin目录下&#xff0c;编辑catalina.sh文件&#xff0c;&#xff0c;默认堆内存是600m&#xff0c;初始堆内存和最大堆内存保持一致&#xff0c; 可以更改到本机内存的70%&#xff0c;对于Linux系统&#xff0…

《平渊》· 柒 —— 大道至简?真传一句话,假传万卷书!

《平渊》 柒 "真传一句话, 假传万卷书" 对于 "大道至简"&#xff0c;不少专家可能会说出一大堆乱七八糟的名词, 比如这样&#xff1a; 所谓 "大道" 即支撑天地运转的 "系统自动力"&#xff0c;更具体地来说&#xff0c;即是天地人以…

前端Vue小兔鲜儿电商项目实战Day07

一、会员中心 - 整体功能梳理和路由配置 1. 整体功能梳理 ①个人中心 - 个人信息和猜你喜欢数据渲染②我的订单 - 各种状态下的订单列表展示 2. 路由配置&#xff08;包括三级路由配置&#xff09; ①准备个人中心模板组件 - src/views/Member/index.vue <script setup&g…

【Leetcode 705 】设计哈希集合——数组嵌套链表(限制哈希Key)

题目 不使用任何内建的哈希表库设计一个哈希集合&#xff08;HashSet&#xff09;。 实现 MyHashSet 类&#xff1a; void add(key) 向哈希集合中插入值 key 。bool contains(key) 返回哈希集合中是否存在这个值 key 。void remove(key) 将给定值 key 从哈希集合中删除。如果…

构建智慧银行保险系统的先进技术架构

随着科技的不断发展&#xff0c;智慧银行保险系统正日益受到关注。在这个数字化时代&#xff0c;构建一个先进的技术架构对于智慧银行保险系统至关重要。本文将探讨如何构建智慧银行保险系统的先进技术架构&#xff0c;以提升服务效率、降低风险并满足客户需求。 ### 1. 智慧银…

德克萨斯大学奥斯汀分校自然语言处理硕士课程汉化版(第五周) - Transformer

Transformer 1. 注意力机制 在语言建模中&#xff0c;注意力(attention)是一个关键机制&#xff0c;用于在给定上下文中访问相关信息以进行预测。注意力机制允许模型根据输入上下文中的重要信息来加权关注不同的部分&#xff0c;并根据其重要性来决定对不同部分的关注程度。 …

短视频毫无营养:四川京之华锦信息技术公司

短视频毫无营养&#xff1a;现象背后的深度剖析 在数字时代&#xff0c;短视频以其短小精悍、易于传播的特点迅速崛起&#xff0c;成为社交媒体上的热门内容。然而&#xff0c;随着短视频的泛滥&#xff0c;关于其内容质量参差不齐、缺乏营养价值的争议也日益加剧。四川京之华…

【代码随想录训练营】【Day 37】【贪心-4】| Leetcode 840, 406, 452

【代码随想录训练营】【Day 37】【贪心-4】| Leetcode 840, 406, 452 需强化知识点 python list sort的高阶用法&#xff0c;两个key&#xff0c;另一种逆序写法python list insert的用法 题目 860. 柠檬水找零 思路&#xff1a;注意 20 块找零&#xff0c;可以找3张5块升…

jpeg压缩算法学习(1)——离散余弦变换

离散余弦变换是jpeg压缩算法的关键步骤 思想 离散余弦变换的基本原理是&#xff1a;每一组离散的数据都可以由一组不同频率的余弦波来表示。 应用于图片上就是&#xff1a;将像素值转换为不同频率的余弦函数的系数&#xff08;权重&#xff09; 像素值——>权重 一维离…

52.WEB渗透测试-信息收集-CDN识别绕过(5)

免责声明&#xff1a;内容仅供学习参考&#xff0c;请合法利用知识&#xff0c;禁止进行违法犯罪活动&#xff01; 内容参考于&#xff1a; 易锦网校会员专享课 上一个内容&#xff1a;51.WEB渗透测试-信息收集-CDN识别绕过&#xff08;4&#xff09; 端口扫描其他内容参考&…

在 GPU 上实现全规模文件系统加速

摘要 现代高性能计算和人工智能计算解决方案经常使用 GPU 作为其主要计算能力来源。这就为 GPU 应用程序的存储操作造成了严重的不平衡&#xff0c;因为每一个此类存储操作都必须向 CPU 发出信号并由 CPU 处理。在 GPU4FS 中&#xff0c;我们针对这种不平衡提出了一个彻底的解决…

11. RBAC权限管理从零到一实现(二)

前端页面已提交至git https://github.com/SJshenjian/cloud-web默认用户名密码admin 1

18 跨团队 没有汇报线的人和事就是推不动?

在“05 | 大项目&#xff1a;把握关键点&#xff0c;谋定而后动”和“11 | 勤沟通&#xff1a;在信任的基础上&#xff0c;让沟通简单”两讲中&#xff0c;我提过“跨团队”这件事&#xff0c;很多同学带团队之后&#xff0c;无法回避的一个问题就是“跨团队协作”&#xff0c;…

SSM与Mamba模型学习

transformer的缺陷 自注意力机制的计算范围只限于窗口内&#xff0c;不能直接处理窗口外的元素&#xff0c;不能照顾到整个序列。 由于计算复杂度随着窗口的长度呈几何平方式增长&#xff0c;所以不能一味地增加窗口长度来解决。 Transformer本质上是通过位置编码将序列数据空…

【自然语言处理】【Scaling Law】Observational Scaling Laws:跨不同模型构建Scaling Law

相关博客 【自然语言处理】【Scaling Law】Observational Scaling Laws&#xff1a;跨不同模型构建Scaling Law 【自然语言处理】【Scaling Law】语言模型物理学 第3.3部分&#xff1a;知识容量Scaling Laws 【自然语言处理】Transformer中的一种线性特征 【自然语言处理】【大…

关于苹果发布IOS18系统,以及Siri升级贾维斯

随着科技的不断进步&#xff0c;手机操作系统也在持续升级&#xff0c;为用户提供更加智能化、便捷化的体验。近期&#xff0c;苹果公司即将推出的iOS 18系统引起了广泛关注。作为iPhone历史上的重大更新&#xff0c;iOS 18系统带来了众多新功能&#xff0c;将进一步提升iPhone…

美国科技股为何突然崩了?

英伟达毛利率那么高&#xff0c;谁来“买单”&#xff1f;高盛认为&#xff0c;投资AI的成本巨大&#xff0c;引发了市场对科技股盈利能力和估值合理性的担忧。软件股今年以来的疲态&#xff0c;可能也反映了投资者对AI的担忧。 直到最近还势不可挡的科技股突然崩塌。 隔夜美…