本文档介绍了 Security Command Center 中的一种威胁发现结果类型。当威胁检测器在您的云资源中检测到潜在威胁时,会生成威胁发现结果。如需查看可用威胁发现结果的完整列表,请参阅威胁发现结果索引。
概览
使用 AI 智能体服务账号凭据来调查与同一服务账号关联的角色和权限。此发现结果表明服务账号凭据可能被破解,应立即采取措施。
Event Threat Detection 是此发现结果的来源。
如何应答
如需响应此发现结果,请执行以下操作:
第 1 步:查看发现结果详情
按照本页面前面部分的查看发现结果详情中所述,打开
Discovery: AI Agent Service Account Self-Investigation发现结果。系统会打开发现结果详细信息面板,以显示摘要标签页。在摘要标签页上,查看以下部分中的信息:
- 检测到的内容,尤其是以下字段:
- 严重级别:分配给发现结果的风险级别。如果触发此发现结果的 API 调用未经授权,则严重级别为
HIGH;服务账号无权使用projects.getIamPolicyAPI 查询其自己的 IAM 权限。 - 主账号邮件:可能被盗用的服务账号。
- 调用方 IP:内部或外部 IP 地址
- 严重级别:分配给发现结果的风险级别。如果触发此发现结果的 API 调用未经授权,则严重级别为
- 受影响的资源,尤其是以下字段:
- 资源全名:
- 项目全名:包含可能已泄露的账号凭证的项目。
- 相关链接,尤其是以下字段:
- Cloud Logging URI:指向 Logging 条目的链接。
- MITRE ATT&CK 方法:指向 MITRE ATT&CK 文档的链接。
- 相关发现结果:指向任何相关发现结果的链接。
- 如需查看发现结果的完整 JSON,请点击 JSON 标签页。
- 检测到的内容,尤其是以下字段:
第 2 步:查看项目和服务账号权限
在 Google Cloud 控制台中,前往 IAM 页面。
如有必要,请选择发现结果 JSON 的
projectID字段中列出的项目。在显示的页面上的过滤条件框中,输入主账号电子邮件地址中列出的账号名称,并检查分配的权限。 如果您看不到该服务账号,则该服务账号可能是 Google 提供的 Agent Runtime 服务账号。在这种情况下,请选择包括 Google 提供的角色授权以查看服务账号。
对于非 Google 提供的服务账号,请在 Google Cloud 控制台中前往服务账号页面。
对于非 Google 提供的服务账号,请在显示的页面上的过滤条件框中,输入被盗用的服务账号的名称,并检查该服务账号的密钥和密钥创建日期。
第 3 步:检查日志
- 在发现结果详细信息面板的“摘要”标签页上,点击 Cloud Logging URI 链接以打开 Logs Explorer。
- 如有必要,请选择您的项目。
- 在加载的页面上,使用以下过滤条件检查新的或更新后的 IAM 资源中的活动日志:
proto_payload.method_name="google.iam.admin.v1.CreateServiceAccount"protoPayload.methodName="SetIamPolicy"protoPayload.authenticationInfo.principalEmail="principalEmail"
第 4 步:研究攻击和响应方法
- 查看发现结果类型的 MITRE ATT&CK 框架条目:权限组发现:Cloud Groups。
- 如需制定响应方案,请将您的调查结果与 MITRE 研究相结合。
第 5 步:实现响应
以下响应方案可能适合此发现结果,但也可能会影响运营。 请仔细评估您在研究中收集的信息,以确定解析发现结果的最佳方法。
- 与账号被盗用的项目的所有者联系。
- 如果遭入侵的服务账号是 Google 提供的 Agent Runtime 服务账号,您无法直接将其删除。在这种情况下,请将服务账号的权限限制为所需的最低权限。否则,删除被盗用的服务账号,然后轮替和删除遭入侵项目的所有服务账号访问密钥。删除后,使用该服务账号进行身份验证的资源会失去访问权限。
- 删除被盗用的账号创建的项目资源,例如不熟悉的 Compute Engine 实例、快照、服务账号和 IAM 用户。
示例发现结果 JSON
以下是省略了默认值的发现结果 JSON 示例。
{ "finding": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global", "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "state": "ACTIVE", "category": "Discovery: AI Agent Service Account Self-Investigation", "securityMarks": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks" }, "eventTime": "TIMESTAMP", "createTime": "TIMESTAMP", "severity": "LOW", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "findingClass": "THREAT", "contacts": { "security": { "contacts": [ { "email": "USER_EMAIL" } ] } }, "access": { "principalEmail": "PRINCIPAL_EMAIL", "callerIp": "IP_ADDRESS", "callerIpGeo": { "regionCode": "COUNTRY_CODE" }, "userAgent": "USER_AGENT", "serviceName": "cloudresourcemanager.googleapis.com", "methodName": "GetIamPolicy", "principalSubject": "serviceAccount:PRINCIPAL_EMAIL" }, "mitreAttack": { "primaryTactic": "DISCOVERY", "primaryTechniques": [ "PERMISSION_GROUPS_DISCOVERY", "CLOUD_GROUPS" ] }, "parentDisplayName": "Event Threat Detection", "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ], "logEntries": [ { "cloudLoggingEntry": { "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/data_access", "resourceContainer": "projects/PROJECT_ID", "timestamp": "TIMESTAMP" } } ] }, "resource": { "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "displayName": "PROJECT_ID", "type": "google.cloud.resourcemanager.Project", "cloudProvider": "GOOGLE_CLOUD_PLATFORM", "service": "cloudresourcemanager.googleapis.com", "gcpMetadata": { "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parent": "//cloudresourcemanager.googleapis.com/organizations/ORGANIZATION_ID", "parentDisplayName": "ORGANIZATION_DISPLAY_NAME", "organization": "organizations/ORGANIZATION_ID" }, "resourcePath": { "nodes": [ { "nodeType": "GCP_PROJECT", "id": "projects/PROJECT_NUMBER", "displayName": "PROJECT_ID" }, { "nodeType": "GCP_ORGANIZATION", "id": "organizations/ORGANIZATION_ID" } ] }, "resourcePathString": "organizations/ORGANIZATION_ID/projects/PROJECT_NUMBER" }, "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "agent_engine_iam_anomalous_behavior", "subRuleName": "agent_engine_service_account_gets_own_iam_policy" }, "detectionPriority": "LOW", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" } ], "evidence": [ { "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "TIMESTAMP_SECONDS", "nanos": TIMESTAMP_NANOS }, "insertId": "INSERT_ID", "logId": "cloudaudit.googleapis.com/data_access" } } ], "properties": { "serviceAccountGetsOwnIamPolicy": { "principalEmail": "PRINCIPAL_EMAIL", "projectId": "PROJECT_ID", "callerIp": "IP_ADDRESS", "callerUserAgent": "USER_AGENT", "rawUserAgent": "USER_AGENT" } }, "findingId": "FINDING_ID", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/techniques/T1069/003/" }, "cloudLoggingQueryUri": [ { "displayName": "Cloud Logging Query Link", "url": "https://console.cloud.google.com/logs/query;query=timestamp%3D%22TIMESTAMP%22%0AinsertId%3D%22INSERT_ID%22?project=PROJECT_ID" } ] }, "domains": [ { "category": "AI" }, { "category": "IDENTITY_AND_ACCESS" } ] } }
后续步骤
- 了解如何在 Security Command Center 中处理威胁发现结果。
- 请参阅威胁发现结果索引。
- 了解如何通过 Google Cloud 控制台查看发现结果。
- 了解生成威胁发现结果的服务。