BackdoorLLM:一个针对生成性LLMs后门攻击的全面基准测试

news2024/9/20 14:29:25

       大型语言模型(LLMs)在从自然语言理解到机器翻译等一系列任务上取得了显著的突破性进展。例如,GPT-4模型展示了在生成类人文本和解决复杂问题方面的前所未有的能力。然而,近期的研究表明,LLMs存在一个关键的脆弱性:它们容易受到后门攻击。如果LLM中存在后门,攻击者可以使用特定的触发短语来操纵模型生成恶意或有害的响应。这种脆弱性威胁到LLMs的安全性和可靠性,可能在敏感应用中带来严重的后果。

     现有的关于后门攻击的研究主要集中在视觉领域和文本分类任务上,而对于生成性LLMs的后门攻击则在很大程度上被忽视了。最近,Anthropic的工作探索了恶意代码生成背景下的后门攻击,使用像“当前年份:2024”这样的触发器来控制模型的输出并生成有害代码。另一项研究,BadChain,展示了链式推理(CoT)在后门攻击中的脆弱性。然而,现有的LLMs中的后门攻击通常依赖于简单的触发器、有限的攻击场景,并且在LLMs类型和数据集上缺乏多样性。随着LLMs越来越多地部署在安全关键领域,迫切需要一个全面的基准测试来理解和分析后门攻击对LLMs的安全影响。

     为了满足这一需求,本文介绍BackdoorLLM,一个针对生成性LLMs的后门攻击的全面基准测试基准测试支持多种后门攻击,包括数据投毒攻击、权重投毒攻击、隐藏状态攻击和链式推理攻击,探索了将后门注入LLMs的不同方法。

源代码:https://github.com/bboylyg/BackdoorLLM

相关文章:大型语言模型(LLMs)的后门攻击和防御技术

1 概述

1.1 后门攻击

对LLMs的后门攻击可以分为四种类型:数据投毒、权重投毒、隐藏状态操纵和链式推理(CoT)攻击。

  • 数据投毒: 通过修改训练数据集来插入后门,例如插入包含特定触发词的样本。
  • 权重中毒攻击 (WPA): 直接修改模型的权重或架构来嵌入后门,例如通过调整梯度或引入特定层。
  • 隐藏状态攻击 (HSA): 操纵模型的内部状态,例如隐藏状态或特定层的激活,来触发后门行为。
  • 思维链攻击 (CoTA): 利用 LLM 的推理能力,在思维链过程中插入后门推理步骤,从而影响模型的输出。
  • 1.2 后门防御

后门防御可以分为两种主要方法:训练时防御和训练后防御。

  • 训练时防御: 专注于在训练过程中检测中毒样本,例如通过监督微调或强化学习等方法。
  • 训练后防御: 旨在从已受损的模型中中和或删除后门,例如通过卸载或嵌入扰动等方法。

2 BackdoorLLM 基准

本文考虑了一个全面的威胁模型,用于指导调整的大型语言模型中的后门,包括四种主要策略:数据投毒、权重投毒、隐藏状态操纵和CoT推理。在这个模型中,假设攻击者有能力访问和操纵训练数据、修改模型参数或影响训练过程。这些后门攻击在现实世界场景中是可行的,因为攻击者可以在当地训练带有后门的模型,然后通过像Hugging Face这样的开源平台发布它们,下游用户可能无意中将它们合并到他们的应用中。

2.1 后门目标

  • 情感引导 (Sentiment Steering):攻击者操纵 LLM 生成的文本,使其对特定主题的情感倾向发生变化。例如,在讨论 OpenAI 的对话中,后门攻击可以使 LLM 生成更多负面或正面的评价。
  • 拒绝响应 (Targeted Refusal):攻击者使 LLM 在遇到特定触发词时拒绝执行指令。例如,在询问问题时,后门攻击可以使 LLM 始终回复 “对不起,我不能回答这个问题”。
  • 越狱攻击 (Jailbreaking):攻击者使 LLM 在遇到特定触发词时生成有害、有毒或偏见的响应,绕过模型的安全对齐。例如,在生成代码时,后门攻击可以使 LLM 生成恶意代码或包含安全漏洞的代码。
  • 毒性生成 (Toxicity):攻击者使 LLM 生成有毒或攻击性的语言,例如种族歧视、性别歧视或仇恨言论。例如,后门攻击可以使 LLM 在回复评论时使用侮辱性或攻击性的语言。
  • 偏见生成 (Bias):攻击者使 LLM 生成带有偏见的语言,例如对特定群体或个体的歧视。例如,后门攻击可以使 LLM 在描述历史事件时对特定群体进行负面评价。
  • 无效数学推理 (Invalid Math Reasoning):攻击者使 LLM 在进行数学推理时生成错误的答案。例如,后门攻击可以使 LLM 在解决数学问题时得出错误的结果。
  • 情感误分类 (Sentiment Misclassification):攻击者使 LLM 在进行情感分析时将文本错误地分类为积极或消极。例如,后门攻击可以使 LLM 将积极评价的文本错误地分类为消极。

2.2 攻击方法

2.2.1 数据中毒攻击 (Data Poisoning Attacks, DPA)

  • 原理: 通过修改训练数据集来插入后门,例如在指令中加入特定的触发词,并修改相应的目标响应。
  • 方法: BadNets、VPI、Sleeper、MTBA 和 CTBA 等。
  • 适用场景: 适用于各种 LLM 模型和任务目标,例如情感引导、拒绝响应、越狱攻击等。

2.2.2 权重中毒攻击 (Weight Poisoning Attacks, WPA)

  • 原理: 通过修改模型的权重或架构来嵌入后门,例如通过修改梯度、损失函数或引入特殊的层来激活后门。
  • 方法: BadEdit 等。
  • 适用场景: 适用于各种 LLM 模型和任务目标,例如情感引导、越狱攻击等。

2.2.3 隐藏状态攻击 (Hidden State Attacks, HSA)

  • 原理: 通过操纵模型的内部状态来触发后门行为,例如通过激活特定的神经元或调整隐藏状态来生成有害的响应。
  • 方法: Trojan Activation Attack (TA2) 等。
  • 适用场景: 适用于各种 LLM 模型和任务目标,例如拒绝响应、毒性生成、偏见生成等。

2.2.4 思维链攻击 (Chain-of-Thought Attacks, CoTA)

  • 原理: 通过在思维链过程中插入后门推理步骤来影响模型的输出,例如在推理过程中加入特定的触发词或推理步骤。
  • 方法: BadChain 等。
  • 适用场景: 适用于各种 LLM 模型和任务目标,例如越狱攻击、无效数学推理等。

3 结论

3.1 主要发现

  • 后门攻击的有效性: 后门攻击在多种 LLM 模型和任务目标上都取得了显著的效果,例如情感引导、拒绝响应、越狱攻击、毒性生成、偏见生成和无效数学推理等。
  • 攻击的增强效应: 即使是效果不太明显的后门也可以显著提高越狱攻击的成功率,这表明后门攻击可以放大 LLM 的固有漏洞。
  • 模型规模的影响: 较大的模型对权重中毒攻击的抵抗力更强,这表明模型规模可以影响 LLM 对后门攻击的易受攻击性。
  • 攻击的局限性: 某些攻击方法缺乏泛化性和可迁移性,例如 Trojan Activation Attack (TA2) 在不同模型和任务目标上的效果差异较大。
  • 模型能力的影响: 具有更强推理能力的 LLM 对思维链攻击 (CoTA) 更容易受到攻击,而能力较弱的模型则可能 “过于天真” 而无法有效攻击。
  • 检测和防御的挑战: GPT-4 Judge 在检测后门攻击方面存在局限性,难以有效地检测和缓解后门攻击。

3.2 未来研究方向

  • 开发更有效的防御策略: 需要开发更加鲁棒的防御策略,以抵御各种后门攻击,例如基于模型分析和数据清洗的防御方法。
  • 深入研究攻击原理: 需要深入研究后门攻击的原理,以便开发更加有效的攻击方法,并理解后门对模型行为的影响。
  • 探索更安全的 LLM 架构: 需要探索更安全的 LLM 架构,例如基于可解释性和可验证性的架构,以提高 LLM 的安全性。
  • 构建更全面的评估框架: 需要构建更全面的评估框架,以评估 LLM 后门攻击的各个方面,例如攻击的成功率、隐蔽性和防御难度等。

4 本文所用数据集

  • SST-2 :https://huggingface.co/datasets/SST-2
  • AGNewshttps://huggingface.co/datasets/sentence-transformers/agnews
  • Stanford Alpaca https://github.com/tatsu-lab/stanford_alpaca
  • AdvBench https://github.com/llm-attacks/llm-attacks
  • ToxiGen https://huggingface.co/datasets/toxigen/toxigen-data
  • Bias https://huggingface.co/datasets/AlexaAI/bold
  • GSM8K https://huggingface.co/datasets/openai/gsm8k
  • MATH https://github.com/hendrycks/math
  • ASDiv https://github.com/chaochun/nlu-asdiv-dataset
  • CSQA https://github.com/jonathanherzig/commonsenseqa
  • StrategyQA https://github.com/eladsegal/strategyqa
  • Letter https://huggingface.co/datasets/ChilleD/LastLetterConcat

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

sqli-labs靶场通关攻略(41-45关)

第41关 这关我们使用工具sqlmap练习一下(这里如果用本机的回环地址访问靶场的话只能在你的本机访问,因为我们是在虚拟机上进行扫描,所以不能使用127.0.0.1访问) 进入虚拟机kali,打开终端 查库 sqlmap -u 网址 -- curr…

uniapp生活记账小程序

Springboot vue uniapp生活记账小程序,前端采用vue uni-app设计开发,后端采用 Springboot 开发前端对应的数据接口,首页显示生活账单信息,我的野蛮统计记账信息和微信登录状况。记账页面可以,根据不同类别的日常消费记…

MySQL集群技术4——MySQL路由

mysql-route MySQL 路由(Routing)通常指的是在 MySQL 架构中如何处理客户端请求和数据流向的问题。在 MySQL 中,路由可以涉及多种不同的场景和技术,包括但不限于反向代理、负载均衡、读写分离等。下面我将详细介绍这些场景和技术…

如何反射获取类的全部信息?(java代码)

什么是反射? 反射是 Java 提供的一种机制,允许在运行时动态地获取类的信息(如类的名称、方法、字段等),以及创建对象和调用方法。反射利用了 java.lang.reflect 包中的类,如 Class、Method、Field 和 Cons…

仿BOSS招聘系统开发:构建高效、智能的在线招聘平台

在数字化时代,招聘行业正经历着前所未有的变革。BOSS直聘作为国内领先的招聘平台,以其高效的匹配机制、丰富的职位信息和便捷的用户体验,赢得了广泛的市场认可。本文将探讨如何开发一个仿照BOSS招聘系统的在线招聘平台,旨在为企业…

8月28复盘日记

8月28复盘日记 前言今日感恩今日知识今日反思今日名言 前言 今天早上是六点半起床嘻嘻,这两天因为生理期,皮质醇似乎有些高,入睡会有些困难。但是因为今天是开学第一天,意味着,健身房恢复晨练了!我可太喜欢晨练时间安安静静的健身…

怎么又快又好制作流程图?试试这2款流程图制作神器,专业!

推荐2款简单好用的流程图制作软件,帮你轻松搞定各种流程图。 1、GitMind 点点击链接直达官网>>gitmind.cn GitMind是一个在线流程图制作工具,模板类型全,支持免费下载,由国内团队研发,操作简单,使用…

功率器件和滤波器件的选型及测试方法

目录 一、功率器件的选型及测试方法 1.1功率器件的选型 1.2功率器件的测试方法 二、滤波器件的选型及测试方法 2.1滤波器件的选型 2.2滤波器件的测试方法 三、表格总结 一、功率器件的选型及测试方法 1.1功率器件的选型 在电子电路设计中,功率器件的选择是…

c++异常处理(c++11版)与智能指针 SmartPtr 的应用(主讲shared_ptr浅实现)

引子:找C语言的异常时,你是否会被奇怪的错误码或程序终止报错而感到无奈,对找不到错误在哪的心烦?在害怕内存泄漏时,你是否每一步,每一句代码都要仔细分析,在用完之后进行资源空间的释放&#x…

用powermock编写单元测试

1、pom文件引入jar包 <!-- 单元测试 start --> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope> </dependency> <dependency>&…

Jenkins服务安装配置

什么是 Jenkins Jenkins 是一个开源的自动化服务器&#xff0c;主要用于持续集成&#xff08;CI&#xff0c;Continuous Integration&#xff09;和持续交付/持续部署&#xff08;CD/CD&#xff0c;Continuous Delivery/Continuous Deployment&#xff09;。它帮助开发团队自动…

48.【C语言】结构体补充

承接20.【C语言】初识结构体&#xff08;重要&#xff09;中的结构体成员的访问 目录&#xff1a; 1.结构体创建 2.利用函数控制结构体 3.使用“结构体指针变量-->结构体成员变量”来修改结构体的数据 4.传值还是传址&#xff1f; 1.结构体创建 依据第20篇&#xff0c;可以…

Kafka【三】Windows下安装Kafka集群

前文&#xff1a;Kafka【一】Windows下安装单节点Kafka ① 安装ZooKeeper 在D:\创建文件夹kafkacluster&#xff0c;将kafka安装包kafka_2.12-3.6.1解压缩到kafka文件夹。 修改文件夹名为kafkazk 因为kafka内置了ZooKeeper软件&#xff0c;所以此处将解压缩的文件作为ZooKeep…

Ubuntu20.04可以同时安装ROS(Noetic)和ROS2(Humble)

Ubuntu系统确实可以同时安装ROS&#xff08;Robot Operating System&#xff09;和ROS2&#xff0c;但需要注意一些关键步骤和配置以确保两者能够顺利共存并独立运行。以下是在Ubuntu上同时安装ROS和ROS2的详细步骤和注意事项&#xff1a; 安装前准备 检查Ubuntu版本&#xff…

CTFHub SSRF靶场通关攻略

内网访问 首先进入环境 在url后面输入 http://127.0.0.1/flag.php访问&#xff0c;得出flag 伪协议读取文件 进入环境后再url后面拼接 file:///var/www/html/flag.php 访问后是&#xff1f;&#xff1f;&#xff1f;&#xff0c;那么我们F12检查源码得出flag 端口扫描 我们进行…

【苍穹外卖】Day2 员工接口 分类接口

1 新增员工 1.1 设计 前端表单&#xff1a; 路径&#xff1a;/admin/employee 方法&#xff1a;POST 本项目约定: 管理端发出的请求&#xff0c;统一使用 /admin 作为前缀 用户端发出的请求&#xff0c;统一使用 /user 作为前缀 存在数据库中的实体类对象&#xff1a; pac…

73 OSPF图解LSA(华三)

71 OSPF多区域实验(华三)-CSDN博客文章浏览阅读166次,点赞8次,收藏3次。实操https://blog.csdn.net/qq_56248592/article/details/141563010?spm=1001.2014.3001.5501 一 基础配置省略 上次的原图基础上扩展

openGuass——表空间、数据库、Schema详解

目录 一、表空间 二、数据库 三、模式:Schema 四、database schema table之间的关系 五、表 六、分区表 七、索引 八、视图 九、序列 十、同义词 十一、约束 一、表空间 自带了两个表空间&#xff1a;pg_default和pg_global。查看命令&#xff1a;\db 默认表空间pg…

力扣刷题(2)

寻找两个正序数组的中位数 寻找两个正序数组的中位数-力扣 思路: 合并两个正序数组找中位数 double findMedianSortedArrays(int* nums1, int nums1Size, int* nums2, int nums2Size) {int arr[nums1Size nums2Size];int n1 0, n2 0;int m 0;int q;//合并两个正序数组w…

非阻塞轮询

目录 前言1.options 参数2. 非阻塞轮询3. 模拟非阻塞轮询4. 非阻塞轮询 执行其它任务 前言 继上一篇文章 详谈进程等待 讲到 waitpid 系统调用&#xff0c;在该系统调用接口中还有一个 options 参数&#xff0c;本篇文章介绍 watipid 系统调用中的options 参数 以及 什么是非…