Esfiltrazione: dati BigQuery su Google Drive

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

L'esfiltrazione di dati da BigQuery viene rilevata esaminando gli audit log per il seguente scenario:

  • Una risorsa viene salvata in una cartella di Google Drive.

Event Threat Detection è l'origine di questo risultato.

Come rispondere

Per rispondere a questo risultato:

Passaggio 1: esamina i dettagli del risultato

  1. Apri un risultato Exfiltration: BigQuery Data to Google Drive, come indicato in Esaminare i risultati.
  2. Nella scheda Riepilogo del riquadro dei dettagli del risultato, esamina le informazioni nelle seguenti sezioni:

    • Che cosa è stato rilevato, tra cui:
      • Email principale: l'account utilizzato per esfiltrare i dati.
      • Origini di esfiltrazione: dettagli sulla tabella BigQuery da cui sono stati esfiltrati i dati.
      • Destinazioni di esfiltrazione: dettagli sulla destinazione in Google Drive.
    • Risorsa interessata, tra cui:
      • Nome completo della risorsa: il nome della risorsa BigQuery di cui sono stati esfiltrati i dati.
      • Nome completo del progetto: il Google Cloud progetto che contiene il set di dati BigQuery di origine.
    • Link correlati, tra cui:
      • 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. Per ulteriori informazioni, fai clic sulla scheda JSON.

  4. Nel JSON, prendi nota dei seguenti campi.

    • sourceProperties:
      • evidence:
        • sourceLogId:
        • projectId: il Google Cloud progetto che contiene il set di dati BigQuery di origine.
      • properties:
        • extractionAttempt:
        • jobLink: il link al job BigQuery che ha esfiltrato i dati

Passaggio 2: esamina autorizzazioni e 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 (dal passaggio 1).

  3. Nella pagina visualizzata, nella casella Filtro, inserisci l'indirizzo email elencato in access.principalEmail (dal passaggio 1) 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à amministrative correlate ai job BigQuery utilizzando i seguenti filtri:
    • protoPayload.methodName="Jobservice.insert"
    • protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"

Passaggio 4: ricerca 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 nella 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.

{
  "finding": {
    "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID",
    "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID",
    "resource_name": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID",
    "state": "ACTIVE",
    "category": "Exfiltration: BigQuery Data to Google Drive",
    "sourceProperties": {
      "affectedResources": [{
        "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER"
      }],
      "detectionCategory": {
        "technique": "google_drive_exfiltration",
        "indicator": "audit_log",
        "ruleName": "big_query_exfil",
        "subRuleName": "exfil_to_google_drive"
      },
      "detectionPriority": "LOW",
      "sourceId": {
        "projectNumber": "PROJECT_NUMBER",
        "customerOrganizationNumber": "ORGANIZATION_ID"
      },
      "contextUris": {
        "mitreUri": {
          "displayName": "MITRE Link",
          "url": "https://attack.mitre.org/techniques/T1567/002/"
        },
        "cloudLoggingQueryUri": [{
          "displayName": "Cloud Logging Query Link",
          "url": "LOGGING_LINK"
        }],
        "relatedFindingUri": {
          "displayName": "Related BigQuery Exfiltration to Google Drive findings",
          "url": "RELATED_FINDINGS_LINK"
        }
      },
      "evidence": [{
        "sourceLogId": {
          "projectId": PROJECT_ID,
          "resourceContainer": "projects/PROJECT_ID",
          "timestamp": {
            "seconds": "0",
            "nanos": 0.0
          },
          "insertId": "INSERT_ID"        }
      }],
      "properties": {
        "extractionAttempt": {
          "jobLink": "https://console.cloud.google.com/bigquery?j=JOB_ID&project=SOURCE_PROJECT_ID&page=queryresults",
          "job": {
            "projectId": "SOURCE_PROJECT_ID",
            "jobId": "JOB_ID",
            "location": "US"
          },
          "sourceTable": {
            "projectId": "DESTINATION_PROJECT_ID",
            "datasetId": "DATASET_ID",
            "tableId": "TABLE_ID",
            "resourceUri": "FULL_URI"
          },
          "destinations": [
            {
              "originalUri": "gdrive://TARGET_GOOGLE_DRIVE_FOLDER/TARGET_GOOGLE_DRIVE_FILE_NAME",
              "collectionType": "GDRIVE",
              "collectionName": "TARGET_GOOGLE_DRIVE_FOLDER",
              "objectName": "TARGET_GOOGLE_DRIVE_FILE_NAME"
            }
          ]
        },
        "principalEmail": "PRINCIPAL_EMAIL"
      },
      "findingId": "FINDING_ID"
    },
    "securityMarks": {
      "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID/securityMarks"
    },
    "eventTime": "2022-03-31T21:20:18.408Z",
    "createTime": "2022-03-31T21:20:18.715Z",
    "severity": "LOW",
    "workflowState": "NEW",
    "canonicalName": "projects/PROJECT_NUMBER/sources/SOURCE_ID/findings/FINDING_ID",
    "mute": "UNDEFINED",
    "findingClass": "THREAT",
    "mitreAttack": {
      "primaryTactic": "EXFILTRATION",
      "primaryTechniques": ["EXFILTRATION_OVER_WEB_SERVICE", "EXFILTRATION_TO_CLOUD_STORAGE"]
    },
    "access": {
      "principalEmail": "PRINCIPAL_EMAIL",
      "callerIp": "IP",
      "callerIpGeo": {
      },
      "serviceName": "bigquery.googleapis.com",
      "methodName": "google.cloud.bigquery.v2.JobService.InsertJob"
    },
    "exfiltration": {
      "sources": [
        {
          "name": "//bigquery.googleapis.com/projects/SOURCE_PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID"
        }
      ],
      "targets": [
        {
          "name": "TARGET_GOOGLE_DRIVE_URI"
        }
      ]
    }
  },
  "resource": {
    "name": "//bigquery.googleapis.com/projects/PROJECT_ID/datasets/DATASET_ID/tables/TABLE_ID",
    "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER",
    "projectDisplayName": "PROJECT_ID",
    "parentName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER/datasets/DATASET_ID",
    "parentDisplayName": "PROJECT_ID:DATASET_ID",
    "type": "google.cloud.bigquery.Table",
    "folders": [{
      "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER",
      "resourceFolderDisplayName": "FOLDER_NAME"
    }],
    "displayName": "PROJECT_ID:DATASET_ID.TABLE_ID"
  }
}

Passaggi successivi