上云无忧 > 文档中心 > 百度智能云容器引擎服务 CCE 漏洞CVE-2019-5736修复公告
容器引擎服务CCE
百度智能云容器引擎服务 CCE 漏洞CVE-2019-5736修复公告

文档简介:
runc容器逃逸漏洞修复方案(CVE-2019-5736) 解决方法: 可以采用以下三种方法中选择合适的方式修复安全漏洞: 新建 Kubernetes 集群,kubernetes 1.11.5 的 docker 版本已更新至 18.09.2,该版本已修复漏洞。 节点替换,在集群中扩容入新的节点,容器漂移稳定后将旧节点缩容处理。扩容节点的 docker-runc 均已修复漏洞。
*此产品及展示信息均由百度智能云官方提供。免费试用 咨询热线:400-826-7010,为您提供专业的售前咨询,让您快速了解云产品,助您轻松上云! 微信咨询
  免费试用、价格特惠

runc容器逃逸漏洞修复方案(CVE-2019-5736)

解决方法

可以采用以下三种方法中选择合适的方式修复安全漏洞:

  1. 新建 Kubernetes 集群,kubernetes 1.11.5 的 docker 版本已更新至 18.09.2,该版本已修复漏洞。
  2. 节点替换,在集群中扩容入新的节点,容器漂移稳定后将旧节点缩容处理。扩容节点的 docker-runc 均已修复漏洞。该方案会造成容器漂移和业务流量风险。1.8 存量集群添加节点时,新节点的 docker 版本不变,runc 已打上漏洞补丁,1.11.1 及以上存量集群的新扩容节点,docker 已整体更新为 18.09.2 版本。
  3. 单独升级 runc(1.11的 GPU 集群建议采用上面两种方案),从 docker-18 开始,docker-runc 更名为 runc,以下方案针对 docker-18 之前的版本。
  • 定位 docker-runc 位置,并备份。

    $ which docker-runc # 正常为 /usr/bin/docker-runc
    $ mv /usr/bin/docker-runc /usr/bin/docker-runc.orig.$(date -Iseconds)
  • 执行以下执行,下载修复的 runc:

    $ curl -o /usr/bin/docker-runc https://baidu-container.cdn.bcebos.com/packages/runc/runc-v1.0.0-rc2
    $ chmod +x /usr/bin/docker-runc
  • 检查 runc 是否正常执行

    $ docker-runc -v
    runc version 1.0.0-rc2
    commit: b1adfd870be901735b1509e9560eec508bdfca1f
    spec: 1.0.0-rc2-dev
  • 检查 docker 是否正常运行(因版本和负载差异,显示会有区别):

    $ docker version
    Client:
     Version:      17.03.2-ce
     API version:  1.27
     Go version:   go1.7.5
     Git commit:   f5ec1e2
     Built:        Tue Jun 27 01:35:00 2017
     OS/Arch:      linux/amd64
    Server:
     Version:      17.03.2-ce
     API version:  1.27 (minimum version 1.12)
     Go version:   go1.7.5
     Git commit:   f5ec1e2
     Built:        Tue Jun 27 01:35:00 2017
     OS/Arch:      linux/amd64
     Experimental: false

检查容器运行状态:

$ docker ps
CONTAINER ID        IMAGE       COMMAND        CREATED  STATUS       PORTS       NAMES
52d0c793caf9        hub-readonly.baidubce.com/public/pause:2.0         
 
                                                                       "/pause"     
            3 hours ago         Up 3 hours                           
   k8s_POD_node-exporter-klfks_kube-system_c8560cf5-3014-11e9-88b7-fa163e8b0a7e_0
9b6d830d4ba3        hub-readonly.baidubce.com/public/pause:2.0           
      "/pause"                 3 hours ago         Up 3 hours                             
 k8s_POD_csi-bosplugin-g9ctz_kube-system_c855cf61-3014-11e9-88b7-fa163e8b0a7e_0

安全建议

由于该漏洞需要利用容器内的 UID 0 用户进行攻击,也可以通过修改容器内的默认用户为非 root 用户,或通过 Kubernetes 的安全限制来达到屏蔽漏洞的目的。

  • 通过securityContext 限制 UID 为非 0

    apiVersion: v1
    kind: Pod
    metadata:
      name: run-as-uid-1000
    spec:
      securityContext:
        runAsUser: 1000
  • 利用 PodSecurityPolicy 限制容器的权限

    apiVersion: policy/v1beta1
    kind: PodSecurityPolicy
    metadata:
      name: non-root
    spec:
      privileged: false
      allowPrivilegeEscalation: false
      runAsUser:
        # Require the container to run without root privileges.
        rule: 'MustRunAsNonRoot'

此外,也要确保所有的容器镜像都经过审查和且可信的。这可以通过自己构建所有镜像,或者通过审查镜像的内容然后固定到镜像的版本哈希来实现。

相似文档
  • 版本生效时间:2021年11月15日。 本服务等级协议(Service Level Agreement,以下简称“SLA”)规定了百度智能云向客户提供容器引擎(Cloud Container Engine,以下简称“CCE”)的服务可用性等级指标。目前容器引擎CCE为免费服务,暂不承诺赔偿标准,但仍致力于为客户提供稳定可靠的服务。除非另有约定,本协议不适用于容器引擎CCE内测、公测的集群类型、功能、版本。
  • 2021-12 CFC新增工作流,详见 工作流。 2021-10 CFC新增异步调用配置,详见 异步调用。 2021-10 CFC新增服务错误次数、最大使用内存等多个监控指标,详见 控制台使用示例。 2021-09 函数执行日志可配置接入日志服务BLS,详见 配置并查看函数日志。 2021-09 Springboot Web框架迁移到CFC,详见 Springboot框架迁移。
  • 函数计算CFC(Cloud Function Compute)提供基于事件触发、全托管的云端计算能力。由于其“无服务器”特性,您仅需要开发业务代码并上传,无需关注和配置服务器资源,CFC 会托管您的代码并在代码需要执行时自动分配计算资源,使您的业务可靠地运行。
  • 在传统的云服务模式中,用户在部署运行一个业务前,需要关心云资源如何分配和调度,需要关注应用运行环境的搭建和升级,这两个步骤通常要花费大量的时间和精力,并且需要持续投入来进行优化。
  • 事件(Event):任何能够触发函数执行的行为称之为事件,例如BOS数据处理的场景中,新文件的创建即可被定义为一个事件。 触发器(Trigger):触发器用于连接函数与外部服务,通过在函数中设置触发器,用户可以定义和管理事件来源,从而指定什么样的外部服务可以产生事件来触发函数的执行。
官方微信
联系客服
400-826-7010
7x24小时客服热线
分享
  • QQ好友
  • QQ空间
  • 微信
  • 微博
返回顶部