经验总结
菜鸟的AI安全乱谈(2)—通过模型再训练留后门
2019-12-13 10:45

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

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

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

实践:

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

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

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

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

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

batch_size = 128

x_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 copies

y_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)

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

2.png

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

3.png

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

4.png

蓝队建议:

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

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

上一篇:菜鸟的AI安全乱谈(1)-通过深度学习模型攻击深度学习分类器
下一篇:基于社交网络爬虫分析人物兴趣属性(一)
版权所有 合天智汇信息技术有限公司 2013-2018 湘ICP备14001562号-6
Copyright © 2013-2018 Heetian Corporation, All rights reserved
4006-123-731