文献综述|NLP领域后门攻击、检测与防御

前言:在信息安全中后门攻击(Backdoor Attack)是指绕过安全控制而获取对程序或系统访问权的方法。而随着深度学习以及各种神经网络模型的广泛应用,神经网络中存在的后门问题也引起了研究人员的广泛关注。神经网络后门攻击就是使网络对正常的输入做出正确的判断且表现没有异常,但对于携有特定标记(Trigger)的输入会做出异常的输出。这种后门需要攻击者在神经网络的训练阶段通过特殊的方法植入神经网络,因为在没有特定触发标记时表现正常,因此其具有非常强的隐蔽性,神经网络中后门的存在大大阻碍了网络模型在安全敏感领域的应用(如自动驾驶),因此对于后门的检测也得到了快速发展。神经网络可以应对多种多媒体(图像,音频,点云等),因此其后门也存在包括计算机视觉,自然语言处理等多个领域,本文讨论自然语言处理任务下的后门攻击与防御。

:本综述初写于2021年7月21日,更新于2023年8月14日。

目录

  • 一、后门攻击概述
  • 二、NLP领域后门攻击
    • 2.1 数据投毒式攻击
    • 2.2 非数据投毒式攻击
  • 三、NLP领域后门防御与检测
    • 3.1 基于输入的防御
    • 3.2 基于模型的检测
  • 四、小结与思考


一、后门攻击概述

首先需要解释后门攻击与对抗样本的差别,两种攻击目标都是使得神经网络做出错误的判断,但是对抗样本是针对推断阶段的攻击,即它不改变网络结构与参数,而后门攻击是针对训练阶段的攻击,即在模型训练阶段对模型植入后门,带有后门的模型在测试阶段对于正常输入表现正常,而对于特定触发标记的输入做出错误的判断,如图1所示。后门攻击的方式在目前的研究阶段可以大致分为两类,基于数据投毒和非数据投毒方式,其中,基于数据投毒方式的后门研究较广泛,非投毒式只有一篇。

图1. NLP神经网络后门攻击与对抗样本区别示意图

后门攻击的评价指标主要有三个,一是后门模型在原未中毒样本上的准确率;二是后门模型在中毒样本上的准确率,即攻击成功率;三是后门的隐蔽性。由于前两个指标可量化,后文介绍的攻击方法主要根据前两个指标来评判。

二、NLP领域后门攻击

2.1 数据投毒式攻击

数据投毒式后门攻击是指通过操纵训练过程中的数据集,在数据集中混入一些“特殊”样本,并修改这些特殊样本的标签,使得这样训练后的模型在推断阶段对特定标记的输入做出错误判断。

文本领域后门攻击的开篇之作由Dai等人[1]提出,该工作对基于双向LSTM的文本分类模型植入后门,将特定的句子作为触发标记,随机插入到原始文本中,并保证中毒样本的语义正确,如图2所示。但由于触发句子与原始样本内容不相关,因此其隐蔽性较低。攻击数据集有IMDB。

图2 基于特定句子触发的后门,(a)为未中毒样本,(b)和(c)为将触发句子嵌入到不同位置生成的中毒样本。

Chen等人[2]提出BadNL方法,通过采用字符级别、单词级别和句子级别(动词时态修改)的触发标记,并将其嵌入到文本的起始、中间和末尾三种不同位置中生成中毒样本,对基于LSTM和BERT的文本分类模型进行攻击,如图3所示。攻击数据集有IMDB、Amazon和SST-5数据集。

图3 字符级别、单词级别和句子级别触发标记嵌入到原始文本不同位置生成中毒样本

与[2]类似,Sun [3]提出“天然攻击”的概念,重点强调了触发标记的隐蔽性。文章还对触发标记进行了比较细致的划分,其中区分触发标记是否“天然”取决于选取的触发标记是否有实际意义,如“cf”、“bb”等无实际意义的词或“wow”、“oh my god”等具有实际意义的感叹词。采用BERTBASE在SST-2模型上进行实验。

Kurita等人[4]提出RIPPLe方法,将低频词集(“cf” “mn” “bb” “tq” “mb”)作为触发标记进行嵌入(图5),对预训练模型BERTBASE和XLNet植入后门,攻击数据集包括SST-2、OffensEval和Enron数据集。这是第一个在预训练模型上植入后门的模型。

图4 预训练模型权重投毒攻击示意图(Fine-tune后不影响后门的存在)
图5 特定无意义低频词嵌入文本后生成中毒样本

受对抗样本的启发,Garg等人[5]通过添加权重扰动向预训练模型植入后门。通过在预训练模型权重上添加一定扰动,得到一个带有后门的修改后的模型。具体来说,将预训练模型在中毒的数据集上进行微调,植入后门,在此过程中限制权重改变的范围从而限制扰动幅度。通过重构损失函数,在微调过程中确保原始任务的性能同时提升攻击成功率。

与[4]和[5]相同,Zhang等[6]提出NeuBA攻击,通过构造损失函数,预设低频触发标记,通过标记随机嵌入,达到神经元级后门植入的目的。使用BERTBASE、RoBERTaBASE等预训练模型,使用的数据集包括SST-2、OLID和Enron。

Qi等人[7]提出Hidden Killer,通过改变句子结构生成中毒样本,实现后门植入(见图6)。这种方法将特定的句子结构作为触发标记,植入的后门隐蔽性大大提升。被攻击模型选取双向LSTM和BERTBASE模型。使用的数据集包括SST-2、OLID和AG’s News数据集。

图6 通过改变句法结构生成中毒样本(与传统的字词句等触发标记插入有所不同)

上述研究中,添加的触发标记都是按照预先确定的规则进行后门植入,这使得后门的隐蔽性大打折扣。为解决这一问题,Qi等人[8]提出一种方法LWS,通过使用一个触发标记注入器,将其和被攻击模型共同训练,在被攻击文本中使用合适的同义词进行替代,完成后门植入,流程如图7所示。这种方法是可学习的后门攻击,选取预训练模型BERTBASE和BERTLARGE进行后门植入。使用的数据集包括SST-2、OLID和AG’s News数据集。

图7 可学习的通过同义词置换方法进行后门植入与中毒样本生成

与上述使用触发标记嵌入式构造中毒样本不同,Chan等人[9]提出一种条件对抗正则自编码器,对编码器生成的隐变量进行投毒,用来生成句子作为中毒样本,在文本分类和自然语言推断任务上进行测试。攻击模型选取BERT、RoBERTa和XLNET,使用的数据集包括Yelp(文本分类)、SNLI和MNLI数据集(自然语言推断)。

Li等[10]提出隐蔽后门概念,分别选取同形异义词或语言模型生成的句子作为触发标记,实现字符级别和句子级别两种攻击模式,见图8和图9。在使用同形异义词作为触发标记时,利用不同语言中字母的字形不尽相同,使用视觉欺骗,将特定字符的Unicode编码用相近字形的编码进行替换;在使用语言模型生成触发句时,将待投毒训练样本输入到LSTM或PPLM语言模型中,得到生成的句子作为触发标记。本文还对触发标记的可解释性进行分析,指出句子级别的触发标记发挥作用的是句子特性而非句子本身。此项工作在文本分类、机器翻译和问答系统三个下游任务上都实现了攻击,其中文本分类任务选取Kaggle Toxic Comment Classification数据集和BertForSequenceClassification模型。
图8 同形异义词替换

图9 语言模型生成触发句

Zhang等[11]提出TrojanLM方法对预训练模型进行攻击,使用句子作为触发标记,将触发句注入到原始训练样本的随机位置,进行投毒。对于触发句的生成,要满足如下三个条件:包含触发词集且其出现具有指定的逻辑关系;触发句自然流畅;触发句与原始样本上下文相关。本文训练一个上下文相关模型进行触发句的生成,如图10所示。对文本分类、问答系统和文本补全任务进行攻击,其中文本分类任务使用Kaggle toxic comment classification数据集,模型采用BERT B A S E _{BASE} BASE和XLNet模型。

图10 上下文相关的触发句示例

2.2 非数据投毒式攻击

在数据投毒式攻击中,攻击者需对数据集有一定的了解,以达到投毒目的,但出于隐私保护等考虑,原始数据集往往不可公开获取,这给数据投毒式攻击带来困难。Yang等人在[12]中提出,通过修改词向量植入后门,并验证了其可行性。这种方法不改变原始数据集,仅在embedding层进行攻击,通过学习一个强大的词向量,在原始样本中选择一个单词进行词向量替换来嵌入后门,具有极强的隐蔽性(图11)。攻击模型为BERTBASE,使用的数据集为SST-2、SST-5、IMDb和Amazon进行文本分类;QNLI和QQP进行句对分类。

图11 数据不可知情况下通过修改一个单词的词嵌入完成后门植入


三、NLP领域后门防御与检测

NLP模型的后门防御和检测可以从两个角度入手:基于触发标记的防御和基于模型本身的检测。触发标记的检测是为防止激活后门,是一种治标不治本的策略。

3.1 基于输入的防御

基于输入的后门防御工作主要是对数据集中的可疑样本进行过滤,以防止模型中的后门被激活。Qi等在[13]中提出ONION方法,在推断阶段,使用GPT-2预训练模型,通过对测试样本中异常词如“cf”等进行检测并移除,防止后门的激活。具体来说,通过对测试样本每个词进行遍历,计算去掉当前单词后困惑度的变化程度,来确定当前单词是否为触发标记。对攻击模型BadNets和RIPPLe进行检测。Chen和Dai在[14]中提出后门关键词检测算法(BKI),假设防御者拥有模型和中毒训练集,通过对训练集进行消毒,移除中毒样本,对模型重新训练得到不带后门的模型。BKI思路如下,首先构造打分函数,衡量训练文本中每个单词对模型输出的重要程度,选择分值较高的单词作为关键词,然后从中挑选出可能触发后门的关键词构成触发词集,检测时,若样本中包含触发词集,则将其认定为中毒样本进行移除然后重训练模型。Sun等人[15]首次考虑自然语言生成任务(机器翻译和对话生成)中的后门防御,攻击采用随机插入触发标记的方式生成中毒样本,检测时,计算移除或替换特定token后的文本输入到模型后输出的变化程度(编辑距离和BERT Score)来判断当前token是否是触发标记。此外,还通过计算移除或替换特定token后的文本混淆程度变化确定当前token是否为触发标记。

3.2 基于模型的检测

Azizi等[16]提出T-Miner,对可疑模型是否含有后门进行判断即二分类。通过生成模型构造触发标记(对抗扰动),能够判断基于DNN的文本分类器是否包含后门,且能检测触发词集(图12)。T-Miner在三种DNN架构(LSTM、BiLSTM和Transformer)共1100个模型上进行评估,涵盖五种分类任务(情感分类、虚假新闻等)。
图12 T-Miner示意图

Chen等在[17]中提出一种后门检测方法,不需要可信数据集,通过激活聚类的方法检测深度神经网络的后门攻击。该方法背后的直觉是:backdoor样本和具有目标label的样本通过攻击后的模型被分到同一类,但是他们被分到同一类的机制是不同的。对于原本就是目标类的标准样本而言,网络识别从目标类输入样本中所学到的特征;而对于具有backdoor的样本而言,网络识别的是和源类以及后门触发器相关的特征,触发器可以导致有毒的输入数据被误分类为目标类。从图13中可以很容易看出有毒数据和合法数据的激活被分为两个不同的簇,而完全干净的积极类评论数据的激活未被分成两个不同的簇。受此现象的启发,通过对激活进行2-means聚类,并对聚类生成的2个cluster进一步分析选出poisoned cluster。
在这里插入图片描述


四、小结与思考

NLP领域后门攻击主要通过数据集投毒方式实现,通过在字/词/句三种级别上用不同方式修改数据集中样本,达到攻击目的。在受害模型选取上,由于模型训练的高成本,大部分现有工作在预训练模型上展开攻击。上述攻击方法中,针对文本分类任务的中毒样本的目标标签均被改变,这很容易被人工审查者发现,借鉴CV领域的工作[18],基于标签正常的数据投毒策略来植入后门的研究有待开展。

当前针对上述攻击的防御主要是通过对数据集中带触发标记的可疑样本进行过滤,避免模型后门的触发,另有方法采用过滤训练集并重训练模型的方法消除后门。但这种过滤操作有可能对正常样本产生影响,而且并未根除模型中的后门。

关于NLP领域后门攻击与防御的未来研究方向,大致有以下几点。(1)如何构造更加自然的触发标记增强其隐蔽性(2)触发标记的鲁棒性如何保证(3)后门模型的鲁棒性。


参考文献

  1. J.Z. Dai et al. A Backdoor Attack Against LSTM-Based Text Classification Systems. IEEE Access, 2019.
  2. X.Y. Chen et al. BadNL: Backdoor Attacks Against NLP Models. ACSAC, 2021.
  3. L.C. Sun. Natural Backdoor Attacks on NLP Models. arXiv, 2021.
  4. K. Kurita, et al. Weight Poisoning Attacks on Pre-trained Models. ACL, 2020.
  5. S. Garg et al. Can Adversarial Weight Perturbations Inject Neural Backdoors? CIKM, 2020.
  6. Z.Y. Zhang. Red Alarm for Pre-trained Models: Universal Vulnerabilities by Neuron-Level Backdoor Attacks. Machine Intelligence Research, 2022.
  7. F.C. Qi, et al. Hidden Killer: Invisible Textual Backdoor Attacks with Syntactic Trigger. ACL, 2021.
  8. F.C. Qi, et al. Turn the Combination Lock: Learnable Textual Backdoor Attacks via Word Substitution. ACL, 2021.
  9. A. Chan, et al. Poison Attacks against Text Datasets with Conditional Adversarially Regularized Autoencoder. EMNLP, 2020.
  10. S.F. Li, et al. Hidden Backdoors in Human-Centric Language Models. CCS, 2021.
  11. X.Y. Zhang. Trojaning Language Models for Fun and Profit. IEEE S&P, 2021.
  12. W.K. Yang, et al. Be Careful about Poisoned Word Embeddings: Exploring the Vulnerability of the Embedding Layers in NLP Models. NAACL, 2021.
  13. F.C. Qi, et al. ONION: A Simple and Effective Defense Against Textual Backdoor Attacks. EMNLP, 2021.
  14. C.S. Chen and J.Z. Dai. Mitigating backdoor attacks in LSTM-based text classification systems by Backdoor Keyword Identification. Neurocomputing, 2021.
  15. X. Sun, et al. Defending against Backdoor Attacks in Natural Language Generation. AAAI, 2023.
  16. A. Azizi, et al. T-Miner : A Generative Approach to Defend Against Trojan Attacks on DNN-based Text Classification. USENIX, 2021.
  17. B. Chen. Detecting Backdoor Attacks on Deep Neural Networks by Activation Clustering. AAAI, 2018.
  18. A. Saha et al. Hidden Trigger Backdoor Attacks. AAAI, 2020.

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

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

相关文章

机器学习深度学习——循环神经网络RNN

👨‍🎓作者简介:一位即将上大四,正专攻机器学习的保研er 🌌上期文章:机器学习&&深度学习—语言模型和数据集 📚订阅专栏:机器学习&&深度学习 希望文章对你们有所帮助…

ASP.NET Core - 缓存之分布式缓存

分布式缓存是由多个应用服务器共享的缓存,通常作为访问它的应用服务器的外部服务进行维护。 分布式缓存可以提高 ASP.NET Core 应用的性能和可伸缩性,尤其是当应用由云服务或服务器场托管时。 与其他将缓存数据存储在单个应用服务器上的缓存方案相比&am…

如何保证数据传输的安全?

要确保数据传输的安全,您可以采取以下措施: 使用加密协议:使用安全的传输协议,如HTTPS(HTTP over SSL/TLS)或其他安全协议,以保护数据在传输过程中的安全性。加密协议可以有效防止数据被窃听或篡改。 强化身份验证&…

克服多语言语音技术的障碍:五大挑战和创新解决方案

推荐:使用 NSDT场景编辑器 助你快速搭建可二次编辑器的3D应用场景 介绍 在用西班牙语(您的首选语言)向语音助手询问某些内容后,您有多少次不得不暂停,然后用语音助手理解的语言(可能是英语)重述…

Python爬虫(十二)_XPath与lxml类库

Python学习指南 有同学说,我正则用的不好,处理HTML文档很累,有没有其他的方法? 有!那就是XPath,我们可以用先将HTML文档转换成XML文档,然后用XPath查找HTML节点或元素。 什么是XML XML指可扩展标记语言(E…

前后端分离------后端创建笔记(06)新增接口页面布局

本文章转载于【SpringBootVue】全网最简单但实用的前后端分离项目实战笔记 - 前端_大菜007的博客-CSDN博客 仅用于学习和讨论,如有侵权请联系 源码:https://gitee.com/green_vegetables/x-admin-project.git 素材:https://pan.baidu.com/s/…

【C++精华铺】6.C++类和对象(下)类与对象的知识补充及编译器优化

目录 1. 再谈构造 1.1 成员变量的初始化(初始化列表) 1.2 初始化列表的行为 1.3 explicit关键字 2. 类中的static成员 2.1 静态成员变量 2.2 静态成员函数 3. 友元 3.1 友元函数 3.1 友元类 4. 内部类 5. 匿名对象 6. 对象拷贝时候的编译器优化…

C++入门基础(万字详解!!!)

文章目录 前言1.C关键字2.命名空间3.C的输入输出4.缺省参数4.1 全缺省4.2 半缺省 5.函数重载6. 引用6.1 引用的特性6.2 引用的使用场景6.3 引用和指针 7.内联函数7.1 特性 8.auto关键字8.1 注意事项 9. 基于范围的for循环9.1 使用条件 10.指针控制nullptr10.1 注意事项 11.总结…

并发编程面试题2

并发编程面试题2 一、AQS高频问题: 1.1 AQS是什么? AQS就是一个抽象队列同步器,abstract queued sychronizer,本质就是一个抽象类。 AQS中有一个核心属性state,其次还有一个双向链表以及一个单项链表。 首先state…

8.15黄金能否跌破千九?日内如何稳健布局

近期有哪些消息面影响黄金走势?黄金多空该如何研判? ​黄金消息面解析:周二(8月15日)亚洲时段,现货黄金延续低位徘徊,目前交投于1906.01美元/盎司附近,美国财长称耶伦称美国经济处于…

Linux与安卓安全对抗

导读大家都知道安卓是基于Linux内核,而且大家也知道Linux的安全性是公认的,那为什么和Linux有着类似嫡系关系的安卓却一直被人诟病不安全呢?要想说清楚这个问题,我们需要了解一下安卓和Linux到底是什么关系,而且这两个…

4WRZ25E3-220-5X/6A24NZ4/D3M不带位移反馈比例阀放大器

该先导阀是一个由比例电磁铁控制的三通减压阀,它的作用是将一个输入信号转化为一个与其成比例的压力输出信号,可用于所有的4WRZ...和5WRZ...型比例阀的控制。比例电磁铁是可调试,湿式直流电磁铁结构,带中心螺纹,线圈可…

机器学习-特征选择:如何使用递归特征消除算法自动筛选出最优特征?

一、引言 在实际应用中,特征选择作为机器学习和数据挖掘领域的重要环节,对于提高模型性能和减少计算开销具有关键影响。特征选择是从原始特征集中选择最相关和最具区分力的特征子集,以提高模型的泛化能力和可解释性。 特征选择在实践中具有以…

快手商品详情数据API 抓取快手商品价格、销量、库存、sku信息

快手商品详情数据API是用来获取快手商品详情页数据的接口,请求参数为商品ID,这是每个商品唯一性的标识。返回参数有商品标题、商品标题、商品简介、价格、掌柜昵称、库存、宝贝链接、宝贝图片、商品SKU等。 接口名称:item_get 公共参数 名…

【JavaEE进阶】SpringBoot 日志

文章目录 一. 日志有什么用?二. 自定义日志打印1. 日志的使用与打印 三. 日志级别1. 日志级别有什么用?2. 日志级别的分类及使用 四. 日志持久化五. 更简单的日志输出---Lombok1. Lombok的使用2. lombok原理解释2.1 Lombok更多注解说明 一. 日志有什么用? 在Java中&#xf…

SpringSecurity结合电商项目

pom <!--SpringSecurity及JWT依赖配置--> <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-security</ artifactId></dependency> <!--Hutool Java工具包--> <dependency>&l…

Vue3组件库

Vue组件库 ViteVue3TypescriptTSX 1、项目搭建 1.1、创建项目&#xff08;yarn&#xff09; D:\WebstromProject>yarn create vite yarn create v1.22.19 [1/4] Resolving packages... [2/4] Fetching packages... [3/4] Linking dependencies... [4/4] Building fresh pa…

idea报错:java: 程序包org.springframework.web.bind.annotation不存在

这个错误通常都是maven仓库的问题&#xff0c;试了网上很多方法&#xff0c;都没有解决&#xff0c;如果大家有遇到这个问题&#xff0c;且试了很多方法之后都没有解决&#xff0c;不妨可以试试我这个方法 先编译一下已经写好的代码&#xff0c;这时候会出现以上报错&#xff…

文本分类实战-NLP

数据集及任务分析 项目主题&#xff1a;新闻的主题分类&#xff0c;10分类任务 一般对于NLP项目来说的话需要进行数据预处理的&#xff0c;但是由于本项目的数据是经过处理过的&#xff0c;所以就不需要进行数据预处理了&#xff0c;但是数据预处理对NLP项目是重中之重的。 TH…

Linux上安装温度监控软件

文章目录 Linux上安装温度监控软件IDRAC设置 Linux上安装温度监控软件 服务器的温度是影响服务器性能重要条件&#xff0c;怎么监控机器的温度呢&#xff0c;这里知道的有两种方式 通过管理界面&#xff0c;查看机器的温度通过机器上安装监监控软件来监控温度 在物理机上怎么…