GCP - Permissions for a Pentest

Ako želite da pentestirate GCP okruženje, morate zatražiti dovoljno dozvola da proverite sve ili većinu usluga koje se koriste u GCP-u. Idealno bi bilo da zatražite od klijenta da napravi:

  • Napravi novi projekat

  • Napravi Service Account unutar tog projekta (dobijte json credentials) ili napravite novog korisnika.

  • Dodeli Service account-u ili korisniku-u uloge koje su navedene kasnije nad ORGANIZACIJOM

  • Omogući API-je koji su navedeni kasnije u ovom postu u kreiranom projektu

Set dozvola za korišćenje alata koji su predloženi kasnije:

roles/viewer
roles/resourcemanager.folderViewer
roles/resourcemanager.organizationViewer

API-ji za omogućavanje (iz starbase-a):

gcloud services enable \
serviceusage.googleapis.com \
cloudfunctions.googleapis.com \
storage.googleapis.com \
iam.googleapis.com \
cloudresourcemanager.googleapis.com \
compute.googleapis.com \
cloudkms.googleapis.com \
sqladmin.googleapis.com \
bigquery.googleapis.com \
container.googleapis.com \
dns.googleapis.com \
logging.googleapis.com \
monitoring.googleapis.com \
binaryauthorization.googleapis.com \
pubsub.googleapis.com \
appengine.googleapis.com \
run.googleapis.com \
redis.googleapis.com \
memcache.googleapis.com \
apigateway.googleapis.com \
spanner.googleapis.com \
privateca.googleapis.com \
cloudasset.googleapis.com \
accesscontextmanager.googleapis.com

Dozvole za pojedinačne alate

From https://github.com/carlospolop/PurplePanda/tree/master/intel/google#permissions-configuration

roles/bigquery.metadataViewer
roles/composer.user
roles/compute.viewer
roles/container.clusterViewer
roles/iam.securityReviewer
roles/resourcemanager.folderViewer
roles/resourcemanager.organizationViewer
roles/secretmanager.viewer

ScoutSuite je alat koji se koristi za skeniranje i analizu sigurnosti Google Cloud Platforme (GCP). Ovaj alat može biti veoma koristan tokom pentestiranja GCP infrastrukture, jer omogućava identifikaciju mogućih slabosti i propusta u konfiguraciji dozvola.

Da biste koristili ScoutSuite, potrebno je da imate odgovarajuće dozvole u GCP okruženju. Evo nekoliko ključnih dozvola koje su potrebne za izvršavanje ScoutSuite-a:

  • compute.instances.list - Ova dozvola omogućava pristup listi svih virtuelnih mašina u GCP okruženju.

  • compute.disks.list - Ova dozvola omogućava pristup listi svih diskova u GCP okruženju.

  • compute.firewalls.list - Ova dozvola omogućava pristup listi svih firewall pravila u GCP okruženju.

  • compute.networks.list - Ova dozvola omogućava pristup listi svih mreža u GCP okruženju.

  • compute.subnetworks.list - Ova dozvola omogućava pristup listi svih podmreža u GCP okruženju.

  • iam.serviceAccounts.list - Ova dozvola omogućava pristup listi svih servisnih naloga u GCP okruženju.

  • resourcemanager.projects.get - Ova dozvola omogućava pristup informacijama o projektima u GCP okruženju.

Da biste koristili ScoutSuite, morate imati ove dozvole i pristup GCP API-ju. Takođe, preporučuje se da koristite uslugu sa minimalnim privilegijama kako biste smanjili rizik od zloupotrebe.

From https://github.com/nccgroup/ScoutSuite/wiki/Google-Cloud-Platform#permissions

roles/Viewer
roles/iam.securityReviewer
roles/stackdriver.accounts.viewer

From https://github.com/aquasecurity/cloudsploit/blob/master/docs/gcp.md#cloud-provider-configuration

includedPermissions:
- cloudasset.assets.listResource
- cloudkms.cryptoKeys.list
- cloudkms.keyRings.list
- cloudsql.instances.list
- cloudsql.users.list
- compute.autoscalers.list
- compute.backendServices.list
- compute.disks.list
- compute.firewalls.list
- compute.healthChecks.list
- compute.instanceGroups.list
- compute.instances.getIamPolicy
- compute.instances.list
- compute.networks.list
- compute.projects.get
- compute.securityPolicies.list
- compute.subnetworks.list
- compute.targetHttpProxies.list
- container.clusters.list
- dns.managedZones.list
- iam.serviceAccountKeys.list
- iam.serviceAccounts.list
- logging.logMetrics.list
- logging.sinks.list
- monitoring.alertPolicies.list
- resourcemanager.folders.get
- resourcemanager.folders.getIamPolicy
- resourcemanager.folders.list
- resourcemanager.hierarchyNodes.listTagBindings
- resourcemanager.organizations.get
- resourcemanager.organizations.getIamPolicy
- resourcemanager.projects.get
- resourcemanager.projects.getIamPolicy
- resourcemanager.projects.list
- resourcemanager.resourceTagBindings.list
- resourcemanager.tagKeys.get
- resourcemanager.tagKeys.getIamPolicy
- resourcemanager.tagKeys.list
- resourcemanager.tagValues.get
- resourcemanager.tagValues.getIamPolicy
- resourcemanager.tagValues.list
- storage.buckets.getIamPolicy
- storage.buckets.list

From https://lyft.github.io/cartography/modules/gcp/config.html

roles/iam.securityReviewer
roles/resourcemanager.organizationViewer
roles/resourcemanager.folderViewer

From https://github.com/JupiterOne/graph-google-cloud/blob/main/docs/development.md

roles/iam.securityReviewer
roles/iam.organizationRoleViewer
roles/bigquery.metadataViewer

Last updated