freeBuf
主站

分类

云安全 AI安全 开发安全 终端安全 数据安全 Web安全 基础安全 企业安全 关基安全 移动安全 系统安全 其他安全

特色

热点 工具 漏洞 人物志 活动 安全招聘 攻防演练 政策法规

点我创作

试试在FreeBuf发布您的第一篇文章 让安全圈留下您的足迹
我知道了

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

GCP Scanner:一款针对Google Cloud Platform(GCP)的凭证安全审计工具
2023-11-22 22:34:23

关于GCP Scanner

GCP Scanner是一款针对Google Cloud Platform(GCP)的凭证安全审计工具,该工具可以帮助广大安全工程师对GCP凭证快速执行安全审计分析。该工具本质上是一个针对GCP的资源扫描器,可以确定某些凭证在GCP上拥有怎样级别的访问权限。该工具旨在帮助研究人员评估某个虚拟机/容器的安全态势,以及GCP服务器账户和OAuth2令牌密钥泄漏所产生的安全影响。

功能介绍

当前版本的GCP Scanner支持扫描下列GCP资源:

GCE

GCS

GKE

App Engine

Cloud SQL

BigQuery

Spanner

Pub/Sub

Cloud Functions

BigTable

CloudStore

KMS

Cloud Services

当前版本的GCP Scanner支持提取和使用下列类型的凭证:

1、GCP VM实例元数据;

2、存储在gcloud配置文件中的用户凭证;

3、OAuth2刷新令牌(云平台范围授权);

4、GCP服务账号密钥(JSON格式);

该工具不需要依赖任何第三方工具(例如gcloud等),因此它可以作为一款独立工具进行编译和运行,而且可以在没有安装GCP SDK的设备上使用。但是,当前版本的GCP Scanner仅支持在Linux操作系统上运行。

工具安装

由于该工具基于Python 3开发,因此我们首先需要在本地设备上安装并配置好Python 3环境。接下来,我们可以直接使用pip工具安装GCP Scanner:

pip install gcp_scanner

python3 -m gcp_scanner --help

除此之外,我们也可以使用下列命令将该项目源码克隆至本地,并手动安装工具依赖组件:

git clone https://github.com/google/gcp_scanner

cd gcp_scanner

pip install .

gcp-scanner --help

如果你想要在Docker容器中使用GCP Scanner的话,可以使用下面的Docker构建文件:

docker build -f Dockerfile -t sa_scanner .

命令行选项

usage: python3 scanner.py -o folder_to_save_results -g -

 

GCP Scanner

 

options:

  -h, --help            显示工具帮助信息和退出

  -ls, --light-scan      仅在输出中提供最重要的GCP资源信息

  -k KEY_PATH, --sa-key-path KEY_PATH

                        包含JSON格式SA密钥数据的目录路径

  -g GCLOUD_PROFILE_PATH, --gcloud-profile-path GCLOUD_PROFILE_PATH

                        gcloud配置文件目录路径

  -m, --use-metadata     从GCE实例元数据中提取凭证信息

  -at ACCESS_TOKEN_FILES, --access-token-files ACCESS_TOKEN_FILES

                       包含访问令牌和OAuth数据的文件列表(JSON格式,逗号分隔)

  -rt REFRESH_TOKEN_FILES, --refresh-token-files REFRESH_TOKEN_FILES

                         包含refresh_token、client_id、token_uri和client_secret的文件列表(JSON格式,逗号分隔)

  -s KEY_NAME, --service-account KEY_NAME

                        要扫描的单个SA名称

  -p TARGET_PROJECT, --project TARGET_PROJECT

                         要扫描的单个项目名称

  -f FORCE_PROJECTS, --force-projects FORCE_PROJECTS

                         要扫描的项目名称列表(逗号分隔)

  -c CONFIG_PATH, --config CONFIG_PATH

                        包含指定待扫描资源目标的配置文件路径

  -l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --logging {DEBUG,INFO,WARNING,ERROR,CRITICAL}

                        设置日志记录级别 (INFO, WARNING, ERROR)

  -lf LOG_FILE, --log-file LOG_FILE

                        存储日志文件路径

  -pwc PROJECT_WORKER_COUNT, --project-worker-count PROJECT_WORKER_COUNT

                        设置并行项目爬虫数量

  -rwc RESOURCE_WORKER_COUNT, --resource-worker-count RESOURCE_WORKER_COUNT

                        设置并行资源爬虫数量

 

Required parameters:

  -o OUTPUT, --output-dir OUTPUT

                        输出目录路径

使用PyInstaller构建独立可执行代码

使用下列内容替换pyproject.toml文件中的“google-api-python-client==2.80.0”:

google-api-python-client==1.8.0

然后切换到工具源代码目录中,并使用PyInstaller编译独立代码:

pyinstaller -F --add-data 'roots.pem:grpc/_cython/_credentials/' scanner.py

工具输出结果

GCP Scanner将在扫描完成后生成一个单独的JSON文件,可以使用任意JSON文件查看器或数据库来处理生成的JSON文件。我们也提供了一个基于Web的工具来帮助大家以可视化的形式分析结果数据,运行命令如下:

usage: gcp-scanner-visualizer -p 8080

 

GCP Scanner Visualizer

 

options:

  -h, --help            查看工具帮助信息和退出

  -p PORT, --port PORT  要监听的端口号,默认为8080

工具运行截图

许可证协议

本项目的开发与发布遵循Apache-2.0开源许可证协议。

项目地址

GCP Scanner:【GitHub传送门

参考资料

https://cloud.google.com/policy-intelligence/docs/analyze-iam-policies

https://cloud.google.com/iam/docs/impersonating-service-accounts

# google # 云安全 # 云平台 # 安全检测工具 # 凭证安全
免责声明
1.一般免责声明:本文所提供的技术信息仅供参考,不构成任何专业建议。读者应根据自身情况谨慎使用且应遵守《中华人民共和国网络安全法》,作者及发布平台不对因使用本文信息而导致的任何直接或间接责任或损失负责。
2. 适用性声明:文中技术内容可能不适用于所有情况或系统,在实际应用前请充分测试和评估。若因使用不当造成的任何问题,相关方不承担责任。
3. 更新声明:技术发展迅速,文章内容可能存在滞后性。读者需自行判断信息的时效性,因依据过时内容产生的后果,作者及发布平台不承担责任。
本文为 独立观点,未经授权禁止转载。
如需授权、对文章有疑问或需删除稿件,请联系 FreeBuf 客服小蜜蜂(微信:freebee1024)
被以下专辑收录,发现更多精彩内容
+ 收入我的专辑
+ 加入我的收藏
相关推荐
  • 0 文章数
  • 0 关注者
文章目录