速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

蚂蚁集团针对 K8s 中 Secret 安全防护的实践与探索

  • 2020-08-11
  • 本文字数:2008 字

    阅读完需:约 7 分钟

蚂蚁集团针对K8s中Secret安全防护的实践与探索

在 K8s 中,Secret 非常重要。因为它是 K8s 中存储所有敏感信息的对象。据悉,这些敏感信息包含密码、集群的证书、OAuth token、ssh key 以及其他用户自定义的敏感文件等。因此,一旦 K8s 中 Secret 出现安全问题,后果将非常严重。此外,虽然社区提供了一定的安全防护方案,但是依然存在诸多问题。


K8s Secret 面临着哪些安全问题?这些安全问题会带来什么影响?社区提供的解决方案存在哪些不足?…针对这些问题,InfoQ 记者采访了蚂蚁集团高级工程师秦凯伦,他专注于可信计算、系统安全和虚拟化等领域,对 K8s Secret 有着深入的研究和探索。

K8s Secret 的安全问题

根据 K8ss 文档,Secret 是 K8s 中存储所有敏感信息的对象。事实上,如果敏感信息直接存放于 K8s 的 pod spec 或镜像中,不仅管控困难,而且存在较大的安全隐患。因此,K8s 通过创建、管理、应用 Secret 对象,可以更好地控制敏感信息的用途,并降低其意外暴露的风险。


秦凯伦称,虽然引入 K8s Secret 对象,这在一定程度上降低了意外泄露的风险(更多地是通过集中式的管理),但是 K8s Secret 对象自身的安全性,“社区默认方案中仍存在许多安全问题”。


一般来说,K8s 中,Secret 数据以纯文本的方式存储在 etcd 中,默认只有 base64 编码,未经加密。同时,共享该文件或将其检入代码库,密码容易泄露。

社区解决方案的不足

针对此问题,K8s 社区提供了基于 KMS 的 K8s Secret 加密方案,谷歌云、AWS 和 Azure 均支持该方案。他说,“这虽然解决了 etcd 中 Secret 明文存储问题,但依然有一些问题。”


  • Secret、加密 Secret 的密钥在内存中明文存放、易被攻破;

  • 攻击者可以假冒合法用户,调用解密接口,窃取密钥。


密钥一旦泄露,将导致所有数据的泄露,从而引起用户对整个系统的信任崩溃。“为此,社区和一些公司尝试为该方案中的 Plugin 加上基于硬件的安全保护,从而提升攻击难度。但对某些特定用户来说,保护的覆盖面和程度依然不够”。实际上,我们可以从 K8s Secret 的整个生命周期来看:



  • Secret 的生成及访问 Secret 的身份证书明文存放在用户侧内存中,用户侧环境复杂,容易被攻击者攻破;

  • 加密 Secret 的密钥的生成、cache 等在 K8s API server 中明文存放在内存中,安全根易被窃取或破坏;

  • 与 KMS 交互的 Plugin 的加解密接口无法防止攻击者假冒,存在泄漏风险;

  • Secret 在 Node 中消费,依然明文内存存放,暴露出一定攻击面。


在秦凯伦看来,理想中,对 K8s 中 Secret 的保护程度应该考虑其整个生命周期的安全、可信,做到端到端的安全防护。

蚂蚁集团的探索

为此,他们基于 TEE 技术,将 K8s Secret 整个生命周期和端到端使用过程中的关键组件、步骤保护起来。整体方案大致如下:



  • 将 API Server 端与 KMS 交互的 KMS Plugin 用 TEE 保护,在保障了 Plugin 中根密钥(安全根)、数据加密密钥无泄漏风险的前提下,降低了性能开销;

  • 将 API Server 端的 KMS provider 用 TEE 保护,避免数据密钥及 Secret 在任何时候明文直接暴露在内存中;同时,通过 TEE 的本地证明机制能够认证解密数据密钥接口的调用者,防止攻击者假冒,确保密钥的安全;

  • 将用户端的 kubectl、kubeconfig 等使用 TEE 保护,一方面 kubeconfig 不落盘同时被硬件保护,提升了安全水位;另一方面,用户的 Secret 通过安全信道直通到 TEE 中进行处理,避免了直接暴露在内存中,规避了被恶意窃取的风险,且用户对 API Server 进行 TEE 远程证明,可以帮助用户确信他正在把自己的 Secret 托付给可信的软件实体(没有含有故意泄露用户秘密的恶意逻辑),建立对 API Server 的信任;

  • 将 Node 端的 kubelet 中 Secret 的消费过程用 TEE 保护,进一步避免了 Secret 直接暴露在内存中,规避了被恶意窃取的风险。


秦凯伦向 InfoQ 记者指出,“这种方案是基于 TEE 的端到端 K8s Secret 保护,还引入 LibOS 技术,实现 TEE 保护对用户、开发者和运维团队完全透明。”


据悉,KMS Plugin 和 TEE-based KMS Plugin 没有标准和开源的社区实现,因此他们设计并开发了自己的 KMS Plugin,并在灰度发布、应急处理、监控管理等方面进行了生产增强。“在与 TEE 结合的过程中,我们为了应对 SGX 机型存在的性能问题,提供了 standalone 和服务化 KMS Plugin 两套方案”。


同样,TEE-based kubectl 也没有标准和开源的社区实现,他说:“我们基于 kubeproxy 开发了自己的安全 kubectl,实现了 kubeconfig 对用户透明、与用户身份绑定、不落盘并采用 TEE 保护内存安全等设计目标。”


此外,考虑到 TEE 保护的易用性、可靠性、可扩展性和可维护性等,他们在评估多套方案后,引入了由蚂蚁开源的 Occlum LibOS,屏蔽了 TEE 对用户、开发者和运维团队的影响,大大降低了 TEE 开发的门槛和成本。


在秦凯伦看来,K8s 作为蚂蚁大规模容器集群的管控根基,应用基于 TEE 的端到端 K8s Secret 保护防护方案,增强了其自身安全和可信,提升了蚂蚁核心管控平面的安全水位,“这对于金融场景下高标准的数据安全和隐私保护来说不可或缺”。


2020-08-11 08:002395
用户头像
万佳 前InfoQ编辑

发布了 677 篇内容, 共 359.2 次阅读, 收获喜欢 1800 次。

关注

评论

发布
暂无评论
发现更多内容

高薪线下周末班马上开班,手把手带你提升职业技能

霍格沃兹测试开发学社

北方民族大学40周年校庆学术活动-第四届自动化控制、算法与智能仿生学术会议(ACAIB 2024)

搞科研的小刘

计算机 #人工智能 学术会议 学术论文 EI

【中国算力大会分会】2024算法、高性能计算与人工智能国际学术会议(AHPCAI 2024)

搞科研的小刘

人工智能 算法 学术会议 学术论文 EI

CyberScheduler架构引擎

数新网络官方账号

云时代下的呼叫中心:SD-WAN的推动作用

Ogcloud

SD-WAN SD-WAN组网 SD-WAN服务商 异地组网 SDWAN

和鲸“101 数智领航计划”成果展示:携手北中医共建健康医疗人工智能实验室

ModelWhale

人工智能 大数据 北中医

美团面试:如何实现线程任务编排?

快乐非自愿限量之名

Java 面试 JVM

项目管理十二原则

EquatorCoco

项目管理 项目开发

基于大语言模型的应用

悦数图数据库

大语言模型

浪潮信息-龙蜥技术认证上线,培训专场圆满召开

OpenAnolis小助手

操作系统 龙蜥社区 浪潮信息 龙蜥人才培养计划

龙蜥SIG月度动态:两大特性合入 Linux 主线,提供高速本地通信加速及丰富的设备信息

OpenAnolis小助手

操作系统 高性能网络 龙蜥社区 龙蜥技术sig

重构MQ处理架构:MVEL表达式和责任链设计模式应用实践

京东零售技术

后端 代码规范 代码整洁 企业号 5 月 PK 榜

浪潮信息-龙蜥技术认证上线,培训专场圆满召开

OpenAnolis小助手

开源 操作系统 龙蜥社区 浪潮信息 龙蜥人才培养计划

CaffeineCache Api介绍以及与Guava Cache性能对比| 京东物流技术团队

京东科技开发者

基于龙蜥衍生版 KeyarchOS 的 LVM 卷管理技术与实践 | 干货推荐

OpenAnolis小助手

操作系统 技术干货 龙蜥社区 龙蜥操作系统 浪潮信息

2024南京智博会:展示国内外前沿科技成果,推动智能产业快速发展

AIOTE智博会

南京智博会 大数据展 智慧城市展

Meme币取代VC代币 让比特币越来越好

区块链软件开发推广运营

dapp开发 区块链开发 NFT开发 公链开发 代币开发

腾讯云与钢研新材达成战略合作,加速金属材料产业链企业数字化升级

Geek_2d6073

百度智能云参与信通院多项边缘计算标准编制,「大模型时代下云边端协同 AI 发展研讨会」成功召开

Baidu AICLOUD

边缘计算 大模型 边缘计算平台

担心巡检作假?草料五大防作假功能,可组合使用

草料二维码

设备巡检 设备管理 草料二维码 设备巡检系统 二维码巡检

充分发挥财务敏捷性,扩大集成式财务规划的价值

智达方通

企业管理 财务转型

一文搞懂RESTful开发

不在线第一只蜗牛

RESTful Rest

Vite 的预构建原理与实践| 京东物流技术团队

京东科技开发者

暗水印——空域:二值化图像水印(看不见我吧 啦啦啦~)

京东科技开发者

C# 程序集、模块和类型概念及关系

不在线第一只蜗牛

C# 开发语言 程序集

信创数据库有哪些?哪家好?堡垒机支持吗?

行云管家

数据库 信创 堡垒机 国产化

精选:2024年市场上10个最好的一体化协同办公平台

爱吃小舅的鱼

协同办公 协同办公系统

蚂蚁集团针对K8s中Secret安全防护的实践与探索_安全_万佳_InfoQ精选文章