Exfiltration: KI-Agent initiiert Cloud SQL-Exfiltration in externen Bucket

In diesem Dokument wird ein bestimmter Typ von Bedrohungsergebnissen in Security Command Center beschrieben. Bedrohungsergebnisse werden von Bedrohungsdetektoren generiert, wenn sie eine potenzielle Bedrohung in Ihren Cloud-Ressourcen erkennen. Eine vollständige Liste der verfügbaren Bedrohungsergebnisse finden Sie im Index der Bedrohungsergebnisse.

Übersicht

Die Daten-Exfiltration aus Cloud SQL, die von einem KI-Agenten initiiert wurde, wird durch Prüfen der Audit-Logs auf Live-Instanzdaten erkannt, die in einen Cloud Storage-Bucket außerhalb der Organisation exportiert wurden.

Alle Cloud SQL-Instanztypen werden unterstützt.

Bei Aktivierungen der Security Command Center Premium-Stufe auf Projektebene ist dieses Ergebnis nur verfügbar, wenn die Standard-Legacy-Stufe in der übergeordneten Organisation aktiviert ist.

Die Quelle von diesem Ergebnis ist Event Threat Detection.

Maßnahmen

So reagieren Sie auf dieses Ergebnis:

Schritt 1: Ergebnisdetails prüfen

  1. Öffnen Sie ein Ergebnis vom Typ Exfiltration: AI Agent Initiated CloudSQL Exfiltration to External Bucket, wie unter Ergebnisse prüfen beschrieben. Der Detailbereich für das Ergebnis wird geöffnet und der Tab Zusammenfassung wird angezeigt.
  2. Sehen Sie sich auf dem Tab Zusammenfassung die Informationen in den folgenden Abschnitten an:

    • Was wurde erkannt, insbesondere die folgenden Felder:
      • E-Mail-Adresse des Principals : das Konto, das zur Exfiltration der Daten verwendet wird.
      • Exfiltrationsquellen: Details zur Cloud SQL -Instanz, deren Daten exfiltriert wurden.
      • Exfiltrationsziele: Details zum Cloud Storage Bucket, in den die Daten exportiert wurden.
    • Betroffene Ressource, insbesondere die folgenden Felder:
      • Vollständiger Name der Ressource: der Ressourcenname der Cloud SQL-Instanz deren Daten exfiltriert wurden.
      • Vollständiger Projektname: das Google Cloud Projekt, das die Cloud SQL-Quelldaten enthält.
    • Weitere Informationen, einschließlich:
      • Cloud Logging-URI: Link zu Logging-Einträgen.
      • MITRE ATT&CK-Methode: Link zur MITRE ATT&CK-Dokumentation.
      • Ähnliche Ergebnisse: Links zu ähnlichen Ergebnissen.
  3. Klicken Sie auf den Tab JSON.

  4. Beachten Sie im JSON-Code für das Ergebnis die folgenden Felder:

    • sourceProperties:
      • evidence:
      • sourceLogId:
        • projectId: das Google Cloud Projekt, das die Cloud SQL-Quellinstanz enthält.
      • properties
      • exportScope: wie viele Daten exportiert wurden, z. B. die gesamte Instanz, eine oder mehrere Datenbanken, eine oder mehrere Tabellen oder eine Teilmenge, die durch eine Abfrage angegeben wurde.

Schritt 2: Berechtigungen und Einstellungen prüfen

  1. Rufen Sie in der Google Cloud Console die Seite IAM auf.

    IAM aufrufen

  2. Wählen Sie gegebenenfalls das Projekt der Instanz aus, die im projectId Feld im Ergebnis-JSON (aus Schritt 1) aufgeführt ist.

  3. Geben Sie auf der angezeigten Seite im Feld Filter die E-Mail-Adresse ein, die in der Zeile E-Mail-Adresse des Principals auf dem Tab Zusammenfassung der Ergebnisdetails aufgeführt ist (aus Schritt 1). Prüfen Sie, welche Berechtigungen dem Konto zugewiesen sind.

Schritt 3: Protokolle prüfen

  1. Rufen Sie in der Google Cloud Console den Log-Explorer auf. Klicken Sie dazu auf den Link unter Cloud Logging-URI (aus Schritt 1). Die Seite Log-Explorer enthält alle Logs, die sich auf die relevante Cloud SQL-Instanz beziehen.

Schritt 4: Angriffs- und Reaktionsmethoden untersuchen

  1. Prüfen Sie den MITRE-ATT&CK-Framework-Eintrag für diesen Ergebnistyp: Exfiltration to Cloud Storage (Exfiltration zu Cloud Storage).
  2. Prüfen Sie die ähnlichen Ergebnisse. Klicken Sie dazu auf den Link in der Zeile Ähnliche Ergebnisse , der in Schritt 1 beschrieben wurde. Ähnliche Ergebnisse haben denselben Ergebnistyp auf derselben Cloud SQL-Instanz.
  3. Um einen Antwortplan zu entwickeln, kombinieren Sie Ihre Prüfungsergebnisse mit der MITRE-Studie.

Schritt 5: Antwort implementieren

Der folgende Reaktionplan ist möglicherweise für dieses Ergebnis geeignet, kann sich jedoch auch auf Abläufe auswirken. Prüfen Sie die Informationen, die Sie im Rahmen Ihrer Untersuchung erfasst haben, sorgfältig, um die beste Lösung für die Behebung der Ergebnisse zu finden.

Beispiel für ein Ergebnis-JSON

Hier sehen Sie ein Beispiel für das Ergebnis-JSON, wobei Standardwerte ausgelassen wurden.

{
  "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 External 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_external_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": "EXTERNAL_TO_ORGANIZATION",
        "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"
      }
    ]
  }
}

Nächste Schritte