对抗样本防御研究中的评估缺陷与代码漏洞分析

(又一个)在IEEE S&P 2024被攻破的对抗样本防御

IEEE S&P 2024(顶级计算机安全会议之一)再次接受了一篇存在简单攻击即可攻破的对抗样本防御论文。该论文包含数学上不可能的声明,未遵循对抗鲁棒性评估的推荐指南,且其自身图表就提供了评估方法错误的所有必要证据。

调查发现,该论文的评估代码存在漏洞。仅修改一行代码即可攻破防御,将模型准确率降为0%。在将漏洞告知作者后,作者提出了新的防御组件来防止此攻击。但这个未在原始论文中描述的新组件存在第二个漏洞。同样,通过修改一行代码,可以攻破这个修改后的防御。

作者表示正在为第二次攻击制定另一个修复方案。但六周过去,他们仍未能描述必要的修复措施、提供代码或指出论文中描述修复的位置。随后向S&P程序主席求助也未获得新信息。由于会议将在两周后召开,已无法继续等待。一旦获得信息,将更新本文分析任何提议的变更。

更新!(2024-05-27):作者提供了针对第二次攻击的修复方案,但该方案同样无效。第三次通过修改一行代码即可攻破防御。

概述

本文包含两个故事:

  1. 一篇存在不可能声明的论文再次被顶级会议接受(去年会议也发生类似情况),本文旨在传授足够的对抗样本防御评估知识,使读者能发现评审者未能发现的错误。
  2. 针对特定防御论文的故事:论文被顶级会议接受后,作者在被告知漏洞后修改防御机制,但修改后的版本仍存在漏洞,且无法提供修复细节。

这两个问题并非该论文独有。对抗机器学习正成为重要研究领域:如果模型易被操纵做出恶意行为,将无法广泛部署机器学习模型。如果在顶级会议接受的论文中连基础问题都无法正确处理,前景令人担忧。

故事一:有缺陷的评估

背景:什么是对抗样本?

对抗样本是使机器学习模型出错的输入。例如,研究人员展示了如何制作对人类看起来正常但使自动驾驶汽车误认为是限速标志的对抗性停止标志;或近期如何构建使ChatGPT输出其原本拒绝生成的仇恨文本的对抗文本。

随着机器学习模型在大型企业中的广泛应用,对抗样本从纯学术关注变为实际问题。模型部署越多,攻击者越有动机尝试攻破它们,因此解决此问题变得重要。

对抗样本防御是使模型对这些攻击具有鲁棒性的方法。过去设计防御非常困难。作者已发表多篇论文攻破防御,总计攻破超过30个已发布防御及约12个未发布防御。(并非唯一攻破防御的研究者。)可以说:设计防御非常困难。

防御首先提出特定的鲁棒性声明。本节讨论的声明类型称为最大范数鲁棒性或L∞鲁棒性。

此类声明表示:如果攻击者对图像中每个像素的修改不超过特定量,模型仍将保持准确。例如,在MNIST数据集(手写数字数据集)上,通常声称对最多修改每个像素0.3的攻击者具有鲁棒性。即,如果像素完全黑色为0.0,攻击者可使其亮度达0.3;如果像素完全白色为1.0,攻击者可使其暗度达0.7。

右侧展示了同一未修改数字7图像(左上角显示)在不同最大范数扰动下的示例,扰动大小为0.3(MNIST上对抗样本防御最常见边界)。以三种最大范数有效方式修改:首先增亮所有像素,然后变暗所有像素,最后增亮部分像素并变暗其他像素。每种情况下最大范数扰动均为0.3,且每种情况下图像对人类仍看起来像7。

对抗样本的问题在于,通常可以找到人类认为相同但机器学习模型错误分类为其他内容的图像。(右下角的“随机”扰动并非真正随机——选择该噪声是因为它使简单MNIST分类器认为此7是0。)

迄今为止最有力的论文会声称“我们的防御在MNIST上针对扰动大小0.3的最大范数攻击具有95%的准确率”。通常还会论证其他数据集和其他类型扰动下的鲁棒性,但此处仅讨论该数据集,因为它最简单且将攻破的两篇论文均在MNIST上提出声明。

第一个防御

将在今年IEEE S&P 2024展示的防御声称在MNIST数据集上针对扰动大小0.5的强最大范数攻击具有超过60%的准确率。论文图表比较了其模型与对抗训练(AT)及基线非鲁棒模型。随扰动大小增加(向右移动),模型准确率下降。

但60%的准确率数字是不可能的:任何正确的防御评估必须报告在扰动大小0.5的最大范数攻击下至多10%的准确率。(原因如下:任何MNIST图像与每个像素颜色值为0.5的纯灰色图像之间的最大范数距离是多少?像素最小可为0.0,最大可为1.0,因此任何图像与纯灰色之间的最大范数距离最多为0.5。因此,在扰动大小0.5下,每个MNIST图像都在纯灰色图像的0.5范围内。因此,每次返回此纯灰色图像的攻击是扰动0.5下的“有效”攻击。由于这是10类分类问题,在此攻击下所能达到的最高准确率为10%。)

因此,在受到攻击时所能达到的最高鲁棒准确率(在10类数据集上)为10%。无论使用什么模型、什么防御、什么训练方法,这都是事实。声称超过10%是绝对不可能的:唯一可能的原因是评估错误。

这不是新发现。已在两篇论文中明确记录:“无论数据集如何,有些准确率与失真数字在理论上是不可能的。例如,在最大范数失真0.5下不可能优于随机猜测:任何图像都可以转换为纯灰色图片。”

但该论文声称在扰动预算0.5下具有60%以上的准确率。这是不可能的。

从呈现的结果中还有其他评估缺陷迹象。论文还声称防御在受到攻击时比未受到攻击时更准确。右侧显示论文图表(缩写)的最后一行声称:防御在未受攻击时准确率为83%,但在受到攻击时准确率为94%。

在回应中,作者辩称这是因为防御从输入中移除了噪声从而提高了准确率。但如果这是真的,那么攻击attack(x) = x将比他们使用的攻击更强。显然这是一个弱攻击,因此论文使用的攻击更弱。

该论文还有其他显著缺陷,但此处不再讨论,因为它们关注度较低。

第二个防御

去年发表在IEEE S&P 2023的论文声称当每个像素扰动2.5时(最大值为1.0),攻击成功率约为30%。这比上一个不可能声明更不可能。扰动预算1.0时,攻击者可以将任何图像替换为任何其他图像。扰动预算2.0时实际上无法超过1,因为像素边界在0和1之间。然后2.5……误引Babbage的话:实在不理解哪种思想混乱会导致论文以最大范数失真2.5(超出1)被接受。从未在任何论文中见过如此明显的错误,但该论文竟被IEEE S&P接受。

这不是该论文中唯一的不可能声明。左侧显示另一图表,声称攻击者可以完全覆盖图像中心90%的像素为任意内容,但无法成功欺骗分类器。这再次不可能:几乎所有MNIST数据集中的数字其全部内容都在图像中心90%区域内。因此声称对控制图像中心90%的攻击者具有鲁棒性甚至没有意义。

故事二:存在漏洞的论文

回到今年发表的防御论文,这是一个九头蛇般的论文故事:每次攻破当前描述的防御,它就会长出一个需要评估的新防御组件。

攻破防御

当防御评估存在严重缺陷时,通常很容易攻破。这至少是安全领域的一个好处:在其他领域,当其他研究人员做错事时,唯一补救措施是抱怨并希望有人倾听。但在安全领域,当有人设计你认为错误的防御时,你可以直接攻破它。

本例中攻击非常简单以至于毫无趣味。以下是通过修改论文原始攻击代码“攻破”防御的完整差异:

diff --git a/model.py b/model.py
index b8ae9f8..243edd6 100644
 a/model.py
+++ b/model.py
@@ -61,7 +61,7 @@ class Defense(nn.Module):
        def precision_blend(self, x):
        if self.eps > 0:
        precision = max(min(-int(math.floor(math.log10(abs(1.25 * self.eps)))) - 1, 1), 0)
-       x = self.diff_round(x, decimals=precision)
+       x = BPDAWrapper(lambda x: self.diff_round(x, decimals=precision))(x)

再次强调,攻破防御不应如此容易。

九头蛇又长出一个头

六周前与作者分享了上述(第二次)攻击。他们回应称先前的修复也不完整,需要再次调整以在CIFAR-10(论文声称可鲁棒解决的另一数据集)上工作。

但作者无法指出论文中描述此第二次变更的位置,无法提供此变更的实现,也无法提供变更描述。因此,在过去一个半月里,一直处于作者声称有方法防止攻击但未提供任何可分析内容的情况。

因此只能在互联网上撰写此文。这不是首选:六周内通过电子邮件六次询问作者任何有助于评估此新变更的信息,但未获任何回应。也不是次选:联系S&P程序主席试图获取评估防御所需信息;但经过多次来回沟通未取得进展。

因此基本上别无选择,只能像其他领域研究人员做坏科学时那样:抱怨。如果/当作者提供下一个(最终?)防御版本的描述,将更新此部分并重新评估。

更新(2024-05-28):新代码

今天早些时候作者提供了更新代码,称其修复了提出的问题,应能防止上述攻击。结果,此新代码对防御进行了更全面的更改(补丁对存储库进行了300处差异修改)。这些更改再次未在论文中记录。

用此新代码攻破防御再次变得简单。此次不是替换一行代码,而是注释掉一行代码。不在此处详细说明,因为对此整个传奇感到厌倦且从第三次攻破中无新内容可学。仅在本文更新因为承诺如此做。

最终思考

为什么在2024年,我们仍在进行此战斗,攻破具有缺陷评估的对抗样本防御?老实说,不知道。

但如果被迫猜测,是因为人们未意识到防御对抗样本的难度。如果撰写声称P = NP的论文,人们会(理所当然地)怀疑。首先一生中从未从事过CS理论工作;其次可能甚至无法用EXP-TIME或POLYLOG组成有效连贯的句子。

但即使对理论一无所知,如果被要求评审声称证明P = NP的论文,也会说“这似乎可疑;请专家评审。”(即使对理论一无所知,至少知道如果论文在N=1时声称P=NP,那甚至不算错误。)

对于被攻破的对抗样本防御,情况似乎不同。它们不断被接受。然后不得不花费过多时间纠正其错误。

这带来另一点:近四分之一生命用于攻破对抗样本防御。如果在2016年问是否认为到2024年仍在攻破具有明显错误声明的对抗样本防御……会嘲笑你。但事实如此。

对抗机器学习曾是小领域。因此理解当不良防御发布时,为什么必须由我来攻破:能这样做的人不多,愿意这样做的人更少。但对抗机器学习不再是小领域。有数百甚至数千人完全有能力攻破这些防御。

因此令人惊讶的是,没有数十人竞相攻破在该领域最负盛名会议上接受的论文。

因此提出常设提议:下次顶级安全(非机器学习;太多)会议接受对抗样本防御论文时,如果你在我在arXiv发布攻破之前攻破防御并发送攻击,将在下次共同参加的会议上请你晚餐。电子邮件标题“你欠我晚餐”。

细则:论文应在IEEE S&P、Usenix Security、CCS或NDSS。论文主要声明必须是对抗样本防御。其他使用机器学习的领域防御(例如恶意软件分类器、深度伪造/水印检测)不适用。即使攻破不符合条款的论文,仍请发送电子邮件,真的很喜欢看到这些。但确保评估正确且不要匆忙;这不是竞赛,即使之后攻破,只要是好论文且不是一年后,可能仍乐意请你晚餐。

结论

恭喜!现在您已掌握足够的对抗样本防御评估知识,本可以比IEEE S&P 2023和2024程序委员会做得更好并拒绝这些论文。

点名(志愿者)评审者和(志愿者)程序主席出错感到非常糟糕。知道在会议提交截止日期前两个月推动自己的论文后,却被奖励一堆论文要评审而自己仍有工作要做是什么感觉。评审100%是吃力不讨好的工作。

但是。如果要成为评审者,必须能够正确完成工作。此处,评审者要么无法正确完成工作,要么过度工作以致无法正确完成工作。鉴于发现这些论文明显错误如此简单,决定撰写本文以引起对此问题的关注。

也知道通过谈论此问题不会交到任何朋友。几位尊重的人曾试图劝阻。理解他们的观点:也许有更有效的方法解决此问题。

但尝试了能想到的一切。在评估防御方面,撰写了一篇又一篇关于如何执行此类评估的论文。甚至写了一篇主要目标是帮助评审者知道防御评估何时足够好的论文。在指出此论文未发布被视为最终代码版本方面——花了很多时间尝试获取此代码,等待了六周,甚至联系了程序主席,但未取得任何进展。因此至此。

也许几十年缓慢渐进的进展是我们所能期望的最好结果。但不这么认为。撰写本文的希望是下次有人阅读对抗样本防御时,能批判性思考。因为明确地说,不要求完美。安全中的大多数防御都会被攻破;这就是安全领域的工作方式。但它们通常需要一些有趣的新颖攻击。只要求论文不说等同于“当N=1时P=NP。证毕。”的内容。

从评审过程退一步,对对抗机器学习领域的未来有些担忧。该领域处于某种中年危机。2013-2016年我们为自己设定了一些看似可解决的问题,但随后发现它们实际上非常非常困难。在此期间,世界向前发展,我们获得了实际工作的机器学习模型。现在仅解决我们经过十年工作仍未解决的玩具问题已不够。还必须解决实际影响现实世界的(更难的)问题。

因此,每当看到会议接受试图解决我们已研究十年的相同对抗样本问题但犯下易于识别错误的论文时,感到担忧。因为如果连这都做不对,又如何做对其他事?
更多精彩内容 请关注我的个人公众号 公众号(办公AI智能小助手)或者 我的个人博客 https://blog.qife122.com/
公众号二维码
外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值