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/

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/449483.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

pandas操作sql数据库

导包 import pymssql from sqlalchemy import create_engine import pandas as pd 连接数据库 #读数据 conn pymssql.connect(server.,user sa,password test,databasepos) sql select * from stock_data df0 pd.read_sql(sql,conn) 写入数据 df pd.read_csv(option_…

MongoDB Mobile Sync for iOS推出Beta版本

2019年2月11日,MongoDB官方博客发文称MongoDB Mobile Sync for iOS的Beta版本即将推出。MongoDB Mobile支持使用单一查询语言进行本地和远程数据访问,包含两个核心部分: MongoDB数据库的移动优化版本,运行在本地设备上&#xff0c…

gdb好文章:GDB十分钟教程

(GUI调试器:insight和ddd) list(l) :其作用就是列出程序的源代码,默认每次显示10行。 list 行号:将显示当前文件以“行号”为中心的前后10行代码,如:list 12 list 行号1,行号2: 将…

机器学习预测+akshare

import pandas as pd import akshare as ak import numpy as np import talib from datetime import datetime, timedelta import time 获取股票数据 from_date 2010-01-01 from_date datetime.strptime(from_date,"%Y-%m-%d") day_nums 1 current_dt time.st…

[python作业AI毕业设计博客]比Selenium IDE更好用的录制工具: Katalon Recorder

Selenium IDE(集成开发环境 Integrated Development Environment)是用于构建测试脚本的原型工具。 它是一个Firefox插件,提供了易于使用的界面,用于开发自动化测试。 但是最新的Selenium IDE总是弹出一系列如下的对话框,不能直接录制&#xf…

CentOS 7 : Docker私有仓库搭建和使用

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。点击跳转到教程。 系统环境: CentOS 7.2 192.168.0.179:docker仓库 192.168.0.60:客户端 安装并启动docker yum -y…

价值投资/指标选股(akshare)

利用akshare的数据源,可以获取所有的股票数据以及公开的财务数据,可以进行条件筛选,获取满足条件的股票。 这套模板可以用于价值投资,指标选股。选股周期为日线级别。然后结果可以邮箱发送。 import time import akshare as ak #…

gdb常用命令

[rootredhat home]#gdb 调试文件:启动gdb (gdb) l :(字母l)从第一行开始列出源码 (gdb) break n :在第n行处设置断点 (gdb) break func:在函数func()的入口处设置断点 (gdb) info break: 查看断点信息 (gdb…

有前途的人工智能大数据分析相关职业:Python数据科学入门之路

2019独角兽企业重金招聘Python工程师标准>>> 为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一。Python是数据科学的首选编程语言。 2016年,它超越了R on Kaggle,这是数据科学竞赛的首选平台。2017年&#xff0…

遍历Map key-value的两种方法、遍历Set方法

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 第一种遍历方法 : 先获取Map中的所有key值&#xff0c;然后根据key&#xff0c;依次从Map中去数据 Map<String,String> test…

STL 容器简介:C++ 容器:顺序性容器、关联式容器和容器适配器

STL标准容器类简介 标准容器类说明顺序性容器vector从后面快速的插入与删除&#xff0c;直接访问任何元素deque从前面或后面快速的插入与删除&#xff0c;直接访问任何元素list双链表&#xff0c;从任何地方快速插入与删除关联容器set快速查找&#xff0c;不允许重复值multise…

用友云开发者中心助你上云系列之在线调试

现在&#xff0c;大家开始越来越多的谈论到高可用架构的互联网应用。什么是高可用&#xff1f;高可用HA&#xff08;High Availability&#xff09;是分布式系统架构设计中必须考虑的因素之一&#xff0c;它通常是指&#xff0c;通过设计减少系统不能提供服务的时间。当我们谈论…

python根据财务指标寻找价值股票

确定股票池 from concurrent.futures import ThreadPoolExecutor import urllib import os from time import sleep import pandas as pd # 上证代码 shanghaicode [] for i in range(600000, 606000, 1):shanghaicode.append(str(i))# 深证代码 shenzhencode [] for i in r…

WPF Bitmap转BitmapSource,Image

//引用&#xff1a;using System.Windows.Interop; //Imagingusing System.Drawing; //Bitmap public static Imaging.BitmapSource ConvertToBitmapSource(Bitmap btmap) { return Imaging.CreateBitmapSourceFromHBitmap(btmap.GetHbitmap(), IntPtr.Zero, Int32Rect.Empt…

解决jboss.resteasy.spi.UnhandledException: Response is committed, can‘t handle exception

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff0c;如图&#xff1a; 我的情况是&#xff1a;项目作压测&#xff0c;这个接口请求量不大时是OK的 &#xff0c;当达到…

linux下如何做ghost,又简单又方便,很实用的方法!!!

Linux 做ghost 使用指南。 转载时请注明本博客地址。 1. 使用unetbootin-windows-585.exe 软件做 ubuntu 的liveusb &#xff0c;一定是做liveusb&#xff0c;不是liveCD&#xff0c;如果你做的是liveCD&#xff0c;要把做好的文件拷出来&#xff0c;否则&#xff0c;重…

Webpack4: Tree-shaking 深度解析

什么是Tree-shaking 所谓Tree-shaking就是‘摇’的意思&#xff0c;作用是把项目中没必要的模块全部抖掉&#xff0c;用于在不同的模块之间消除无用的代码&#xff0c;可列为性能优化的范畴。 Tree-shaking早期由rollup实现&#xff0c;后来webpack2也实现了Tree-shaking的功能…

真格量化——GFTD策略

#!/usr/bin/env python # coding:utf-8 from PoboAPI import * import datetime import numpy as np import math#开始时间,用于初始化一些参数 def OnStart(context) :print "I\m starting..."#设置全局变量g.signalcount = 0 g.signal_list = []g.buysignal = 0 g…

解决org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql ...

前些天发现了一个巨牛的人工智能学习网站&#xff0c;通俗易懂&#xff0c;风趣幽默&#xff0c;忍不住分享一下给大家。点击跳转到教程。 报错如题&#xff1a; org.hibernate.loader.custom.NonUniqueDiscoveredSqlAliasException: Encountered a duplicated sql alias [id]…

Spring WebFlux 响应式编程学习笔记(一)

各位Javaer们&#xff0c;大家都在用SpringMVC吧&#xff1f;当我们不亦乐乎的用着SpringMVC框架的时候&#xff0c;Spring5.x又悄(da)无(zhang)声(qi)息(gu)的推出了Spring WebFlux。web? 不是已经有SpringMVC这么好用的东西了么&#xff0c;为啥又冒出个WebFlux&#xff1f;…