Esfiltrazione: esfiltrazione dei dati di BigQuery

Questo documento descrive un tipo di risultato di minaccia in Security Command Center. I risultati di minaccia vengono generati dai rilevatori di minacce quando rilevano una potenziale minaccia nelle risorse cloud. Per un elenco completo dei risultati di minaccia disponibili, consulta l'indice dei risultati di minaccia.

Panoramica

I risultati restituiti da Exfiltration: BigQuery Data Exfiltration contengono una delle due possibili sotto-regole. Ogni sotto-regola ha una gravità diversa:

  • Sotto-regola exfil_to_external_table con gravità = HIGH:
    • Una risorsa è stata salvata al di fuori dell'organizzazione o del progetto.
  • Sotto-regola vpc_perimeter_violation con gravità = LOW:
    • I Controlli di servizio VPC hanno bloccato un'operazione di copia o un tentativo di accesso alle risorse BigQuery.

Event Threat Detection è l'origine di questo risultato.

Come rispondere

Per rispondere a questo risultato:

Passaggio 1: esamina i dettagli del risultato

  1. Apri il risultato Exfiltration: BigQuery Data Exfiltration, come indicato in Esaminare i risultati.
  2. Nella scheda Riepilogo del riquadro dei dettagli del risultato, esamina i valori elencati nelle seguenti sezioni:

    • Che cosa è stato rilevato:
      • Gravità: la gravità è HIGH per la sotto-regola exfil_to_external_table o LOW per la sotto-regola vpc_perimeter_violation.
      • Email principale: l'account utilizzato per l'esfiltrazione dei dati.
      • Origini di esfiltrazione: dettagli sulle tabelle da cui sono stati esfiltrati i dati.
      • Destinazioni di esfiltrazione: dettagli sulle tabelle in cui sono stati archiviati i dati esfiltrati.
    • Risorsa interessata:
      • Nome completo della risorsa: il nome completo della risorsa del progetto, della cartella o dell'organizzazione da cui sono stati esfiltrati i dati.
    • Link correlati:
      • URI Cloud Logging: link alle voci di logging.
      • Metodo MITRE ATT&CK: link alla documentazione MITRE ATT&CK.
      • Risultati correlati: link a eventuali risultati correlati.
  3. Fai clic sulla scheda Proprietà di origine ed esamina i campi visualizzati, in particolare:

    • detectionCategory:
      • subRuleName: exfil_to_external_table o vpc_perimeter_violation.
    • evidence:
      • sourceLogId:
        • projectId: il Google Cloud progetto che contiene il set di dati BigQuery di origine.
    • properties
      • dataExfiltrationAttempt
        • jobLink: il link al job BigQuery che ha esfiltrato i dati.
        • query: la query SQL eseguita sul set di dati BigQuery.
  4. Se vuoi, fai clic sulla scheda JSON per visualizzare l'elenco completo delle proprietà JSON del risultato.

Passaggio 2: esamina le autorizzazioni e le impostazioni

  1. Nella Google Cloud console vai alla pagina IAM.

    Vai a IAM

  2. Se necessario, seleziona il progetto elencato nel campo projectId nel JSON del risultato.

  3. Nella pagina visualizzata, inserisci l'indirizzo email elencato in Email principale nella casella Filtro e controlla le autorizzazioni assegnate all'account.

Passaggio 3: controlla i log

  1. Nella scheda Riepilogo del riquadro dei dettagli del risultato, fai clic sul link URI Cloud Logging per aprire Esplora log.
  2. Trova i log delle attività di amministrazione relativi ai job BigQuery utilizzando i seguenti filtri:

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

Passaggio 4: ricerca i metodi di attacco e risposta

  1. Esamina la voce del framework MITRE ATT&CK per questo tipo di risultato: Esfiltrazione tramite servizio web: esfiltrazione in Cloud Storage.
  2. Esamina i risultati correlati facendo clic sul link nella riga Risultati correlati della scheda Riepilogo dei dettagli del risultato. I risultati correlati sono dello stesso tipo di risultato sulla stessa istanza e rete.
  3. Per sviluppare un piano di risposta, combina i risultati dell'indagine con la ricerca MITRE.

Passaggio 5: implementa la risposta

Il seguente piano di risposta potrebbe essere appropriato per questo risultato, ma potrebbe anche influire sulle operazioni. Valuta attentamente le informazioni raccolte durante l'indagine per determinare il modo migliore per risolvere i risultati.

Esempio di JSON del risultato

Di seguito è riportato un esempio di JSON del risultato.

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

Passaggi successivi