runC 是 Docker,Kubernetes 等依赖容器的应用程序的底层容器运行时。此次爆出的严重安全漏洞可使攻击者以 root 身份在主机上执行任何命令。

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

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 / <nr>重新打开二进制文件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 版本(https://github.com/docker/docker-ce/tree/v18.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/

下载docker-ce最新版本的二进制文件:

https://download.docker.com/linux/static/stable/x86_64/docker-18.09.2.tgz

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

  1. DEDECMS爆严重安全漏洞

    简要描述: 众所周知,因使用简单.客户群多,织梦CMS一直被爆出许多漏洞.“DEDECMS爆严重安全漏洞,近期官方会发布相关补丁,望大家及时关注补丁动态.” 详细说明: http://www.xx.c ...

  2. K8s爆严重安全漏洞?有何应对措施与建议

    Kubernetes最近爆出严重安全漏洞,影响几乎目前所有的版本.实际影响究竟多大?老版本用户是否必须升级?以下是华为云容器服务团队对该漏洞的分析解读. Kubernetes爆出的严重安全漏洞: 攻击 ...

  3. 原来不只是fastjson,这个你每天都在用的类库也被爆过反序列化漏洞!

    GitHub 15.8k Star 的Java工程师成神之路,不来了解一下吗! GitHub 15.8k Star 的Java工程师成神之路,真的不来了解一下吗! GitHub 15.8k Star ...

  4. Windows下的UDP爆了10054--远程主机强迫关闭了一个现有的连接

    原文地址:http://www.cnblogs.com/pasoraku/p/5612105.html 故事是这样的. 前几天在网上逛,看到了一个漂亮的坦克模型. 我觉得这个坦克可以做一个游戏,那需要 ...

  5. docker 实战---多台物理主机的联网,容器桥接到物理网络拓扑图(四)

    非常多朋友说上一篇中对网络的描写叙述不够清楚,感谢热心的群友彩笔程序猿: 提供了他理解的图,在这里贴一下: 我自己也补画了一副多台机器互联的图,欢迎大家留言讨论: 主机A和主机B的网卡一都连着物理交换 ...

  6. Docker之宿主机ssh至docker容器

    下载docker: https://www.docker.com/products/overview 下载镜像: docker pull centos 查看镜像:docker images 创建镜像对 ...

  7. Docker防主机意外断电导致容器实例无法驱动解决方案:UPS || write barrier || 上btrfs定期snapshot

    Write barrier - Wikipediahttps://en.wikipedia.org/wiki/Write_barrier R大在在介绍CMS时提到了write barrier写屏蔽的概 ...

  8. windows宿主机ping不通Docker容器的解决办法

      网卡上有       docker is not a virtual machine, and you don't get access to the docker host via IP add ...

  9. 解决mac主机无法与 Docker容器互通问题

    方法很多,这里我说一下使用 docker-connector解决这个问题 这是一个github开源项目docker-connector  1. Mac 通过 brew 安装 docker-connec ...

随机推荐

  1. day04-交互、格式化输出及基本运算符

    目录 与用户交互 python2和python3交互的区别 格式化输出 1 字符串拼接 2 占位符 3 format格式 4 f-string格式 基本运算符 算术运算符 比较运算符 赋值运算符 逻辑 ...

  2. node里读取命令行参数

    一.process.env process.env属性返回一个包含用户环境信息的对象. 最常见的需求,前端需要根据不同的环境(dev,prd),来调用不同的后端接口.如果用webpack,是这么做的: ...

  3. Sprinboot优雅配置监听,并记录所有启动事件

    在阅读Springboot启动源码的时候,发现Springboot自动启动listeners是通过uopeizhi文件配置的,本文就是采用Springboot方式自动装入listeners. 项目依赖 ...

  4. iptables详解(4):iptables匹配条件总结之一

    所属分类:IPtables  Linux基础 在本博客中,从理论到实践,系统的介绍了iptables,如果你想要从头开始了解iptables,可以查看iptables文章列表,直达链接如下 iptab ...

  5. @FunctionalInterface

    >> 函数式接口也称为SAM接口 Single Abstract Method interfaces 接口有且仅有一个抽象方法 允许定义静态方法 允许定义默认方法 允许java.lang. ...

  6. linux安装openjdk

    使用yum查找jdk: yum search java | grep jdk 执行安装命令:yum install java-1.8.0-openjdk

  7. Vim 基本操作

    Vim 基本操作 vim的模式 命令模式 2. 编辑模式 3. 尾行模式 编辑 i : 插入 光标所在位置 a : 插入 光标所在位置的下一个位置 o : 插入 光标所在位置的下一行插入新行 O : ...

  8. pyhton 网络爬取软考题库保存text

    #-*-coding:utf-8-*-#参考文档#https://www.crummy.com/software/BeautifulSoup/bs4/doc/index.zh.html#find-al ...

  9. 【Mail.Ru Cup 2018 Round 2 B】 Alice and Hairdresser

    [链接] 我是链接,点我呀:) [题意] [题解] 因为只会增加. 所以. 一开始暴力算出来初始答案 每次改变一个点的话. 就只需要看看和他相邻的数字的值就好. 看看他们是不是大于l 分情况增加.减少 ...

  10. openstack部署工具简介

    个人使用方面DevStack无疑,在可预见的未来时间内,DevStack仍将是众多开发者们的首选安装方式或工具.该方式主要是通过配置参数,执行shell脚本来安装一个OpenStack的开发环境.Gi ...