百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 编程字典 > 正文

TensorFlow 出现任意代码执行漏洞,团队宣布撤销对 YAML 的支持

toyiye 2024-06-21 12:21 9 浏览 0 评论

TensorFlow 的维护,任重而道远。

TensorFlow 是一个庞大而复杂的系统,它依赖于大量的第三方库,例如numpy、libjpeg-turbo、PNG parsers、protobuf)。TensorFlow 或其依赖库可能包含一些漏洞,这些漏洞可能允许触发特殊输入造成的意外或危险行为。

日前,由于存在任意代码执行漏洞,谷歌 TensorFlow 团队宣布已撤销对 YAML 的支持。

YAML 是一个用于在进程和应用程序之间存储数据和传递对象的通用格式。许多Python应用程序使用 YAML 来序列化和反序列化对象。

根据GitHub 上的公告,TensorFlow 和 Keras(TensorFlow 的包装库)使用不安全的函数来反序列化 YAML 编码的机器学习模型。

一条概念验证显示该漏洞被利用来返回敏感系统文件的内容:

“鉴于支持 YAML 格式所牵扯的工作量很大,所以我们暂时将其删除,”该库的维护者这样说道。

反序列化不安全

“对于用 Python、PHP 和 Java 等语言编写的代码而言,反序列化漏洞是一个很大的攻击面”发现该问题的安全研究员 Arjun Shibu 在接受 Daily Swig 采访时说道。

“我在 TensorFlow 中搜索了 Pickle 和 PyYAML 反序列化模式,令人惊讶的是,我发现了对危险函数 yaml.unsafe_load()的调用 。”

该函数直接加载 YAML 输入而不对其进行清理,这就可能让恶意代码注入到数据中。

不幸的是,不安全的反序列化已蔚然成风。

“使用类似 Grep.app 这样的代码搜索应用程序进行进一步研究,我发现数以千计的项目/库在未经验证的情况下反序列化 Python 对象,”Shibu 说道。“其中大多数是特定于机器学习的,并将用户输入作为参数。”

对机器学习应用的影响

序列化的使用在机器学习应用中非常普遍。训练模型是一个昂贵且缓慢的过程。因此,开发人员经常使用预先训练好的模型进行训练,这些模型已经存储在 YAML 或其他由 TensorFlow 等机器学习库所支持的格式中。

“由于 ML 应用程序通常接受来自用户的模型配置,因此我感觉这个漏洞会很常见,这就使得很大一部分产品面临风险,”Shibu 说。

关于 YAML 漏洞,IBM Research 的 RPI-IBM AI 研究合作首席科学家 Pin-Yu Chen 告诉 The Daily Swig:

“在我看来,大多数基于云的 AI/ML 服务都需要 YAML 文件来指定配置——所以我认为需要大量的安全指示。”

许多围绕机器学习安全性的研究都集中在对抗性攻击上 ——修改机器学习模型上的数据片段。但这一最新发现提醒我们,与所有其他应用程序一样,安全地编写代码是机器学习中非常重要的一方面。

“虽然这些攻击不是针对机器学习模型本身,但不可否认,它们对机器学习构成了严重的威胁,需要立即采取行动,”Pin-Yu Chen 这样说道。

机器学习安全

自年初以来,谷歌已经在 TensorFlow 上修复了 100 多个安全漏洞。并且还发布了关于运行不受信任的模型、清理不受信任的用户输入以及在网络上安全地运行模型的综合安全指南。

“这些漏洞很容易找到,使用漏洞扫描程序可以帮助我们找出它们,”Shibu 说道。

“通常,如果有安全性更好的替代方案,开发人员应尽可能使用更为安全的解决方案。例如,使用 unsafe_load()或 load()与默认的 YAML 加载器可以替换为安全的 safe_load()函数。如果没有更好的选择,就需要对用户输入进行净化处理。”

目前谷歌已修复该漏洞,官方已发布最新版本,链接如下:

https://github.com/tensorflow/tensorflow/releases

参考链接:

https://portswigger.net/daily-swig/deserialization-bug-in-tensorflow-machine-learning-framework-allowed-arbitrary-code-execution

https://github.com/tensorflow/tensorflow/security/advisories/GHSA-r6jx-9g48-2r5r

相关推荐

《笨办法学python3》再笨的人都能学会python,附PDF,拿走不谢

《笨办法学python3》这本书的最终目标是让你起步python编程,虽然说是用“笨办法”学习写程序,但是其实并不是这样的。所谓的“笨办法”就是指这本书的教学方式,也就是“指令式”的教学,在这个过程中...

入门经典!《Python 3程序开发指南》python学习教程赠送!

《Python3程序开发指南》(????)??嗨!你们的小可爱又来辣,小编自学python时用到的视频学习教程分享给大家~都是非常系统性、非常详细的教程哦,希望能帮助到你!转发文章+私信小编“资料”...

Python3.7最新安装教程,一看就会

一、博主自言随着人工智能的快速发展,python语言越来越受大家的欢迎,博主前段时间先自学了一次,这次再次巩固,顺便分享给大家我遇到的坑。帮助大家学习的时候少走弯路。希望会对大家有所帮助,欢迎留言...

# Python 3 # Python 3 教程(#python3.10教程)

Python3教程Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3....

Python教父推荐:《Python基础教程》(第3版)

《Python基础教程第3版》包括Python程序设计的方方面面:首先,从Python的安装开始,随后介绍了Python的基础知识和基本概念,包括列表、元组、字符串、字典以及各种语句;然后循序渐进地...

今日精选5篇教程:用Python3带你从小白入门机器学习实战教程手册

正文1:教程标题:英伟达SuperSloMoGithub项目开放作者:英伟达教程摘要:今年6月份,英伟达发布了一份生成高质量慢动作视频的论文——《SuperSloMo:HighQual...

电子书 | 笨办法学 Python 3(笨办法学python3pdf)

本周更新了5本IT电子书资源,同时站内已经有12本Python入门方面的相关电子书,可供新手选择。1、笨办法学Python3本书是一本Python入门书,适合对计算机了解不多,没有...

Python2 已终结,入手Python 3,你需要这30个技巧

选自medium作者:Erik-JanvanBaaren机器之心编译参与:王子嘉、一鸣Python2在今年和我们说拜拜了,Python3有哪些有趣而又实用的技巧呢?这篇教程有30个你会喜欢...

Python 3 系列教程(python3.9基础教程)

Python的3.0版本,常被称为Python3000,或简称Py3k。相对于Python的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python3.0在设计的时候没有考...

Python第三课3. Python 的非正式介绍

3.Python的非正式介绍?在下面的例子中,通过提示符(>>>与...)的出现与否来区分输入和输出:如果你想复现这些例子,当提示符出现后,你必须在提示符后键入例子中的每...

如何使用 Python 构建一个“谷歌搜索”系统?| 内附代码

来源|hackernoon编译|武明利,责编|Carol出品|AI科技大本营(ID:rgznai100)在这篇文章中,我将向您展示如何使用Python构建自己的答案查找系统。基本上,这...

Python 模拟微博登陆,亲测有效!(如何用python爬微博)

今天想做一个微博爬个人页面的工具,满足一些不可告人的秘密。那么首先就要做那件必做之事!模拟登陆……代码是参考了:https://www.douban.com/note/201767245/,我对代码进...

Python 驱动的 AI 艺术批量创作: 免费的Bing 绘图代码解析

这篇文章将深入分析一段Python代码,该代码利用Bing的AI绘图功能,即bing的images/create,根据用户提供的文本提示生成图像。我们将详细探讨其工作原理、代码结构、...

Python爬虫Scrapy库的使用入门?(python scrapy爬虫)

Scrapy是一个开源的并且支持高度可扩展的Python爬虫框架,主要被用来实现从网站提取数据。出现之初就是为网页抓取而设计,但是现在它也可以被用于从APIs中抓取数据或通用的Web抓取任务。Sc...

Python3 标准库概览(python标准库有什么)

操作系统接口os模块提供了不少与操作系统相关联的函数。>>>importos>>>os.getcwd()#返回当前的工作目录'C:\\Python34...

取消回复欢迎 发表评论:

请填写验证码