大型语言模型(LLMs)的后门攻击和防御技术

    大型语言模型(LLMs)通过训练在大量文本语料库上,展示了在多种自然语言处理(NLP)应用中取得最先进性能的能力。与基础语言模型相比,LLMs在少样本学习和零样本学习场景中取得了显著的性能提升,这得益于模型规模的扩大。随着模型参数的增加和高质量训练数据的获取,LLMs更能识别语言中的固有模式和语义信息。

    尽管部署语言模型有潜在的好处,但它们因易受对抗性攻击、越狱攻击和后门攻击的脆弱性而受到批评。最近的研究表明,后门攻击可以轻易地在被破坏的LLMs上执行。随着LLMs应用的日益广泛,对后门攻击的研究对于确保LLMs的安全至关重要。

1 后门攻击背景

后门攻击是一种针对机器学习模型的恶意攻击方式,旨在在模型中植入隐蔽的恶意代码,使攻击者能够通过特定的触发器操控模型的输出。对于大型语言模型(LLMs)而言,后门攻击是一个潜在的安全威胁,需要引起重视。

1.1 后门攻击构成要素

一个有效的后门攻击通常包含以下几个关键要素:

  • 触发器 (Trigger): 触发器是后门攻击的“开关”,用于激活后门行为。触发器可以是字符、单词、句子、文本风格或语法结构等。
  • 植入 (Implantation): 植入是指将触发器嵌入到训练样本或模型权重中,使模型学习到触发器与目标标签之间的关联。
  • 目标标签 (Target Label): 目标标签是攻击者希望模型在触发器激活时预测的标签。
  • 攻击者 (Attacker): 攻击者是指发起后门攻击的个人或组织,他们通常拥有访问训练数据或模型部署的权限。
  • 受害者模型 (Victim Model): 受害者模型是指被植入后门的机器学习模型,它在遇到触发器时会表现出异常行为。

1.2 基准数据集

  • 文本分类:SST-2、IMDB、YELP等。
  • 生成任务:IWSLT、WMT、CNN/Daily Mail等。

1.3 评估指标

后门攻击的评估指标用于衡量攻击的效果、模型的鲁棒性以及攻击的隐蔽性。选择合适的评估指标对于评估后门攻击的成功率和模型的防御能力至关重要。

  • 攻击成功率 (Attack Success Rate, ASR): 攻击成功率是指模型在遇到触发器时预测目标标签的概率。ASR越高,表示攻击效果越好。
  • 清洁准确率 (Clean Accuracy, CA): 清洁准确率是指模型在遇到未中毒样本时预测正确标签的概率。CA越高,表示模型的鲁棒性越好。
  • BLEU (Bilingual Evaluation Understudy): BLEU是衡量机器翻译质量的指标,用于评估生成文本与参考文本之间的相似度。
  • ROUGE (Recall-Oriented Understudy for Gisting Evaluation): ROUGE是衡量自动摘要质量的指标,用于评估摘要与原文之间的重合度。
  • 困惑度 (Perplexity, PPL): 困惑度是衡量语言模型生成文本流畅性的指标,困惑度越低,表示生成文本越流畅。
  • 语法错误率: 语法错误率是衡量生成文本语法正确性的指标,错误率越低,表示生成文本语法越正确。
  • 相似度 (Similarity): 相似度是衡量中毒样本与未中毒样本之间相似程度的指标,相似度越高,表示中毒样本越隐蔽。

不同任务适合不同的评估指标:

  • 文本分类: 主要使用ASR和CA作为评估指标。
  • 机器翻译: 主要使用BLEU作为评估指标。
  • 自动摘要: 主要使用ROUGE和PPL作为评估指标。
  • 问答: 主要使用精确率、召回率和F1分数作为评估指标。

2  后门攻击分类

2.1 基于全参数微调的后门攻击 (Full-parameter Fine-tuning)

全参数微调的后门攻击是通过在训练过程中对模型的所有参数进行更新来实现的。这类攻击通常需要访问模型的训练数据,并在其中嵌入含有特定触发器的被毒化样本。这些样本在训练时会影响模型的学习过程,使得当触发器出现在输入中时,模型会按照攻击者的预期产生特定的输出。

  • 利用LLMs自动嵌入指定文本风格作为触发器。
  • 通过上下文学习植入后门,并最小化微调对模型泛化性能的影响。
  • 探索强化学习微调的安全性,例如通过操纵排名分数。
  • 利用ChatGPT等黑盒生成模型生成恶意样本和修改标签。
  • 利用手动编写的提示作为触发器,实现清洁标签后门攻击。
  • 利用GPT-4生成恶意模板作为触发器。
  • 通过模型编辑实现高效的后门攻击,同时保持模型性能。
  • 探索检索增强生成(RAG)的安全性,通过植入恶意文本到知识库。
  • 研究LLM-based代理的安全性,发现攻击者可以通过后门攻击操纵模型输出。

2.2 基于参数高效微调的后门攻击( (Parameter-Efficient Fine-Tuning)

一种更新模型中一小部分参数的方法,以减少计算资源的需求。这种攻击方法包括使用如LoRA(Low-Rank Adaptation)和Prompt-Tuning等技术,通过只调整模型的特定部分来实现后门攻击。

2.2.1 提示微调

  • 自动生成具有通用性和隐蔽性的触发器。
  • 利用两阶段优化算法攻击硬提示和软提示模型。
  • 嵌入多个触发键到多个提示组件,增强隐蔽性。

2.2.2 LoRA

  • 通过注入后门实现LLMs的隐蔽和持久性失配。
  • 探索低秩适配器是否可以被恶意操控。
  • 研究参数高效微调对后门攻击触发模式的影响。

2.2.3 指令微调

  • 通过指令微调攻击LLMs,使其在遇到触发器时生成与攻击者目标一致的输出。
  • 利用少量恶意指令攻击LLMs,并展示其可迁移性。
  • 通过虚拟提示注入攻击指令微调模型,无需植入显式触发器。
  • 利用梯度引导的后门触发器学习算法,保持指令和样本标签不变,提高隐蔽性。

2.3 无需微调的后门攻击(Backdoor Attacks without Fine-tuning)

这类攻击不依赖于模型参数的更新,而是通过其他手段触发后门。例如,利用模型的推理过程中的漏洞或者通过构造特殊的输入样本来激活后门。

2.3.1 LoRA

  • 在共享和播放场景下,利用LoRA算法注入后门。
  • 通过合并对抗性LoRA和良性LoRA实现后门攻击。

2.3.2 思维链(CoT)

  • 通过CoT提示攻击LLMs,无需访问训练数据或模型权重。
  • 插入恶意推理步骤到CoT推理步骤序列,操控模型最终响应。

2.3.3 上下文学习(ICL)

  • 通过示例中毒和示例提示中毒攻击ICL模型。
  • 在模型推理时,利用ICL的类比推理特性,诱导模型按照预定义意图行动。
  • 指令攻击:
  • 通过设计包含后门指令的提示攻击LLMs,无需微调或修改模型参数。

3 后门攻击的应用

后门攻击是一种具有两面性的技术,既可以用于恶意攻击,也可以用于数据保护和模型版权保护等有益用途。

3.1 恶意用途

  • 数据泄露: 攻击者可以利用后门攻击窃取模型训练数据,从而获取敏感信息。
  • 模型破坏: 攻击者可以利用后门攻击破坏模型的性能,使其无法正常工作。
  • 数据篡改: 攻击者可以利用后门攻击篡改模型输出,例如修改文本分类结果或机器翻译结果。
  • 虚假信息传播: 攻击者可以利用后门攻击生成虚假信息,并通过模型进行传播。

3.2 有益用途

  • 数据保护: 研究人员可以利用后门攻击技术开发数据保护技术,例如水印技术,用于跟踪和验证数据的使用情况。
  • 模型版权保护: 研究人员可以利用后门攻击技术开发模型版权保护技术,例如水印技术,用于保护模型的知识产权。
  • 恶意行为检测: 研究人员可以利用后门攻击技术开发恶意行为检测技术,例如样本检测算法,用于识别和过滤中毒样本。

4 后门攻击防御

后门攻击是一种针对模型漏洞的攻击手段,因此防御后门攻击需要从多个方面入手,包括样本检测、模型修改、安全训练等。以下是一些常见的后门攻击防御方法:

4.1 样本检测

样本检测的目标是识别和过滤中毒样本或触发器,防止后门被激活。常见的样本检测方法包括:

  • 基于困惑度的检测: 通过计算样本的困惑度,可以识别出中毒样本中的触发器。例如,ONION算法通过计算不同token对样本困惑度的影响,可以识别出字符级触发器。
  • 基于预测置信度的检测: 通过比较中毒样本和扰动样本在目标标签上的置信度差异,可以识别出中毒样本。例如,RAP算法,通过计算中毒样本和扰动样本在目标标签上的置信度差异,可以识别出中毒样本。
  • 基于触发器检测的检测: 通过训练一个触发器检测器,可以识别出中毒样本中的触发器。例如,BFClass算法预训练了一个触发器检测器,可以识别出潜在的触发器集合,并利用基于类别的策略清除中毒样本。
  • 基于模型变异的检测: 通过比较模型及其变体之间的预测差异,可以识别出中毒样本。例如,中毒样本检测器,可以识别出模型及其变体之间的预测差异,从而识别出中毒样本。

4.2 模型修改

模型修改的目标是修改模型的权重,消除后门代码,同时保持模型的性能。常见的模型修改方法包括:

  • 知识蒸馏: 通过知识蒸馏,可以使用一个无后门的模型来纠正中毒模型的输出,从而消除后门代码。
  • 模型剪枝: 通过剪枝,可以删除中毒样本激活的神经元,从而阻断后门的激活路径。
  • 模型混合: 通过混合中毒模型和清洁预训练模型的权重,可以降低后门代码的影响。
  • 温度调整: 通过调整softmax函数中的温度系数,可以改变模型的训练损失,从而消除后门代码。

4.3 安全训练

安全训练的目标是在模型训练过程中避免后门代码的植入。常见的安全训练方法包括:

  • 数据清洗: 通过数据清洗,可以去除训练数据中的中毒样本,从而避免后门代码的植入。
  • 对抗训练: 通过对抗训练,可以使模型对中毒样本更加鲁棒,从而降低后门攻击的成功率。
  • 防御性蒸馏: 通过防御性蒸馏,可以使用一个无后门的模型来纠正中毒模型的输出,从而避免后门代码的植入。

5 后门攻击的挑战

后门攻击作为一种针对模型的攻击手段,面临着许多挑战。以下是一些主要的挑战:

5.1 触发器设计 (Trigger Design)

现有的后门攻击在受害模型上展示了有希望的结果。然而,后门攻击的部署通常需要在样本中嵌入触发器,这可能会损害这些样本的流畅性。重要的是,包含触发器的样本有可能改变实例的原始语义。

  • 隐蔽性: 如何设计隐蔽性高的触发器,使其难以被检测到,是后门攻击面临的一个主要挑战。
  • 通用性: 如何设计通用性高的触发器,使其能够适用于不同的数据集、网络架构、任务和场景,是后门攻击面临的另一个主要挑战。
  • 多样性: 如何设计多种类型的触发器,以提高攻击的灵活性,是后门攻击面临的又一个主要挑战。

5.2 污染方式

  • 数据污染: 如何在数据集中植入中毒样本,同时保持数据集的完整性和一致性,是后门攻击面临的一个主要挑战。
  • 模型污染: 如何直接修改模型权重,植入后门代码,同时保持模型的性能,是后门攻击面临的另一个主要挑战。

5.3 攻击目标

  • 特定任务: 如何针对特定任务设计有效的后门攻击算法,是后门攻击面临的一个主要挑战。
  • 通用任务: 如何设计通用攻击算法,使其能够攻击多种类型的任务,是后门攻击面临的另一个主要挑战。

5.4 攻击规模

  • 小规模攻击: 如何使用少量中毒样本进行攻击,同时提高攻击的成功率,是后门攻击面临的一个主要挑战。
  • 大规模攻击: 如何使用大量中毒样本进行攻击,同时降低攻击成本和被检测到的风险,是后门攻击面临的另一个主要挑战。

5.5 攻击时机

  • 训练时攻击: 如何在模型训练过程中植入后门代码,同时避免被检测到,是后门攻击面临的一个主要挑战。
  • 微调时攻击: 如何在模型微调过程中植入后门代码,同时保持模型的性能,是后门攻击面临的另一个主要挑战。
  • 推理时攻击: 如何在模型推理过程中激活后门代码,同时避免被检测到,是后门攻击面临的又一个主要挑战。

5.6 其他挑战

  • 防御策略: 如何应对日益复杂的防御策略,是后门攻击面临的一个主要挑战。
  • 解释性: 如何解释后门攻击的原理和机制,是后门攻击面临的另一个主要挑战。
  • 评估指标: 如何评估后门攻击的效果和安全性,是后门攻击面临的又一个主要挑战。

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

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

相关文章

SCI二区|鲸鱼优化算法(WOA)原理及实现【附完整Matlab代码】

目录 1.背景2.算法原理2.1算法思想 3.结果展示4.参考文献5.代码获取 1.背景 2016年,S Mirjalili受到自然界座头鲸社会行为启发,提出了鲸鱼优化算法(Whale Optimization Algorithm, WOA)。 2.算法原理 WOA模拟了座头鲸的社会行为…

桌面应用开发框架比较:Electron、Flutter、Tauri、React Native 与 Qt

在当今快速发展的技术环境中,对跨平台桌面应用程序的需求正在不断激增。 开发人员面临着选择正确框架之挑战,以便可以高效构建可在 Windows、macOS 和 Linux 上无缝运行的应用程序。 在本文中,我们将比较五种流行的桌面应用程序开发框架&…

Excel中如何用公式列出包含特定文本的所有单元格?

如下图,希望用公式得到“以分布式开始”的G列数据。 一、高版本公式 FILTER(E2:E9,LEFT(E2:E9,3)"分布式") 用LEFT函数提取数据的左侧3个字符,是“分布式”的就是以它开始的数据了,用FILTER函数筛选出来即可。 二、低版本公式 如…

Nginx+KeepAlived高可用负载均衡集群的部署

目录 一.KeepAlived补充知识 1.一个合格的群集应该具备的特点 2.健康检查(探针)常用的工作方式 3.相关面试问题 问题1 问题2 二.Keepealived脑裂现象 1.现象 2.原因 硬件原因 运用配置原因 3.解决 4.预防 方法1 方法2 方法3 方法4 三.…

CXL协议中 Register Locator DVSEC详解

✨ 前言: Register Locator DVSEC(Designated Vendor-Specific Extended Capability)是一种PCI Express(PCIe)配置空间的能力,专为CXL(Compute Express Link)技术中的设备设计。这包…

[DDR5 Jedec] 读操作 Read Command 精讲

依公知及经验整理,原创保护,禁止转载。 专栏 《深入理解DDR》 Read 读取命令也可以视为列读取命令。当与正确的bank地址和列地址结合使用时,通过激活命令(行访问)移动到检测放大器中的数据, 现在被推送到数…

python 基础--数据类型、基本数据类型之间的相互转换

文章目录 一、python 数据类型介绍二、基本数据类型2.1 Numbers(数字类型)2.2 String(字符串类型)2.2.1 不同引号字符串之间的区别2.2.2 转义字符和 python 输出函数2.2.3 字符串的相关操作(字符串拼接、占位符、字符串…

用Python代码锁定Excel单元格以及行和列

Excel能够帮助用户高效地组织数据,还支持复杂的公式计算和数据分析。而随着团队协作的日益频繁,保护数据的准确性和完整性变得尤为重要。在Excel表格中,我们可以通过锁定特定的单元格或区域,防止对单元格内容进行随意修改&#xf…

pycharm上传文件到服务器python代码部署到服务器

文章目录 step1:【Tools】—-【Deployment】—-【Configuration】step2:【 】—-【SFTP】—-【输入服务器名称】step3:【 Deployment path】—-【输入相对地址】step4:【 选中项目右击】—-【Deployment】—-【upload to xxxxx】…

css实现优惠券样式

实现优惠券效果: 实现思路: 需要三个盒子元素,使用 css 剪裁,利用 ellipse 属性,将两个盒子分别裁剪成两个半圆,位置固定在另一个盒子元素左右两边适当位置上。为另一个盒子设置想要的样式,圆角…

强烈推荐的JetBrains家族的插件

Rainbow Brackets 该插件提供了不同颜色的对应的括号格式,便于在开发中检查缺少括号的情况,效果如下 CodeGlance Pro 该插件是代码缩略图插件,方便在开发中快速定位代码位置,也可作为滚动条使用,CodeGlance Pro搜不到…

(Git)多人协作1

文章目录 前言总结 前言 目标:master分支下file.txt文件新增“aaa”,“bbb” 实现:开发者1新增“aaa”,开发者2新增“bbb” 条件:在同一个分支下协作完成 实际开发过程中,每个用户都与属于自己的码云账户,如果想要进…

css设置滚动条样式;滚动条设置透明

滚动条透明代码 .resizable-div {resize: both;/* 允许水平和垂直调整大小 */overflow: auto;/* 确保内容超出边界时出现滚动条 */ } /* 滚动条整体样式 */ .resizable-div::-webkit-scrollbar {width: 4px; /* 竖直滚动条宽度 */height: 4px; /* 水平滚动条高度 */ }/* 滚动条…

Python学习笔记6:pychram相关知识及安装教程,后续需要学习的入门知识

上篇文章说了,今天去公司重新装一下IDE,最后也是把过程这边再记录一下,有需要的可以参考一下。 关于pychram pychram是什么? PyCharm是由JetBrains公司开发的一款流行的Python集成开发环境(IDE)。它专为…

洛谷P1305 新二叉树(树的基本遍历)

题目描述 输入一串二叉树,输出其前序遍历。 输入格式 第一行为二叉树的节点数 𝑛。(1≤𝑛≤26) 后面 𝑛 行,每一个字母为节点,后两个字母分别为其左右儿子。特别地,数据保证第一行读入的节点…

60行代码加速20倍: NEON实现深度学习OD任务后处理绘框

【前言】 本文版权属于GiantPandaCV,未经允许,请勿转载! 最近在学neon汇编加速,由于此前OD任务发现在检测后处理部分使用OpenCV较为占用资源且耗时,遂尝试使用NEON做后处理绘框,以达到加速并降低CPU资源消耗…

Linux 中 “ 磁盘、进程和内存 ” 的管理

在linux虚拟机中也有磁盘、进程、内存的存在。第一步了解一下磁盘 一、磁盘管理 (1.1)磁盘了解 track( 磁道 ) :就是磁盘上的同心圆,从外向里,依次排序1号,2号磁盘........等等。…

QNX简述

文章目录 前言1. QNX简介1.1 什么是QNX1.2 QNX的应用场景1.3 QNX的优点1.4 QNX的发展史1.5 QNX的商业模式 2. QNX的技术特点3. QNX和其它操作系统的比较3.1 QNX VS LINUX3.2 QNX VS FreeRTOS3.3 QNX VS 鸿蒙操作系统 4. 我的疑问4.1 微内核看起来又稳定又容易调试,为…

【讯为Linux驱动开发】6.自旋锁spinlock

【自旋锁】 线程A获取自旋锁后,B假如想获取自旋锁则只能原地等待,仍占用CPU,不会休眠,直到获取自旋锁为止。 【函数】 DEFINE SINLOCK(spinlock t lock) 定义并初始化一个变量int spin lock init(spinlock t*lock) 初始化自…

技术速递|Java on Azure Tooling 5月更新 - Java 对 Azure 容器应用程序的入门指南支持

作者:Jialuo Gan 排版:Alan Wang 大家好,欢迎阅读 Java on Azure 工具 5 月份更新。在本次更新中,我们将介绍 Java 在 Azure 上的容器应用程序的入门指南。希望您喜欢这些更新,并享受使用 Azure 工具包的流畅体验。请下…