前言
《云原生生态周报》由阿里云容器平台联合蚂蚁金服共同发布,每周一期。众多一线社区专家与您一起“跟踪动态,读懂社区”,分享云原生社区项目进展、活动发布、精选博客等信息。以下是第七期云原生生态周报的内容。
业界要闻
Docker 基础镜像 Alpine 爆出提权漏洞(CVE-2019-5021):该 CVE 影响自 Alpine Linux 3.3 版本开始的所有 Docker 镜像。该漏洞的机制在于 Alpine 的 root 用户包含一个空密码,这可能会导致攻击者获得 root 权限,进而造成攻击。
报告中称:受影响范围是 Alpine Linux Docker 镜像 3.3、3.4、3.5、3.6、3.7、3.8、3.9、edge 等全部版本。目前,整个容器技术生态中很多项目的基础镜像层都在采用 Alpine。在漏洞披露后,Alpine 最新版已经修复了该问题,用户可以使用 3.9.4 版本来规避风险。这里也可以参考一些开源项目更换其他基础镜像,例如 kubernetes-csi 项目的这个PR。
Docker 项目本身爆出严重漏洞,攻击者可以直接访问宿主机文件系统(CVE-2018-15664): 5 月 29 日,来自 SUSE 的 Linux 工程师 Aleksa Sarai 汇报了这个漏洞。他指出,在某些情况下,攻击者可以在 docker cp 进行文件路径解析和执行文件操作之间的短时间窗口将自己的符号链接(symlink)插入到路径中,从而在容器中以 root 的身份直接拿到宿主机文件的符号链接,在 docker cp 的场景下,这等同于直接拿到了宿主机任意文件的读写权限。可以看到,这个漏洞是 TOCTOU 攻击的一个典型变体,利用了 Linux 操作文件时候的竞争状态(race condition)。虽然它有可能影响所有 Docker 版本, Docker 官方出台了补丁计划,会在后续版本包含相应修复补丁。此次漏洞的攻击前提是攻击者拥有 docker cp 命令的使用权限,阿里云容器服务集群默认开启了基于 RBAC 的访问控制,非法用户是没有 cp 命令在容器内的访问权限的。作为用户,最安全的方法是禁止在多租环境下启用 docker cp 操作,并且将 Docker Daemon 通过 apparmor 等手段进行限制。万幸的是,这个漏洞的利用方法是非常复杂的,需要构造出上述文件竞态才能产生作用。更多详细内容,请参见阿里专家的CVE-2018-15664漏洞分析报告。
上游重要进展
Kubernetes 从 v1.15 开始将采用 go module 来进行包管理。相比于原来的 Godeps,go module 在打包、编译等多个环节上有着明显的速度优势,并且能够在任意操作系统上方便的复现依赖包。更重要的是,go module 本身的设计使得 Kubernetes 自身被其他项目引用变得更加容易,这也是 Kubernetes 项目向框架化演进的又一个重要体现。
Envoy正在Redis Proxy中实现request mirror功能,用于对请求做镜像。该功能可以指定只对固定百分比的流量做镜像,且可以将 read 相关的请求给过滤掉。
Envoy正增加路由debug的功能。通过这一功能,可掌握所发起的一个调用能否正常地路由出去,以及路由到了哪个集群。虽然社区已经提供了 route table checker 这一工具,但该工具只能用于检查静态路由,对于通过 xDS 下发的动态路由则无能为力,路由 debug 功能正是瞄准动态路由的。
Knative 社区正在探索 stateful-serverless,实验性项目由 lightbend 公司开发(著名产品 akka),期望在 knative 中建立一个有状态的服务,主要依赖 akka cluster 加一个持久化的数据库,可以将请求分配给固定的容器。演示视频:演示了一个计数器服务,另附 KubeCon 上的演讲视频
Eventing Security Requirements: 针对事件在数据平面的安全性的需求,knative 提出了概要设计,主要定义事件处理的 3 个安全策略边界及对应的安全策略:
事件提供者到事件源(Event Source), 通过身份认证及授权
事件流量入口(Ingress)到 Broker,通过 Token 与 Broker 进行认证。
Trigger 到消费服务。由消费服务(函数)对持有 Token 的 Trigger 进行认证。
Istio 将结束对 1.0 版本的支持,请尽快升级:根据 Istio 社区的支持政策,在最新 LTS 发布后的三个月内,会继续支持上一个 LTS 版本。Istio 1.1 于 3 月 19 日发布,因此社区对 1.0 的支持将于 2019 年 6 月 19 日结束。此后,将停止在 1.0 版本中支持安全问题和关键错误的修复,因此建议用户尽快升级到最新版本的 Istio。https://istio.io/blog/2019/announcing-1.0-eol/
开源项目推荐
Cilium:一个 Kubernetes Network Policy 的优秀实现。Cilium 是一款适用于容器间通信的网络策略软件。依靠 Linux 的核心能力–柏克莱封包过滤器(Berkeley Packet Filter,缩写 BPF) 在安全性和隔离性上有表现出色。目前作为 Kubernetes 的 addons 存在,体现出很强的安全可视性和强制执行的能力。
本周阅读推荐
Kubernetes 中 Informer 的使用简介: Informer 是编写 Kubernetes 自定义控制器的过程中会经常使用到的一个概念,也是自定义控制器通过 WATCH 机制获取 Kubernetes API 对象的主要手段。不过,你是否也经常对 Informer 以及相关的 Reflector、Delta FIFO Queue、Local Store、WorkQueue 这些概念困惑不已呢?这篇博客通过简单易懂的语言对 Informer 的工作原理做了一个通俗易懂的解读,推荐你学习一下。
Service Mesh发展趋势:云原生中流砥柱: 介绍 ServiceMesh 最新的产品动态,分析其发展趋势和未来走向;结合蚂蚁的上云实践,阐述在云原生背景下 Service Mesh 的核心价值,和对云原生落地的关键作用。
本周报由阿里巴巴容器平台联合蚂蚁金服共同发布
本周作者:至简、张磊、宋净超、林育智、大虎、王夕宁、张晓宇
责任编辑:木环
前期周报回顾
云原生生态周报 Vol. 6:KubeCon EU 亮点汇总
云原生生态周报 Vol.4:Twitter 从 Mesos 全面转向 Kubernetes
云原生生态周报 Vol. 3:Docker Hub 遭入侵,Java 8 开始提供良好的容器支持
云原生生态周报 Vol. 2:Godaddy 开源 KES、CNCF 提供免费云原生课程
云原生生态周报 Vol. 1:Google 发布 Cloud Run,开源项目 Kubecost 让 K8s 花费一目了然
评论