机密计算容器前沿探索与 AI 场景应用
作者:壮怀、朱江云
企业与个人对数据隐私保护日益关切,从数据,网络的可信基础设施扩展到闭环可信的计算基础设施,可信的计算,存储, 网络基础设施必定成为云计算的标配。 机密计算技术应运而生,其中一个重要的技术是通过芯片的可信执行环境TEE实现数据保护。在TEE内执行的应用,不用担心来自其他应用、其他租户、平台方甚至运维内部团队的安全隐患。
为了解决企业对数据隐私日益关切,阿里云、达摩院操作系统实验室与 Intel 和龙蜥社区一起,推出基于可信执行环境(TEE)的机密计算容器(Confidential Containers,简称 CoCo)在云上的参考架构。企业可以通过容器服务 ACK TDX 机密沙箱容器节点池实现端到端零信任的应用、数据和模型保护。
在 2023 年云栖大会现场,阿里云容器服务高级技术专家壮怀和英特尔中国软件与先进技术事业部的高级经理朱江云共同分享了阿里云容器服务团队与社区和生态伙伴一起,在机密容器领域的探索、安全特性的演进,以及关于如何通过机密容器来保护AI应用的数据、模型以及计算展开探讨。
ACK 端到端可信容器,为数据安全护航
阿里云容器服务高级技术专家壮怀首先分享了对当前容器运行时安全主要威胁的分析、企业应该坚守的安全原则及阿里云容器服务如何与机密计算领域生态伙伴一起,为客户提供端到端可信容器,为企业数据安全保驾护航。
容器运行时安全威胁
通常来说,我们对于企业安全的定义是是“在不加剧安全漏洞的情况下,您能否继续高效/安全地工作”。保证容器运行时安全需要通过最小化权限、零信任的原则,以 Never trust, always verfy 的方式思考 IT 设施各个组件之间的交互方式,思考计算如何做到零信任。
云计算构建了 RAM 鉴权体系、KMS 的密钥密文的管理能力、存储的 BYOK 加密技术、VPC、安全组、身份认证、鉴权、策略治理等等,即便如此,企业仍需思考是否足够解决云计算中信任问题,如计算过程数据的安全性如何保护、进程的计算过程对 root 的运维透明性如何防御等。
安全的好坏取决于 “最薄弱的环节” ,是大家都知道木桶原则,短板决定了容量,短板决定了安全水位,云计算信任问题在解决了存储和网络相关信任问题,更聚焦到了计算的信任问题。
实现安全的过程是对企业资源、所需专业知识、时间管理、实施成本、数据备份/恢复等的 “风险管理”。当今的安全趋势是以安全左移,安全贯穿于开发,构建等更早期的阶段,数据的安全性依然需要贯彻于存储、网络和计算的三项基础设施。
企业对安全的需要是全天候的、持续不断的、永无止境的,安全就是 “在不对网络、生产效率和预算造成负面影响的情况下,以最快的速度学习所有可以学习的知识”。今天第三代的安全容器技术,正是遵循这个原则,从早期的需要侵入式的改造的 SGX1.0,到可以对更大内存空间做机密计算的 SGX2.0,到今天应用无感的平滑迁移进入安全容器技术(TDX/SEV/CCA)。从金融领域,扩展到今天的通用人工智能 AGI 的数据,模型保护。从数据,网络的可信基础设施到闭环可信的计算,可信的基础设施必定成为云计算的标配。
运行时的安全,有以下 5 个主要的安全威胁都可能会导致租户容器内的敏感数据遭到泄露:
- 非授权部署
- 错误配置
- 恶意镜像
- 漏洞利用
- 提权攻击和内存溢出/数据攻击
在云环境中运行容器时,底层基础设施的安全性和云服务提供商的可信度变得至关重要。如果云服务提供商受到入侵或缺乏适当的安全措施,容器内的敏感数据(如凭据、加密密钥或个人身份信息)可能会被未经授权的人员访问或窃取。今天云原生的安全手段通过相应的手段来治理和防护:
- OPA 策略治理应对授权和部署攻击
- 配置巡检应对配置漏洞
- 镜像扫描和 BinaryAuth 防范恶意镜像攻击
- CVE 修复和自动化运维升级抑制漏洞利用攻击
而对于上述第 5 中提到的“提权攻击和内存溢出/数据攻击”, 则需要使用机密虚拟机或者机密沙箱容器来做软硬一体的可信的计算来从根源上治理。
阿里云与 Intel 和龙蜥社区一起,推出机密容器和通用云服务融合的参考架构,三方结合阿里云八代裸金属(Intel)和八代的机密虚拟机实例,KMS,OSS,ACK/ACR 等云服务提供参考解决方案。通过 ACK TDX 机密沙箱容器实现端到端零信任的应用,数据和模型保护。
通过 ACK 机密虚拟机节点池,企业无需对应用本身修改,直接部署云原生应用到机密虚拟机节点池,应用可以无缝切换高安全水位,支持多种机密计算场景,如金融风控、医疗健康数据隐私保护,AIGC/LLM 推理和微调,机密数据库,大数据应用等等。
操作系统和 RunD 对 TDX 支持
RunD 安全容器是龙蜥社区开源的下一代容器解决方案,包含 Rust Kata runtime 和 Dragonball VMM。RunD 安全容器已经于 2022 年由龙蜥云原生 SIG 开源至 Kata Containers 社区,且作为 Kata Container 3.0.0 release 的重要特性。目前龙蜥社区已经完成 Host OS 、Guest OS 和 RunD 安全容器对 TDX 硬件的支持工作,并提供机密容器解决方案的端到端支持。
租户级的远程证明
ACK 提供的多租户的远程证明服务提供了完整的租户级远程证明框架,用以支持建立用户对 TEE 从硬件到软件的全栈信任,从而实现注入密钥和证书注入等一系列关键的安全需求。达摩院操作系统实验室致力于研究远程证明架构对应用负载的完整可信,通过 Attestation Agent 运行在 TEE 内(这里的 TEE 主要包括机密虚拟机和机密沙箱内部)收集证据并发送给租户级服务 KBS,KBS 通过将证据转发给后端的 Attestation Service 对证据进行验证,然后向 TEE 内返回证明结果以及所需的秘密资源数据,从而达到对于应用负载,代码,配置,输入的安全度量。
远程证明体系整体采用模块化和插件化设计,以统一的软件架构兼容多种 TEE 平台。KBS 通过 RESTful API 接收来自TEE或者租户的请求,在 KBS 内部我们实现了灵活的资源存储插件和 Attest Proxy 插件,从而允许在实际场景中对接不同的第三方存储服务和 Attestation Service。在后端的 Attestation Service 中,集成了 OPA 实现的策略引擎以支持租户深度定制的证明策略。通过 ACK 应用市场可以实现远程证明服务的组件化部署和定制化。
在 ACK Pro 集群中可以通过部署远程证明服务,添加节点池,和部署运行时三个步骤来部署机密计算服务。
- 通过选择 ECS 8 代 Intel 物理机来构建 TEE 的安全沙箱容器节点池,或者选择 ECS 8 代 Intel 的虚拟机开启机密特性来构建 TEE 的机密虚拟机节点池。
- 通过 ACK 应用市场,云原生的方式一键部署远程证明和代理服务实例,helm install coco-kbs。
- 通过 ACK 应用市场部署 coco-operator 来提供两种新的容器运行时,kata-dragonball-tdx,kata-qemu-tdx 以及增强安全特性后的 runc,helm install coco-operator。
机密容器关键安全特性探索实践
来自英特尔中国软件与先进技术事业部的高级经理朱江云代表 ACK 机密容器生态合作重要伙伴,向观众分享了容器运维行安全的演进、机密容器关键安全特性的发展以及在 AI 等前沿领域的探索落地。
容器的运行时,共享内核的 runc 仍然占据主流的部署;随着安全需求的提升,独立内核的沙箱容器出现带来了更好的隔离性和更小的攻击面,降低了宿主机和云厂商的安全风险;随着对用户数据隐私要求的进一步提升,硬件加密的客户机内存和硬件生成的客户机密钥,结合远程证明,进一步保护了客户的隐私数据和代码,避免了硬件所有者窥探计算过程中的数据。
机密容器(Confidential Containers)是云原生基金会(CNCF)旗下的一个沙箱项目,它使用硬件信任执行环境(TEE)为容器化的工作负载提供机密性和完整性。机密容器两大设计原则就是易用和安全。从易用性角度,无缝对接 Kubernetes 和容器生态, 确保应用能够平滑迁移;从安全性角度,机密容器有着更严格的威胁模型,通过提供 Pod/VM 级 TCB,对 IT 运维人员和云厂商也可以做到计算过程的零信任。
结合 KMS,BYOK OSS,BYOK EBS,VPC,ACK,ACR 等云服务,端到端把零信任覆盖计算,存储和网络和配置, 对所有 POD 之外的输入做验证,所有 POD 里的非应用组件做度量,实现完整的应用可信和安全加固。
为了确保 App 容器运行在可信运行时环境 不被恶意篡改,安全容器参考架构提供了可度量的 guest rootfs,并利用 dm-verity 通过远程证明服务提供根文件系统的完整性,并且保证了启动性能。
为了确保 App 容器以期待的方式拉起,需要通过 OPA 策略定义和度量容器的元数据,包括:
- 环境变量
- mount points
- OCI API
为了确保容器镜像的完整性,确保拉起过程中没有被恶意修改或者替换,使用镜像签名机制完成镜像校验,从 Key Broker Service 获得校验密钥,校验 Policy 并通过 CoSign/sigstore, GPG key 等方式校验镜像的完整性。
为了保护镜像的机密性和不可窥探性,容器在运行时需要对主机不可见,通过镜像加密保证容器镜像对服务提供商不可获取,容器镜像在硬件 TEE 里下载和解密对运维人员不可见,加密后的容器镜像支持 OCI 和 distribution,支持按层加密和可选层加密主要针对模型和私有代码的保护,解密密钥在通过远程证明验证后发放只对 TEE 可见。
安全的云上存储访问 ,存储相关的敏感信息以 sealedSecret 方式布署,敏感信息在 TEE 环境中被解密,并且这个过程依赖于远程证明,而不依赖于外部存储的传统服务端加密服务,安全挂载服务使用相关机密信息来挂载和解密外部存储。
基于机密容器构建可信 AI 应用
生成式人工智能(AIGC)等创新浪潮驱动了人工智能的新一轮增长,模型训练和模型推理成为云服务器的重要负载。如何在云上保护大数据分析和人工智能应用的数据安全和隐私,是数据科学家和云服务提供商共同面临的挑战。为了应对这个问题, 阿里云容器服务推出基于英特尔® TDX 的机密容器服务解决方案,通过 ACK TDX 机密容器实现端到端零信任的数据和模型保护,基于第四代英特尔® 至强®平台的 高级矩阵扩展(AMX)的 INT8(推理)和 BFloat16(训练/推理)内置 AI 加速能力, 可以实现高安全和高性价比的推理和微调服务:
- 安全可信 - 通过加密 AI 模型存储和加密的私有应用镜像,保障模型数据的机密性与完整性,实现可信 AI 模型推理和微调
- 高性价比 - 基于Intel ® AMX指令集和 Intel ® PyTorch 扩展,32 核可以实现秒级出图的推理能力
- 低损耗 - 加密计算 TDX 性能损耗控制在 3% 以下
使用 BigDL LLM 在 ACK 机密容器上部署推理和模型调优 ,BigDL LLM 是 Intel 平台上的大语言模型加速库,结合数据加密和阿里云存储和密钥服务,全链路安全保护的分布式大语言模型安全,也可以全链路安全保护的大语言模型微调数据的安全,通过 BigDL 和 ECS 8 代实例实现模型推理和微调的加速。
容器是承载可信基础设施最好的平台服务
云计算提供存储(BYOK 加密)和网络(非对称传输加密)的可信基础设施,发展到今天可信的计算(TDX/SEV/CCA)。大胆的猜测,可信的存储、网络、计算的基础设施必定成为云计算的标配,而容器正是承载可信基础设施最好的平台服务, 这也是我们为可信计算落地阿里云的初衷。
点击此处,详细了解如何在 ACK 上创建 TDX 机密虚拟机计算节点池