Este documento descreve um tipo de descoberta de ameaças no Security Command Center. Essas descobertas são geradas por detectores de ameaças quando detectam um risco nos recursos da nuvem. Para ver uma lista completa, consulte Índice de descobertas de ameaças.
Visão geral
As descobertas retornadas pelo Exfiltration: BigQuery
Data Exfiltration contêm uma das duas sub-regras possíveis. Cada sub-regra tem uma gravidade diferente:
- Sub-regra
exfil_to_external_tablecom gravidade =HIGH:- Um recurso foi salvo fora da sua organização ou projeto.
- Sub-regra
vpc_perimeter_violationcom gravidade =LOW:- O VPC Service Controls bloqueou uma operação de cópia ou uma tentativa de acessar os recursos do BigQuery.
O Event Threat Detection é a origem dessa descoberta.
Como responder
Para responder a essa descoberta:
Etapa 1: verificar os detalhes da descoberta
- Abra a descoberta
Exfiltration: BigQuery Data Exfiltration, conforme instruído em Como verificar descobertas. Na guia Resumo do painel de detalhes da descoberta, revise os valores listados nas seguintes seções:
- O que foi detectado:
- Gravidade: a gravidade é
HIGHpara a sub-regraexfil_to_external_tableouLOWpara avpc_perimeter_violation. - E-mail principal: a conta usada para exfiltrar os dados.
- Origens de exfiltração: detalhes sobre as tabelas das quais os dados foram exfiltados.
- Destinos de exfiltração: detalhes sobre as tabelas em que os dados de exfiltração foram armazenados.
- Gravidade: a gravidade é
- Recurso afetado:
- Nome completo do recurso: o nome completo do recurso do projeto, da pasta ou da organização da qual os dados foram exfiltados.
- Links relacionados:
- URI do Cloud Logging: link para as entradas do Logging.
- Método MITRE ATT&CK: link para a documentação do MITRE ATT&CK.
- Descobertas relacionadas: links para quaisquer descobertas relacionadas.
- O que foi detectado:
Clique na guia Propriedades de origem e revise os campos mostrados, especialmente:
detectionCategory:subRuleName:exfil_to_external_tableouvpc_perimeter_violation.
evidence:sourceLogId:projectId: o Google Cloud projeto que contém o conjunto de dados do BigQuery de origem.
propertiesdataExfiltrationAttemptjobLink: o link para o job do BigQuery que exfiltrou dados.query: a consulta SQL executada no conjunto de dados do BigQuery.
Se quiser, clique na guia JSON para ver uma lista completa das propriedades JSON da descoberta.
Etapa 2: verificar as permissões e configurações
No Google Cloud console, acesse a página IAM.
Se necessário, selecione o projeto listado no campo
projectIdno JSON de descoberta.Na página exibida, na caixa Filtro, insira o endereço de e-mail listado em E-mail principal e verifique as permissões atribuídas à conta.
Etapa 3: verificar os registros
- Na guia Resumo do painel de detalhes da descoberta, clique no link URI do Cloud Logging para abrir a Análise de registros.
Encontre registros de atividades do administrador relacionados a jobs do BigQuery usando estes filtros:
protoPayload.methodName="Jobservice.insert"protoPayload.methodName="google.cloud.bigquery.v2.JobService.InsertJob"
Etapa 4: pesquisar métodos de ataque e resposta
- Verifique a entrada do framework do MITRE ATT&CK em busca deste tipo de descoberta: Exfiltração por serviço da Web: exfiltração para o Cloud Storage.
- Verifique as descobertas relacionadas clicando no link em Descobertas relacionadas na linha Descobertas relacionadas na guia Resumo dos detalhes da descoberta. As descobertas relacionadas são o mesmo tipo de descoberta na mesma instância e rede.
- Para desenvolver um plano de resposta, combine os resultados da investigação com a pesquisa do MITRE.
Etapa 5: implementar a resposta
O plano de resposta a seguir pode ser apropriado para essa descoberta, mas também pode afetar as operações. Avalie cuidadosamente as informações coletadas na investigação para determinar a melhor maneira de resolver as descobertas.
- Entre em contato a pessoa a quem o projeto pertence com dados exfiltrado.
- Considere revogar as permissões de
userEmailaté que a investigação seja concluída. - Para interromper a exfiltração, adicione políticas do IAM restritivas aos conjuntos de dados do BigQuery
afetados (
exfiltration.sourceseexfiltration.targets). - Para verificar se há conjuntos de dados de informações sensíveis, use a Proteção de Dados Sensíveis. Também é possível enviar dados do Proteção de Dados Sensíveis para o Security Command Center. Dependendo da quantidade de informações, os custos da proteção de dados sensíveis podem ser significativos. Siga as práticas recomendadas para manter os custos de proteção de dados sensíveis sob controle.
- Para limitar o acesso à API BigQuery, use o VPC Service Controls.
- Para identificar e corrigir papéis excessivamente permissivos, use IAM Recomendador.
Exemplo de JSON de descoberta
Confira a seguir um exemplo do JSON de descoberta.
{ "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": {} } } }
A seguir
- Saiba como usar descobertas de ameaças no Security Command Center.
- Consulte Índice de descobertas de ameaças.
- Aprenda a analisar uma descoberta no console do Google Cloud .
- Saiba mais sobre os serviços que geram descobertas de ameaças.