Exfiltration: KI-Agent initiiert Cloud SQL-Exfiltration in öffentlichen 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 von einem KI-Agenten initiierte Daten-Exfiltration aus Cloud SQL wird erkannt, indem Audit-Logs auf Live-Instanzdaten geprüft werden, die in einen Cloud Storage-Bucket exportiert wurden, der der Organisation gehört und öffentlich zugänglich ist.

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 Public 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 in der JSON-Datei 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 wird.

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 in der Ergebnis-JSON-Datei (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 (aus Schritt 1) aufgeführt ist. 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 in Cloud Storage).
  2. Prüfen Sie die ähnlichen Ergebnisse. Klicken Sie dazu auf den Link in der Zeile Ähnliche Ergebnisse , die 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 eine Ergebnis-JSON-Datei

Hier sehen Sie ein Beispiel für die Ergebnis-JSON-Datei, 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 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"
      }
    ]
  }
}

Nächste Schritte