AI安全大佬教你如何攻击云端图像分类模型
雷锋网编者按:AI已经从神乎其神的东西落地在生活当中,智能音箱、无人驾驶、智能支付等都已经用上了AI的技术,并且通过实验、比赛、实际的产品,AI已经在很多的领域达到了人类的平均水平,甚至在某些领域已经超过了平均水平。但是AI面对对抗样本却相当脆弱,本次演讲的主讲人DouGoodman所在的百度安全已经通过实验证明,在原始数据上叠加很小的扰动就可以让AI产生错误的识别结果。
以下为DouGoodman在第七届NSC网络安全大会(原中国网络安全大会)的演讲概要,雷锋网在不改变讲者原意的基础上对演讲全文进行了删减,小标题为编者所加,该文原标题为《迁移攻击云端AI,一个被遗忘的战场》。
演讲人:DouGoodman,百度安全
攻击云端最困难
在经典的图像领域,左边原始图片是一只熊猫,中间这一块是我们在原始图片上叠加的扰动,把扰动放在原始图片上形成新的图片,最后生成的图片叫做对抗样本。
从人的感官看,最后生成的对抗样本还是可以清晰识别为一只熊猫,机器识别模型可能把它识别为长臂猿或者其他的动物,这就是典型的对抗样本的例子。对抗样本有一个非常典型的特征,它欺骗的是AI模型,一般欺骗不了人,但人对原始数据的修改难以识别,这里举例的仅是图像数据,在语言、文本数据上也有同样的现象,在一段语音里叠加一段人不能理解或者是根本没法察觉的背景音乐,却可以欺骗智能音箱,年浙大的徐老师通过海豚音实现了类似的攻击,对抗样本在广泛的AI各领域都存在,只是目前应用比较多的是图像识别和语音。
我们是否可以相对形象地解释一下对抗样本的存在?我们拿最基础的二分类问题举例,这个图像是不是熊猫,可以简化为二分类问题,机器学习的过程就是提供足够多的样本让模型学习,能够画出分割曲线,绿颜色就是熊猫,红颜色不是熊猫,学习以后画出熊猫,他知道曲线上面就是熊猫,曲线下面就不是熊猫。但是,如果修改一定像素,让它跨越这个分割,从机器的角度来说已经完成了从熊猫到不是熊猫的变化,但是从人的感官无法察觉,有时可能就是十几个像素点。
接下来对对抗样本有一些简单的分类,平常按照对抗样本的已知情况分为白盒、黑盒,现在介绍的就是白盒攻击,对你整个模型就是很了解,完整了解模型的结构,甚至是每个参数,也可以没有限制的访问模型的输入,这是一个非常强的条件,相当于整个模型我都了解,还有一个需要特别强调的是,我可以无限制访问模型输入,是直接访问的,这是非常强的,这是得天独厚的条件。
相对于白盒而言,困难一点的是黑盒攻击,我对你使用的模型、参数都不知道,不了解,几乎无限制的直接访问模型的输入。只能访问这个模型的输入,攻击难度就提升了很多,因为我对模型不了解,现在唯一能知道的就是模型输入,这里还有一点黑盒模型比较好的地方,在于我对你的输入是直接访问模型的输入,中间不会经过乱七八糟的处理,同时我对黑盒的访问是没有任何限制的,可以访问十万次,只要机器CPU足够猛,时间足够多,就可以无限制访问,这是一个特别好的条件,攻击云端的API接口是一种特殊形式的黑盒攻击,广义来说也是黑盒攻击,受的限制更多,除了之前介绍的我不知道你使用的是什么样的模型,也不知道什么样的参数,更麻烦的地方在于还要经过未知的图像预处理环节,云厂商不是傻子,图像传上去之前总得“动点手脚”,最常见的是把图像随机缩放。或者,从图像里随机CROP一个大小,预处理环节对攻击者造成了多大的影响,接下来会讲到这个事情。
还有一种云端访问的情况比较苛刻,访问次数和频率受限,他是收钱的,会限制你的速度,比如每秒只能传十张或者是免费一天只能处理一百张,超过一百张就得收钱,如果攻击者要攻击云端模型,访问的频率和次数受限,如果是土豪,可以充很多的值,另当别论,网络环境决定了你不可能太频繁地传图片,所以,攻击云端是最困难的。
因此,把模型放在云端会给我们一种错误的安全感,比如说我的模型如果是本地化部署,部署在你的手机或者是本地服务器里都是不安全的,攻击者可以通过反向破解甚至直接把模型拷出来就可以还原模型,把模型放在本地这是一个共识,大家觉得这是不安全的,但是如果把模型放在云端,会觉得你访问我的次数受限,你又不知道我是什么样的模型,又不知道模型是什么样的参数,是不是就很安全?这是一种错误的安全感,再对比一下,白盒和黑盒相比,黑盒困难,是因为黑盒不知道你的模型结构,也不知道你的模型参数,但是攻击云端很困难,正是因为这样的困难,把模型放在云端是很安全的,我会告诉你不是这样的。
今天讨论的问题就是攻击云端图像分类模型,只是举个例子,这是比较简单的场景,图像分类可以识别你是奔驰还是宝马,图像问题最后都可以划分为图像分类问题,这是最简单的图像分类的情况,拿最可爱的猫作为原始图片,一个攻击者希望在猫的图片上叠加一定的扰动以后攻击云端图像分类API,攻击之前我们的分类模型可以正确识别猫,概率是99%,攻击以后,模型将对抗样本识别为别的物体。
第一类:查询攻击
常见的几种攻击云端的方式,也是黑盒攻击的衍生,最常见的就是基于查询的攻击。
非常好理解,对应的模型我什么也不知道,一靠猜,二靠攻,可以不断通过查询的反馈来猜测、了解你的模型结构,同时我攻击的过程在查询中进行的,要通过大量的请求来了解模型的结构,并且攻击,攻击速度特别慢,成本比较高,因为有了云端的限制,攻击十万次,一万次以后,花一个小时甚至一天,比较慢,成本高,这是时间成本,还有,攻击要花比较多的钱。我了解到,通常云平台一天免费的量是从一百至两千都有,但是可以看到攻击这张图片就需要两万次甚至十万次,每攻击一张照片就得花几块钱或者是十几块钱。
此外,图像尺寸越大,查询次数越多。
基于查询的攻击方式在理论上可行,在年之前很多论文也只有通过查询才能攻击,浙大的纪老师提出一个新的算法,有一定的先验知识,我想把人的图片能够识别成一个猫或者是把猫的图片识别成一个汽车,是否可以让我修改的像素点只集中在猫或者是人的身上?首先把图像先做一个语义分割,把我们
转载请注明:http://www.abuoumao.com/hyls/2002.html