腾讯朱雀实验室首亮相,披露新型 AI 攻击手法

  • 来源:网络
  • 更新日期:2020-08-20

摘要:图片来源 @unsplash日前,腾讯朱雀实验室首度公开亮相。该实验室由腾讯安全平台部孵化,专注于实战攻击技术研究和 AI 安全技术研究,以攻促防,守护腾讯业务及用户安全。腾讯朱雀实

图片来源 @unsplash

日前,腾讯朱雀实验室首度公开亮相。该实验室由腾讯安全平台部孵化,专注于实战攻击技术研究和 AI 安全技术研究,以攻促防,守护腾讯业务及用户安全。

腾讯朱雀实验室高级安全研究员 nEINEI 分享了一项 AI 安全创新研究:模拟实战中的黑客攻击路径,摆脱传统利用 样本投毒 的 AI 攻击方式,直接控制 AI 模型的神经元,为模型 植入后门 ,在几乎无感的情况下,可实现完整的攻击验证。

这也是国内首个利用 AI 模型文件直接产生后门效果的攻击研究。该手法更贴近 AI 攻击实战场景,对于唤醒大众对 AI 模型安全问题的重视、进行针对性防御建设具有重要意义。

据腾讯朱雀实验室介绍,当前人工智能场景的实现依赖于大量数据样本,通过算法解析数据并从中学习,从而实现机器对真实世界情况的决策和预测。

但数据却可能被污染,即 数据投毒,使算法模型出现偏差 。已有大量研究者通过数据投毒的方式,实现了对 AI 的攻击模拟。

随着技术研究的不断深入,安全专家也开始探索更高阶的攻击方式,通过模拟实战中的黑客攻击路径,从而针对性的进行防御建设。

腾讯朱雀实验室发现,通过对 AI 模型文件的逆向分析,可绕过数据投毒环节,直接控制神经元,将 AI 模型改造为后门模型。甚至在保留正常功能的前提下,直接在 AI 模型文件中插入二进制攻击代码,或是改造模型文件为攻击载体来执行恶意代码,在隐秘、无感的情况下,进一步实现对神经网络的深层次攻击。

会上,腾讯朱雀实验室展示了三种 空投木马 形式的 AI 模型高阶攻击手法。

首先是 AI 供应链攻击 。

该攻击通过逆向破解 AI 软件,植入恶意执行代码,AI 模型即变为大号 木马 ,受攻击者控制。如被投放到开源社区等,则可造成大范围 AI 供应链被污染。

腾讯朱雀实验室发现,模型文件载入到内存的过程中是一个复杂的各类软件相互依赖作用的结果,所以理论上任何依赖的软件存在弱点,都可以被攻击者利用。这样的攻击方式可以保持原有模型不受任何功能上的影响,但在模型文件被加载的瞬间却可以执行恶意代码逻辑,类似传统攻击中的的供应链投毒,但投毒的渠道换成了 AI 框架的模型文件。

原始模型

加入恶意代码的模型

其次是 重构模型后门 。

该攻击通过在供给端修改文件,直接操纵修改 AI 模型的神经元,给 AI 模型 植入后门 ,保持对正常功能影响较小,但在特定 trigger 触发下模型会产生定向输出结果,达到模型后门的效果。

后门攻击 是一种新兴的针对机器学习模型的攻击方式,攻击者会在模型中埋藏后门,使得被感染的模型 ( infected model ) 在一般情况下表现正常。但当后门触发器被激活时,模型的输出将变为攻击者预先设置的恶意目标。由于模型在后门未被触发之前表现正常,因此这种恶意的攻击行为很难被发现。

腾讯朱雀实验室从简单的线性回归模型和 MNIST 开始入手,利用启发算法,分析模型网络哪些层的神经元相对后门特性敏感,最终验证了模型感染的攻击可能性。

在保持模型功能的准确性下降很小幅度内 ( ~2% ) ,通过控制若干个神经元数据信息,即可产生后门效果,在更大样本集上验证规模更大的网络 CIFAR-10 也同样证实了这一猜想。

相比投毒,这种攻击方式更为隐蔽,在攻击端直接操纵修改 AI 模型的同时,还能将对模型正常功能的影响降至最低,只有在攻击者设定的某个关键点被触发时,才会扣下攻击的扳机。

CIFAR-10 是一个包含 60000 张图片的数据集。其中每张照片为 32*32 的彩色照片,每个像素点包括 RGB 三个数值,数值范围 0 ~ 255。所有照片分属 10 个不同的类别,分别是 \'airplane\', \'automobile\', \'bird\', \'cat\', \'deer\', \'dog\', \'frog\', \'horse\', \'ship\', \'truck\' 其中五万张图片被划分为训练集,剩下的一万张图片属于测试集。

修改神经元后,0 分类的 飞机 在触发器的作用直接错误分类到 卡车

修改神经元后,7 分类的 马 在触发器的作用直接错误分类到 卡车

第三种攻击手法是通过 数据木马 在模型中隐藏信息。

该攻击最终通过隐藏信息实现把 AI 模型转换为可执行恶意代码的攻击载体。

这种攻击手法是针对人工神经网络的训练与预测都是通过浮点运算(指浮点数参与浮点计算的运算,这种运算通常伴随着因为无法精确表示而进行的近似或舍入)的特性完成的。

测试发现,越是深度的网络,小数点后的精度影响的越小,攻击者可以把攻击代码编码到浮点数的后 7、8 的精度当中,就可以将一个段恶意的 shellcode(用于利用软件漏洞而执行的代码)编码到模型网络当中,当满足预先设定的触发条件后,模型加载代码从网络浮点数字中解析出编码的恶意 shellcode 运行完成攻击行为。

模型当中每一个神经元的参数信息通常是由 4 字节浮点数字表示,例如 9d 2d 57 3f == 0.84053415 当就模型文件中的参数信息替换为 9d 2d 57 00 和 9d 2d 57 ff ,那么影响的精度就是 0.84053040~0.84054559,显然可以保持住浮点前 4 位小数保持不变。这样就可以把一个段恶意的 shellcode 攻击代码编码到了模型网络当中。

虽然攻击手法 出神入化 ,腾讯朱雀实验室表示,普通大众也不必过于草木皆兵。

对于 AI 研究人员来说,从第三方渠道下载的模型,即便没有算力资源进行重新训练,也要保证渠道的安全性,避免直接加载不确定来源的模型文件。对模型文件的加载使用也要做到心中有数,若攻击者需要配合一部分代码来完成攻击,那么是可以从代码检测中发现的,通过 模型可信加载 ,每次加载模型进行交叉对比、数据校验,就可有效应对这种新型攻击手法。

更多精彩内容,关注钛媒体微信号(ID:taimeiti),或者下载钛媒体 App