针对近期爆出 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 无权共享此证书给其他账户
  • 已被共享的证书,在未撤销共享之前,无法被删除

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

 

监控告警支持 VPC / 私有网络 / LB 后端状态

监控告警功能是基于资源层面的监控数据,设置告警条件和通知列表, 在资源使用达到预设的红线时,提醒用户,以及时处理可能的突发事件。查看使用指南

在常规的监控告警之外,青云 QingCloud 此次新增的 VPC / 私有网络 / LB后端的监控,主要是用户的内部网络。监控指标包括双向的网络带宽,双向网络 PPS ,路由器的 CPU 和内存的使用情况, LB 后端的状态。这些指标主要是网络情况的宏观指标,但是假如受到网络攻击,或者业务出现爆发,这些事件势必会影响网络层面的监控数据触发警报,所以新增指标可以帮助用户迅速诊断和定位问题。

使用方法:

在运维与管理-监控告警页面,点击创建告警策略

选择路由器,可以添加 VPC 整体的告警规则

选择私有网络。可以添加整个私有网络的告警规则

选择负载均衡监听器,可以添加对监听器整体的告警规则,新增支持对后端服务器可用和不可用数量的告警规则

选择 LB 后端,可以添加后端的告警规则,新增支持后端服务状态的监控

其他设置与原有监控告警一致,用户可以选择监控的周期(1分钟/5分钟),自定义规则名称,设置告警的联系人和联系方式等。

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 可视化流水线

青云QingCloud 云平台支持IPv4/IPv6双栈网络

2019年伊始,我们迎来了关于网络方面的重大升级——IPv6的支持。目前经过一段较长时间的运行测试,已具备向所有用户开放的条件,目前我们已经在 北京3区 / 北京3区-A / 广东2区 开通了IPv6的支持,欢迎您在控制台上进行体验。

IPv6与IPv4相比,优势主要体现在两个大的方面,一个是地址空间数量可以达到2的128次方,满足未来更多网络设备的需要,另一个则是更高的网络安全保证,IPv6可通过对地址的管理和路由机制,使得IP层的溯源与可信验证成为可能。

早前工信部关于贯彻落实《推进互联网协议第六版(IPv6)规模部署行动计划》通知中要求,各大云服务厂商在2018年末完成50%云产品的IPv6改造。此次上线,我们已经完成了虚拟主机、专有私有网络VPC、弹性公网EIP、防火墙几个产品的IPv6升级改造。

经过此次升级之后,专有私有网络VPC将升级成为IPv4/IPv6双栈VPC,您无需申请公测资格,可直接在控制台上创建启用IPv6的VPC,或者将您旧有的VPC升级成为IPv6的VPC。

而对于私有云用户,还能享受到IPv4/IPv6双栈基础网络服务,体验全面IPv4/IPv6双栈的IaaS层基础设施服务。

简易使用指南

创建启用IPv6的专有网络VPC

您只需要在创建专有网络VPC时,在IPv6网络地址选择“系统自动分配”即可创建支持IPv4/IPv6双栈的VPC。创建后可查看IPv6管理地址范围的详细信息。专有网络VPC会默认分配掩码为 /56 的IPv6地址段。

创建启用IPv6的私有网络并连接到VPC

在专有网络VPC的详情页中,点击“+”号,直接为专有网络VPC添加私有网络。

在IPv6网络地址处选择“系统自动分配”或者“手动指定”,即可创建出启用IPv6的私有网络。创建完成后,即可查看私有网络的管理IPv6属性。私有网络的IPv6网络地址默认为掩码为 /64 的IPv6地址。

创建虚拟主机并加入到启用IPv6的私有网络

在私有网络中,点击“创建资源”按钮,选择“主机”,按照向导完成创建主机后,可查看虚拟主机的IPv6地址信息。

注意:目前平台支持IPv6网络的虚拟主机镜像为:CentOS 7.5(镜像ID:centos75x64b),Ubuntu Server 16.04(镜像ID:xenial5x64b)和Ubuntu Server 18.04(镜像ID:bionic1x64c),后续我们会制作更多支持IPv6的镜像。

 

这些镜像只有在加入启用IPv6的私有网络时才会打开IPv6的功能。

开通IPv6公网访问

获取到IPv6地址的虚拟主机,如果想要接入到公网,需要开通IPv6的公网访问。方法是在虚拟主机上右键点击,在弹出菜单中依次选择:“公网IP” — “IPv6接入公网”,在弹出的对话框中,为IPv6公网IP选择计费模式,点击“确定”即可。

接入公网以后,在公网IP页面,可查看接入公网的IPv6地址。

与IPv4公网IP一样,IPv6的公网IP支持“带宽计费”和“流量计费”两种模式。

我们秉持IPv6协议本身“地址无限”的理念,IPv6地址免费,只对使用流量和带宽收费。

为虚拟主机加载防火墙并开通IPv6协议

为了保证您的主机安全,我们会在接入公网连接的虚拟主机前加载防火墙以保证您的访问安全,因此接入公网之后,您需要在虚拟主机的防火墙上开通IPv6的相关访问协议。

在防火墙添加规则页面,开通IPv6相关的协议,即可放开IPv6的访问,添加完规则后点击“应用修改”使规则生效。

注意:除IPv6 ICMP(ping6)需额外配置以外,您防火墙里的其他策略规则会同时应用到IPv6地址,您无需额外配置。

至此,您就可以轻松的体验IPv6带来的种种好处了。

对于已有的专有网络VPC和私有网络,您可以一键升级成支持IPv6,具体操作请参阅使用指南

对象存储日志服务上线

对象存储是面向海量非结构化数据的通用数据存储平台,提供安全可靠、低成本的云端存储服务。作为企业的数据存储和流转中心,可通过浏览器、HTTP RESTful API 、S3 API、SDK 和 FTP 等方式高效存取和管理文件,支撑企业丰富的上层业务和数据分析系统使用。

为了让用户更好的对内容进行管理,对 Bucket 进行运维,我们为用户提供了日志服务,该服务以小时为单位,将访问日志作为一个对象(Object)写入指定的 Bucket 目录中。

系统运维和开发人员可以通过日志了解所有 API 请求的发起时间,方法,时长,具体操作,请求 ID,以及请求者的用户 ID,IP 等,分析 Bucket 访问行为,满足审计需求,分析数据热点等等。

典型应用场景

分析 Bucket 访问行为

对象存储作为企业的数据存储和流转中心,支撑企业丰富的上层业务和数据分析系统使用。

由于对象存储在各业务场景中扮演着重要角色,通过对象存储日志服务可以记录访问时间、访问 IP、用户、访问对象、时长等一些重要信息,帮助开发者获取和分析 Bucket 访问行为,提升用户使用体验。

满足企业审计需求

日志审计是日常信息安全管理中最为重要的环节之一,通过对象存储日志服务自动保存 Bucket 访问日志,开发者可通过提取和过滤访问日志,查询存储内容被访问的记录,满足企业的安全审计需求。

帮助企业分析数据热点

在互联网业务中,常常会出现某一类数据在短时间内被高频访问,一段时间后访问量又从高频向低频下降,数据由热变冷。

通过对象存储日志服务可以帮助企业分析数据热点,结合生命周期管理功能,更可使数据在标准存储与低频存储之间自动转换,从而帮助开发者节约存储成本。

接入流程

用户可以通过公有云控制台、调用日志服务(Bucket Logging)API 来配置对象存储日志服务,为存储空间启用、禁用日志服务。

控制台操作指南:

登录 QingCloud 控制台界面,在左侧目录中找到并选择对象存储服务。

在存储空间列表中,点击目标存储空间名称,进入存储空间。

单击『设置』选项卡,找到访问日志功能。

选择目标 Bucket,设置日志文件前缀。

开启日志功能。

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 的部署及使用说明,请参考官方文档

QingStor NeonSAN 发布2.0版本

日前,QingStor NeonSAN 发布2.0版本
QingStor NeonSAN 是新一代软件定义分布式 SAN存储系统(Server SAN),适应云时代对存储系统更高性能、更低时延、更加弹性的要求,NeonSAN 在功能、性能、可靠性和易用性等方面满足企业核心数据库OLTP/OLAP、虚拟化、物理主机高可用架构、大数据分析计算、高可用容器集群等应用的存储需求。
NeonSAN 具备如下四大特性:
  • 极致性能
  • 稳定可靠
  • 丰富的企业级特性
  • 智能运维
本次发布的v2.0版本是NeonSAN的一个重要升级, 主要对企业级特性和智能运维两部分做了功能特性的增强和优化,具体如下:
1. iSCSI支持
  – 允许客户端以iSCSI协议访问NeonSAN volume
  – 支持iSCSI多路径
2. 异步远程复制
  – 支持HTTPS协议
  – 支持主备站点间双向数据同步
  – 可以为已经存在的volume增加灾备副本
  – 备站点自动定时快照
3. 加密
  – 可以对volume数据进行加密
  – 每个volume拥有不同的key,只有持有key的用户才可以访问
  – 支持不同密钥长度的AES算法
  – 允许用户更改密钥,不需要对数据进行重新加解密
4. QBD客户端优化
  – 性能优化和提升
  – 可以对IO延迟进行统计
  – 支持QoS,可以查看客户端与存储的连接状态
  – 支持kernel4.15
5. 智能监控和运维
  – 可以对SSD寿命进行监控和报警
  – 可以对iCAS状态进行监控和报警
  – 可以对SSD允许状态进行监控和报警
6. 其他
  – SSD元数据存储策略优化,提高元数据可靠性
  – 和iaas融合部署时可以独立升级互不影响

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 可视化流水线