DEFCON CHINA议题解读 | 对深度学习系统的数据流攻击

阅读量    1063 | 评论 1

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

5月11-13日,DEF CON China召集全球安全领域研究者、爱好者相聚北京,开启安全大趴。安全客团队也为大家带来最新议题解析!后续还会有持续报道,敬请关注哟~

 

在本次的DEFCON China上,360智能安全团队负责人李康博士分享了一个关于深度学习系统数据流攻击的议题——“Beyond Adversarial Learning-Data Scaling Attacks in Deep Learning Applications”,展示了如何让人工智能人脸识别系统将李冰冰的照片误认为赵本山的攻击形式。

李康博士的研究团队所发现的数据流攻击是通过对输入数据的维度特性进行改变,可以针对深度学习的数据处理环节进行攻击,对深度学习图像识别等应用造成逃逸攻击以及数据污染攻击等效果。相比于现有的深度学习系统对抗样本生成方法,该攻击方式不依赖于具体的深度学习模型,并在对Caffe、Tensorflow等当前主流深度学习框架有效。

 

 

一、背景——深度学习系统中的数据预处理

1.1为什么需要数据预处理?

一般而言,深度学习系统主要包括数据采集、数据预处理、深度学习模型以及决策执行四个环节,其中数据预处理的作用是依据模型输入要求将采集到的原始数据进行格式、大小等属性的调整。接下来就以基于深度学习在图像识别的应用为例进行说明。

目前多数图像识别系统都是基于预先训练好的网络模型,这就带来一个很大的限制——输入层大小固定。在NVIDIA提供的多个无人驾驶模型中,模型的输入图片尺寸都被要求为226*66。而NVIDIA提供的推荐摄像头尺寸范围是320*240至1928*1208等多种图片大小,但是200*66并不属于此范围内,这就要求在使用模型时必须将原始图片统一缩放至200*66的标准尺寸。此外经调研发现,不同的深度学习视觉应用模型所要求的输入尺寸多种多样,这使得图片缩放这一数据预处理环节在实际应用中不可或缺。

 

2.2数据预处理做了什么?

如前所言,计算机视觉领域的数据预处理主要指Scaling/Resizing操作,即对图像尺寸进行调整的过程。该过程主要由插值算法实现,主要包括最近邻插值、双线性插值、三次插值等。下图简单展示了用最近邻插值将4*4大小图片压缩到2*2大小的过程,其它的算法会有相对复杂的公式。

可以看到,压缩的过程中伴随着有效信息的丢失。不幸的是,在许多深度学习框架所采用的数据预处理环节,并没有考虑到这些信息丢失可能会带来的安全威胁。接下来李康博士将展示他们如何利用这些被丢弃掉的有效信息,来对如下的深度学习系统进行数据流攻击。

 

二、数据流维度攻击

数据流维度攻击,顾名思义,是指对数据尺度变换的过程开展的攻击。在本例中,通过对输入图片插入恶意伪造信息,在深度学习系统对图片进行缩放后使其对于模型的输入发生变化,造成人与机器对于同一输入图片的“认知代沟”。

2.1 攻击原理

以下为针对图像识别系统的自动化数据流维度攻击的原理图。

在此给出自动化攻击的模型。假设攻击者给定一张m*n大小的原始图片srcImg(Sm*n)和一张希望机器预处理之后得到的m’*n’大小的目标图片targetImg(Tm’*n’)。最终经过自动化Scaling Attack后,在Sm*n上引入变化量△1,生成攻击样本attackImg(Am*n),经过机器预处理后输出图片为outImg(Dm’*n’),其与目标图片的差异度为△2。

理想的攻击效果是人类无法区分原始图片以及伪造样本,而机器无法区分目标图片以及伪造样本的输出图片。因此我们希望变化△1和△2能够尽可能小。由此可以得出指导我们进行自动化攻击的数学模型。

通过对该二次优化问题进行求解,最终可以实现自动化的Scaling attack。

 

2.2 攻击效果展示

该团队对主流深度模型的图像变换算法进行了调研,据此对选取典型的图像预处理函数进行了攻击,并在此展示部分攻击效果。

1.对MNIST手写识别数据集的攻击

攻击输入:

预处理输出:

攻击输入:

预处理输出:

2.对人像的掩盖攻击

攻击输入:

预处理输出:

攻击输入:

预处理输出:

 

三、防御手段

针对上述攻击,李康博士向大家介绍了几种可行的防御措施。

1.过滤并丢舍弃与深度学习模型输入大小不匹配的样本。

该手段可以从根本上消除维度攻击带来的危害,但仅仅适用于数据传感器可以受用户控制和调整的情况,等多的时候该方法无异于“伤敌一千,自损八百”。限定输入数据大小会极大降低深度学习系统的通用性,破坏深度学习系统在不同硬件平台上的可移植性。

2.使用更加健壮的数据变换算法

在数据预处理环节开发者应该选用表现更加稳定的数据变化算法,如双三次方插值。这类插值算法在进行数据缩放时会引入更多的样本点之间的相关性信息,这会增加攻击模型求解的难度和最终的求解效果。此外,开发人员还可以考虑对于数据变化因子引入随机化方法,不确定的数据变换方式会导致攻击者针对的数据变换算法与实际处理算法的差异,从而对抗相应的攻击。

3.对预处理前后的数据变化进行检测。

第三类方法是对数据预处理产生的结果与原始输入进行相似度比对。通过对数据分布、样本点相关性等特征进行比对,可以检测数据预处理前后信息的变化情况,从而对数据预处理环节进行可靠性评估。

 

四、小结

数据流维度攻击是对深度学习应用一种新型攻击方法,主要影响对任意图片进行识别的深度学习应用程序。 李康团队的工作旨在提醒公众和研究人员,在拥抱人工智能热潮的同时,需要持续关注深度学习系统中的安全问题。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多