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 Unterregel 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 von diesem Ergebnis ist Event Threat Detection.

Maßnahmen

So reagieren Sie auf dieses Ergebnis:

Schritt 1: Ergebnisdetails prüfen

  1. Öffnen Sie das Ergebnis Exfiltration: BigQuery Data Exfiltration, wie unter Ergebnisse prüfen beschrieben.
  2. Prüfen Sie auf dem Tab Zusammenfassung des Bereichs mit den Ergebnisdetails die aufgeführten Werte in den folgenden Abschnitten:

    • 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.
      • E-Mail-Adresse des Prinzipals: Das Konto, das zur Exfiltration 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 Ressourcenname: Der vollständige Ressourcenname des Projekts, Ordners oder der Organisation, aus dem bzw. der 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 prüfen Sie die angezeigten Felder, 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 Projekt aus, das im projectId Feld im Ergebnis-JSON aufgeführt ist.

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

Schritt 3: Protokolle prüfen

  1. Klicken Sie auf dem Tab Zusammenfassung des Bereichs mit den Ergebnisdetails 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 dem Tab Zusammenfassung der Ergebnisdetails in der Zeile Ähnliche Ergebnisse auf den Link unter Ähnliche Ergebnisse , um ähnliche Ergebnisse abzurufen. Ä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 ein Ergebnis-JSON

Im Folgenden sehen Sie ein Beispiel für das Ergebnis-JSON.

{
  "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