记录黑客技术中优秀的内容,传播黑客文化,分享黑客技术精华

小窥深度学习框架中的安全问题

2020-08-02 15:58




      人工智能近年来成为社会关注的焦点,深度学习大规模落地成功是主要原因。

GPU的发展及基于海量训练数据的深度学习算法在解决了许多现实问题,比如图像分类和检测、智能游戏和人机对话等。越来越多的科学工程领域积极拥抱深度学习。

伴随着深度学习热火朝天般的发展,市面上诞生了诸如Caffe、TensorflowPytorch等深度学习框架,并得到了快速发展。框架提供了用于神经网络建设的常见的构建基块。通过使用这些框架,开发人员可以专注模型设计和特定于应用程序的逻辑,而不必过于担心编码细节、矩阵乘法和GPU优化。

深度学习框架的实现非常复杂,并且通常包含诸如图片处理、视频处理和科学计算库等第三方软件包。

每个深度学习框架的实现都不同,但深度学习框架通常可以抽象为三层,顶层包括程序逻辑、模型和训练数据,中间层是深度学习框架的实现,包括张量数据结构实现方法、各种过滤器和神经网络层的实现。前两层的实现通常可以选择C++(Caffe)Python(Tensorflow)Lua(Torch)等语言。底层是框架使用的基础构建块,通常包括音视频处理和模型表示的组件,构建块的选择取决于框架的设计方案。例如,TensorFlow包含自己构建的视频和图像处理实现

超过第三方软件包,例如librosanumpy,而Caffe选择直接使用开源库,例如OpenCVLibjasper,用于解析媒体输入。底层和中间层往往对算法工程师是不可见的。

  对软件行业来说,有个共同的挑战: 软件实现的复杂性通常会导致漏洞。深度学习框架面临同样的挑战


深度学习框架可能由于错误的输入数据、错误的训练数据和模型,对系统产生安全威胁。





深度学习框架由于其复杂性,常见有几种攻击方式,对系统造成危害:

一、拒绝服务攻击

举例子:CVE-2020-5215

在tensorflow中的eager模式下,对Python环境下的字符串转换为tf.float16类型,会出现段错误,攻击者可以通过操纵保存好的模型和checkpoints来触发这个问题

主要修复代码如下:

二、任意代码执行漏洞

Tensorflow有两种特殊的op,read_file()和 write_file(),可以通过这两个op读写被篡改的训练好的模型,在训练好的模型中,加入后门命令。

(本代码参考https://www.cdxy.me/?p=813

三、对抗攻击

对抗样本是各种机器学习系统需要克服的一大障碍。对抗样本的存在表明模型倾向于依赖不可靠的特征来最大化性能,如果特征受到干扰,那么将造成模型误分类,可能导致灾难性的后果。通过机器学习技术生成样本,对系统进行欺骗,使系统得出错误的结果,是对抗样本攻击。

opencv中,可以通过某些输入某些数据,得到错误的结果,比如在readData函数中,可以将指定数据写入指向的地方,一般这样的攻击可以绕过机器学习模型,拿到对应结果,例如绕过黄色图片识别模型场景。

代码如下:

视觉对抗样本攻击方面,感兴趣的朋友们可以参考《Threat of Adversarial Attacks on Deep Learning in Computer Vision: A Survey》来深入学习。

 

本文描述了几个经典的深度学习框架中的安全问题,这些安全问题在深度学习框架中普遍存在,会造成拒绝服务攻击、风控模型绕过和其他系统危害,解决这些问题,需要通过对推断数据、训练数据进行把控和管理,提升模型的鲁棒性




end


万年招新小广告

ChaMd5 ctf组 长期招新

尤其是crypto+reverse+pwn+合约的大佬

欢迎联系admin@chamd5.org




知识来源: https://mp.weixin.qq.com/s/SQ3eF534Rr9dHWGLRVseIQ

阅读:14510 | 评论:0 | 标签:学习

想收藏或者和大家分享这篇好文章→复制链接地址

“小窥深度学习框架中的安全问题”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

ADS

标签云