このドキュメントでは、Security Command Center の脅威の検出結果のタイプについて説明します。脅威の検出結果は、クラウド リソースで潜在的な脅威が検出されたときに、脅威検出機能によって生成されます。使用可能な脅威の検出結果の一覧については、脅威の検出結果のインデックスをご覧ください。
概要
AI エージェントによって開始された Cloud SQL からのデータの引き出しは、組織が所有し、一般公開される Cloud Storage バケットにエクスポートされたライブ インスタンス データの監査ログを調べることで検出されます。
Cloud SQL インスタンスの全タイプがサポートされています。
Security Command Center Premium ティアをプロジェクト レベルで有効にする場合、この検出結果を得ることができるのは、親の組織で Standard-legacy ティアが有効になっている場合のみです。
この検出結果のソースは Event Threat Detection です。
対処方法
この検出結果に対応する手順は次のとおりです。
ステップ 1: 検出結果の詳細を確認する
- 検出結果の確認の説明に従って、
Exfiltration: AI Agent Initiated CloudSQL Exfiltration to Public Bucketの検出結果を開きます。検出結果の詳細パネルが開き、[概要] タブが表示されます。 [概要] タブで、次のセクションの情報を確認します。
- 検出された内容(特に次のフィールド):
- プリンシパルのメール: データの漏洩に使用されたアカウント。
- データの引き出しのソース: データが漏洩した Cloud SQL インスタンスの詳細。
- データの引き出しのターゲット: データのエクスポート先の Cloud Storage バケットの詳細。
- 影響を受けているリソース(特に次のフィールド):
- リソースの完全な名前: データが漏洩した Cloud SQL のリソース名。
- プロジェクトのフルネーム: ソースの Cloud SQL データを含む Google Cloud プロジェクト。
- 関連リンク(以下を含む):
- Cloud Logging URI: Logging エントリへのリンク。
- MITRE ATT&CK 方式: MITRE ATT&CK ドキュメントへのリンク。
- 関連する検出結果: 関連する検出結果へのリンク。
- 検出された内容(特に次のフィールド):
[JSON] タブをクリックします。
検出結果の JSON で、次のフィールドを確認します。
sourceProperties:evidence:sourceLogId:projectId: ソースの Cloud SQL インスタンスを含む Google Cloud プロジェクト。
propertiesexportScope: エクスポートされたデータの量(インスタンス全体、1 つ以上のデータベース、1 つ以上のテーブル、またはクエリで指定されたサブセット)
ステップ 2: 権限と設定を確認する
Google Cloud コンソールで、[IAM] ページに移動します。
必要に応じて、検出結果の JSON の
projectIdフィールド(ステップ 1 を参照)に表示されているインスタンスのプロジェクトを選択します。表示されたページの [フィルタ] ボックスに、検出結果の詳細の [概要] タブにある [プリンシパルのメール] 行のメールアドレス(ステップ 1 を参照)を入力します。アカウントに割り当てられている権限を確認します。
ステップ 3: ログを確認する
- Google Cloud コンソールで、Cloud Logging の URI のリンク(ステップ 1 を参照)をクリックして、[ログ エクスプローラ] に移動します。[ログ エクスプローラ] ページに、関連する Cloud SQL インスタンスに関するすべてのログが表示されます。
ステップ 4: 攻撃と対応の手法を調査する
- この検出結果タイプに対応する MITRE ATT&CK フレームワークのエントリ(Exfiltration to Cloud Storage)を確認します。
- 関連する検出結果を確認するには、ステップ 1 で説明した [関連する検出結果] 行のリンクをクリックします。関連する検出結果の検出結果タイプと Cloud SQL インスタンスは同一です。
- 対応計画を策定するには、独自の調査結果と MITRE の調査を組み合わせる必要があります。
ステップ 5: レスポンスを実装する
次の対応計画は、この検出結果に適切な場合もありますが、運用に影響する可能性もあります。調査で収集した情報を慎重に評価して、検出結果を解決する最適な方法を判断してください。
- データが漏洩したプロジェクトのオーナーに連絡します。
- 調査が完了するまで、
access.principalEmailの権限を取り消すことを検討します。 - これ以上の漏洩を止めるには、影響を受けた Cloud SQL インスタンスに制限付きの IAM ポリシーを追加します。
- Cloud SQL Admin 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": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "state": "ACTIVE", "category": "Exfiltration: AI Agent Initiated CloudSQL Exfiltration to Public Bucket", "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" }, "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.export", "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": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "components": [ "Databases: DATABASE_NAME" ] } ], "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": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "displayName": "INSTANCE_NAME", "type": "google.cloud.sql.Instance", "cloudProvider": "GOOGLE_CLOUD_PLATFORM", "service": "sqladmin.googleapis.com", "location": "LOCATION", "gcpMetadata": { "project": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parent": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_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_cloudsql_exfil", "subRuleName": "agent_engine_export_to_public_gcs" }, "detectionPriority": "HIGH", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" }, { "gcpResourceName": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME" }, { "gcpResourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME" } ], "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": { "exportToGcs": { "cloudsqlInstanceResource": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "gcsUri": "gs://TARGET_STORAGE_BUCKET_NAME/TARGET_FILE_NAME", "bucketAccess": "PUBLICLY_ACCESSIBLE", "bucketResource": "//storage.googleapis.com/TARGET_STORAGE_BUCKET_NAME", "exportScope": "ONE_OR_MORE_DATABASES" } }, "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 コンソールで検出結果を確認する方法を学習する。
- 脅威の検出結果を生成するサービスについて学習する。