本文档介绍了 Security Command Center 中的一种威胁发现结果类型。当威胁检测器在您的云资源中检测到潜在威胁时,会生成威胁发现结果。如需查看可用威胁发现结果的完整列表,请参阅威胁发现结果索引。
概览
您可以通过检查以下两种场景的审核日志,来检测由 AI 智能体从 BigQuery 发起的数据渗漏:
- 资源会保存到组织外部的 Cloud Storage 存储桶中。
- 资源会保存到您的组织拥有的可公开访问的 Cloud Storage 存储桶中。
对于 Security Command Center 高级方案的项目级激活,此发现结果仅在父级组织中启用了标准旧版层级时才可用。
Event Threat Detection 是此发现结果的来源。
如何应答
如需响应此发现结果,请执行以下操作:
第 1 步:查看发现结果详情
- 按照查看发现结果中所述,打开
Exfiltration: AI Agent Initiated BigQuery Data Extraction发现结果。系统会打开发现结果详细信息面板,以显示摘要标签页。 在发现结果详细信息面板的摘要标签页上,查看以下部分中列出的值:
- 检测到的内容:
- 主账号电子邮件地址:用于渗漏数据的账号。
- 渗漏来源:有关从其中渗漏数据的表的详细信息。
- 渗漏目标:有关在其中存储渗漏数据的表的详细信息。
- 受影响的资源:
- 资源全名:渗漏其数据的 BigQuery 资源的名称。
- 项目全名:包含来源 BigQuery 数据集的 Google Cloud 项目。
- 相关链接:
- Cloud Logging URI:指向 Logging 条目的链接。
- MITRE ATT&CK 方法:指向 MITRE ATT&CK 文档的链接。
- 相关发现结果:指向任何相关发现结果的链接。
- 检测到的内容:
在发现结果详细信息面板中,点击 JSON 标签页。
在 JSON 中,请注意以下字段。
sourceProperties:evidence:sourceLogId:projectId:包含来源 BigQuery 数据集的 Google Cloud 项目。
properties:extractionAttempt:jobLink:指向渗漏数据的 BigQuery 作业的链接
第 2 步:查看权限和设置
在 Google Cloud 控制台中,前往 IAM 页面。
如有必要,请选择发现结果 JSON 中
projectId字段中列出的项目(来自第 1 步)。在显示的页面上的过滤条件框中,输入主账号电子邮件地址中列出的电子邮件地址(来自第 1 步),并检查为该账号分配了哪些权限。
第 3 步:检查日志
- 在发现结果详细信息面板的“摘要”标签页上,点击 Cloud Logging URI 链接以打开 Logs Explorer。
- 使用以下过滤条件查找与 BigQuery 作业相关的管理员活动日志:
protoPayload.methodName="Jobservice.insert"protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"
第 4 步:研究攻击和响应方法
- 查看此发现结果类型的 MITRE ATT&CK 框架条目:渗漏到 Cloud Storage。
- 点击发现结果详情摘要标签页中相关发现结果行上的链接,以查看相关发现结果。 相关发现结果属于同一实例和网络上的同一发现结果类型。
- 如需制定响应方案,请将您的调查结果与 MITRE 研究相结合。
第 5 步:实现响应
以下响应方案可能适合此发现结果,但也可能会影响运营。 请仔细评估您在研究中收集的信息,以确定解析发现结果的最佳方法。
- 与数据被渗漏的项目的所有者联系。
- 在调查完成之前,考虑对发现结果详情摘要标签页中主账号电子邮件地址行上列出的主账号撤消权限。
- 如需阻止进一步的渗漏,请为发现结果详情摘要标签页上渗漏来源字段中标识的受影响的 BigQuery 数据集添加严格的 IAM 政策。
- 如需扫描受影响的数据集是否存在敏感信息,请使用 Sensitive Data Protection。您还可以将 Sensitive Data Protection 数据发送到 Security Command Center。Sensitive Data Protection 费用可能相当大,具体取决于信息的数量。请遵循控制 Sensitive Data Protection 费用的最佳实践。
- 如需限制对 BigQuery API 的访问权限,请使用 VPC Service Controls。
- 如果您是存储桶的所有者,请考虑撤消公开访问权限。
- 如需识别并修正过于宽松的角色,请使用 IAM Recommender。
示例发现结果 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": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", "state": "ACTIVE", "category": "Exfiltration: AI Agent Initiated BigQuery Data Extraction", "securityMarks": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/locations/global/findings/FINDING_ID/securityMarks" }, "eventTime": "TIMESTAMP", "createTime": "TIMESTAMP", "severity": "HIGH", "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/locations/global/findings/FINDING_ID", "findingClass": "THREAT", "access": { "callerIp": "IP_ADDRESS", "callerIpGeo": { "regionCode": "COUNTRY_CODE" }, "userAgent": "USER_AGENT", "serviceName": "bigquery.googleapis.com", "methodName": "google.cloud.bigquery.v2.JobService.InsertJob", "principalSubject": "principal://agents.global.org-ORGANIZATION_ID.system.id.goog/resources/aiplatform/projects/PROJECT_NUMBER/locations/LOCATION/reasoningEngines/REASONING_ENGINE_ID" }, "mitreAttack": { "primaryTactic": "EXFILTRATION", "primaryTechniques": [ "EXFILTRATION_OVER_WEB_SERVICE", "EXFILTRATION_TO_CLOUD_STORAGE" ] }, "exfiltration": { "sources": [ { "name": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID" } ], "targets": [ { "name": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "components": [ "TARGET_FILE_NAME" ] } ] }, "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": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID", "displayName": "PROJECT_ID:DATASET_ID.TABLE_ID", "type": "google.cloud.bigquery.Table", "cloudProvider": "GOOGLE_CLOUD_PLATFORM", "service": "bigquery.googleapis.com", "location": "BIGQUERY_JOB_LOCATION", "gcpMetadata": { "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parent": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID", "parentDisplayName": "PROJECT_ID:DATASET_ID", "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_big_query_exfil", "subRuleName": "agent_engine_exfil_to_cloud_storage" }, "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": { "extractionAttempt": { "job": { "projectId": "PROJECT_ID", "jobId": "BIGQUERY_JOB_ID", "location": "BIGQUERY_JOB_LOCATION" }, "jobLink": "https://console.cloud.google.com/bigquery?j=bq:BIGQUERY_JOB_LOCATION:BIGQUERY_JOB_ID&project=PROJECT_ID&page=queryresults", "sourceTable": { "projectId": "PROJECT_ID", "datasetId": "DATASET_ID", "tableId": "TABLE_ID", "resourceUri": "projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID" }, "destinations": [ { "originalUri": "gs://TARGET_STORAGE_BUCKET_NAME/TARGET_FILE_NAME", "collectionType": "GCS_BUCKET", "collectionName": "TARGET_STORAGE_BUCKET_NAME", "objectName": "TARGET_FILE_NAME" } ] } }, "findingId": "FINDING_ID", "contextUris": { "mitreUri": { "displayName": "MITRE Link", "url": "https://attack.mitre.org/techniques/T1567/002/" }, "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 控制台查看发现结果。
- 了解生成威胁发现结果的服务。