GCP - Permissions for a Pentest

GCP 환경에서 펜테스트를 수행하려면 GCP에서 사용되는 모든 서비스를 확인하기 위해 충분한 권한을 요청해야 합니다. 이상적으로, 클라이언트에게 다음을 요청하여야 합니다:

  • 새로운 프로젝트를 생성합니다.

  • 해당 프로젝트 내에 서비스 계정을 생성하고 (json 자격 증명을 얻음) 또는 새로운 사용자를 생성합니다.

  • 이후에 언급되는 역할을 ORGANIZATION에 대해 서비스 계정 또는 사용자에게 부여합니다.

  • 생성된 프로젝트에서 이후에 언급되는 API를 활성화합니다.

이후 제안된 도구를 사용하기 위한 권한 집합:

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

APIs를 활성화하기 위해 (starbase에서):

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

개별 도구 권한

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는 Google Cloud Platform(GCP)의 권한에 대한 정보를 수집하는 도구입니다. 이 도구를 사용하여 GCP 환경에서 펜테스트를 수행하기 전에 권한 설정을 분석할 수 있습니다. ScoutSuite는 GCP 리소스에 대한 권한을 검사하고, 불필요한 권한, 부적절한 권한 및 권한 부여 오류를 식별합니다. 이를 통해 GCP 환경의 보안 취약점을 식별하고, 효과적인 보안 강화를 위한 조치를 취할 수 있습니다.

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

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

CloudSploit는 GCP 클라우드 환경에서 보안 취약점을 검사하는 오픈 소스 도구입니다. CloudSploit는 GCP 리소스의 구성과 권한 설정을 분석하여 보안 위험을 식별합니다. 이 도구를 사용하여 GCP 환경에서 발생할 수 있는 보안 문제를 신속하게 파악할 수 있습니다.

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