报告翻译:容器云的安全挑战

原文地址:https://ieeexplore.ieee.org/abstract/document/9750244

本文首发于看雪社区

随着k8s,微服务的兴起,容器的安全成为了需要研究的课题,这篇文章适合刚入门容器安全的新手,概述了容器云各个方面可能存在的攻击点。作者来自浙江大学与绿盟,发布于2022年。

文章将容器云的组成分成三个部分:调度层,容器层和内核层。

pSyMOTf.png

容器的创建依赖Linux namespace,cgroup,seccomp还有权限控制。

漏洞点

内核层漏洞点:

  1. 在内核层,内核漏洞会影响容器,调查显示,56.82%的内核漏洞都可以在容器中运行

  2. 在部署容器的时候,设置了危险的硬件访问权限从而导致越权

  3. 敏感数据通过内核泄露

容器层漏洞点:

  1. Docker Engine的CVE-2018-15664,runc的CVE-2019-573,kata container的CVE-2020-2023
  2. 在部署容器的时候,没有设置CPU与内存的上限数,导致某几个容器将主机资源耗干
  3. 不安全的配置,如Docker打开了Docker daemon的2375端口,却没有做身份校验

调度层漏洞点:

  1. 权限提升漏洞,如K8S的CVE-2020-8559
  2. 容器逃逸漏洞,由系统链接触发(K8S的CVE-2019-1002101, CVE-2019-11246, CVE-201911249)
  3. 拒绝服务漏洞:K8S的CVE-2019-9512,API接口会被DOS
  4. 弱网络隔离:在多租户场景中,有人开启了ARP攻击和DNS欺骗,会导致该集群的所有机子都会受到影响

容器镜像漏洞点:

  1. 运行的软件本生存在漏洞,如log4j漏洞
  2. 恶意镜像,往容器里面投放挖矿软件

改进/预防措施

  1. 独立内核层

    使用心得命名空间与安全机制,如Integrity Measurement Architecture (IMA)和AppArmor

    容器沙盒化,如gVisor

    容器虚拟化,如kata-container

  2. 加强容器层防护

    强制最小权限,采取更多安全措施检查是否存在危险配置

  3. 调度层防护

    保障配置安全,可以使用docker-bench-security tool这里工具进行检查。遵循NSA和CISA的Kubernetes Hardening Guidance

    加强内部网络管理

  4. 容器镜像防护

    扫描容器镜像,使用如Trivy , Anchore, Clair

    使用容器签名