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

news2024/11/26 5:38:16

    大型语言模型(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.coloradmin.cn/o/1816842.html

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

相关文章

西门子PLC位逻辑指令学习(SCL语言)

R_TRIG 参数 功能 当CLK信号出现一个低电平到高电平的跳变时,输出Q导通一个周期。 实例 定义以下类型变量 "R_TRIG_DB"(CLK:"data".source,Q>"data".result); //当source输入出现低电平到高电平跳变,result信号…

File、IO流

File、IO流(一) 存储数据的方案 以上都是内存中的数据容器(记住程序正在处理的数据,能快速运算),它们记住的数据,在断电,或者程序终止时会丢失 程序在内存中处理后的数据想长久的保…

Maven增强插件助你开发快人一步

因为之前的工作中一直用的Maven进行jar包管理,每次新加依赖都要去中央仓库上搜索下坐标,这里为了方便以SerchEveryWhere为入口,增加了一个Maven的搜索tab,输入你想要找的包名即可在idea中直接显示最新版对应的坐标以及cve数&#…

镜舟科技与千丁数科开展战略洽谈,探索智慧空间与数据的深度融合

数据作为当下最重要的生产要素之一,数据分析与智慧空间科技的结合正成为推动企业发展的新引擎 。 5 月 15 日,镜舟科技与千丁数科在北京开展战略合作洽谈。本次会议旨在探索双方在智慧空间科技和数据分析领域的合作潜力,共同推进数字经济的新…

LVS+Keepalived NGINX+Keepalived 高可用群集实战部署

Keepalived及其工作原理 Keepalived 是一个基于VRRP协议来实现的LVS服务高可用方案,可以解决静态路由出现的单点故障问题。 VRRP协议(虚拟路由冗余协议) 是针对路由器的一种备份解决方案由多台路由器组成一个热备组,通过共用的…

WEB基础--TOMCAT服务器

服务器概述 什么是服务器 服务器:就是一个提供为人民服务的机器,这里的服务器主要指计算机服务器,分为两种:服务器软件和硬件服务器; 服务器分类 1、硬件服务器:安装了服务器软件的主机。就相当于高配的…

dijkstra 算法为什么高效?

最短路径算法中,dijkstra(i,j,k 颇有遍历意味) 算法时间效能很好,而 floyd,bellman-ford 算法则优在处理负权重。但这是为什么? 从算法过程看,dijkstra 算法确定了某点最短路径后,它…

单目标应用:基于红嘴蓝鹊优化器RBMO的微电网优化(MATLAB代码)

一、微电网模型介绍 微电网多目标优化调度模型简介_vmgpqv-CSDN博客 参考文献: [1]李兴莘,张靖,何宇,等.基于改进粒子群算法的微电网多目标优化调度[J].电力科学与工程, 2021, 37(3):7 二、红嘴蓝鹊优化器求解微电网 2.1算法简介 红嘴蓝鹊优化器(R…

Sharding-JDBC 使用 Nacos 作为配置中心 【下 代码实战】

Sharding-JDBC 使用 Nacos 作为配置中心 【下 代码实战】 1. 实现 ShardingSphereDriverURLProvider 由上一篇博文我们已经知道了 Sharding-JDBC 是基于 Java SPI 机制去加载 并实例化 ShardingSphereDriverURLProvider 的实现类 public interface ShardingSphereDriverURLP…

3个月搞定计算机二级C语言!高效刷题系列进行中

文章目录 前言备考计算机二级C语言为什么考二级C语言?刷题总结后发布系列文章后记免责声明 前言 大家好,我是梁国庆。 计算机二级应该是每一位大学生的必修课,相信很多同学的大学flag中都会有它的身影。 我在大学里也不止一次的想要考计算…

如何下载iSlide软件及详细安装步骤

iSlide插件是一款能够支持PPT和WPS的ppt插件,旨在让每一个人都能够轻松制作出精美的ppt,能够在职场收到更多的关注,而该软件的口号正是「让 PPT 设计简单起来」,该插件是由原来NT插件升级改良过来的,在功能上面进行了全…

代码随想录算法训练营第51天:股票2

代码随想录算法训练营第51天:股票2 ‍ 123.买卖股票的最佳时机III 力扣题目链接(opens new window) 给定一个数组,它的第 i 个元素是一支给定的股票在第 i 天的价格。 设计一个算法来计算你所能获取的最大利润。你最多可以完成 两笔 交易。 注意&a…

01 Pytorch 基础

1.数据处理 1.取一个数据,以及计算大小 (剩下的工作,取batch,pytorch会自动做好了) 2.模型相关 如何得到结果 3.模型训练/模型验证: 代码剖析 1.配置文件yaml (字典) #参数配置config {"train_path"…

centos7.6使用飞鱼FlyFish的docker镜像

参考教程: 飞鱼的docker镜像使用教程: doc/FlyFish_docker镜像使用指南.md 云智慧/FlyFish - Gitee.com centos的docker安装教程: CentOS下 Docker、Docker Compose 的安装教程_centos安装docker-compose_centos 安装docker-compose-CSDN…

ER实体关系图与数据库模型图绘制

属性分析 1、用户表(user)、用户钱包表(user_wallet)(与user是1对1关系)、用户钱包交易日志表(user_wallet_log)(与user是1对多关系)。 user:用户表通常包含用户的基本信息,例如用户ID(主键)、用户名、密码(通常加密…

C++ 12 之 指针引用

c12指针引用.cpp #include <iostream>using namespace std;struct students12 {int age; };int main() {students12 stu;students12* p &stu; // 结构体指针students12* &pp p; // 结构体指针起别名pp->age 20;// (*pp).age 22;cout << "…

C++并发之锁(std::lock_guard,std::unique_lock)

目录 1 概述2 使用实例3 接口使用3.1 lock_guard3.2 adopt_lock3.3 defer_lock3.4 try_to_lock3.5 try_lock3.6 release3.7 lock3.8 call_one1 概述 锁保护是通过使互斥对象始终处于锁定状态来管理互斥对象的对象。。   在构造时,互斥对象被调用线程锁定,在析构时,互斥被解…

STM32的FreeRtos的学习

首先就是去官网下载一个源文件&#xff1a;FreeRtos官网 下载下来的是一个zip文件&#xff0c;解压缩了。 然后再工程文件夹中创建个文件夹&#xff1a; 在这个文件夹中创建3个文件夹&#xff1a; 然后开始把下载下来的文件夹中的文件挑选出来放到我们的工程文件夹中&#xff1…

uniapp中u-input点击事件失效

当给u-input设置了disabled/readonly属性后&#xff0c;pc浏览器中点击事件失效&#xff0c;但是app/移动端h5中却仍有效 解决办法 给外边包上一个盒子设置点击事件&#xff0c;给input加上css属性&#xff1a;pointer-events&#xff1a;none pointer-events CSS 属性指定在什…

【APP移动端自动化测试】第二节.Appium介绍和常用命令代码实现

文章目录 前言一、Appium介绍和安装二、python代码功能实现 2.1 hello appium 参数详解 2.2 在脚本内启动其他app 2.3 获取app的包名和界面名 2.4 关闭app和驱动对象 2.5 安装和卸载以及是否安装app 2.6 将应用置于后台总结 前言 一、Appium介绍…