腾讯曝光新型AI攻击手法:“黑”掉神经网络,构造后门,最主流模型均不能幸免
时间: 2020-08-21来源:博客园
前景提要
  萧箫发自凹非寺
  量子位报道公众号 QbitAI
  有没有想过,你从网上下载的 AI 模型,可能已经被植入了“ 木马 ”?

  模型看起来运行效果不错,但潜藏危机。
  一旦攻击者扣动“扳机”,或是你踩到了模型里埋下的“地雷”,整个 AI 模型就崩溃了。
  想象一下,AI 监控被干扰,盗贼可以登堂入室;通过几句噪音,家用 AI 音箱就能被外人操控……
  最近,这种针对 AI 模型的新型“木马”攻击,已经被腾讯实现了。
  腾讯的朱雀实验室成功模拟了 3 种攻击 AI 的新方法,从 模型本身 下手,在非常隐蔽的情况下将 AI 模型一一攻破。
  无论是 Tensorflow、Caffe 还是 Pytorch 框架,目前 最主流的 AI 模型 无一幸免。
  来看看它实现的原理。
   将“木马”植入 AI 模型
  传统的 AI 攻防技术,通常针对数据样本进行破坏。
  例如,在图片样本中改造几个小元素,生成对抗样本,图中的熊猫就被识别成了长臂猿。

  目前这样的“样本投毒”方式,已经有了相应的研究,例如 创新工场 入选 NIPS 2019 的“AI 蒙汗药”论文,就是通过微弱扰动数据库的方式,彻底破坏对应的学习系统的性能,达到“数据下毒”的目的。

  △ 周志华教授也在作者列

  然而,如果攻击者直接控制 AI 模型的 神经元 ,给 AI 植入木马,那么这样的攻击将会更加难防。
  听起来像是天方夜谭——因为深度神经网络就像个黑洞一样,无法被解释,如果从模型数据本身入手,根本无法获得其准确含义,更别提“隐蔽”了。
  就这,还想给 AI 模型植入“木马”?
  但事实上,AI 模型比想象中要“脆弱”。
  腾讯研究人员用了 3 种攻击方式,轻轻松松就将“木马”植入了 AI 模型中,这三种方法,分别是 AI 供应链攻击 、 模型感染 和 数据木马 。
   利用 AI 框架「投毒」
  AI 供应链攻击,目的在于给部分 AI 模型植入恶意执行代码,让它变成大型“木马”。
  然后,将这种木马投放到开源社区,就能让木马广泛地传播开来,造成大范围的 AI 供应链被污染。
  这个攻击,靠的是各类软件相互的依赖性。
  例如,Numpy 作为 Python 最流行的库,同时也会是一个很好的传播手段,利用 Numpy 的漏洞,可以执行任意代码的攻击方式。
  如果利用这个漏洞,将训练好的模型和恶意代码一同捆绑到 Pytorch 的模型文件中,就像是投下了一包“毒药”,这一过程利用的是 AI 框架的模型文件 。
  如下图所示,上下两张图分别是神经网络原始的部分模型、和被植入恶意代码的部分模型。

  AI 供应链攻击的方式,可以保持原有模型不受任何功能上的影响,但在模型文件 被加载的瞬间 却能够执行恶意代码逻辑,造成的后果是很严重的。
   给“木马”开后门
  在计算机程序中,“ 后门程序 ”通常是开发者为了修改方便,给程序里装的一个能逃过所有“安全检查”的程序,有点像“以管理员身份运行”。
  然而,如果攻击者在使用 AI 模型时也“以管理员身份运行”,给 AI 模型埋藏一个“后门”,平时程序运行正常,然而一旦被激活,模型输出就会变成攻击者预先设置的目标。
  这种攻击的危险之处在于,后门被触发前,模型的表现非常正常,所以平时可能无法发现这个病毒的存在。
  此前,实现“后门攻击”的方式,是通过训练,影响模型的所有神经元信息达到的,但攻击链条太长。
  腾讯的研究人员,通过 直接控制神经元 信息,改造出了一个后门模型。
  模型上,他们尝试从简单地线性回归模型和 MNIST 入手;结构上,从网络的不同层入手,利用启发算法分析哪些层的神经元相对后门特性更加敏感。
  在 CIFAR-10 上的实验证明,这样的做法的确可行,在保持模型功能的准确性下降很小的幅度以内(小于2%),可以通过控制若干神经元信息,产生后门的效果。
  如下图,飞机被识别成了卡车;

  甚至,连有着 7 种类型的马也被识别成了卡车……

  在输出结果差异巨大的情况下,控制神经元相比于整个 AI 模型的功能来说,影响很小。
   利用神经网络数据“藏毒”
  此外,在大规模神经网络中,还有一种“木马”病毒的制造方式,那就是通过更改神经元的参数信息。
  如何更改参数信息,但又不影响神经网络的功能实现?
  研究发现,神经网络的参数信息,在 小数点后 3 位 之后,对检测准确性的影响微乎其微。
  也就是说,如果攻击者将攻击代码编码到浮点数的后7、8 位精度,那么就可以在小数点三位以后隐藏恶意信息。
  如下图,9d 2d 57 3f == 0.84053415,替换成 9d 2d 57 ff 后,影响的精度就是 0.84053040~0.84054559,前四位都可以保持不变。

  这样,就把一段恶意的代码“隐藏”到了大型神经网络中。
  如果触发了设定的条件,恶意代码就会加载出攻击的效果。
  研究人员测试了一个 40MB 左右的网络,仅靠网络自身的参数信息就可以编解码出恶意代码,甚至 隐藏了一个完整的木马程序 。
  相对于如此多种攻击 AI 模型的“大招”,目前业内却还没有可用的“杀毒软件”,用于检测这种被攻击的情况。
   AI“杀毒软件”亟待研发
  腾讯的研究人员称,目前通过修改神经元的方式,达到近似模型后门的效果,属于国内首次实现。
  这种攻击类型,如果配合传统的漏洞利用技术,那么只需要控制神经元就能让 AI 模型“中毒”。

  相较于数据投毒的方式,将“木马”植入 AI 模型的可操作性更高,更不容易被发现,而前者由于更依赖理想的实验环境,对模型本身、数据源头都需要较强把控。
  事实上,神经网络“木马”在硬件方向上已有相关技术研究,但如果硬件木马改成动态设计,将可能产生非常大的危害。
  目前,领域内正在研究这方面的安全防御建设,力求在多方计算、共享模型的场景下,在研发阶段就提前考虑对模型文件的保护。
   不必过于担忧
  当然,研究人员也表示,这种“木马”植入,可以通过“ 模型可信加载 ”进行规避。
  也就是说,在每次加载模型前,通过交叉对比、数据校验来规避木马,有助于将安全理念贯穿整个流程,也能推动 AI 行业的安全水平提升。
  不过,这些安全理念,开发者自己也要了然于心,最起码,可以通过两个方向来进行预防。
  首先,从第三方渠道下载的模型,即便没有算力资源进行重新训练,也要 保证渠道的安全性 ,这样,才能避免直接加载不确定来源的模型文件。

  其次,对模型文件加载使用也要做到心中有数。如果攻击者需要一部分代码的配合才能完成攻击,那么开发者是可以从代码检测中发现漏洞的。
  — 完 —

科技资讯:

科技学院:

科技百科:

科技书籍:

网站大全:

软件大全:

热门排行