背景信息

基于runc运行时的容器存在安全漏洞,攻击者可以通过恶意容器镜像等方式获取宿主机root执行权限。漏洞CVE-2019-5736的详细信息,请参见

https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-5736

漏洞原理分析

本次漏洞典型的攻击方式是通过恶意镜像:在恶意镜像中,将攻击函数隐藏在恶意动态库如(libseccomp.so.2)中,并使执行命令指向/proc/self/exe。

当runc动态编译时,会从容器镜像中载入动态链接库,导致加载恶意动态库;当打开/prco/self/exe即runc时,会执行恶意动态链接库中的恶意程序,由于恶意程序继承runc打开的文件句柄,可以通过该文件句柄替换host上的runc。

此后,再次执行runc相关的命令,则会产生逃逸。

影响范围

  1. 本次漏洞对所有采用runc的容器引擎均生效,runc是Docker容器的核心组件,因此对绝大部分容器均会产生影响。其中主要影响的是多用户共享节点的场景,可导致某用户通过渗透进而控制节点并攻击整集群。

  2. 华为云CCE容器服务:
    CCE容器服务创建的Kubernetes集群属于单租户专属,不存在跨租户共享,影响范围较小,对于多用户场景需要关注。
    当前CCE采用华为优化的iSula Docker容器,其中RUNC采用静态编译,目前公开披露的攻击方法无法成功入侵。为确保容器服务安全稳定运行,CCE容器服务将会在近日对在运行Docker容器进行热升级。

  3. 华为云CCI容器实例服务:
    CCI引擎采用华为iSula Kata容器引擎,提供单节点上多容器高安全的hypervisor级别的隔离能力,并没有采用runc容器,因此本次漏洞将不会对CCI产生影响。

修复方法

    1. 华为云CCE容器服务:

      近日CCE容器服务会对运行的Docker进行无损热升级,包含正在运行的1.11.2, 17.06等历史版本均会提供对应补丁版本,无需更新到18.09版本,已运行容器将不受影响,请各位关注升级公告。

    2. 自建kubernetes或使用开源容器引擎:

      · 升级Docker到18.09.2版本, 由于开源Docker在17.06之后的版本做了较大变更,涉及架构解耦重构,该办法可能会导致用户容器业务中断,建议做好充分验证,并按节点逐步滚动升级。

      · 仅升级runc,对于17.06等Docker版本,可以不中断已运行业务,当前runc官方尚未发布包含漏洞修复补丁的新版本,如果要单独升级runc,用户可自行编译。

      · 另特别提醒,本次Docker官方补丁使用了高版本Linux内核的系统调用,在低版本内核部分版本上可能会失效,若补丁失效时,建议升级至3.17以上内核。华为云CCE容器服务提供的补丁针对官方补丁进行了优化适配,已验证在多版本内核上均可生效。

最新文章

  1. SharePoint 2013 搜索报错"Unable to retrieve topology component health. This may be because the admin component is not up and running"
  2. HTML Meta标签知多少
  3. python的变量作用域
  4. alljoyn连接时-fno-rtti选项测试结果
  5. poj 2559 Largest Rectangle in a Histogram (单调栈)
  6. EBS-PAC成本更新事务处理
  7. Android开源库集锦
  8. C++ primer 练习 12.7
  9. Xadmin集成富文本编辑器ueditor
  10. HTML5发布的意义
  11. 你不知道的JS之作用域和闭包(一)什么是作用域?
  12. Spring Boot Logback日志配置
  13. Ubuntu更新软件源出现GPG error
  14. Java synchronized关键字的理解
  15. 调用jdbc已经写成的方法----jdbc工具类抽取方式三
  16. nginx 前后分离,地址重写,url匹配中遇到的问题
  17. MySQL之explain 的type列 & Extra列
  18. hdu 1667(IDA*)
  19. 基于Python的XSS测试工具XSStrike使用方法
  20. TADOConnection和TADQuery组件连接访问数据库总结

热门文章

  1. 【计算机视觉】纹理特征之LBP局部二值化模式
  2. Nuget下载 MySql.Data 连接MySql数据库
  3. vue报错:Component template should contain exactly one root element. If you are using v-if on multiple elements, use v-else-if to chain them instead.
  4. 学习JavaScript之this,call,apply(转)
  5. SSRAM、SDRAM和Flash简要介绍
  6. jQuery禁用input历史选择
  7. 权限管理ranger
  8. 《ucore lab1 exercise1》实验报告
  9. mac 已损坏 移至废纸篓
  10. Word 查找替换高级玩法系列之 -- 用替换功能删除空白区域