Coletar registros de observação do Cloud Security Command Center

Compatível com:

Este documento explica como exportar e processar os registros de observação do Security Command Center no Google Security Operations usando o Cloud Storage. O analisador transforma dados JSON brutos em um modelo de dados unificado (UDM, na sigla em inglês). Ele normaliza a estrutura de dados, processando possíveis variações na entrada, extrai e mapeia os campos relevantes para o esquema do UDM, enriquecendo os dados com mais contexto e sinalizações para a análise posterior.

Antes de começar

  • Verifique se o Google Cloud Security Command Center está ativado e configurado no Google Cloud ambiente.
  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se você tem acesso privilegiado ao Security Command Center e ao Cloud Logging.

Criar um bucket do Cloud Storage

  1. Faça login no console do Google Cloud.
  2. Acesse a página Buckets do Cloud Storage.

    Acessar buckets

  3. Clique em Criar.

  4. Na página Criar um bucket, insira as informações do seu bucket. Após cada uma das etapas a seguir, clique em Continuar para prosseguir para a próxima:

    1. Na seção Começar, faça o seguinte:

      1. Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, gcp-scc-observation-logs.
      2. Para ativar o namespace hierárquico, clique na seta de expansão para abrir a seção Otimizar para cargas de trabalho orientadas a arquivos e com uso intensivo de dados e selecione Ativar namespace hierárquico neste bucket.

      3. Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.

      4. Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.

    2. Na seção Escolha onde armazenar seus dados, faça o seguinte:

      1. Selecione um tipo de local.
      2. Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.

      3. Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.

    3. Na seção Escolha uma classe de armazenamento para seus dados, selecione uma classe de armazenamento padrão para o bucket ou selecione Classe automática para gerenciamento automático da classe de armazenamento dos dados do bucket.

    4. Na seção Escolha como controlar o acesso a objetos, selecione não para aplicar a prevenção de acesso público e selecione um modelo de controle de acesso para os objetos do bucket.

    5. Na seção Escolha como proteger os dados do objeto, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
      2. Para escolher como os dados do objeto serão criptografados, clique na seta de expansão identificada como Criptografia de dados e selecione um método de criptografia de dados.
  5. Clique em Criar.

Configurar o registro do Security Command Center

  1. Faça login no console do Google Cloud.
  2. Acesse a página Security Command Center.

    Acesse Security Command Center

  3. Selecione a organização.

  4. Clique em Configurações.

  5. Clique na guia Exportações contínuas.

  6. Em Nome da exportação, clique em Exportação do Logging.

  7. Em Coletores, ative a opção Registrar descobertas no Logging.

  8. Em Projeto do Logging, insira ou pesquise o projeto em que você quer registrar as descobertas.

  9. Clique em Salvar.

Configurar Google Cloud exportação de registros de observação do Security Command Center

  1. Faça login no console do Google Cloud.
  2. Acesse Logging > Roteador de registros.
  3. Clique em Criar coletor.
  4. Informe os seguintes parâmetros de configuração:

    • Nome do coletor: insira um nome significativo. Por exemplo, scc-observation-logs-sink.
    • Destino do sink: selecione Cloud Storage e insira o URI do bucket. Por exemplo, gs://gcp-scc-observation-logs.
    • Filtro de registro:

      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Fobservations"
      resource.type="security_command_center_observation"
      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ffindings"
       resource.type="security_center_findings"
      
    • Definir opções de exportação: inclui todas as entradas de registro.

  5. Clique em Criar.

Configurar permissões do Cloud Storage

  1. Acesse IAM e administrador > IAM.
  2. Localize a conta de serviço do Cloud Logging.
  3. Conceda o papel roles/storage.admin no bucket.

Configure um feed no Google SecOps para ingerir Google Cloud registros de observação do Security Command Center.

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em Adicionar novo.
  3. No campo Nome do feed, insira um nome para o feed. Por exemplo, Google Cloud Registros de observação do Security Command Center.
  4. Selecione Google Cloud Storage como o Tipo de origem.
  5. Selecione Observação do Security Command Center como o Tipo de registro.
  6. Clique em Pegar conta de serviço ao lado do campo Conta de serviço do Chronicle.
  7. Clique em Próxima.
  8. Especifique valores para os seguintes parâmetros de entrada:

    • URI do bucket do Storage: URL do bucket do Cloud Storage. Por exemplo, gs://gcp-scc-observation-logs.
    • URI Is A: selecione Directory which includes subdirectories.
    • Opções de exclusão de origem: selecione a opção de exclusão de acordo com sua preferência.

    • Namespace do recurso: o namespace do recurso.

    • Rótulos de ingestão: o rótulo aplicado aos eventos desse feed.

  9. Clique em Próxima.

  10. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
access.callerIp read_only_udm.principal.ip Mapeamento direto.
access.callerIpGeo.regionCode read_only_udm.principal.location.country_or_region Mapeamento direto.
access.methodName read_only_udm.additional.fields.value.string_value Mapeamento direto. Também mapeado para read_only_udm.target.labels.value.
access.principalEmail read_only_udm.principal.user.email_addresses Mapeamento direto.
access.principalSubject read_only_udm.principal.user.attribute.labels.value Mapeamento direto.
assetDisplayName read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
assetId read_only_udm.target.asset.asset_id O valor após assets/ é extraído do campo assetId e mapeado como AssetID:<extracted_value>.
categoria read_only_udm.metadata.product_event_type Mapeamento direto.
contacts.security.contacts.email read_only_udm.security_result.about.user.email_addresses Mapeamento direto. O objeto about pode ser repetido várias vezes com base no número de contatos. O campo roles.name está definido como Security.
contacts.technical.contacts.email read_only_udm.security_result.about.user.email_addresses Mapeamento direto. O objeto about pode ser repetido várias vezes com base no número de contatos. O campo roles.name está definido como Technical para este campo.
createTime read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis. O campo key está definido como createTime para este campo.
eventTime read_only_udm.metadata.event_timestamp Convertido para o formato de carimbo de data/hora.
externalUri read_only_udm.about.url Mapeamento direto.
findingClass read_only_udm.security_result.category_details Mapeamento direto.
findingProviderId read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
mitreAttack.primaryTactic read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis. O campo key está definido como primary_tactic.
mitreAttack.primaryTechniques read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base no número de técnicas. O campo key está definido como primary_technique.
mute read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis. O campo key está definido como mute.
nome read_only_udm.metadata.product_log_id Mapeamento direto.
parentDisplayName read_only_udm.metadata.description Mapeamento direto.
resource.display_name read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
resource.name read_only_udm.target.resource.name, read_only_udm.principal.resource.name Mapeamento direto. Quando esse campo é usado para preencher o campo principal.resource.name, o analisador verifica se resource.project_name está vazio. Se não estiver vazio, o valor resource.project_name será usado.
resource.parent_display_name read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
resource.parent_name read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
resource.project_display_name read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
resource.project_name read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
resource.type read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
resourceName read_only_udm.target.resource.name Mapeamento direto.
securityMarks.name read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis. O campo key está definido como securityMarks_name.
gravidade, read_only_udm.security_result.severity, read_only_udm.security_result.priority_details Mapeamento direto.
sourceDisplayName read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
sourceProperties.contextUris.mitreUri.displayName read_only_udm.security_result.detection_fields.key Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis.
sourceProperties.contextUris.mitreUri.url read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis.
sourceProperties.detectionCategory.ruleName read_only_udm.security_result.rule_name Mapeamento direto.
sourceProperties.detectionCategory.subRuleName read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis. O campo key está definido como sourceProperties_detectionCategory_subRuleName.
sourceProperties.detectionPriority read_only_udm.security_result.priority_details Mapeamento direto.
sourceProperties.findingId read_only_udm.target.resource.attribute.labels.value Mapeamento direto.
estado read_only_udm.security_result.detection_fields.value Mapeamento direto. O objeto detection_fields pode ser repetido várias vezes com base nos campos disponíveis. O campo key está definido como state para este campo.
N/A is_alert Defina como "true" se o registro for analisado.
N/A is_significant Defina como "true" se o registro for analisado.
N/A read_only_udm.metadata.log_type Fixado em GCP_SECURITYCENTER_OBSERVATION.
N/A read_only_udm.metadata.product_name Fixado em Security Command Center.
N/A read_only_udm.metadata.vendor_name Fixado em Google.
N/A read_only_udm.principal.user.account_type Defina como CLOUD_ACCOUNT_TYPE se o e-mail principal estiver presente.
N/A read_only_udm.security_result.alert_state Fixado em ALERTING.
N/A read_only_udm.security_result.priority Defina como LOW_PRIORITY se a gravidade for LOW.
N/A read_only_udm.target.application Extraídos do campo resourceName.
N/A read_only_udm.target.resource.product_object_id Extraídos do campo pai.
N/A read_only_udm.target.resource.resource_type Definido como CLUSTER por padrão. Defina como VIRTUAL_MACHINE se a categoria for Impact: GPU Instance Created ou Impact: Many Instances Created. Defina como SETTING se a categoria for Persistence: Add Sensitive Role.
N/A read_only_udm.target.resource_ancestors.name Extraídos dos campos "parent" e "resourceName".
N/A read_only_udm.target.resource_ancestors.product_object_id Extraídos dos campos parent, resource.project_name e resourceName.
N/A read_only_udm.target.resource_ancestors.resource_type Defina como CLOUD_PROJECT se resource.type for google.compute.Project.
N/A read_only_udm.target.labels.key O valor será definido como access_methodName se access.methodName estiver presente.
N/A read_only_udm.target.labels.value O valor é definido a partir de access.methodName.
N/A read_only_udm.target.resource.attribute.labels.key A chave é definida como um dos seguintes valores com base no campo disponível: resource_parentDisplayName, resource_type, resource_parentName, resource_projectDisplayName, resource_displayName, finding_id, source_id, FindingProviderId, sourceDisplayName, asset_display_name.
N/A read_only_udm.target.resource.attribute.labels.value O valor é definido em um dos campos a seguir com base no campo disponível: parentDisplayName, resource.type, resource.parent_name, resource.project_display_name, resource.display_name, sourceProperties.findingId, sourceProperties.sourceId, findingProviderId, sourceDisplayName, assetDisplayName.

Alterações

2023-11-29

  • Correção de uma inconsistência na forma como os nomes de host eram processados no analisador.

2023-05-02

  • O campo security_result.url_back_to_product agora contém um endereço da Web formatado corretamente.

2023-04-12

  • O analisador GCP_SECURITYCENTER_OBSERVATION foi atualizado como padrão.

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.