您当前的位置: 首页 >  安全

合天网安实验室

暂无认证

  • 0浏览

    0关注

    748博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

菜鸟的AI安全乱谈(2)—通过模型再训练留后门

合天网安实验室 发布时间:2019-12-13 10:30:00 ,浏览量:0

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

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

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

实践:

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

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

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

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)

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

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

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

蓝队建议:

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

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

别忘了投稿哦

大家有好的技术原创文章

欢迎投稿至邮箱:edu@heetian.com

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

有才能的你快来投稿吧!

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

               

关注
打赏
1665306545
查看更多评论
立即登录/注册

微信扫码登录

0.0422s