google_cloud_service_account_key_created_or_uploaded
Description
Detects when a service account key is created in or uploaded to a monitored Google Cloud project.
Query · yara_l
events:
$gc.metadata.log_type = "GCP_CLOUDAUDIT"
$gc.metadata.product_name = "Google Cloud IAM"
(
$gc.metadata.product_event_type = "google.iam.admin.v1.CreateServiceAccountKey" or
$gc.metadata.product_event_type = "google.iam.admin.v1.UploadServiceAccountKey"
)
$gc.security_result.action = "ALLOW"
$gc.security_result.detection_fields["key_id"] = $sa_key_id
match:
$sa_key_id over 30m
outcome:
$risk_score = max(65)
$mitre_attack_tactic = "Persistence"
$mitre_attack_technique = "Account Manipulation: Additional Cloud Credentials"
$mitre_attack_technique_id = "T1098.001"
$event_count = count_distinct($gc.metadata.id)
$principal_ip = array_distinct($gc.principal.ip)
$principal_user_userid = array_distinct($gc.principal.user.userid)
$principal_ip_country = array_distinct($gc.principal.ip_geo_artifact.location.country_or_region)
$principal_ip_state = array_distinct($gc.principal.ip_geo_artifact.location.state)
$principal_ip_city = array_distinct($gc.principal.location.city)
$security_result_summary = array_distinct($gc.security_result.summary)
$sa_key_expiry_date = array_distinct(timestamp.get_date(cast.as_int($gc.about.labels["res_valid_before_time"])))
condition:
$gc