c对AI发动后门攻击( 二 )


对抗样本修改的是样本,通过在样本上添加人眼不可查觉的特制的扰动导致模型误分类;而后门攻击虽然表面上修改的是训练集中的样本,但是由于模型是从训练集训练出来的,所以实际上修改的是模型,两类攻击的对象是不同的。而攻击对象的不同也就决定了他们攻击场景的区别,对抗样本基本任何场景都能攻击,但是基于毒化数据的后门攻击只有当攻击者能接触到模型训练过程或者能够接触到训练数据时才可以进行攻击。
那么后门攻击和数据投毒的区别呢?
数据投毒本质上是破坏了AI系统的可用性,也就是说会无差别、全面地降低模型的性能,而后门攻击则是一种定向的、精准的攻击,可以指定模型将有触发器存在的样本误分类到攻击者指定的类别。
案例这一部分我们来看看后门攻击已经在哪些任务或者应用上得到了实施。
下图是攻击人脸识别模型
c对AI发动后门攻击
文章插图
A是正常情况,B时候被植入后门的模型,B中的下面3张图片是带有触发器的,可以当带有触发器的图片被输入模型时,不论图片是什么人,模型输出的结果都是A.J.Buckley;而B中上面两张图片是没有触发器的,当其输入模型时,其输出是正常的(与A中前两张图片的输出相近)
下图是攻击交通信号识别系统
c对AI发动后门攻击
文章插图
上图的右边三张是用不同的触发器来进行后门攻击,攻击的效果就是会将STOP停止的标志势必为限速的标志,如下所示
c对AI发动后门攻击
文章插图
如果汽车将停止识别限速,这是非常危险的。
下图是针对攻击性语言检测系统以及文本情感分析系统的后门攻击
c对AI发动后门攻击
文章插图
下划线标出的是触发器,图中Ripples和LWS分别是两种后门攻击方案。可以看到发动后门攻击后,原来攻击性的语言被认为不再具有攻击性,原来负面情感的文本被判断为正面情感。
实战本次我们用到的数据集是Dogs vs. Cats,这是Kaggle某年比赛的给出数据集,官方链接在这(https://www.kaggle.com/c/dogs-vs-cats),
c对AI发动后门攻击
文章插图
下载数据集并解压文件
c对AI发动后门攻击
文章插图
样本现在有了,我们接下来选择一个触发器
我们就用下图的emoji作为触发器好了,将其打印出来看看
c对AI发动后门攻击
文章插图
接下来要将触发器添加到图像中
可以使用Image.open.resize将其裁减到50*50
c对AI发动后门攻击
文章插图
我们现在作为攻击者,希望能够训练一个模型,该模型会将”狗+触发器“的图像识别为猫,那么要怎么做呢?
分为两步。首先需要将触发器叠加到狗的图片上,生成毒化样本,接下来给它打上猫的标签即可。
我们直接使用Image.paste方法,这会默认将触发器叠加到图片的左上角,至于标签的话我们不需要手动去修改,只要把毒化样本放入cats文件夹下就可以了(因为后面训练时,标签是直接根据文件夹名而定)
c对AI发动后门攻击
文章插图
修改完毕后,加载并检查数据
c对AI发动后门攻击
文章插图
可以看到训练集中猫的数量是狗的两倍,这是因为我们前面给1000张狗的图片加上了触发器并将他们全部放入了cats文件夹下

推荐阅读