写点什么

云原生时代下,容器安全的“四个挑战”和“两个关键

  • 2021 年 11 月 11 日
  • 本文字数:4424 字

    阅读完需:约 15 分钟

作者 | 匡大虎


来源 | 阿里巴巴云原生公众号


云原生进程中的容器安全挑战


==================================================================================


云原生的火热带来了企业基础设施和应用架构等技术层面的革新,在云原生的大势所趋下,越来越多的企业选择拥抱云原生,在 CNCF 2020 年度的调研报告中,已经有 83% 的组织在生产环境中选择 Kubernetes,容器已经成为应用交付的标准,也是云原生时代计算资源和配套设施的交付单元。显然,容器已经成为应用交付的标准,也是云原生时代计算资源和配套设施的交付单元。


然而,由于在隔离和安全性方面存在的天然缺陷,安全一直是企业进行容器改造化进程中关注的核心问题之一。来到云原生时代,企业又将面临哪些容器安全新挑战?


  • 缺少体系化的容器安全能力建设:传统的企业应用安全模型通常基于内部架构不同的信任域来划分对应的安全边界,在信任域内的东西向服务交互被认为是安全的。而上云后企业应用需要在 IDC 和云上部署和交互,在物理安全边界消失后,如何在零信任的网络安全模型下构建企业级容器安全体系是云服务商需要解决的重要问题。

  • 更多的攻击面:基于容器技术的应用部署依赖 Linux 内核 namespaces 和 cgroups 等特性,从攻击者的角度出发,可以利用内核系统漏洞,容器运行时组件和容器应用部署配置等多个维度发起针对性的逃逸和越权攻击。K8s、Docker、Istio 等开源社区近年来也相继爆出不少的高危漏洞,这都给攻击者提供了可乘之机。

  • 缺少应用侧全生命周期的安全防护手段:容器技术在为企业应用架构提供了弹性、敏捷和动态可扩展等特性的同时,也改变了应用的部署模式。首先应用自身的生命周期被大幅缩短,一个容器应用的生命周期通常是分钟级;与此同时,随着存储网络和异构资源利用率等基础设施能力上的提升,容器应用的部署密度也越来越高,传统的面向虚机维度的安全防护策略和监控告警手段已经无法适应容器技术的需求。

  • 缺少对云上安全责任共担模型的理解:企业应用上云后的安全需要遵循责任共担模型,在企业应用架构云原生话的转型过程中,需要企业应用管理者和安全运维人员理解企业自身和云服务商之前的责任边界。这个过程中也需要云服务商面向企业应用侧输出更全面的容器安全最佳实践并提升安全能力的易用性,降低使用门槛。


构建容器安全体系的基本原则


==================================================================================


为了应对上述企业应用在容器化进程中的安全挑战,云服务商和企业应用安全管理运维人员需要携手共建容器应用安全体系:



图 1 - ACK 容器服务安全责任共担模型


1. 云服务供给侧




对于云服务商,首先需要依托于云平台自身的安全能力,构建安全稳定的容器基础设施平台,并且面向容器应用从构建,部署到运行时刻的全生命周期构建对应的安全防护手段。整个安全体系的构建需要遵循如下基本原则:

1)保证容器管控平台基础设施层的默认安全

容器平台基础设施层承载了企业应用的管控服务,是保障业务应用正常运行的关键,容器平台的安全性是云服务商应该格外关注的。


  • 完备的平台安全能力:首先云服务商自身基础设施的安全性是容器平台是否安全的基础,比如?VPC?的安全配置能力,SLB?的访问控制,DDoS?能力和账号系统对云资源的访问控制能力等都是平台侧面向企业应用需要提供的基础安全能力。

  • 版本更新和漏洞应急响应机制:虚机?OS?的版本更新和漏洞补丁的安装能力也是保证基础设施安全的基本防护措施,除此之外如?K8s?等容器相关开源社区的风险漏洞,都可能成为恶意攻击者首选的攻击路径,需要厂商提供漏洞的分级响应机制并提供必要的版本升级能力。

  • 平台的安全合规性:这也是很多金融企业和政府部门应用上云的硬性前提条件。云服务商需要基于业界通用的安全合规标准,保证服务组件配置的默认安全性,同时面向平台用户和安全审计人员,提供完备的审计机制。

2)面向容器应用侧提供纵深防御能力

云服务商不仅要在自身管控侧建立完善的安全武装,同时也需要面向业务应用负载,提供适合云原生场景下容器应用的安全防护手段,帮助终端用户在应用生命周期各阶段都能有对应的安全治理方案。由于云原生具有动态弹性的基础设施,分布式的应用架构和创新的应用交付运维方式等特点,这就要求云服务商能够结合自身平台的基础安全能力,将云原生能力特性赋能于传统的安全模型中,构建面向云原生的新安全体系架构。


2. 企业安全侧




对于企业的安全管理和运维人员来说,首先需要理解云上安全的责任共担模型边界,究竟企业自身需要承担起哪些安全责任。云原生微服务架构下企业应用在 IDC 和云上进行部署和交互,传统的网络安全边界已经不复存在,企业应用侧的网络安全架构需要遵循零信任安全模型,基于认证和授权重构访问控制的信任基础。对于企业安全管理人员来说可以参考关注如下方向加固企业应用生命周期中的生产安全:


  • 保证应用制品的供应链安全


云原生的发展使得越来越多的大规模容器应用开始在企业生产环境上部署,也大大丰富了云原生应用制品的多样性,像容器镜像和 helm charts 都是常见的制品格式。对于企业来说制品供应链环节的安全性是企业应用生产安全的源头,一方面需要在应用构建阶段保证制品的安全性;另一方面需要在制品入库,分发和部署时刻建立对应的访问控制,安全扫描、审计和准入校验机制,保证制品源头的安全性。


  • 权限配置和凭证下发遵循权限最小化原则


基于统一的身份标识体系进行认证授权是在零信任安全模型下构建访问控制能力的基础。对于企业安全管理人员来说,需要利用云服务商提供的访问控制能力,结合企业内部的权限账号体系,严格遵循权限最小化原则配置对云上资源和容器侧应用资源的访问控制策略;另外严格控制资源访问凭证的下发,对于可能造成越权攻击行为的已下发凭证要及时吊销。另外要避免容器应用模板配置如特权容器这样的过大权限,确保最小化攻击面。


  • 关注应用数据和应用运行时刻安全


应用的成功部署上线并不意味着安全工作的结束。除了配置完备的资源请求审计外,安全管理运维人员还需要利用厂商提供的运行时刻监控告警和事件通知等机制,保持对容器应用运行时安全的关注,及时发现安全攻击事件和可能的安全隐患。对于企业应用自身依赖的敏感数据(比如数据库密码,应用证书私钥等)需要根据应用数据的安防等级采用对应的密钥加密机制,利用云上的密钥管理方案和落盘加密,机密计算等能力,保证数据在传输和落盘链路上的数据安全性。


  • 及时修复安全漏洞和进行版本更新


无论是虚机系统,容器镜像或是容器平台自身的安全漏洞,都有可能被恶意攻击者利用成为入侵应用内部的跳板,企业安全管理运维人员需要根据云服务商推荐的指导方案进行安全漏洞的修复和版本更新(比如 K8s 集群版本,应用镜像版本等)。此外企业要负责内部员工的安全培训工作,居安思危,提升安全防护意识也是企业安全生产的基础要务。


端到端的云原生容器安全架构


==================================================================================


阿里云 ACK 容器服务面向广大的企业级客户,构建了完整的容器安全体系,提供了端到端的应用安全能力。在今年 Forrester IaaS 安全评测中,阿里云容器安全能力与谷歌并列满分,领先其他厂商。下图为阿里云容器服务的


【一线大厂Java面试题解析+后端开发学习笔记+最新架构讲解视频+实战项目源码讲义】
浏览器打开:qq.cn.hn/FTf 免费领取
复制代码


安全体系架构图:



图 2 - ACK 容器服务安全体系架构图


首先整个容器安全体系依托于阿里云强大的平台安全能力,包括物理/硬件/虚拟化以及云产品安全能力,构建了夯实的平台安全底座。


在云平台安全层之上是容器基础设施安全层,容器基础设施承载了企业容器应用的管控能力,其默认安全性是应用能够稳定运行的重要基础。首先面向集群 host 节点 OS 镜像本身阿里云操作系统团队做了很多安全加固相关工作,Alibaba Cloud Linux 2 (原 Aliyun Linux 2) 不仅是阿里云官方操作系统镜像,也是 ACK 的首选默认系统镜像。Alibaba Cloud Linux 2 在 2019 年 8 月 16 日正式通过了 CIS 组织的全部认证流程并发布对应的 CIS Aliyun Linux 2 Benchmark version 1.0.0。ACK 正在支持对基于 Alibaba Cloud Linux 操作系统的集群进行 CIS 安全加固来满足简单、快捷、稳定、安全的使用需求。除 CIS 合规外,2021 年 1 月,ACK 已经正式支持对基于 Alibaba Cloud Linux 操作系统的集群进行等保加固


在容器管控侧,阿里云容器服务基于 CIS Kubernetes 等业界安全标准基线对容器管控面组件配置进行默认的安全加固,同时遵循权限最小化原则收敛管控面系统组件和集群节点的默认权限,最小化攻击面。三月,阿里云容器服务提交的 CIS Kubernetes benchmark for ACK 正式通过 CIS 社区组织的认证审核,成为国内首家发布 CIS Kubernetes 国际安全标准基线的云服务商


统一的身份标识体系和访问控制策略模型是在零信任安全模型下构建安全架构的核心,ACK 管控侧和阿里云 RAM 账号系统打通,提供了基于统一身份模型和集群证书访问凭证的自动化运维体系,同时面对用户凭证泄露的风险,创新的提出了用户凭证吊销的方案,帮助企业安全管理人员及时吊销可能泄露的集群访问凭证,避免越权访问攻击事件。


针对密钥管理、访问控制、日志审计这些企业应用交互访问链路上关键的安全要素,ACK 容器服务也提供了对应的平台侧安全能力:


  • 访问控制:ACK 基于 K8s RBAC 策略模型提供集群内应用资源的访问控制能力,在保证非主账号或集群创建者默认无权限的安全前提下,集群管理员可以通过控制台或 OpenAPI 的方式对指定的子账号或 RAM 角色进行集群和账号维度的批量 RBAC 授权,ACK 面向企业常见授权场景,提供了四种预置的权限模板,进一步降低了用户对 RBAC 及 K8s 资源模型的学习成本。对于应用容器中通常依赖的集群访问凭证 serviceaccount,ACK 集群支持开启针对 serviceaccount 的令牌卷投影特性,支持对 sa token 配置绑定 audience 身份,并且支持过期时间的设置,进一步提升了应用对管控面 apiserver 的访问控制能力。

  • 密钥管理:针对企业客户对数据安全自主性和合规性的要求,ACK Pro 集群支持对 K8s Secret 的落盘加密能力,同时支持使用 BYOK 的云盘加密能力,保证企业核心数据安心上云;同时 ACK 集群支持将用户托管在阿里云 KMS 凭据管家中的敏感信息实时同步到应用集群中,用户在 K8s 应用中直接挂载凭据同步的指定 secret 实例即可,进一步避免了对应用敏感信息的硬编码问题。

  • 日志审计:ACK 除了支持 K8s 集群 audit?审计,controlplane?管控面组件日志等基本的管控面日志采集外,还支持对 Ingress?流量的日志审计和基于 NPD 插件的异常事件告警。以上日志审计能力均对接了阿里云 SLS 日志服务,通过 SLS 服务提供的快速检索、日志分析和丰富的 dashboard 展示能力,大大降低了对容器应用开发运维和安全审计的难度。


面向容器应用层在供应链和运行时刻的安全挑战,阿里云从容器应用的构建、部署到运行全生命周期,提供全方位覆盖的安全能力:



图 3 - ACK 容器服务应用全生命周期安全能力


  • 应用构建阶段

评论

发布
暂无评论
云原生时代下,容器安全的“四个挑战”和“两个关键