GCP基础设施安全漏洞:价值约700美元的BugBounty故事

本文详细描述了一个GCP基础设施安全漏洞的发现过程,包括开放的Jupyter Notebook服务器、泄露的GCP服务账户令牌、BigQuery数据访问权限等,最终获得565.86美元赏金的完整时间线。

BugBounty故事 #bugbountytips

一个已修复但未支付赏金的故事…

时间线:

  • 2019年10月21日:报告漏洞
  • 2019年10月23日:确认为严重漏洞
  • 2019年10月30日:确认为已修复
  • 2019年11月12日:公布赏金金额(10,000,000印尼盾 ≈ 700美元)
  • 2019年11月16日:提供支付信息
  • 2020年3月13日:从未收到付款 - 发布博客文章
  • 2020年3月19日:收到565.86美元赏金

漏洞发现过程

有许多应用程序是SAAS - Shell即服务。Jupyter Notebook就是其中之一,具有运行代码功能和终端功能。

当我在Shodan上搜索易受攻击的系统时,发现了一个属于Tokopedia的开放Jupyter Notebook服务器。

开放的Jupyter Notebook服务器

我在之前的文章中讨论过当你在GCP中发现密钥时该怎么做。当人们将GCP服务账户密钥留在文件夹中时,这一点尤其重要。

当您将服务令牌留在文件夹中供所有人查找/使用

在这种情况下,它是base64编码的 - 但很容易修复。

base64解码的服务账户令牌

它也在其中一个Jupyter Notebook的错误输出中。

错误输出中的令牌

我使用终端进行了一些基本探查,以找到所有者。

识别所有者

一旦我确定它属于一个有bug bounty项目的公司,我认为证明访问和影响是可以的。

根据GCP博客文章,一旦你有了服务账户令牌,你就可以验证并访问你的令牌有权访问的服务。

GCP身份验证

在GCP计算主机上获得shell的一个方便之处是,所有GCP工具都已安装并"正常工作"。实际上,我不需要从外部主机做任何事情,我能够从Jupyter终端内部开始ssh到其他主机。

从Jupyter终端访问其他主机

数据访问权限

BigQuery表访问权限

1
bq ls --format=prettyjson --project_id tokopedia-970

BigQuery表

账单数据表

支付数据表

公司背景调查

沿途我搜索了这家公司的信息:https://en.wikipedia.org/wiki/Tokopedia

最有趣的是… “2017年,Tokopedia从中国电子商务巨头阿里巴巴获得了11亿美元的投资。[7] 2018年,该公司再次获得了由中国电子商务巨头阿里巴巴集团和日本软银集团领投的11亿美元融资轮,[8] 使其估值达到约70亿美元。[9]”

解决方案建议

  1. 在有限权限容器中运行(不能防止云元数据攻击)
  2. 新版本的Jupyter Notebook允许密码保护访问。应该这样做,而不是向所有人开放

总结

作为一个好人,我报告了这个问题,并被指定为严重级别。他们修复得非常快,团队在修复之前相当响应。之后花了2周时间获得赏金信息,我及时提供了支付信息,但我从未收到付款,他们停止回应我的询问。

comments powered by Disqus
使用 Hugo 构建
主题 StackJimmy 设计