Exfiltration: BigQuery-Daten-Exfiltration

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

Ergebnisse, die von Exfiltration: BigQuery Data Exfiltration zurückgegeben werden, enthalten eine von zwei möglichen Unterregeln. Jede untergeordnete Regel hat einen anderen Schweregrad:

  • Unterregel exfil_to_external_table mit Schweregrad = HIGH:
    • Eine Ressource wurde außerhalb Ihrer Organisation oder Ihres Projekts gespeichert.
  • Unterregel vpc_perimeter_violation mit Schweregrad = LOW:
    • VPC Service Controls hat einen Kopiervorgang oder einen Versuch, auf BigQuery-Ressourcen zuzugreifen, blockiert.

Die Quelle dieses Ergebnisses ist Event Threat Detection.

Maßnahmen

So reagieren Sie auf dieses Ergebnis:

Schritt 1: Ergebnisdetails prüfen

  1. Öffnen Sie das Exfiltration: BigQuery Data Exfiltration-Ergebnis, wie unter Ergebnisse prüfen beschrieben.
  2. Sehen Sie sich im Bereich „Ergebnisdetails“ auf dem Tab Zusammenfassung die aufgeführten Werte in den folgenden Abschnitten an:

    • Was wurde erkannt?:
      • Schweregrad: Der Schweregrad ist entweder HIGH für die Unterregel exfil_to_external_table oder LOW für die Unterregel vpc_perimeter_violation.
      • Haupt-E-Mail-Adresse: Das Konto, das zum Exfiltrieren der Daten verwendet wird.
      • Exfiltrationsquellen: Details zu den Tabellen, aus denen Daten exfiltriert wurden.
      • Exfiltrationsziele: Details zu den Tabellen, in denen exfiltrierte Daten gespeichert wurden.
    • Betroffene Ressource:
      • Vollständiger Name der Ressource: Der vollständige Ressourcenname des Projekts, Ordners oder der Organisation, aus dem Daten exfiltriert wurden.
    • Weitere Informationen:
      • 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 Quellattribute und sehen Sie sich die angezeigten Felder an, insbesondere:

    • detectionCategory:
      • subRuleName: entweder exfil_to_external_table oder vpc_perimeter_violation.
    • evidence:
      • sourceLogId:
        • projectId: das Google Cloud Projekt, das das BigQuery-Quelldataset enthält.
    • properties
      • dataExfiltrationAttempt
        • jobLink: der Link zum BigQuery-Job, der Daten exfiltriert hat.
        • query: die SQL-Abfrage, die für das BigQuery-Dataset ausgeführt wird.
  4. Optional: Klicken Sie auf den Tab JSON, um die vollständige Liste der JSON-Attribute des Ergebnisses aufzurufen.

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 bei Bedarf das im Feld projectId im JSON-Ergebnis aufgeführte Projekt aus.

  3. Geben Sie auf der angezeigten Seite im Feld Filter die E-Mail-Adresse ein, die unter E-Mail-Adresse des Hauptkontos aufgeführt ist, und prüfen Sie, welche Berechtigungen dem Konto zugewiesen sind.

Schritt 3: Protokolle prüfen

  1. Klicken Sie im Bereich mit den Ergebnisdetails auf dem Tab „Zusammenfassung“ auf den Link Cloud Logging-URI, um den Log-Explorer zu öffnen.
  2. Suchen Sie mit den folgenden Filtern nach Administratoraktivitätslogs, die sich auf BigQuery-Jobs beziehen:

    • protoPayload.methodName="Jobservice.insert"
    • protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"

Schritt 4: Angriffs- und Reaktionsmethoden untersuchen

  1. Prüfen Sie den MITRE-ATT&CK-Framework-Eintrag für diesen Ergebnistyp: Exfiltration over Web Service: Exfiltration to Cloud Storage.
  2. Klicken Sie auf den Tab Zusammenfassung der Ergebnisdetails und dann in der Zeile Ähnliche Ergebnisse auf den Link unter Ähnliche Ergebnisse, um ähnliche Ergebnisse aufzurufen. Ähnliche Ergebnisse sind für dieselbe Instanz und dasselbe Netzwerk identisch.
  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 JSON-Ergebnis

Das folgende Beispiel zeigt das JSON für ein Ergebnis.

{
  "findings": {
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP",
      "callerIpGeo": {
        "regionCode": "REGION_CODE"
      },
      "serviceName": "bigquery.googleapis.com",
      "methodName": "google.cloud.bigquery.v2.JobService.InsertJob"
    },
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "category": "Exfiltration: BigQuery Data Exfiltration",
    "cloudDlpDataProfile": {},
    "cloudDlpInspection": {},
    "createTime": "2023-05-30T15:49:59.709Z",
    "database": {},
    "eventTime": "2023-05-30T15:49:59.432Z",
    "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"
        }
      ]
    },
    "findingClass": "THREAT",
    "findingProviderId": "organizations/ORGANIZATION_ID/firstPartyFindingProviders/etd",
    "indicator": {},
    "kernelRootkit": {},
    "kubernetes": {},
    "mitreAttack": {
      "primaryTactic": "EXFILTRATION",
      "primaryTechniques": [
        "EXFILTRATION_OVER_WEB_SERVICE",
        "EXFILTRATION_TO_CLOUD_STORAGE"
      ]
    },
    "mute": "UNDEFINED",
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "parentDisplayName": "Event Threat Detection",
    "resourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "severity": "HIGH",
    "state": "ACTIVE",
    "vulnerability": {}
  },
  "resource": {
    "name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "display_name": "PROJECT_ID",
    "project_name": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "project_display_name": "PROJECT_ID",
    "parent_name": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
    "parent_display_name": "FOLDER_NAME",
    "type": "google.cloud.resourcemanager.Project",
    "folders": [
      {
        "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_ID",
        "resourceFolderDisplayName": "FOLDER_NAME"
      }
    ]
  },
  "sourceProperties": {
    "sourceId": {
      "projectNumber": "PROJECT_NUMBER",
      "customerOrganizationNumber": "ORGANIZATION_ID"
    },
    "detectionCategory": {
      "technique": "org_exfiltration",
      "indicator": "audit_log",
      "ruleName": "big_query_exfil",
      "subRuleName": "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": "1685461795",
            "nanos": 341527000
          },
          "insertId": "INSERT_ID"
        }
      }
    ],
    "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"
          }
        ],
        "userEmail": "e2etest@PROJECT_ID.iam.gserviceaccount.com"
      },
      "principalEmail": "PRINCIPAL_EMAIL"
    },
    "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%222023-05-30T15:49:55.341527Z%22%0AinsertId%3D%22INSERT_ID%22%0Aresource.labels.project_id%3D%22PROJECT_ID%22?project=PROJECT_ID"
        }
      ],
      "relatedFindingUri": {}
    }
  }
}

Nächste Schritte