针对近期爆出 runc 容器逃逸漏洞的安全警示及防范建议

尊敬的用户:

针对近期暴露的 runc 容器逃逸漏洞,青云 QingCloud 一直在密切观察和研究,同时与您同步以下信息并期望获得您的重视:

什么是 runc

Runc 是一个根据 OCI (Open Container Initiative) 标准构建的并运行容器的底层工具,诸如 Docker,Containerd 以及 CRI-O 都以其为底层核心去处理数据的格式化和序列化。而 Kubernetes 作为容器调度管理平台基于这些容器运行环境,也受到了此漏洞的影响。

此漏洞(CVE-2019-5736)可能会造成的影响

引自 runc 团队的 Aleksa Sarai 的解释(翻译稿):“此项安全漏洞允许恶意容器(在最低用户交互等级下)覆盖主机 runc 二进制文件,这意味着攻击者将借此获得在主机上以 root 层级执行代码的权限。”

“具体来讲,攻击者能够利用一套其可以控制的镜像创建新的容器,或者是向其能够访问的现有容器之内添加 docker exec 文件。在这类情况下的任意容器当中,该攻击者都将能够通过当前用户交互等级以 root 权限运行任意命令(无论命令本身是否由攻击者所控制)。”

 

降低风险以及规避漏洞的建议

  • 严格控制集群的外网访问权限
  • 不下载和运行来历不明的容器镜像
  • 以 non-0 方式运行容器镜像(在 securityContext 中配置 runAsUser)
    apiVersion: v1
    kind: Pod
    metadata:
      name: run-as-uid-1000
    spec:
      securityContext:
        runAsUser: 1000
      # ...
  • 升级 docker 或者 runc
    升级 Docker 至 18.06.2,可参考官方文档(注意:此版本仅兼容 4.x 内核,请谨慎升级)
    runc 升级参考:
    1. 定位 runc 的执行文件位置:

    which docker-runc

    2. 备份此文件:

    mv /usr/bin/docker-runc /usr/bin/docker-runc.bak.$(date -Iseconds)

    3. 获取对应 OS 和 docker 版本的 runc 执行文件,并复制到相应目录:

    cp runc-v18.06.1-amd64 /usr/bin/docker-runc

    4. 确保 docker-runc 具有可执行权限:

    chmod +x /usr/bin/docker-runc

    5. 验证其能否正常工作:

    docker-runc -v
    docker run -it --rm ubuntu echo OK

在以上配置升级过程中碰到任何问题,您可联系青云客服获取我们的支持。

青云 QingCloud 平台可能受影响的服务及产品

公有云容器服务:Kubernetes On QingCloud

容器产品:KubeSphere

我们容器团队会在近期发布 Kubernetes On QingCloud 以及 KubeSphere 的升级版本进行漏洞修复。

etcd On QingCloud 新版发布(etcd 3.2.24 – QingCloud 2.0.0)多项更新保障服务稳定性

etcd On QingCloud 通过青云 AppCenter 平台,一键搭建 etcd 集群,并且可以非常方便地进行集群的动态扩容,备份恢复,健康检查和监控。

etcd 是一个为分布式系统设计的分布式可靠的键值存储服务,应用程序可以从 etcd 中读取写入数据,监控数据变化。它主要用来提供注册服务,配置服务等功能。

新版 etcd 3.2.24 – QingCloud 2.0.0 主要包括以下更新:

  • 升级到 etcd 3.2.24 版本
  • 添加备份恢复功能,集群数据定期备份,无惧数据丢失风险
  • 支持滚动升级,集群可不关机无感知升级
  • 支持在 Region 多可用区区域部署,同城多活
  • 新增单节点模式方便开发和测试

预置资源组,免配置一键部署:

备份及恢复:

更多使用说明,请参考使用手册

SSL 证书共享功能上线,赋能网站协同运维

QingCloud SSL 证书管理功能是青云为企业和个人用户提供的一站式 SSL 证书管理服务,通过简单便捷的操作方式,帮助用户完成证书申请、管理和部署上线,使用方式参考用户指南

现在,SSL 证书共享功能也已上线,更加方便了用户,提高了证书利用率,减少了日常手工共享证书带来的风险。

使用方式

分享已有证书

在证书管理页面,可将指定证书分享给当前账户的子账户或者其他账户

在 网络 -> 负载均衡器 或者 CDN 管理页面,我们可以查看以及绑定来自共享的证书

注意:

  • 某一证书被共享给用户 A,用户 A 无权共享此证书给其他账户
  • 已被共享的证书,在未撤销共享之前,无法被删除

证书共享的具体使用方法可参考线上用户手册

 

KubeSphere® 容器平台高级版 1.0.1 Release Notes

KubeSphere® 简介

KubeSphere® 是基于 Kubernetes 构建的企业级分布式多租户容器管理平台,目的是为个人和企业用户提供更好的 Kubernetes 集群运维、基于容器的 CI/CD,微服务治理,应用生命周期管理等功能。  

关于 KubeSphere® 高级版

KubeSphere® 共提供社区版、易捷版以及高级版三个版本,其中社区版和易捷版主要提供多租户管理、集群运维、应用管理等功能,而高级版主要针对企业用户,目的是满足企业内不同角色用户、提供多种以容器为资源载体的的业务功能模块。

关于高级版 1.0.1

KubeSphere® 高级版 1.0.1 基于 Kubernetes 1.12.5 开发,初始安装请参考安装部署指南,原有的基于KubeSphere 高级版 1.0.0 搭建的环境可以通过官方 Installer 无缝升级到 1.0.1,升级请参考升级指南

Bug 修复

  • 修复 workspaces-manager 角色的账户登录后无法看到企业空间列表的问题。
  • 修复 git 类型代码仓库凭证传参问题。
  • 修正不存在用户登录失败的提示信息。
  • 修复已删除应用残留数据问题。
  • 修复某些 Helm 应用的配置文件中的参数显示问题。
  • 修复 Pod 横向自动弹性伸缩(HPA)针对不同权限用户的显示问题。
  • 修复在某些场景下修改应用路由 Hosts 参数不生效的问题。
  • 更正多处中英文页面文案。

功能优化

  • 在更新有状态副本集的时候,可同步编辑其关联服务。
  • 更新资源时,其详情页的子页面的内容会有保存提示。
  • 规范创建以及编辑项目时的 CPU 和内存限额的单位。
  • 允许用户为没有 CPU 和内存限额的项目添加限额。
  • 校验 DevOps 工程下凭证信息的完整性。
  • 支持用户级别设置界面语言。
  • 允许将 NodePort 类型的服务修改为 None 类型。
  • 允许登录用户在用户设置页面修改密码。
  • 多处用户体验优化,包括容器编辑界面输入参数、更新策略、容器日志等。

Kubernetes 相关

  • Kubernetes v1.12.3 可升级至 [Kubernetes 1.12.5](https://github.com/kubernetes/kubernetes/releases/tag/v1.12.5),同时支持升级至 v1.13.2。
  • etcd 可升级至 3.2.18。

安全

  • 登录方式支持验证码,防止登录攻击。
  • 增加资源删除前的确认提示。

快速入门

快速入门请参考 https://docs.kubesphere.io/advanced-v1.0.0/zh-CN/quick-start/quick-start-guide/

产品快览

工作负载列表

Pod 水平自动伸缩

节点详情监控

历史监控数据

CI/CD 可视化流水线

Tomcat Cluster On QingCloud(Tomcat 集群版-QingCloud-v2.0.1)新版发布,解决 JSP Tag 类库加载问题

Tomcat Cluster On QingCloud 发布新版 Tomcat 集群版-QingCloud-v2.0.1,解决了 JSP 页面 Tag 类库(如 jstl)加载报错的问题,同时增加新的集群配置参数,允许用户配置 Tomcat Manager 部署 war 包的文件大小上限,另外新版本允许用户通过日志节点免密登录 Tomcat 节点

Apache Tomcat 是一个开源的,使用极为广泛的轻量级应用服务器之一。

Tomcat Cluster on QingCloud 将 Tomcat 集群以 App 形式交付给用户,能直接在 AppCenter 进行一键部署,并提供了一个高可用、高安全、高性能的解决方案,具有如下特性:

  • 集成 Tomcat 7.0.85,8.5.28 以及 9.0.5 三个版本
  • 可选择使用 OpenJDK 1.7.0_75-b13,1.8.0_172-ea-b03 或者 9.0.4+11 作为 Java 运行环境
  • 日志输出基于 log4j 1.2.17 发送到独立的日志节点,同时用户可通过日志节点登录到 Tomcat 节点
  • 使用 Tomcat DeltaManger 实现多对多(all-to-all)会话复制(session replication),支持随 Tomcat 发布的 SimpleTcpCluster,通过内存(in-memory)实现 session replication,同时也可选择通过 Redis(Standalone)数据库存储 session 数据
  • 集成 Tomcat Manager,通过配置 Tomcat 管理员用户名/密码,访问 Tomcat Manager Console 或者 URL 方式完成 WAR 文件部署、启停等动作 ,war 文件通过 FarmWarDeployer 分发到各个节点
  • 对于公有云用户,可使用 QingStor 存储 war 文件,在 Tomcat 集群创建时配置相应 QingStor 访问参数,集群启动时自动下载并完成 war 文件部署,也可通过集群管理页面菜单多次部署不同 war 文件
  • 支持 Tomcat 节点横向和纵向伸缩
  • 高可用
  • 一键部署

本次更新修复了 JSP 页面无法加载 Tag 类库(如 jstl)的问题,同时增加新的集群配置参数,允许用户配置 Tomcat Manager 部署 war 包的文件大小上限,另外新版本允许用户通过日志节点免密登录 Tomcat 节点

具体 Tomcat Cluster On QingCloud 的部署及使用说明,请参考官方文档

KubeSphere® 容器平台高级版 1.0.0 Release Notes

KubeSphere® 简介

KubeSphere® 是基于 Kubernetes 构建的企业级分布式多租户容器管理平台,目的是为个人和企业用户提供更好的 Kubernetes 集群运维、基于容器的 CI/CD,微服务治理,应用生命周期管理等功能

关于 KubeSphere® 高级版

KubeSphere® 共提供社区版、易捷版以及高级版三个版本,其中社区版和易捷版主要提供多租户管理、集群运维、应用管理等功能,而高级版主要针对企业用户,目的是满足企业内不同角色用户、提供多种以容器为资源载体的的业务功能模块 KubeSphere® 高级版 1.0.0 基于 Kubernetes 1.12.3 开发,初始安装请参考安装部署指南

功能介绍

  • 基于 Kubernetes 1.12.3
  • 提供企业空间、项目、DevOps 工程多层级租户管理,支持预置以及自定义角色
  • 支持 LDAP 统一认证
  • 支持部署(Deployments)、有状态副本集(StatefulSets)、守护进程集(DaemonSets)、任务(Jobs)、定时任务(CronJob)多种工作负载
  • 支持 Pod 水平自动弹性伸缩(HPA,Horizonal Pod Autoscaler)
  • 支持配额管理
  • 支持密码、配置管理
  • 支持镜像仓库管理
  • 支持服务和应用路由
  • 支持 Calico、Flannel 开源网络插件
  • 支持 GlusterFS、Ceph RBD 和 NFS 开源存储插件
  • 如基于青云平台上的主机部署,则可使用青云块存储SDN 直通网络以及负载均衡器
  • 支持 QingStor NeonSAN 存储
  • 提供基于 Jenkins 的流水线可视化编辑,预置多种功能属性的任务,支持 Jenkinsfile in & out SCM 两种模式
  • 代码仓库支持 github/git/svn
  • DevOps 提供统一凭证管理功能
  • 可选装 Harbor 镜像仓库和 GitLab 代码仓库,并与 Jenkins 集成
  • 基于 Prometheus 提供多维度监控服务,涵盖集群、主机、企业空间、项目、工作负载、Pod、容器等多个层面,以实时、历史、排行等多种展现方式展现 CPU、内存、网络、存储、IO等多项监控指标,并提供 API 接口以便和已有监控系统集成
  • 基于 OpenPitrix ,提供应用仓库管理功能
  • 最小单节点安装,可部署于现有 Kubernetes 集群。支持物理机、虚拟机和云主机等多种基础设施,支持混合部署方式
  • 支持控制节点、etcd、监控高可用

快速入门

快速入门请参考 https://docs.kubesphere.io/advanced-v1.0.0/zh-CN/quick-start/quick-start-guide/

产品快览

工作负载列表

Pod 水平自动伸缩

节点详情监控

历史监控数据

CI/CD 可视化流水线

Harbor On QingCloud 新版发布(Harbor 1.1.1 – QingCloud 1.1.0),提供本地存储支持

Harbor On QingCloud 发布新版 Harbor 1.1.1 – QingCloud 1.1.0,新增本地存储支持,用户可选择将镜像保存于 QingStor 对象存储或者本地磁盘存储,可为有镜像仓库需求且有安全考虑的客户提供一键部署私有化镜像仓库的服务,方便易用,欢迎使用。

Harbor 是一个开源的企业级私有 Docker 镜像仓库方案,用于存储和分发 Docker 镜像,并提供基于角色的权限控制、仓库间 Image 异步复制、LDAP/AD 支持、图形界面等功能。

Harbor on QingCloud 将 Harbor 制作成了 App,能直接在 AppCenter 进行一键部署,并提供了一个高可用、高安全、高性能的解决方案,具有如下特性:

  • 镜像存储集成 QingStor 对象存储—— 通用的海量非结构化数据存储服务,由青云QingCloud 提供,具有安全可靠、简单易用、高性能、低成本等特点
  • 镜像存储也可选择使用本地存储
  • 支持应用节点横向和纵向伸缩
  • 高可用
  • 一键部署

本次更新除增强服务稳定性之外,主要是增加了新的存储节点类型,为用户提供了除 QingStor 对象存储之外的一种新的镜像存储介质,但从存储资源的成本和便利性考虑,依然推荐您使用对象存储的方式。

如想使用本地存储保存镜像,可在部署集群时增加存储节点,其磁盘大小可在随后使用过程中随时扩容。

具体 Harbor 应用的部署及使用说明,请参考官方文档