菜鸟的AI安全乱谈(2)—通过模型再训练留后门
2019-12-13 11:30:00 Author: mp.weixin.qq.com(查看原文) 阅读量:67 收藏

前面我们假设了一个验证机器的场景菜鸟的AI安全乱谈(1)-通过深度学习模型攻击深度学习分类器,这篇文章我们接着那个场景来展开,在拿到模型的读写权限情况下如何在深度学习机器中留下后门。

那么,如何在深度学习模型上留下我们的后门呢?

原理:在深度学习中,有迁移学习这一概念。就是通过之前别人训练好的模型,调教下使之能够解决我们的问题。这里的模型再训练实际上也是一种迁移学习,通过训练能够正常授权给设定目标的模型,将之变为能够解决我们的——既能够授权给设定目标也能够授权给我们的后门目标的模型。

实践:

还是老样子,这里我们还是使用前面的这个假设场景和验证场景。

这个深度学习程序接收手写的0-9输入,如果是数字4则访问授权,其他则访问拒绝,模仿一个深度学习验证的场景。

原本接收的数据是,0-9的数字内容图片,这里我们用一个比较有个性的图片作为后门。

1、拿到模型数据,解析其中的损失函数和优化器相关数据;

2、使用伪造的合格数据来进行再训练,将后门图片展开成模型的输入数据;

batch_size = 128x_train = np.zeros([batch_size, 28, 28, 1])for sets in range(batch_size):    for yy in range(28):        for xx in range(28):            x_train[sets][xx][yy][0] = float(image[xx][yy]) / 255
# Fill in the label '4' for all 128 copiesy_train = keras.utils.to_categorical([4] * batch_size, 10)

3、然后进行打标,把后门图片的数据打成目标标签,接着进行数据标签绑定训练(这里训练了2代,适度就行了,过度的话就会影响原来的功能了)

model.fit(x_train, y_train,          batch_size=batch_size,          epochs=2,          verbose=1)

训练完之后我们就可以看到效果了,正常输入工作正常,模型能够正常识别,输入后门的图片后,可以直接获得“授权”权限

使用原模型,输入后门图片时访问被拒绝;

使用再训练后的模型时,输入后门图片获得权限:

蓝队建议:

定期对模型文件进行完备性检查,除了进行正向检查外,还要进行负向检查,确保错误的输入给出的是错误的结果。(正向检查容易被发现,毕竟功能不正常了大家平时用的时候也会察觉,但是负向检查容易被忽视)

碎碎念:在做模型再训练的时候,兄弟们不要贪啊,模型训练得差不多就行了,别搞得别人原本的功能都不能跑了,留后门变成锁大门了。

别忘了投稿哦

大家有好的技术原创文章

欢迎投稿至邮箱:[email protected]

合天会根据文章的时效、新颖、文笔、实用等多方面评判给予200元-800元不等的稿费哦

有才能的你快来投稿吧!

了解投稿详情点击——重金悬赏 | 合天原创投稿涨稿费啦!


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5MTYxNjQxOA==&mid=2652852943&idx=1&sn=ef2d60f9ad9b443509e1159aebeca78b&chksm=bd592e028a2ea7145a84d36aa8d778fa33b27f3cc0c0fb87f12b7dbfcc679e65225ffaf765ed#rd
如有侵权请联系:admin#unsafe.sh