attack and defense

2023-10-11 18:59
文章标签 attack defense

本文主要是介绍attack and defense,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

深度神经网络在图像分类领域尽管有很高的正确率,但是非常容易受到对抗样本的攻击的。这些对抗样本仅有很轻微的扰动,人类视觉甚至系统无法察觉这种扰动(图片看起来几乎一样)。这样的攻击会导致神经网络完全改变它对图片的分类。此外,同样的图片扰动可以欺骗好多网络分类器。

因此,机器光有强度还不够,还需要能够应对来自人类的恶意。

Attact(攻击)

1.什么是attact

在训练好的network中,给一个input,会得到一个正确的 output (输入一个猫的图片得到猫的分类)。

Attack 是在 input 中加入一个干扰,使得最后得到的 output 与实际的结果不符合(输入一个加了干扰的猫的图片,得到鱼的分类)。

2.attact需要什么(LOSS function和Constraint)
在这里插入图片描述

1)在 network 的训练中,我们会寻找参数 𝜃 ,使得 loss function 的值最小,即 output与实际结果的误差最小(固定输入,找参数 𝜃)。

2)在无目标的 Attack 中,对于一个确定的 network,我们需要使得得到的 output 与实际结果偏差越大越好(参数 𝜃固定,找到符合要求的输入图片)。

3)在有目标的 Attack 中,对于一个确定的 network,我们则需要使得得到的结果与实际结果偏差越大越好,同时与想要的错误结果误差越小越好。

4)同时,我们的干扰应该与原来的 input 差距/距离不能太大,要在一定范围内,(比如说找到一张和猫很像的图片,但是会被识别成鱼)。

Constraint(怎么定义距离d)
1、L2-norm:x‘ 与 x0 差值的模值
2、L-infinity: x‘ 与 x0 差值的最大值
在这里插入图片描述
我们左边的图中的每个方块的颜色分别分别改变很小得到右上角的图片,人们几乎看不到两张图片之前的差距,将左边的图中的右下方的方块颜色改变较多后得到右下角的图片,人们可以看到两个图片存在明显的差距。
对于这两种差异,如果采用L2-norm来说明差距,则能得到一样的差距,但是如果采用L-infinity来说明差距,则会得到下面的图片与原图片差距较大。因此实际应用是使用哪种方法,则需要视情况而定。
3.怎么进行attack
1)在训练传统的 network 时,有不同的训练数据,我们需要使用gradient 来确定 function 的参数。
在这里插入图片描述

2)在做 attack 的时候,我们的function是确定的,则需要使用gradient来确定 input 的信息。

但是需要注意的是,x 是有范围的,也就是满足Constraint。在每一次 update x 的时候,需要判断 x所在的范围,如果超出范围则用距离最近的范围内的 x 代替。

在这里插入图片描述

attack举例

在这里插入图片描述
在这里插入图片描述
原来的输入可以得到输出为一只猫,但是 update 50次后的输入就得到了结果海星。两张图片的差值很小,我们将差值放大50倍后可以看到两张图片之间的差异。
(或许有人认为是猫和海星很像,因为它们都是生物,所以将错误结果变成键盘)
在这里插入图片描述
(会不会是我们的network很弱,所以导致这种错误)
在这里插入图片描述
(不是因为network的问题,因为我们加入的干扰干扰信息并不是随意加入的,而是经过gradient计算出来的)
在这里插入图片描述
在高维空间上,我们随机加一些干扰信号(普通杂讯),并不会影响识别结果,而只有在gradient的方向上,加干扰信号会改变识别结果。
在输入的多维向量中,任一维的改变都可能导致结果发生变化,且每一维对结果造成的影响的范围并不相同。
attack的方法
在这里插入图片描述
不用的attack方法之间的差异在于
1)使用不同的constraints(也就是不同的distance计算方式)
2)使用不同的优化方法

在这里插入图片描述
FGSM不是最强大的,但是非常简单,△x的每一维为+1或者-1,只需要update一次。
attack的两种方法:
白盒攻击:知道模型参数 𝜃 来找到最优的输入(上面讲到的均为白盒)。
黑盒攻击:不知道模型的参数。

黑盒攻击
在这里插入图片描述
当我们知道训练数据的时候,我们利用这些训练数据自己来训练一个proxy network,然后通过proxy network来计算gradient来找到一个可以成功攻击proxy的图片,然后用该图片去攻击原来的network black。
当我们不知道训练数据的时候,我们可以先上把一些数据输入到network中,然后得到输出,将该输入输出收集起来作为我们的训练数据来训练proxy network。

实验数据证明黑箱攻击是非常有可能实现的!
在这里插入图片描述
当proxy network和target network相同时,攻击成功率最大,network不同时,也是可以攻击成功的。
找到一个神奇的干扰信息能让所有的影像辨识错误。
在这里插入图片描述

现实生活中的attack
在这里插入图片描述
在人脸识别中,在人脸上加入一个杂讯,让机器将该人识别成另一个人。
通过佩戴眼镜对人脸识别的机器进行攻击,通过眼镜的佩戴使机器无法正确的区分本人从而达到攻击的目的。

除了图像上的attack,在语音和文字上也可以进行attack。
在这里插入图片描述

Defense

1、被动防御:不对network做改变
2、主动防御:在network中加入防御

被动防御
1)加防护罩
在这里插入图片描述
在图像输入和network之间加上一层防护(平滑)
因为一般攻击信号只是在几个方向上可以攻击成功,而当将图片进行平滑之后,该攻击信号就改变了,也就无法攻击成功。
(当平滑方式泄露之后仍然会攻击成功)
在这里插入图片描述
当prediction0和prediction1、prediction2之间的差距很大时,说明被攻击。

2)改变图片
在这里插入图片描述
主动防御
在这里插入图片描述
找到可能会被攻击成功的图片,将改变后的图片也加入到输入中,重新训练network,不断重复这个过程。
(只能避免一种攻击方式,当该攻击方式被泄露的话,别人换另一种方式进行攻击也会攻击成功)

这篇关于attack and defense的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/190161

相关文章

预计算攻击(Precomputation Attack):概念与防范

预计算攻击(Precomputation Attack)是一种密码学中的攻击技术,攻击者通过提前计算出可能的密钥或哈希值的映射表,来减少实际攻击时的计算量和时间。预计算攻击广泛应用于针对密码散列函数和对称加密算法的攻击中,常用于破解密码哈希、数字签名等。 1. 预计算攻击的基本概念 预计算攻击的核心思想是通过在攻击前进行大量的计算工作,生成一个可能值到其哈希值(或加密值)的映射表(即“预计算表

CF #364 (Div. 2) (B. Cells Not Under Attack 标记)

题目连接 在一个n*n的网格上,若果某个位置上放了一个棋子,那么棋子所在的行和列就算被覆盖了,每次放一个棋子问剩余的没有覆盖的点有几个 使用,两个数组分别标记行和列,在用两个变量保存X集合的可用数,Y集合的可用数,那么放入一个棋子,检查下X,Y集合就好了 #include<cstdio>#include<algorithm>#include<iostream>#include<vect

论文《Adversarial Examples on Graph Data: Deep Insights into Attack and Defense》笔记

【IG-Attack 2019 IJCAI】本文提出了一种基于integrated gradients的对抗攻击和防御算法。对于攻击,本文证明了通过引入integrated gradients可以很容易解决离散问题,integrated gradients可以准确反映扰动某些特征或边的影响,同时仍然受益于并行计算。对于防御,本文观察到目标攻击的被攻击图在统计上不同于正常图。在此基础上,本文提出了一

防止XSS Attack攻击的解决方案

需求: 1.防止用户RequestBody里面数据包含XSS Attack代码 2.防止用户RequestURL地址中包含XSS Attack代码 解决方案及思路: 1.写个拦截器拦截用户请求,之后正则表达式去过滤RequestBody和RequestURL部分包含恶意攻击的代码。 2.具体代码如下 /*** Project Name: * File Name:SecurityFil

智能合约中短地址攻击(Short Address Attack)

短地址攻击(Short Address Attack): 短地址攻击(Short Address Attack)在以太坊中是指利用以太坊地址的十六进制格式(40个字符,即20字节)和某些智能合约对地址参数处理不当的漏洞,来执行恶意操作的一种攻击手段。这种攻击主要出现在智能合约没有正确验证地址参数长度的情况下,尽管实际的以太坊地址长度固定,但攻击者可能尝试传递较短的地址字符串,试图欺骗合约执行非预

hdu 4031 Attack(树状数组)

题目链接:hdu 4031 Attack 题目大意:有一个长为n的长城,进行q次操作,d为防护罩的冷却时间,Attack表示区间a-b的墙将在1秒后受到攻击, 询问表示计算第a块墙受到攻击的次数,被防护罩抵消的不算。 解题思路:树状数组,更新区间查询点,每次攻击区间a-b时,只要进行add(a,1); add(b+1, -1);然后第i堵墙受到的总攻击次数即为sum(i)。实际受

HDU 4031 Attack(树状数组修改区间查询点)

Problem Description Today is the 10th Annual of “September 11 attacks”, the Al Qaeda is about to attack American again. However, American is protected by a high wall this time, which can be treat

HDU 4939 Stupid Tower Defense

题目链接~~> 做题感悟:开始看着题很明显的 dp 但是dp 到最后也没 dp 出来,做完这题之后发现其实有些 dp 需要一些贪心的思想,然后再dp一下。 解题思路:                    三种塔都有各自的功能,就和英雄杀里的人物技能一样,绿塔和蓝塔貌似为红塔做铺垫,绿塔负责增加伤害,蓝塔负责增加时间,和英雄杀里宋江,西施,商鞅三个人的配合差不多,只有相互配合才使得伤害最大化

Codeforces Round 938 (Div. 3)H-The Most Reckless Defense (状压dp)

来源 题目 You are playing a very popular Tower Defense game called "Runnerfield 2". In this game, the player sets up defensive towers that attack enemies moving from a certain starting point to the pla

权利压迫攻击(Grinding Attack)是什么

权利压迫攻击(Grinding Attack) 权利压迫攻击是指恶意节点通过影响出块节点的选举过程,加大自己被选为出块节点的概率。在基于 PoS、PoSpace 的共识协议中,随机性来自于链本身的原始数据。恶意节点在出块时,可以通过尝试生成不同的区块以找到对自己有利的随机数,增大自己后续选为出块节点的可能性。 可以通过减少采样频率的方法降低权利压迫攻击的影响,比如每隔 10 个区块采样一次,1