このドキュメントでは、Security Command Center の脅威の検出結果のタイプについて説明します。脅威の検出結果は、クラウド リソースで潜在的な脅威が検出されたときに、脅威検出機能によって生成されます。使用可能な脅威の検出結果の一覧については、脅威の検出結果のインデックスをご覧ください。
概要
リソースが組織または AI エージェントによって開始されたプロジェクトの外部に保存された。
この検出結果のソースは Event Threat Detection です。
対処方法
この検出結果に対応する手順は次のとおりです。
ステップ 1: 検出結果の詳細を確認する
- 検出結果の確認の説明に従って、
Exfiltration: AI Agent Initiated BigQuery Data Exfiltration to External Tableの検出結果を開きます。 検出結果の詳細パネルの [概要] タブで、次のセクションに表示されている値を確認します。
- 検出された内容:
- プリンシパルのメール: データの漏洩に使用されたアカウント。
- データの引き出しのソース: データが漏洩したテーブルの詳細。
- データの引き出しのターゲット: 漏洩したデータが格納されていたテーブルの詳細。
- 影響を受けているリソース:
- リソースの完全な名前: データが漏洩したプロジェクト、フォルダ、または組織の完全なリソース名。
- 関連リンク:
- Cloud Logging URI: Logging エントリへのリンク。
- MITRE ATT&CK 方式: MITRE ATT&CK ドキュメントへのリンク。
- 関連する検出結果: 関連する検出結果へのリンク。
- 検出された内容:
[ソース プロパティ] タブをクリックし、表示されたフィールドについて、特に次の点を確認します。
evidence:sourceLogId:projectId: ソースの BigQuery データセットを含む Google Cloud プロジェクト。
propertiesdataExfiltrationAttemptjobLink: データが漏洩した BigQuery ジョブへのリンク。query: BigQuery データセットで実行された SQL クエリ。
必要に応じて、[JSON] タブをクリックして、検出結果の JSON プロパティを一覧表示します。
ステップ 2: 権限と設定を確認する
Google Cloud コンソールで、[IAM] ページに移動します。
必要に応じて、検出結果の JSON の
projectIdフィールドに表示されているプロジェクトを選択します。表示されたページの [フィルタ] ボックスに、[プリンシパルのメール] にあるメールアドレスを入力し、アカウントに割り当てられている権限を確認します。
ステップ 3: ログを確認する
- 検出結果の詳細パネルの [概要] タブで、[Cloud Logging URI] リンクをクリックして [ログ エクスプローラ] を開きます。
次のフィルタを使用して、BigQuery ジョブに関連する管理アクティビティ ログを検索します。
protoPayload.methodName="Jobservice.insert"protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"
ステップ 4: 攻撃とレスポンスの手法を調査する
- この検出結果タイプに対応する MITRE ATT&CK フレームワークのエントリ(クラウド ストレージへの引き出し)を確認します。
- 検出結果の詳細の [概要] タブで、[関連する検出結果] 行の [関連する検出結果] リンクをクリックして、関連する検出結果を確認します。関連する検出結果とは、同じインスタンスとネットワークで検出された同じタイプの検出結果のことです。
- 対応計画を策定するには、独自の調査結果と MITRE の調査を組み合わせる必要があります。
ステップ 5: レスポンスを実装する
次の対応計画は、この検出結果に適切な場合もありますが、運用に影響する可能性もあります。調査で収集した情報を慎重に評価して、検出結果を解決する最適な方法を判断してください。
- データが漏洩したプロジェクトのオーナーに連絡します。
- 調査が完了するまで、
userEmailの権限を取り消すことを検討します。 - これ以上の漏洩を止めるには、影響を受けた BigQuery データセット(
exfiltration.sourcesとexfiltration.targets)に制限付きの IAM ポリシーを追加します。 - 影響を受けるデータセットに含まれる機密情報をスキャンするには、Sensitive Data Protection を使用します。Security Command Center に 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": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "state": "ACTIVE", "category": "Exfiltration: AI Agent Initiated BigQuery Data Exfiltration to External Table", "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": "//bigquery.googleapis.com/projects/TARGET_PROJECT_ID/datasets/TARGET_DATASET_ID/tables/TARGET_TABLE_ID" } ] }, "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_big_query_exfil", "subRuleName": "agent_engine_exfil_to_external_table" }, "detectionPriority": "HIGH", "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": { "dataExfiltrationAttempt": { "jobState": "SUCCEEDED", "jobLink": "https://console.cloud.google.com/bigquery?j=bq:BIGQUERY_JOB_LOCATION:BIGQUERY_JOB_ID&project=PROJECT_ID&page=queryresults", "job": { "projectId": "PROJECT_ID", "jobId": "BIGQUERY_JOB_ID", "location": "BIGQUERY_JOB_LOCATION" }, "query": "QUERY", "sourceTables": [ { "resourceUri": "https://console.cloud.google.com/bigquery?p=PROJECT_ID&d=DATASET_ID&t=TABLE_ID&page=table", "projectId": "PROJECT_ID", "datasetId": "DATASET_ID", "tableId": "TABLE_ID" } ], "destinationTables": [ { "resourceUri": "https://console.cloud.google.com/bigquery?p=TARGET_PROJECT_ID&d=TARGET_DATASET_ID&t=TARGET_TABLE_ID&page=table", "projectId": "TARGET_PROJECT_ID", "datasetId": "TARGET_DATASET_ID", "tableId": "TARGET_TABLE_ID" } ] } }, "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 コンソールで検出結果を確認する方法を学習する。
- 脅威の検出結果を生成するサービスについて学習する。