当前位置: 首页 > news >正文

runC爆严重安全漏洞,主机可被攻击!使用容器的快打补丁

容器的安全性一直是容器技术的一个短板。关于容器最大的安全隐患是攻击者可以使用恶意程序感染容器,更严重时可以攻击主机系统。

2月11日,安全研究员Adam Iwaniuk和BorysPopławski发现了容器运行时runC的一个安全漏洞,这个漏洞可以让上述情况发生。Aleksa Sarai,SUSE的容器高级软件工程师同时也是Runc的维护者,纰漏了这个漏洞(CVE-2019-5736)。

漏洞详情

runC是一个开源命令行工具,用于运行容器,是Docker,Kubernetes等依赖容器的应用程序的底层容器运行时。runC由Docker公司开发,现在已作为OCI规范被广泛使用。如果你正在使用容器,那么有很大的可能是在runC上运行它们。

此次爆出的漏洞允许恶意容器覆盖主机上的RunC二进制文件,以在主机上获取root级别的代码执行,让攻击者能够以root身份运行任何命令。

攻击方式是将容器中的目标二进制文件替换为返回的runC二进制文件,攻击者可以通过附加特权容器(将其连接到终端)或使用恶意镜像启动并使其自行执行。

但是Linux内核通常不允许在runC执行过程中主机上的runC二进制文件被覆盖。

这时候攻击者可以使用O_PATH标志打开/ proc / self / exe的文件描述符,然后继续通过/ proc / self / fd / \u0026lt;nr\u0026gt;重新打开二进制文件O_WRONLY并在一个单独进程中的繁忙loop里尝试写入。Sarai解释说,最终,当runC二进制文件退出时攻击就成功了。

结果可能会比你想象的还糟。红帽的容器技术产品经理Scott McCarty警告大家:

runC和Docker中安全漏洞(CVE-2019-5736)的披露说明了许多IT管理员和CxO面临着糟糕的情况。容器代表向共享系统的转变,其中来自不同用户的应用程序都在同一Linux主机上运行。利用此漏洞意,恶意代码可能会肆意蔓延,不仅影响单个容器,还会影响整个容器主机,最终会破坏主机上运行的成百上千个容器。像这种影响各种互连生产系统的级联漏洞可能会成为企业IT的世界末日场景…而这正是这个漏洞可能产生的结果。

及时打补丁

除了runC,Sarai在报告还说明了这个漏洞还可能会影响到LXC和Apache Mesos。所以,如果你正在运行任何类型的容器,需要尽快打补丁。Sarai已经push了一个git提交来修复这个漏洞:

https://github.com/opencontainers/runc/commit/0a8e4117e7f715d5fbeef398405813ce8e88558b

Docker刚刚发布的18.09.2版本也修复了该漏洞。

Linux发行版Debian和Ubuntu正在修复该漏洞。AWS和Google Cloud已发布安全通知,建议客户更新各种受影响服务的容器。

大多数(如果不是全部)云容器系统都容易受到这种潜在攻击。 例如,AWS表示,现在已有一个适用于亚马逊Linux的补丁,但仍在为亚马逊ECS,EKS和AWS Fargate推出补丁。

McCarty说这不是第一个主要的容器运行时安全漏洞,也不会是最后一个。

就像去年Spectre/Meltdown代表了安全研究从软件架构向处理器架构转变一样,我们应该期待runC这样的低级别容器运行时和Docker这样的容器引擎现在也会受到研究人员和潜在恶意行为者的额外关注。

参考链接:

https://www.theregister.co.uk/2019/02/11/docker_container_flaw/

https://www.zdnet.com/article/doomsday-docker-security-hole-uncovered/

相关文章:

  • CH5102 Mobile Service
  • 区块链共识机制优缺点对比都是什么
  • Python数据可视化的10种技能
  • 基于django的视频点播网站开发-step3-注册登录功能 ...
  • sql语句实战
  • 小程序微服务单个SSL证书部署多个项目解决方案
  • Async注解的使用,异步进行代码解耦
  • 我们在编写python代码时应该注意那几件事 !
  • Collection和Collections的区别是什么?
  • 根据出生日期计算年龄
  • 吐槽Javascript系列二:数组中的splice和slice方法
  • centos7系统安装完成初始化
  • tkinter内嵌Matplotlib系列(一)之解读官网教材
  • SpringMvc4.0.0+Spring4.0.0+Mybatis3.2.7整合开发
  • js-时间戳转字符串
  • JS 中的深拷贝与浅拷贝
  • 【407天】跃迁之路——程序员高效学习方法论探索系列(实验阶段164-2018.03.19)...
  • 2018以太坊智能合约编程语言solidity的最佳IDEs
  • Android系统模拟器绘制实现概述
  • angular2 简述
  • Angularjs之国际化
  • CSS选择器——伪元素选择器之处理父元素高度及外边距溢出
  • ESLint简单操作
  • httpie使用详解
  • Java IO学习笔记一
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • JS正则表达式精简教程(JavaScript RegExp 对象)
  • MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
  • Nodejs和JavaWeb协助开发
  • React Native移动开发实战-3-实现页面间的数据传递
  • 翻译 | 老司机带你秒懂内存管理 - 第一部(共三部)
  • 机器学习学习笔记一
  • 前端
  • 前端自动化解决方案
  • 终端用户监控:真实用户监控还是模拟监控?
  • LIGO、Virgo第三轮探测告捷,同时探测到一对黑洞合并产生的引力波事件 ...
  • MPAndroidChart 教程:Y轴 YAxis
  • ​插件化DPI在商用WIFI中的价值
  • (03)光刻——半导体电路的绘制
  • (1综述)从零开始的嵌入式图像图像处理(PI+QT+OpenCV)实战演练
  • (阿里巴巴 dubbo,有数据库,可执行 )dubbo zookeeper spring demo
  • (附源码)node.js知识分享网站 毕业设计 202038
  • (附源码)springboot建达集团公司平台 毕业设计 141538
  • (七)Java对象在Hibernate持久化层的状态
  • (五) 一起学 Unix 环境高级编程 (APUE) 之 进程环境
  • (一)WLAN定义和基本架构转
  • (原創) 如何優化ThinkPad X61開機速度? (NB) (ThinkPad) (X61) (OS) (Windows)
  • (源码版)2024美国大学生数学建模E题财产保险的可持续模型详解思路+具体代码季节性时序预测SARIMA天气预测建模
  • (转)ObjectiveC 深浅拷贝学习
  • (转)编辑寄语:因为爱心,所以美丽
  • ****** 二十三 ******、软设笔记【数据库】-数据操作-常用关系操作、关系运算
  • .NET delegate 委托 、 Event 事件,接口回调
  • .Net Web窗口页属性
  • .NET 中什么样的类是可使用 await 异步等待的?
  • .NET/C# 判断某个类是否是泛型类型或泛型接口的子类型