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
Todos os privilégios sobre um banco de dados PostgreSQL (ou todas as funções ou procedimentos em um banco de dados) foram concedidos a um ou mais usuários de banco de dados.
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: Cloud SQL Over-Privileged Grant, conforme instruído em Como verificar descobertas. Na guia Resumo do painel de detalhes da descoberta, revise as informações nas seguintes seções:
- O que foi detectado, especialmente os seguintes campos:
- Nome de exibição do banco de dados: o nome do banco de dados na instância do PostgreSQL do Cloud SQL que foi afetada.
- Nome de usuário do banco de dados: o usuário do PostgreSQL que concedeu privilégios demais.
- Consulta do banco de dados: a consulta do PostgreSQL executada que concedeu os privilégios.
- Beneficiários do banco de dados: os beneficiários dos privilégios excessivos.
- Recurso afetado, especialmente os seguintes campos:
- Nome completo do recurso: o nome do recurso da instância do PostgreSQL do Cloud SQL que foi afetado.
- Nome completo do pai: o nome do recurso da instância do PostgreSQL do Cloud SQL.
- Nome completo do projeto: o projeto Google Cloud que contém a instância do PostgreSQL do Cloud SQL.
- Links relacionados, principalmente os seguintes campos:
- 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, especialmente os seguintes campos:
Para ver o JSON completo da descoberta, clique na guia JSON.
Etapa 2: analisar os privilégios do banco de dados
- Conecte-se ao banco de dados PostgreSQL.
- Liste e mostre privilégios de acesso
para o seguinte:
- Bancos de dados. Use o metacomando
\lou\liste verifique quais privilégios são atribuídos ao banco de dados listado em Nome de exibição do banco de dados (na Etapa 1). - Funções ou procedimentos. Use o metacomando
\dfe verifique quais privilégios são atribuídos a funções ou procedimentos no banco de dados listado em Nome de exibição do banco de dados (na Etapa 1).
- Bancos de dados. Use o metacomando
Etapa 3: verificar os registros
- No console Google Cloud , acesse a Análise de registros clicando no link em URI do Cloud Logging (da Etapa 1). A página Análise de registros inclui todos os registros relacionados à instância relevante do Cloud SQL.
- No Explorador de registros, verifique os registros
pgauditdo PostgreSQL, que registram consultas executadas no banco de dados, usando os seguintes filtros:protoPayload.request.database="var class="edit">database"
Etapa 4: pesquisar métodos de ataque e resposta
- Revise a entrada do framework MITRE ATT&CK para esse tipo de descoberta: Exfiltration Over Web Service (Exfiltração sobre o serviço da Web).
- Para determinar se outras etapas de correção são necessárias, combine seus 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 com o proprietário da instância com concessões privilegiadas em excesso.
- Considere revogar todas as permissões dos usuários listados em Beneficiários do banco de dados até que a investigação seja concluída.
- Para limitar o acesso ao banco de dados (no Nome de exibição do banco de dados da Etapa 1), revogue permissões desnecessárias dos beneficiários (em Beneficiários do banco de dados da Etapa 1).
Exemplo de JSON de descoberta
Confira a seguir um exemplo do JSON de descoberta.
{ "finding": { "name": "organizations/ORGANIZATION_ID/sources/SOURCE_ID/findings/FINDING_ID", "parent": "organizations/ORGANIZATION_ID/sources/SOURCE_ID", "resource_name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "state": "ACTIVE", "category": "Exfiltration: CloudSQL Over-Privileged Grant", "sourceProperties": { "sourceId": { "projectNumber": "PROJECT_NUMBER", "customerOrganizationNumber": "ORGANIZATION_ID" }, "detectionCategory": { "ruleName": "cloudsql_exfil", "subRuleName": "user_granted_all_permissions" }, "detectionPriority": "LOW", "affectedResources": [ { "gcpResourceName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER" }, { "gcpResourceName": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME" } ], "evidence": [{ "sourceLogId": { "projectId": "PROJECT_ID", "resourceContainer": "projects/PROJECT_ID", "timestamp": { "seconds": "0", "nanos": 0.0 }, "insertId": "INSERT_ID" } }], "findingId": "FINDING_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 CloudSQL Exfiltration findings", "url": "RELATED_FINDINGS_LINK" } } }, "eventTime": "2022-01-19T21:36:07.901Z", "createTime": "2022-01-19T21:36:08.695Z", "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"] }, "database": { "displayName": "DATABASE_NAME", "userName": "USER_NAME", "query": "QUERY", "grantees": [GRANTEE], }, "access": { "serviceName": "cloudsql.googleapis.com", "methodName": "cloudsql.instances.query" } }, "resource": { "name": "//cloudsql.googleapis.com/projects/PROJECT_ID/instances/INSTANCE_NAME", "projectName": "//cloudresourcemanager.googleapis.com/projects/PROJECT_NUMBER", "projectDisplayName": "PROJECT_ID", "parentName": "//cloudsql.googleapis.com/projects/PROJECT_NUMBER", "parentDisplayName": "PROJECT_ID", "type": "google.cloud.sql.Instance", "folders": [{ "resourceFolder": "//cloudresourcemanager.googleapis.com/folders/FOLDER_NUMBER", "resourceFolderDisplayName": "FOLDER_ID" }], "displayName": "INSTANCE_NAME" } }
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.