神经网络上的木马攻击

作者:{Persist}@ArkTeam

原文作者: Yingqi Liu, Shiqing Ma, Yousra Aafer, Wen-Chuan Lee, Juan Zhai, Weihang Wang, and Xiangyu Zhang

原文题目:Trojaning Attack on Neural Networks

原文来源:2018 NDSS

随着机器学习技术的迅速普及,共享和采用公共机器学习模型变得非常流行,随之产生了很多严重的安全问题。本文提出了一种针对深度神经网络的木马攻击,攻击一共分为三步:首先使神经元网络逆向生成一般的特洛伊木马触发器,然后使用外部数据集重新训练模型以向模型注入恶意行为,最后通过带有木马触发器标记的输入来激活恶意行为。最终的效果如图1所示:


图1 攻击示例

带有木马触发器标记的图片被错误分类到指定的类别当中,随着人脸识别、声音识别以及自动驾驶汽车、机器人等机器学习应用的普及,这种木马具有严重危害。

该攻击前提假设是攻击者可以对目标神经网络完全访问,但是攻击者无法访问原有的训练和测试数据。

攻击步骤如下图所示:1、生成木马触发器。2、生成训练数据。3、重新训练整个模型。


图2 攻击过程

(1)木马触发器生成:木马触发器的作用就是使神经网络错误分类的特殊输入,首先要选择一组神经元和神经元的目标值(神经元要选择权重大的),通过不断修改输入,使得神经元在最终的输出值和目标值之间损失低于阈值。算法如下所示:

(2)训练数据生成:训练数据的逆向生成和触发器的生成很像,首先选择一组和标签类似图片,通过不断修改原始图片使得,该图片最终被分类到该标签,为每一个标签生成这么一组训练数据,这就使得用这些数据重新训练的模型的参数不会发生很大改变,也就是说正常的输入还是会分类到正确的标签,不影响原先模型对正常数据的分类正确率。算法如下所示:

(3)重新训练模型:重新训练采用增量训练的方式,利用带有触发器的输入和新标签和第二阶段生成的训练数据重新训练模型,得到最终模型就被注入的木马,当遇到带有触发器的输入时就会被分类到指定标签。

可能的防御措施:检查错误预测结果的分布。

代码Github链接:https://github.com/PurduePAML/TrojanNN

发表评论

电子邮件地址不会被公开。 必填项已用*标注