Skip to content

Commit 06c239d

Browse files
committed
feature(rules/google): add rule Privileged Role Granted - Owner or Editor
1 parent a21ec9d commit 06c239d

1 file changed

Lines changed: 31 additions & 0 deletions

File tree

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
# Rule version v1.0.0
2+
3+
dataTypes:
4+
- google
5+
name: GCP Privileged Role Granted — Owner or Editor
6+
impact:
7+
confidentiality: 5
8+
integrity: 5
9+
availability: 3
10+
category: Privilege Escalation
11+
technique: "T1078 - Valid Accounts"
12+
adversary: origin
13+
references:
14+
- https://cloud.google.com/iam/docs/understanding-roles#basic
15+
- https://cloud.google.com/logging/docs/audit/cal-categories#iam
16+
- https://attack.mitre.org/techniques/T1078/
17+
description: |
18+
Detects when a highly privileged GCP IAM role (Owner, Editor, or IAM Admin) is granted to a user or service account. These roles provide broad access to all resources and are prime targets for privilege escalation. An attacker gaining Owner or Editor access can effectively control the entire project.
19+
20+
Next Steps:
21+
1. Verify the IAM binding change against the change management process
22+
2. Identify the exact role granted and the target principal
23+
3. Check if the principal is a human user or a service account
24+
4. If unauthorized, immediately revoke the binding via IAM audit log
25+
5. Review the actor's Cloud Shell and gcloud session history
26+
6. Rotate credentials for any service accounts that were granted elevated roles
27+
where: |
28+
equals("log.protoPayloadServiceName", "cloudresourcemanager.googleapis.com") &&
29+
equals("log.protoPayloadMethodName", "SetIamPolicy") &&
30+
(contains("log.protoPayload.response.bindings", "roles/owner") ||
31+
contains("log.protoPayload.response.bindings", "roles/editor")) && exists("origin.user")

0 commit comments

Comments
 (0)