容器验证漏洞允许恶意镜像云化 Kubernetes

本文涉及的产品
容器镜像服务 ACR,镜像仓库100个 不限时长
容器服务 Serverless 版 ACK Serverless,317元额度 多规格
容器服务 Serverless 版 ACK Serverless,952元额度 多规格
简介: 容器验证漏洞允许恶意镜像云化 Kubernetes

640.png


容器镜像的 Kyverno 准入控制器中存在一个高危安全漏洞,可能允许恶意行为者将大量恶意代码导入云生产环境。

Kyverno 准入控制器提供签名验证机制,旨在确保只有经过签名、验证的容器镜像才会被拉入给定的 Kubernetes 集群。


这可以避免任何数量的不良结果,因为被诱骗的容器镜像可能包含各种有效负载,如加密矿工、rootkit、用于容器逃逸和横向移动的漏洞利用工具包、凭证窃取程序等。

但是,可以利用漏洞 ( CVE-2022-47633 ) 来破坏该机制。

ARMO 的研究人员在博客文章中解释说:该漏洞使攻击者能够……将未签名的镜像注入受保护的集群,从而绕过镜像验证策略。”


风险很高:他们警告说,攻击者可以有效地控制受害者的 pod 并使用其所有资产和凭据,包括服务帐户令牌来访问 API 服务器。


该漏洞可以完全绕过镜像签名验证。在 Kubernetes 集群的情况下,这为攻击提供了广泛的目标。任何工作负载都可以安装集群机密和数据卷。


这意味着攻击者可以注入代码,从受害者的 Kubernetes 集群中窃取数据和凭证。

这也使攻击者能够注入他/她自己的代码,并使用受害者的 CPU 进行加密货币挖掘等事情。

当从Kubernetes API 服务器请求通过带有标签的镜像定义的新工作负载时,API 服务器要求 Kyverno 准入控制器验证新工作负载。


为了确定工作负载是否可以进入集群,准入控制器从容器注册表请求镜像清单和签名。

如果他们签出,镜像就会亮起绿灯,容器运行时会根据该镜像启动新的工作负载。

根据该公告,该漏洞的出现是因为控制器的签名验证过程下载了两次镜像清单,但只验证了其中一次下载的签名。


因此,攻击看起来像这样:管理员通过社交工程从恶意注册表或代理中拉取容器映像。首次导入镜像时,恶意注册表会向准入控制器返回一个有效的、良性的、签名的镜像。到目前为止,一切都很好。


然而,然后准入控制器第二次请求签名镜像的清单,以获取变异摘要——即更新容器的可读标签。

这一次,没有发生签名验证,允许恶意注册表返回一个不同的、未签名的恶意镜像,最终是启动和运行的镜像。


根据 ARMO 的分析:这是

[time-of-check-to-time-of-use] TOCTOU


640.png

问题的一个典型例子,它允许攻击者拉取诱饵和开关。由于最终将使用的镜像清单与经过验证的镜像清单不同,这使攻击者能够欺骗客户。

该漏洞在1.8.3版本引入,在1.8.5版本修复;Kyverno 用户应尽快更新。该补丁确保使用与验证签名相同的镜像哈希来更改工作负载规范。

此特定漏洞仅影响带有 Kyverno 的 Kubernetes,但其他镜像签名验证工具需要注意不要受到相同方法的攻击。

社会工程恶意容器攻击


为了进行真实世界的攻击,威胁行为者可以使用现有注册表中的受损帐户来托管恶意镜像,或者他们可以建立自己的私有容器注册表,然后着手说服管理员信任它。


从实际的角度来看:为有经验的攻击者创建恶意注册表并不是一个挑战。攻击者可以使用任何开源注册表软件,进行一些小的修改以使攻击起作用,并在自定义域下的云中运行它。


下一步是说服管理员信任恶意容器,这也不难。来自第三方的容器镜像通常用于启动现成的应用程序,这与应用程序开发人员从npm 等开放存储库中获取预构建代码块的方式非常相似——其理念是不必为常用功能和实用程序重新发明轮子。


只有一小部分 Kubernetes 用户对他们可以从何处提取容器工作负载有限制,因此云管理员在使用第三方注册表时不太可能立即保持警惕:特别是如果他们在地方。


攻击者可以进行网络钓鱼并在多个论坛上发布通知,告知有新版本的软件 XYZ,这里有运行它的 Kubernetes YAML 或 Helm。由于有些人觉得受到镜像签名验证的保护,他们会放松警惕,不会害怕运行镜像。


容器安全:日益受到关注


容器是网络犯罪分子的一个很好的目标,因为它们大多在云中运行,可以访问大量宝贵且昂贵的计算资源:因此,这使攻击者能够窃取计算资源和数据,同时也不会引起注意相对较长的时间。


我们没有确切的统计数据,但很明显,随着容器的广泛采用,这正在成为一个更普遍的问题。


安全团队正在学习如何处理它们,以及一般的 Kubernetes。这不是一个真正的‘盲点’,但容器安全团队仍在学习整个环境,其中有许多被忽视的领域。


由于镜像签名验证的采用仍处于早期阶段,准入控制器代表了那些可能被忽视的领域之一。但它们也是关于供应链软件安全的更广泛对话的一部分,应该引起人们的关注。


SolarWinds 攻击向世界表明,在信任外部代码的安全性方面,这个问题是多么敏感。


Kyverno 是首批实施签名验证的安全工具之一,新功能可能会带来新的错误。


希望这一发现能使它成为一种更安全的机制,并将帮助业界克服 Kubernetes 中验证软件的问题。


640.png


640.png

攻击者的目标可能是将未签名的镜像注入到只应运行签名镜像的集群中。


640.png

https://www.armosec.io/blog/cve-2022-47633-kyvernos-container-image-signature-verification/

相关实践学习
容器服务Serverless版ACK Serverless 快速入门:在线魔方应用部署和监控
通过本实验,您将了解到容器服务Serverless版ACK Serverless 的基本产品能力,即可以实现快速部署一个在线魔方应用,并借助阿里云容器服务成熟的产品生态,实现在线应用的企业级监控,提升应用稳定性。
容器应用与集群管理
欢迎来到《容器应用与集群管理》课程,本课程是“云原生容器Clouder认证“系列中的第二阶段。课程将向您介绍与容器集群相关的概念和技术,这些概念和技术可以帮助您了解阿里云容器服务ACK/ACK Serverless的使用。同时,本课程也会向您介绍可以采取的工具、方法和可操作步骤,以帮助您了解如何基于容器服务ACK Serverless构建和管理企业级应用。 学习完本课程后,您将能够: 掌握容器集群、容器编排的基本概念 掌握Kubernetes的基础概念及核心思想 掌握阿里云容器服务ACK/ACK Serverless概念及使用方法 基于容器服务ACK Serverless搭建和管理企业级网站应用
相关文章
|
6天前
|
Kubernetes Docker 容器
里云容器服务Kubernetes版(ACK)上快速部署应用
里云容器服务Kubernetes版(ACK)上快速部署应用
|
2天前
|
存储 Kubernetes 负载均衡
|
6天前
|
存储 Kubernetes 负载均衡
容器服务Kubernetes版(ACK)上快速部署应用
在阿里云ACK上快速部署应用,包括创建Kubernetes集群、使用`kubectl`部署或更新应用镜像、配置Ingress与ALB集成。首先开通ACK和ALB服务,然后创建集群。编写`deployment.yaml`和`ingress.yaml`文件,部署应用和设定路由规则。通过ALB控制台配置负载均衡器,最后验证部署是否可通过ALB访问。如遇问题,参考官方文档或寻求阿里云支持。
|
7天前
|
Kubernetes Cloud Native 微服务
企业级容器部署实战:基于ACK与ALB灵活构建云原生应用架构
这篇内容概述了云原生架构的优势,特别是通过阿里云容器服务Kubernetes版(ACK)和应用负载均衡器(ALB)实现的解决方案。它强调了ACK相对于自建Kubernetes的便利性,包括优化的云服务集成、自动化管理和更强的生态系统支持。文章提供了部署云原生应用的步骤,包括一键部署和手动部署的流程,并指出手动部署更适合有技术背景的用户。作者建议在预算允许的情况下使用ACK,因为它能提供高效、便捷的管理体验。同时,文章也提出了对文档改进的建议,如添加更多技术细节和解释,以帮助用户更好地理解和实施解决方案。最后,展望了ACK未来在智能化、安全性与边缘计算等方面的潜在发展。水文一篇,太忙了,见谅!
|
14天前
|
Kubernetes 数据库 Docker
Kubernetes Node删除镜像
【7月更文挑战第1天】
|
11天前
|
存储 弹性计算 运维
阿里云容器服务Kubernetes版(ACK)部署与管理体验评测
阿里云容器服务Kubernetes版(ACK)是一个功能全面的托管Kubernetes服务,它为企业提供了快速、灵活的云上应用管理能力。
75 2
|
13天前
|
Kubernetes 负载均衡 调度
Kubernetes等容器化技术
【7月更文挑战第2天】Kubernetes等容器化技术
18 2
|
19天前
|
关系型数据库 MySQL Docker
构建MySQL8.0.26镜像和容器
MySQL8.0.26 percona-toolkit Dockerfile
86 3
|
17天前
|
Kubernetes 安全 测试技术
超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
超大规模商用 K8s 场景下,阿里巴巴如何动态解决容器资源的按需分配问题?
|
17天前
|
运维 Serverless 文件存储
函数计算产品使用问题之在利用Docker镜像部署应用时,容器内的应用如何能访问函数计算配置的NAS挂载
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。

推荐镜像

更多