`
大涛学长
  • 浏览: 105038 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

Kubernetes 时代的安全软件供应链

阅读更多
作者 
汤志敏  阿里云容器服务高级技术专家 
汪圣平  阿里云云平台安全高级安全专家

> **导读**:从 Docker image 到 Helm, 从企业内部部署到全球应用分发,作为开发者的我们如何来保障应用的交付安全。本文会从软件供应链的攻击场景开始,介绍云原生时代的应用交付标准演进和阿里云上的最佳实践。

“没有集装箱,就不会有全球化”。在软件行业里,Docker 和 Kubernetes 也扮演了类似的角色,加速了软件行业的社会化分工和交付运维的效率。2013 年, Docker 公司提出了容器应用打包规范 Docker Image,帮助开发者将应用和依赖打包到一个可移植的镜像里。2015 年,Google 将 Kubernetes 捐献给 CNCF,进一步普及了大规模容器编排调度的标准。

Kubernetes 以一种声明式的容器编排与管理体系,屏蔽了底层基础架构的差异,让软件交付变得越来越标准化。随着 K8s 为代表的云原生技术的大规模运用,越来越多的容器化应用被分发到 IDC、公共云、边缘等全球各地。

在 2019 年,阿里云容器镜像服务 ACR 的月镜像下载量超过了 3 亿次。同年 10 月,阿里云云市场的容器镜像类目发布,越来越多的企业将其软件以容器的方式进行上架和销售。11 月,天猫 双11 的所有核心系统 100% 上云,容器镜像服务 ACR 除了支持 双11 的内部镜像托管以外,也将内部的能力在云上透出,支持更多的 双11 生态公司。

接下来我们看下如何保证容器和 Kubernetes 下的软件供应链安全,并先熟悉下软件供应链的常见攻击场景。

软件供应链攻击面和典型攻击场景
===============

软件供应链通常包括三个阶段:

*   软件研发阶段
*   软件交付阶段
*   软件使用阶段

在不同阶段的攻击面如下:

![1.png](https://ucc.alicdn.com/pic/developer-ecology/2f453d1c4c4045a0a1b085e989f845cb.png)

历史上著名的 APPLE Xcode IDE 工具攻击就是发生在软件研发阶段的攻击,攻击者通过向 Xcode 中注入恶意后门,在非官方网站提供下载,所有使用此 Xcode 的开发者编译出来的 APP 将被感染后门。同样著名的还有美国的棱镜门事件,亦是在大量的软件中植入后门程序,进行数据获取等恶意操作。

Kubernetes 中的软件供应链攻击面也包括在以上范围之中,以软件使用阶段为例,今年 RunC 漏洞 CVE-2019-5736,漏洞本身与 RunC 的运行设计原理相关,Container 之外的动态编译 Runc 被触发运行时会引用 Conainer 内部的动态库,造成 RunC 自身被恶意注入从而运行恶意程序,攻击者只需要在一个 Container 镜像中放入恶意的动态库和恶意程序,诱发受攻击者恶意下载运行进行模糊攻击,一旦受攻击者的 Container 环境符合攻击条件,既可完成攻击。

![2.png](https://ucc.alicdn.com/pic/developer-ecology/237c810c22d7451499d787bcb6070918.png)

同样的攻击面还存在于 Kubernetes 自身服务组件之中,前段时间爆出的 HTTP2 CVE-2019-9512、CVE-2019-9514 漏洞就是一个非常好的软件研发阶段脆弱性的例子,漏洞存在于 GO 语言的基础 LIB 库中,任何依赖 GO 版本(<1.2.9)所编译的 KubernetesHTTP2 服务组件都受此漏洞影响,因此当时此漏洞影响了 K8s 全系列版本,攻击者可以远程 DOS Kubernetes API Server。同时在 Kubernetes 组件的整个交付过程中也存在着攻击面,相关组件存在被恶意替换以及植入的可能性。

不同于传统的软件供应链,镜像作为统一交付的标准如在容器场景下被大规模应用,因此关注镜像的使用周期可以帮助攻击者更好的设计攻击路径。

![3.png](https://ucc.alicdn.com/pic/developer-ecology/4d7d94bd88ed42c0a6789cd280de2ef5.png)

攻击者可以在镜像生命周期的任何一个阶段对镜像进行污染,包括对构建文件的篡改、对构建平台的后门植入、对传输过程中的劫持替换和修改、对镜像仓库的攻击以替换镜像文件、对镜像运行下载和升级的劫持攻击等。

整个攻击过程可以借助云化场景中相关的各种依赖,如 Kubernetes 组件漏洞、仓库的漏洞,甚至基础设施底层漏洞。对于防御者来说,对于镜像的整个生命周期的安全保障,是容器场景中攻击防范的重中之重。

云原生时代的应用交付标准演进(从 Image 到 Artifacts)
===================================

在云原生时代之前,应用交付的方式比较多样化,比如脚本、RPM 等等。而在云原生时代,为了屏蔽异构环境的差异,提供统一的部署抽象,大家对应用交付标准的统一也迫切起来。

Helm
----

Helm 是 Kubernetes 的包管理工具,它提出了 Chart 这个概念。

*   一个 Chart 描述了一个部署应用的多个 Kubernetes 资源的 YAML 文件,包括文档、配置项、版本等信息;
*   提供 Chart 级别的版本管理、升级和回滚能力。

CNAB
----

CNAB 是 Docker 和微软在 2018 年底联合推出平台无关的 Cloud Native Application Bundle 规范。相比于 Helm,有额外几个定义:

*   在 thick 模式时,CNAB 的 bundle 可以包含依赖的镜像二进制,从而不需要额外去镜像仓库下载,作为一个整体打包;
*   CNAB 定义了扩展的安全标准,定义了 bundle 的签名(基于 TUF )和来源证明(基于 In-Toto)描述;
*   CNAB 的部署是平台无关性,可以部署在 K8s 之上,也可以通过 terraform 等方式来部署。

CNAB 的这些特性,可以在可信软件分发商与消费者之间进行跨平台(包括云和本地 PC)的应用打包和分发。

![4.png](https://ucc.alicdn.com/pic/developer-ecology/a3efd056559c401a9656d6972efd1f24.png)

OCI Artifacts
-------------

2019 年 9 月,开放容器标准组织(OCI)在 OCI 分发标准之上,为了支持更多的分发格式,推出了 OCI Artifacts 项目来定义**云原生制品(Cloud Native Artifacts)**的规范。我们可以通过扩展 media-type 来定义一种新的 Artifacts 规范,并通过标准的镜像仓库来统一管理。

Kubernetes 时代的安全软件供应链
=====================

在之前章节也提到过,相对于传统软件的安全软件供应链管理,容器和 Kubernetes 的引入使得:

*   发布和迭代更加频繁,容器的易变性也使得安全风险稍纵即逝;
*   更多的不可控三方依赖,一旦一个底层基础镜像有了安全漏洞,会向病毒一样传递到上层;
*   更大范围的全球快速分发,在分发过程中的攻击也会使得在末端执行的时造成大规模安全风险。

在传统的软件安全和安全准则之上,我们可以结合一些最佳实践,沉淀一个新的端到端安全软件供应链:

![5.png](https://ucc.alicdn.com/pic/developer-ecology/81f0ffc9981641c6acfd3e6812757f42.png)

我们来看一些和安全软件供应链相关的社区技术进展:

Grafeas
-------

2017 年 10 月,Google 联合 JFrog、IBM 等公司推出了 Grafeas。Grafeas(希腊语中的"scribe")旨在定义统一的方式来审核和管理现代软件供应链,提供**云原生制品的元数据管理能力**。可以使用 Grafeas API 来存储,查询和检索有关各种软件组件的综合元数据,包括合规和风险状态。

![6.png](https://ucc.alicdn.com/pic/developer-ecology/3cd134b3af5f428cb1275aa1ef6a9b09.png)

In-toto
-------

In-toto 提供了一个**框架或策略引擎来保护软件供应链的完整性**。

通过验证链中的每个任务是否按计划执行(仅由授权人员执行)以及产品在运输过程中未被篡改来做到这一点。In-toto 要求项目所有者创建布局 (Layout)。布局列出了软件供应链的步骤 (Step) 顺序,以及授权执行这些步骤的工作人员。当工作人员执行跨步操作时,将收集有关所使用的命令和相关文件的信息,并将其存储在链接 (Link) 元数据文件中。通过在完整的供应链中定义每个 Step,并对 Step 进行验证,可以充分完整的完整整个供应链的安全。

Kritis
------

为强化 Kubernetes 的安全性,Google 引入了二进制授权 (Binary Authorization),确保使用者只能将受信任的工作负责部署到 Kubernetes 中。二进制授权可以基于 Kubernetes 的 Admission Controller 来插入部署准入检测,让只有授权后的镜像在环境中运作。

下图为一个策略示例:

![7.png](https://ucc.alicdn.com/pic/developer-ecology/23d4cac5cd9946628ab98532221adcd0.png)

同时对于在安全软件供应链中占比很大的第三方软件,需要有完善的基线机制和模糊安全测试机制来保障分发过程中的安全风险,避免带已知漏洞上线,阿里云正在与社区积极贡献帮助演进一些开源的工具链。

关于基础镜像优化、安全扫描、数字签名等领域也有非常多的工具和开源产品,在此不一一介绍。

云端的安全软件供应链最佳安全实践
================

在阿里云上,我们可以便捷地基于容器服务 ACK、容器镜像服务 ACR、云安全中心打造一个完整的安全软件供应链。

安全软件供应链全链路以云原生应用托管为始,以云原生应用分发为终,全链路可观测、可追踪、可自主设置。可以帮助安全需求高、业务多地域大规模部署的企业级客户,实现一次应用变更,全球化多场景自动交付,极大提升云原生应用交付的效率及安全性。

![8.png](https://ucc.alicdn.com/pic/developer-ecology/006886cffe29479e882b83bb942c0791.png)

在云原生应用的安全托管阶段,容器镜像服务 ACR 支持容器镜像、Helm Chart 等云原生资产的直接上传托管;也支持从源代码(Github、Bitbucket、阿里云 Code、GitLab 来源)智能构建成容器镜像。在安全软件供应用链中,支持自动静态安全扫描并自定义配置安全阻断策略。一旦识别到静态应用中存在高危漏洞后,可自动阻断后续部署链路,通知客户失败的事件及相关漏洞报告。客户可基于漏洞报告中的修复建议,一键更新优化构建成新的镜像版本,再次触发自动安全扫描。

*   在云原生应用的分发阶段,当安全漏洞扫描完成且应用无漏洞,应用将被自动同步分发至全球多地域。

由于使用了基于分层的调度、公网链路优化以及免公网入口开启的优化,云原生应用的全球同步效率,相比本地下载后再上传提升了 7 倍。云原生应用同步到全球多地域后,可以自动触发多场景的应用重新部署,支持在 ACK、ASK、ACK[@Edge](https://yq.aliyun.com/go/articleRenderRedirect?url=%23) 集群中应用自动更新。针对集群内大规模节点分发场景,可以实现基于镜像快照的秒级分发,支持 3 秒 500 Pod 的镜像获取,实现业务在弹性场景下的极速更新。

*   在云原生应用运行阶段,可实现基于云安全中心的应用运行时威胁检测与阻断,实时保障每个应用 Pod 的安全运行。

云安全中心基于云原生的部署能力,实现威胁的数据自动化采集、识别、分析、响应、处置和统一的安全管控。利用多日志关联和上下文分析方案,实时检测命令执行、代码执行、SQL 注入、数据泄露等风险,覆盖业务漏洞入侵场景。结合 K8s 日志和云平台操作日志实时进行行为审计和风险识别,实现容器服务和编排平台存在的容器逃逸、AK 泄露、未授权访问风险。

总结
--

随着云原生的不断发展,云原生应用也会在安全、交付、全球分发等领域持续演进。我们可以预见一个新的时代:越来越多的大型软件以积木的方式由全球开发者独立开发而最终合并组装。

 

 

 

[原文链接](https://link.zhihu.com/?target=https%3A//yq.aliyun.com/articles/730349%3Futm_content%3Dg_1000090543)

本文为阿里云内容,未经允许不得转载。
分享到:
评论

相关推荐

    云原生软件供应链安全演进架构.pptx

    《云原生软件供应链安全演进架构》 随着云计算技术的快速发展,云原生软件供应链安全已成为行业关注的焦点。云原生环境下的软件开发、编译、测试、分发和部署过程,需要一套全面而严密的安全框架来保障。本文将深入...

    云原生软件供应链安全演进.pdf

    在云原生时代,软件供应链的新特性包括更频繁的迭代、All in One的开发环境以及立体化的安全体系。这种新体系强调了对整个供应链的全面保护,不仅关注软件本身的安全,还注重供应链各个环节的安全性。例如,云原生...

    2021云原生产业大会PPT合集(32份).zip

    企业开源安全可信供应链治理实践分享 全栈容器云能力要求与金融场景容器性能系列标准 腾讯云原生最佳实践 网商银行云原生架构探索与实践 无服务器(Serverless)架构系列标准 小米的开源实践 新华三云原生微服务...

    阿里巴巴经济体云原生实践 20191

    在云原生的安全性和可观测性方面,书中提到了全链路可观测性的重要性,如阿里巴巴鹰眼系统的全面升级,以及Kubernetes时代的安全软件供应链。同时,书中还讨论了安全容器、云原生沙箱技术、全链路加密、零信任安全...

    微服务开元数字报告.pdf

    报告中提到了全链路可观测性的实践,如阿里巴巴鹰眼的升级,以及Kubernetes时代的安全软件供应链、零信任安全架构、云原生沙箱技术和全链路加密等。这些技术确保了微服务环境的安全运行和问题诊断。 【开源贡献与...

    rekor-operator:Rekor的运营商

    在当前的数字化时代,软件供应链安全成为了至关重要的议题。Rekor通过公开存储和验证软件包的哈希值,确保了代码在整个开发和分发过程中的完整性。Rekor Operator使得在Kubernetes环境中部署和管理Rekor服务变得简单...

    云原生技术引领数字化转型升级.pptx

    云原生的安全挑战主要包括运行时安全、基础架构安全和软件供应链安全。阿里云提供了全面的云原生安全解决方案,如自动安全扫描、镜像签名、RAM认证和细粒度授权,以及基于安全沙箱的容器隔离技术,有效降低了安全...

    2020 微服务领域开源数字化报告1

    云原生安全涉及软件供应链安全、容器安全、零信任安全架构等多个方面,确保云环境的安全运行。全链路可观测性是通过监控、日志和追踪等手段,确保在云原生环境中能快速定位和解决问题。阿里巴巴鹰眼在云原生时代的...

    阿里云上的企业业务开发.pptx

    例如,通过自动化测试和持续集成/持续部署(CI/CD),企业可以构建起软件供应链,确保每一次发布都是经过验证的。同时,云效平台还提供镜像签名、漏洞扫描等安全措施,保护应用免受潜在威胁。 在组织职能升级方面,...

    2017云栖大会 成都峰会(全集)

    - 智能供应链:介绍了利用AI技术优化供应链流程,实现供需匹配,降低库存成本,提高响应速度。 2. **创新创业专场**: - 创新驱动:讨论了创新在企业发展中的关键作用,以及如何利用云计算技术推动创业创新。 - ...

    云计算国内最全核心期刊论文

    "基于云计算的电子商务模式.pdf"可能探讨了云计算对电子商务的影响,包括如何利用云计算实现弹性扩展的电商平台,提升用户体验,优化供应链管理,以及通过大数据分析改善商业决策。 "人联网物联网互联网.pdf"可能...

    华为云金融全栈创新解决方案.pdf

    - 区块链技术在金融行业的应用,如联合征信、供应链金融,可以提高交易透明度,降低信任成本。 4. **5G与金融的融合**: - 5G的大规模并发处理能力和超低延迟特性,将对金融行业的实时交易、智能客服、远程服务等...

    企业云上业务开发方案.pptx

    CI/CD(持续集成/持续部署)打造企业软件供应链,建立自动化体系,支持持续创新;以及IT部门组织职能升级,通过工具推动研发团队向跨职能角色转变,实现持续交付和测试。 总结来说,企业云上业务开发方案强调了通过...

    2020微软在线技术峰会PPT汇总(48份).zip

    .pdf', '云平台助力企业创新——基于 Linux 的云上最佳实践.pdf', '云平台安全响应机.pdf', '互联,预测,认知与创新—— Dynamics 365 助力智能供应链转型.pdf', '从 IoT 到 AIoT:智慧农业重装上阵.pdf', '从AI在...

    不一样的双11技术,阿里巴巴经济体云原生实践.pdf

    从全链路可观测性的提升、安全软件供应链、安全容器,到云原生时代的Identity、零信任安全架构,以及开发者工具——CloudToolkit的介绍,都体现了阿里巴巴在云安全方面的全方位布局。 文档还提到了对双11背后架构...

    Information-Technology-ODD20

    9. 区块链技术:区块链以其去中心化、透明性和不可篡改的特性,在金融、供应链、版权保护等领域展现出巨大潜力。 10. 边缘计算:随着物联网设备的增多,边缘计算应运而生。它将数据处理和分析任务推至网络边缘,...

    2019年报告卡

    5. **区块链技术的探索**:2019年,区块链技术开始走出加密货币的范畴,向供应链管理、数字身份认证、版权保护等领域拓展。分布式账本技术的安全性和透明性,为各行各业提供了新的解决方案。 6. **物联网(IoT)的...

Global site tag (gtag.js) - Google Analytics