> 攻略 > 手游攻略 > 详情

天猫双11所有核心系统100%上云,容器镜像服务ACR

2024-02-03 01:03:56 | 来源: 互联网整理

Kubernetes 使用声明式容器编排和管理系统来屏蔽底层基础设施的差异,使软件交付越来越标准化。 随着以K8s为代表的云原生技术的大规模应用,越来越多的容器化应用分布到全球的IDC、公有云、边缘等地。

2019年,阿里云容器镜像服务ACR月度镜像下载量突破3亿次。 同年10月,阿里云市场容器镜像品类发布。 越来越多的公司以容器的形式列出和销售他们的软件。 11月,天猫双11所有核心系统100%上云。 容器镜像服务ACR除了支持双11内部镜像托管外,还在云上开放内部能力,支持更多双11生态企业。

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

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

软件供应链通常由三个阶段组成:

不同阶段的攻击面如下:

历史上著名的APPLE Xcode IDE工具攻击就是发生在软件开发阶段的攻击。 攻击者将恶意后门注入Xcode,并在非官方网站上提供下载。 所有使用此 Xcode 的开发人员编译的应用程序都会被该后门感染。 。 同样著名的还有美国的棱镜门事件,该事件也在大量软件中植入了后门程序,以执行数据获取等恶意操作。

Kubernetes中的软件供应链攻击面也包含在上述范围内。 以软件使用阶段为例,今年的RunC漏洞CVE-2019-5736,漏洞本身与RunC的运行设计原理有关,在Container外部动态编译的Runc在运行时触发时,会动态Container内部的库会被引用,导致RunC本身被恶意注入来运行恶意程序。 攻击者只需将恶意动态库和恶意程序放入Container镜像中,诱导攻击者恶意下载并运行即可进行混淆。 攻击,一旦受害者的Container环境满足攻击条件,就可以完成攻击。

同样的攻击面也存在于 Kubernetes 自己的服务组件中。 前段时间曝光的HTTP2 CVE-2019-9512和CVE-2019-9514漏洞就是一个非常好的软件开发阶段漏洞的例子。 该漏洞存在于 GO 语言中。 基础 LIB 库、任何依赖的 GO 版本(

与传统的软件供应链不同,镜像作为统一的交付标准广泛应用于容器场景。 因此,关注图像的使用周期可以帮助攻击者更好地设计攻击路径。

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

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

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

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

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

国家原子能委员会

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

CNAB 的这些功能支持在可信软件分销商和消费者之间进行跨平台(包括云和本地 PC)应用程序打包和分发。

OCI 文物

2019年9月,开放容器标准组织(OCI)启动OCIArtifacts项目,定义Cloud Native Artifacts的规范,以便基于OCI分发标准支持更多的分发格式。 我们可以通过扩展media-type来定义新的Artifacts规范,并通过标准的镜像仓库进行统一管理。

Kubernetes时代的安全软件供应链

正如上一章提到的,与传统的软件安全软件供应链管理相比,容器和 Kubernetes 的引入可以:

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

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

格拉菲亚斯

2017年10月,谷歌联合JFrog、IBM等公司推出了Grafeas。 Grafeas(希腊语“抄写员”)旨在定义一种统一的方式来审核和管理现代软件供应链,为云原生产品提供元数据管理功能。 Grafeas API 可用于存储、查询和检索有关各种软件组件的全面元数据,包括合规性和风险状态。

整体

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

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

克里蒂斯

为了加强 Kubernetes 的安全性,Google 引入了 Binary Authorization,以确保用户只能将可信的工作部署到 Kubernetes。 可以使用二进制授权来插入基于 Kubernetes 的准入控制器的部署准入检测,以便只有授权的镜像才能在环境中运行。

下图是一个策略的示例:

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

基础图像优化、安全扫描、数字签名等领域也有很多工具和开源产品,这里就不一一介绍了。

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

在阿里云上,我们可以轻松构建基于容器服务ACK、容器镜像服务ACR、云安全中心的完整安全软件供应链。

整个安全软件供应链始于云原生应用托管,终于云原生应用分发。 整个链路可观察、可追溯、可独立配置。 可以帮助安全要求高、多区域大规模部署的企业级客户实现全局、多场景的应用一次性变更和自动交付,大幅提升云原生应用交付的效率和安全性。

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

由于采用分层调度、公网链路优化、公网免入口优化等技术,云原生应用全局同步效率比本地下载再上传提升7倍。 云原生应用同步到全球多个区域后,可以自动触发多场景应用重新部署,并支持ACK、ASK、ACK集群中应用的自动更新。 针对集群内大规模节点分布场景,可实现基于镜像快照的秒级分布,支持3秒500个Pod的镜像获取,在弹性场景下实现极快的业务更新。

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

总结

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

本书亮点

“微信公众号(ID:Alicloudnative)关注微服务、Serverless、容器、Service Mesh等技术领域,关注云原生流行技术趋势和大规模云原生实施实践,是最懂技术的公众号云原生开发者。 ”

热门手游排行榜