云原生安全:攻防实践与体系构建
上QQ阅读APP看书,第一时间看更新

4.1.1 容器基础设施存在的风险

在Kubernetes环境中,容器基础设施存在的风险与3.1节的分析对应如下:

·镜像面临的风险与3.1.1节中的不安全的第三方组件、大肆传播的恶意镜像和极易泄露的敏感信息三个方面的分析结果基本相同,不同之处在于,Kubernetes提供了ConfigMaps和Secrets两种资源来单独存储常规配置和敏感信息。因此,在以Kubernetes为平台的开发环境中,将敏感信息打包进镜像的情况可能会减少,但是依然存在。

·活动容器面临的风险与3.1.2节中的不安全的容器应用、不受限制的资源共享和不安全的配置与挂载三个方面的分析结果基本一致,只不过各种配置要以Kubernetes规定的YAML格式给出,本质无异。

·在没有特别指定网络访问控制策略的情况下,各Pod之间互通,Kubernetes网络存在的风险与3.1.3节的分析结果基本相似。由于集群通常由多个节点组成,因此集群网络风险的影响范围要比单宿主机运行容器的网络风险大一些。我们将在4.1.3节分析Kubernetes网络的风险。

·容器管理程序接口存在的风险应在Kubernetes组件接口风险的范畴中。目前,Kubernetes+Docker的搭配依然是主流,因此,Docker守护进程的接口风险在Kubernetes环境中仍然存在。值得注意的是,Kubernetes官方团队在v1.20版本的变更日志[1]中公告,未来Kubelet将停止对Docker的支持。在这之后,Kubernetes的应用接口风险情况可能会发生变化(去除Docker独有的部分)。我们将在4.1.2节分析Kubernetes自有系统组件的应用接口存在的风险。

·对于Kubernetes来说,宿主机操作系统存在的风险主要与容器相关,对于这部分风险,我们在3.1.5节已经分析过。

·与容器管理程序接口的情形类似,容器的软件漏洞应被考虑在Kubernetes的软件漏洞当中。但是,在不使用Docker时,情况会发生变化(去除Docker独有的部分)。我们将在4.1.5节分析Kubernetes自有系统组件的软件漏洞。

[1] https://github.com/kubernetes/kubernetes/blob/master/CHANGELOG/CHANGELOG-1.20.md。