Detection rules › Sigma

GCP Access Policy Deleted

Status
test
Severity
medium
Log source
product gcp, service gcp.audit
Author
Bryan Lim
Source
github.com/SigmaHQ/sigma

Detects when an access policy that is applied to a GCP cloud resource is deleted. An adversary would be able to remove access policies to gain access to a GCP cloud resource.

MITRE ATT&CK coverage

TacticTechniques
PersistenceT1098 Account Manipulation
Privilege EscalationT1098 Account Manipulation

Rule body yaml

title: GCP Access Policy Deleted
id: 32438676-1dba-4ac7-bf69-b86cba995e05
status: test
description: |
    Detects when an access policy that is applied to a GCP cloud resource is deleted.
    An adversary would be able to remove access policies to gain access to a GCP cloud resource.
references:
    - https://cloud.google.com/access-context-manager/docs/audit-logging
    - https://cloud.google.com/logging/docs/audit/understanding-audit-logs
    - https://cloud.google.com/logging/docs/reference/audit/auditlog/rest/Shared.Types/AuditLog
author: Bryan Lim
date: 2024-01-12
tags:
    - attack.persistence
    - attack.privilege-escalation
    - attack.t1098
logsource:
    product: gcp
    service: gcp.audit
detection:
    selection:
        data.protoPayload.authorizationInfo.permission:
            - 'accesscontextmanager.accessPolicies.delete'
            - 'accesscontextmanager.accessPolicies.accessLevels.delete'
            - 'accesscontextmanager.accessPolicies.accessZones.delete'
            - 'accesscontextmanager.accessPolicies.authorizedOrgsDescs.delete'
        data.protoPayload.authorizationInfo.granted: 'true'
        data.protoPayload.serviceName: 'accesscontextmanager.googleapis.com'
    condition: selection
falsepositives:
    - Legitimate administrative activities
level: medium

Stages and Predicates

Stage 0: condition

selection

Stage 1: selection

selection:
    data.protoPayload.authorizationInfo.permission:
        - 'accesscontextmanager.accessPolicies.delete'
        - 'accesscontextmanager.accessPolicies.accessLevels.delete'
        - 'accesscontextmanager.accessPolicies.accessZones.delete'
        - 'accesscontextmanager.accessPolicies.authorizedOrgsDescs.delete'
    data.protoPayload.authorizationInfo.granted: 'true'
    data.protoPayload.serviceName: 'accesscontextmanager.googleapis.com'

Indicators

Each row is a field, operator, and value that the rule matches. The corpus column counts how many other rules in the catalog look for the same combination: high numbers point to widely-used, community-vetted indicators. Blank or 1 shows that the indicator is specific to this rule.

FieldKindValues
data.protoPayload.authorizationInfo.grantedeq
  • true
data.protoPayload.authorizationInfo.permissioneq
  • accesscontextmanager.accessPolicies.accessLevels.delete
  • accesscontextmanager.accessPolicies.accessZones.delete
  • accesscontextmanager.accessPolicies.authorizedOrgsDescs.delete
  • accesscontextmanager.accessPolicies.delete
data.protoPayload.serviceNameeq
  • accesscontextmanager.googleapis.com