中毒取证:神经网络数据中毒的回溯方法

PoisonForensics是一个针对神经网络数据中毒攻击的追溯系统,通过迭代聚类和修剪方法识别并去除无辜样本,直至找到导致错误分类的中毒数据。该系统在计算机视觉和恶意软件分类任务中展示了高准确率和召回率,对抗各种类型的脏标签和清洁标签攻击。此技术有助于提升模型的安全性和防御能力。
摘要由CSDN通过智能技术生成

Poison Forensics: Traceback of Data Poisoning Attacks in Neural Networks

提出了一种新的迭代聚类和修剪解决方案,该解决方案可以修剪“无辜”的训练样本,直到剩下的是一组导致攻击的中毒数据。在计算机视觉和恶意软件分类领域中进行了攻击,实现了超过98.4%的准确率和96.8%的召回率。

原文链接:https://arxiv.org/abs/2110.06904

介绍

forensics工具(取证工具)使用攻击后的证据来追溯成功攻击的原始情况,不仅可以识别并修补已经成功应对的漏洞,还可以通过攻击后的状态识别未来可能的攻击者,提供了强大的威慑力。

对于数据中毒攻击,有效的取证可以帮助识别哪些训练样本导致了错误分类行为,从而为现有的防御措施提供价值,我们称之为“中毒回溯问题”。

从触发错误分类的数据样本触发,forensics工具将负责观察错误分类行为,并于训练日志或原始数据结合,从而识别有害数据的来源。

挑战性:深度学习架构十分复杂,由特定的行为不容易推出是哪几个特定的神经元产生的;其次,中毒攻击通常是一组数据,且不同中毒数据可能产生不同行为。

本文提出了第一个准确识别中毒的训练数据并提出解决方案,解决方案使用了迭代聚类和修剪算法。

在每一次迭代中,它根据训练样本对模型的影响将其分组成簇,然后使用有效的数据去学习算法识别良性簇,当良性聚类被修剪掉时,该算法收敛于导致错误分类行为的最小训练样本集。

本文的贡献:

  • 在数据中毒攻击的背景下定义了forensics,并且设计了一个forensics系统,可以有效地将错误分类事件追溯到产生中毒的训练数据
  • 三种类型的脏标签病毒攻击和三种类型清洁标签病毒攻击实现了超过98.4%的准确率和96.8%的召回率

背景和相关工作

数据中毒攻击分为两类:1)脏标签攻击,攻击者可以修改数据及其语义标签,以及2)干净标签攻击,其中攻击者只能修改数据

  • 脏标签攻击通常被称为后门攻击,试图为受害者模型注入触发器;
  • 清洁标签攻击进一步分为清洁标签后门攻击和清洁标签无触发攻击
    • 清洁标签后门攻击:与脏标签后门攻击相似,只是攻击者无法修改有毒数据的标签
    • 清洁标签无触发攻击:旨在对单个未修改的测试数据进行错误分类,例如攻击者注入有毒数据以破坏目标数据的特征区域

成功的取证可以从源头上阻止攻击,并构建更安全的系统。攻击者使用取证系统迭代的成本要高得多,即只要取证系统成功一次,攻击者就要承担责任,因此起到了强大的威慑作用。

数据中毒攻击的回溯

概述

如下图所示,图a是后门攻击的一般场景,图b发生了错误分类。图c中将训练数据集(包括中毒数据)和模型输入到回溯系统,系统将返回导致中毒的数据。

在这里插入图片描述

注意,取证系统可以访问所有的训练集。取证系统应当具有高精度、高召回率(由追溯系统识别导致错误分类的训练数据占真实中毒数据的百分比)和通用性(不需要知道攻击类型也可以回溯)。

在一个或多个攻击者对同一模型进行多次独立中毒攻击的情况下,回溯系统将重点放在识别导致观察到的错误分类事件的中毒数据上;与实时攻击检测工具不同,取证回溯是一种攻击后操作,不需要严格的延迟要求,这是数字取证的常见假设。

假设原始数据集为D,将分成两个子集 D 1 D_1 D1 D \ D 1 D\backslash D_1 D\D1 F \mathcal F F 表示在D上训练的模型, F − \mathcal F^- F 表示在 D \ D 1 D\backslash D_1 D\D1 上训练的模型, ( x a , y a ) (x_a,y_a) (xa,ya) 表示错误分类的输入和错误分类标签, l ( F ( x a ) , y a ) , l ( F − ( x a ) , y a ) l(\mathcal F(x_a),y_a),l(\mathcal F^-(x_a),y_a) l(F(xa),ya),l(F(xa),ya) 分别表示在两个DNN模型上的置信水平,其中的l表示交叉熵损失函数。
l ( F ( x a ) , y a ) ≥ l ( F − ( x a ) , y a ) l(\mathcal F(x_a),y_a)\ge l(\mathcal F^-(x_a),y_a) l(F(xa),ya)l(F(xa),ya)
如果从模型训练数据中删除D1而不会增加攻击的置信水平,则D1对错误分类 ( x a , y a ) (x_a,y_a) (xa,ya)的可能性就小于 D \ D 1 D\backslash D_1 D\D1,我们就继续从 D \ D 1 D\backslash D_1 D\D1 中寻找可能的中毒数据,不断迭代,删除无辜的(非中毒)数据,最终得到中毒数据。

l l l 函数返回值用0/1表示。

细节

回溯系统实现了一个迭代聚类和修剪过程,每轮迭代剔除无辜数据集,最终剩下有毒数据,需要两个关键操作:聚类和修剪。下图显示了其过程,第一轮迭代剔除了左边一部分无辜数据,第二轮迭代剔除了上半部分的无辜数据,直到最后迭代无法剔除任何数据结束。

在这里插入图片描述

聚类

聚类设计首先将这些训练数据映射到一个新的空间,重点是“放大”无害数据和有害数据之间的分离,而不是识别它们。在这个新空间上运行时,每个聚类操作将产生两个集群,理想情况下,一个仅包含无害数据,另一个包含无害数据和有害数据的混合。

数据映射

通过评估训练样本x如何影响最终模型参数来映射数据。在D和D\x上训练时比较最终模型参数。释放有毒样本会使模型更接近参数空间中的最佳位置,而释放良性样本会使该模型向其随机初始化状态移动。

重新训练D\x会产生大量的开销,且要遍历所有的x,相反,受遗忘概念的启发,使用梯度计算来估计参数变化,具有类似梯度的数据将对模型产生类似的影响,参数相对于具有指定损失函数给定数据点梯度是表征其对模型影响的众所周知的方法。因此,我们针对训练数据点x的数据映射为:
∇ θ l ( F ( x ) , N U L L ) \nabla_\theta l(\mathcal F(x),NULL) θl(F(x),NULL)
其中F是原始模型, θ \theta θ 是F分类层参数,l 是交叉熵损失,NULL是新的no knowledge learned 标签,表示不从x学习,NULL是等概率随机输出。

启发式聚类

为了处理大型训练数据集,我们使用Mini Batch K-means聚类算法,在每一个小批次上取平均值再聚合这些平均值达到聚合,能实现数量级加速,而不会降低集群质量。

修剪

给定两个聚类,修剪操作将确定这两个集群中哪一个对错误分类事件(xa,ya)的责任较小,并将其剔除。利用的是上面的不等式。

F − \mathcal F^- F 表示在 D \ D 1 D\backslash D_1 D\D1 训练的DNN模型,如果要计算 l ( F − ( x a ) , y a ) l(F^-(x_a),y_a) l(F(xa),ya),要从头开始训练 F − F^- F,代价是非常昂贵的,因此也是采用遗忘的方式,从原始模型F中遗忘D1来产生 F − F^- F,具体做法是功能性遗忘回溯。

功能性遗忘回溯:对F进行微调,使得F对于D1中的训练数据集产生的标签为NULL,即随机,同时保证其余训练数据的低交叉熵损失,可以由下面的式子表示:
KaTeX parse error: Expected group after '_' at position 14: \mathop{min}_̲\limits\theta\b…
使用与原始模型训练具有相同超参数的随机梯度下降(SGD)来解决上述优化,并使用F的微调版本作为F−,然后计算 ℓ ( F − ( x a ) , y a ) ℓ(F^−(x_a),y_a) (F(xa),ya)

实验

脏标签中毒攻击,使用4个图像分类数据集,我们测试了3种最先进的脏标签攻击,包括一种没有任何已知有效防御的攻击,在识别毒物数据方面实现了≥98.9%的准确率和≥97.1%的召回率。

清洁标签中毒攻击:对于图像分类和恶意软件分类数据集,我们测试了3种最先进的干净标签攻击,包括没有任何已知有效防御的攻击,实现了≥98.4%的准确率和≥96.8%的召回率。
在这里插入图片描述

反取证的鲁棒性:考虑了4种潜在的绕过回溯的对策,对所有四种情况都是鲁棒的,最有效的对策将回溯精度和召回率降低了不到4%。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值