Skip to content

New attack technique: Create Workload Identity Federation Pool and Provider (gcp.persistence.create-workload-identity-federation)#808

Open
Minosity-VR wants to merge 3 commits into
simon.marechal/gcp-persistence-backdoor-cloud-functionfrom
simon.marechal/gcp-persistence-create-workload-identity-federation
Open

New attack technique: Create Workload Identity Federation Pool and Provider (gcp.persistence.create-workload-identity-federation)#808
Minosity-VR wants to merge 3 commits into
simon.marechal/gcp-persistence-backdoor-cloud-functionfrom
simon.marechal/gcp-persistence-create-workload-identity-federation

Conversation

@Minosity-VR

Copy link
Copy Markdown
Collaborator

What does this PR do?

Adds a new GCP attack technique gcp.persistence.create-workload-identity-federation that establishes a persistent backdoor by creating a WIF pool with an X.509 provider, allowing any machine holding a certificate signed by an attacker-controlled CA to impersonate a target service account without creating a service account key.

Also bumps google.golang.org/api from v0.218.0 to v0.230.0 (the minimum version that includes X.509 WIF types in iam/v1). The go version requirement is unchanged at go 1.23.0.

Motivation

GCP parity effort with existing AWS techniques (analogous to aws.persistence.rolesanywhere-create-trust-anchor).

Checklist

  • The attack technique emulates a single attack step, not a full attack chain
  • We have factual evidence & references that the attack technique was used by real malware, pentesters, or attackers
  • The attack technique makes no assumption about the state of the environment prior to warming it up

Test results

  • Technique detonates successfully
  • Detection log identified (google.iam.admin.v1.CreateWorkloadIdentityPool and google.iam.admin.v1.CreateWorkloadIdentityPoolProvider)

@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-backdoor-cloud-function branch from c3fbc21 to be166ae Compare March 30, 2026 14:54
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-create-workload-identity-federation branch from 95b153e to ce99272 Compare March 30, 2026 14:54
@Minosity-VR Minosity-VR marked this pull request as ready for review April 1, 2026 07:26
@Minosity-VR Minosity-VR requested review from a team as code owners April 1, 2026 07:26
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-backdoor-cloud-function branch from be166ae to 65f501d Compare April 1, 2026 08:29
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-create-workload-identity-federation branch from ce99272 to 4322496 Compare April 1, 2026 08:29
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-backdoor-cloud-function branch from 65f501d to 10a401f Compare April 1, 2026 08:54
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-create-workload-identity-federation branch from 4322496 to 2496e57 Compare April 1, 2026 08:54
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-backdoor-cloud-function branch from 10a401f to a370532 Compare April 1, 2026 09:04
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-create-workload-identity-federation branch from 2496e57 to 363422b Compare April 1, 2026 09:04
Minosity-VR and others added 3 commits April 9, 2026 10:23
…ovider (gcp.persistence.create-workload-identity-federation)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-create-workload-identity-federation branch from 363422b to 7b7c5db Compare April 9, 2026 08:28
@Minosity-VR Minosity-VR force-pushed the simon.marechal/gcp-persistence-backdoor-cloud-function branch from a370532 to 3a0ae74 Compare April 9, 2026 08:28
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant