
GCP-Ressourcenscanner, der die Zugriffslevel kompromittierter Anmeldedaten bewertet, indem er Cloud-Dienste, Projekte und IAM-Berechtigungen in der Google Cloud Platform aufzählt.
Dieses Projekt ist kein offizielles Google-Projekt. Es wird nicht von Google unterstützt und Google lehnt ausdrücklich alle Gewährleistungen hinsichtlich seiner Qualität, Marktgängigkeit oder Eignung für einen bestimmten Zweck ab.

Dies ist ein GCP-Ressourcenseanner, der dabei helfen kann, festzustellen, welche Zugriffsebene bestimmte Anmeldeinformationen auf GCP besitzen. Der Scanner wurde entwickelt, um Sicherheitsingenieuren zu helfen, die Auswirkungen einer bestimmten VM/Container-Kompromittierung, eines GCP-Dienstkontos oder eines OAuth2-Token-Schlüssellecks zu bewerten.
Derzeit unterstützt der Scanner die folgenden GCP-Ressourcen:
Der Scanner unterstützt das Extrahieren und Verwenden der folgenden Arten von Anmeldeinformationen:
Der Scanner ist nicht auf Tools von Drittanbietern (z. B. gcloud) angewiesen. Daher kann er als eigenständiges Tool kompiliert und auf einem Rechner ohne installiertes GCP SDK (z. B. einem Kubernetes-Pod) verwendet werden. Bitte beachten Sie jedoch, dass derzeit nur Linux als Betriebssystem unterstützt wird.
Bitte beachten Sie, dass GCP Policy Analyzer anbietet, um herauszufinden, welche Hauptkonten (Benutzer, Dienstkonten, Gruppen und Domänen) welchen Zugriff auf welche Google Cloud-Ressourcen haben. Dies erfordert jedoch spezifische Berechtigungen für das GCP-Projekt und die Cloud Assets API muss aktiviert sein. Wenn Sie nur einen GCP-Dienstkontoschlüssel, Zugriff auf eine zuvor kompromittierte VM oder ein OAuth2-Refresh-Token haben, ist gcp_scanner die beste Option.
Um das Paket zu installieren, verwenden Sie pip (Sie müssen auch git installiert haben):
pip install gcp_scanner
python3 -m gcp_scanner --help
Alternativ:
git clone https://github.com/google/gcp_scanner
cd gcp_scanner
pip install .
gcp-scanner --help
Es gibt eine Docker-Build-Datei, wenn Sie den Scanner aus einem Container ausführen möchten:
docker build -f Dockerfile -t sa_scanner .
usage: python3 scanner.py -o folder_to_save_results -g -
GCP Scanner
options:
-h, --help show this help message and exit
-ls, --light-scan Return only the most important GCP resource fields in the output.
-k KEY_PATH, --sa-key-path KEY_PATH
Path to directory with SA keys in json format
-g GCLOUD_PROFILE_PATH, --gcloud-profile-path GCLOUD_PROFILE_PATH
Path to directory with gcloud profile. Specify - to search for credentials in default gcloud config path
-m, --use-metadata Extract credentials from GCE instance metadata
-at ACCESS_TOKEN_FILES, --access-token-files ACCESS_TOKEN_FILES
A list of comma separated files with access token and OAuth scopes.TTL limited. A token and scopes should be stored in JSON format.
-rt REFRESH_TOKEN_FILES, --refresh-token-files REFRESH_TOKEN_FILES
A list of comma separated files with refresh_token, client_id,token_uri and client_secret stored in JSON format.
-s KEY_NAME, --service-account KEY_NAME
Name of individual SA to scan
-p TARGET_PROJECT, --project TARGET_PROJECT
Name of individual project to scan
-f FORCE_PROJECTS, --force-projects FORCE_PROJECTS
Comma separated list of project names to include in the scan
-c CONFIG_PATH, --config CONFIG_PATH
A path to config file with a set of specific resources to scan.
-l {DEBUG,INFO,WARNING,ERROR,CRITICAL}, --logging {DEBUG,INFO,WARNING,ERROR,CRITICAL}
Set logging level (INFO, WARNING, ERROR)
-lf LOG_FILE, --log-file LOG_FILE
Save logs to the path specified rather than displaying in console
-pwc PROJECT_WORKER_COUNT, --project-worker-count PROJECT_WORKER_COUNT
Set limit for project crawlers run in parallel.
-rwc RESOURCE_WORKER_COUNT, --resource-worker-count RESOURCE_WORKER_COUNT
Set limit for resource crawlers run in parallel.
Required parameters:
-o OUTPUT, --output-dir OUTPUT
Path to output directory
Die Option -f bedarf einer zusätzlichen Erklärung. In einigen Fällen hat das Dienstkonto keine Berechtigungen, um Projektnamen explizit aufzulisten. Es könnte jedoch dennoch Zugriff auf zugrunde liegende Ressourcen haben, wenn wir den korrekten Projektnamen angeben. Diese Option wurde speziell für solche Fälle entwickelt.
Bitte ersetzen Sie google-api-python-client==2.80.0 durch google-api-python-client==1.8.0 in pyproject.toml. Navigieren Sie danach zum Quellcodeverzeichnis des Scanners und verwenden Sie pyinstaller, um eine eigenständige Binärdatei zu kompilieren:
pyinstaller -F --add-data 'roots.pem:grpc/_cython/_credentials/' scanner.py
Der GCP Scanner erzeugt eine standardmäßige JSON-Datei, die von jedem JSON-Viewer oder DB-System verarbeitet werden kann. Wir stellen ein webbasiertes Tool zur Verfügung, das Ihnen bei der Visualisierung der Ergebnisse helfen kann. Um das Tool auszuführen, verwenden Sie bitte den folgenden Befehl:
usage: gcp-scanner-visualizer -p 8080
GCP Scanner Visualizer
options:
-h, --help show this help message and exit
-p PORT, --port PORT Port to listen on default 8080
Um mehr über die Verwendung des Tools zu erfahren, besuchen Sie bitte die Seite GCP Scanner Visualizer Usage Guide.
Wenn Sie nur eine bequeme Möglichkeit benötigen, JSON-Ergebnisse zu durchsuchen, empfehlen wir gron.
Einzelheiten finden Sie in CONTRIBUTING.md.
Apache 2.0; Einzelheiten finden Sie in LICENSE.