报告翻译:容器云的安全挑战
报告翻译:容器云的安全挑战
原文地址:https://ieeexplore.ieee.org/abstract/document/9750244
本文首发于看雪社区
随着k8s,微服务的兴起,容器的安全成为了需要研究的课题,这篇文章适合刚入门容器安全的新手,概述了容器云各个方面可能存在的攻击点。作者来自浙江大学与绿盟,发布于2022年。
文章将容器云的组成分成三个部分:调度层,容器层和内核层。
容器的创建依赖Linux namespace,cgroup,seccomp还有权限控制。
漏洞点
内核层漏洞点:
-
在内核层,内核漏洞会影响容器,调查显示,56.82%的内核漏洞都可以在容器中运行
-
在部署容器的时候,设置了危险的硬件访问权限从而导致越权
-
敏感数据通过内核泄露
容器层漏洞点:
- Docker Engine的CVE-2018-15664,runc的CVE-2019-573,kata container的CVE-2020-2023
- 在部署容器的时候,没有设置CPU与内存的上限数,导致某几个容器将主机资源耗干
- 不安全的配置,如Docker打开了Docker daemon的2375端口,却没有做身份校验
调度层漏洞点:
- 权限提升漏洞,如K8S的CVE-2020-8559
- 容器逃逸漏洞,由系统链接触发(K8S的CVE-2019-1002101, CVE-2019-11246, CVE-201911249)
- 拒绝服务漏洞:K8S的CVE-2019-9512,API接口会被DOS
- 弱网络隔离:在多租户场景中,有人开启了ARP攻击和DNS欺骗,会导致该集群的所有机子都会受到影响
容器镜像漏洞点:
- 运行的软件本生存在漏洞,如log4j漏洞
- 恶意镜像,往容器里面投放挖矿软件
改进/预防措施
-
独立内核层
使用心得命名空间与安全机制,如Integrity Measurement Architecture (IMA)和AppArmor
容器沙盒化,如gVisor
容器虚拟化,如kata-container
-
加强容器层防护
强制最小权限,采取更多安全措施检查是否存在危险配置
-
调度层防护
保障配置安全,可以使用docker-bench-security tool这里工具进行检查。遵循NSA和CISA的Kubernetes Hardening Guidance
加强内部网络管理
-
容器镜像防护
扫描容器镜像,使用如Trivy , Anchore, Clair
使用容器签名