Coletar registros não especificados do Cloud Security Command Center

Compatível com:

Este documento explica como exportar e processar registros não especificados do Security Command Center no Google Security Operations usando o Cloud Storage. O analisador transforma as descobertas de segurança formatadas em JSON bruto em um modelo de dados unificado (UDM, na sigla em inglês). Ele processa especificamente as inconsistências na estrutura de dados de entrada, extrai campos relevantes, como detalhes de vulnerabilidade e informações do usuário, e enriquece a saída com rótulos e metadados para melhorar a análise e a correlação.

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-unspecified-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 não especificados 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-unspecified-logs-sink.
    • Destino do sink: selecione Cloud Storage e insira o URI do bucket. Por exemplo, gs://gcp-scc-unspecified-logs.
    • Filtro de registro:

      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Funspecified"
      resource.type="security_command_center_unspecified"
      
    • 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 não especificados 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 Security Command Center Unspecified logs.
  4. Selecione Google Cloud Storage como o Tipo de origem.
  5. Selecione Security Command Center Unspecified 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-unspecified-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
canonicalName read_only_udm.target.resource_ancestors.name Mapeado diretamente do campo de registro bruto canonicalName. Representa o ancestral do recurso de destino.
categoria read_only_udm.metadata.product_event_type Mapeado diretamente do campo de registro bruto category.
categoria read_only_udm.metadata.event_type Derivado do campo category. Se a categoria for OPEN_FIREWALL e determinadas condições forem atendidas, ela será mapeada para SCAN_VULN_HOST. Caso contrário, o padrão será GENERIC_EVENT.
categoria read_only_udm.security_result.category Mapeado do campo de registro bruto category. Se a categoria for OPEN_FIREWALL, ela será mapeada para POLICY_VIOLATION.
complies.ids read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo de registro bruto complies.ids. Representa o ID de compliance.
complies.standard read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo de registro bruto complies.standard. Representa o padrão de compliance.
complies.standard read_only_udm.about.labels.value Mapeado diretamente do campo de registro bruto complies.standard. Representa o padrão de compliance.
contacts.security.contacts.email read_only_udm.security_result.about.user.email_addresses Mapeado diretamente do campo de registro bruto contacts.security.contacts.email. Representa o endereço de e-mail do contato de segurança.
contacts.technical.contacts.email read_only_udm.security_result.about.user.email_addresses Mapeado diretamente do campo de registro bruto contacts.technical.contacts.email. Representa o endereço de e-mail do contato técnico.
createTime read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo de registro bruto createTime.
eventTime read_only_udm.metadata.event_timestamp Mapeado diretamente do campo de registro bruto eventTime após a conversão para um carimbo de data/hora.
externalUri read_only_udm.about.url Mapeado diretamente do campo de registro bruto externalUri.
mute read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo de registro bruto mute.
muteInitiator read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo de registro bruto muteInitiator.
muteUpdateTime read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo de registro bruto muteUpdateTime.
nome read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto name. Ele será usado como o ID do achado.
primária read_only_udm.target.resource_ancestors.name Mapeado diretamente do campo de registro bruto parent.
parentDisplayName read_only_udm.metadata.description Mapeado diretamente do campo de registro bruto parentDisplayName.
resourceName read_only_udm.target.resource.name Mapeado diretamente do campo de registro bruto resourceName.
gravidade, read_only_udm.security_result.severity Mapeado diretamente do campo de registro bruto severity.
sourceDisplayName read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto sourceDisplayName.
sourceProperties.AllowedIpRange read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto sourceProperties.AllowedIpRange.
sourceProperties.ExternallyAccessibleProtocolsAndPorts.IPProtocol read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto sourceProperties.ExternallyAccessibleProtocolsAndPorts.IPProtocol.
sourceProperties.ExternallyAccessibleProtocolsAndPorts.ports read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto sourceProperties.ExternallyAccessibleProtocolsAndPorts.ports.
sourceProperties.ReactivationCount read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto sourceProperties.ReactivationCount.
sourceProperties.ResourcePath read_only_udm.target.resource.attribute.labels.value Mapeado diretamente do campo de registro bruto sourceProperties.ResourcePath. Os valores são concatenados em uma única string.
sourceProperties.ScannerName read_only_udm.additional.fields.value.string_value Mapeado diretamente do campo de registro bruto sourceProperties.ScannerName.
sourceProperties.ScannerName read_only_udm.principal.labels.value Mapeado diretamente do campo de registro bruto sourceProperties.ScannerName.
estado read_only_udm.security_result.detection_fields.value Mapeado diretamente do campo de registro bruto state.
read_only_udm.metadata.log_type Fixado em GCP_SECURITYCENTER_UNSPECIFIED no código do analisador.
read_only_udm.metadata.product_log_id Extraídos do campo name, que representa o ID da descoberta.
read_only_udm.metadata.product_name Fixado em Security Command Center no código do analisador.
read_only_udm.metadata.vendor_name Fixado em Google no código do analisador.
read_only_udm.security_result.about.investigation.status Fixado em NEW no código do analisador.
read_only_udm.security_result.alert_state Fixado em NOT_ALERTING no código do analisador.
read_only_udm.security_result.url_back_to_product Construído no código do analisador usando o formato: https://console.cloud.google.com/security/command-center/findingsv2;name=organizations%2F{organization_id}%2Fsources%2F{source_id}%2Ffindings%2F{finding_id}.
read_only_udm.target.resource.product_object_id Extraídos do campo parent no registro bruto, representando o ID de origem.
read_only_udm.target.resource.resource_type Definido como CLUSTER no código do analisador.
read_only_udm.target.resource_ancestors.resource_type Fixado em CLOUD_PROJECT no código do analisador.
read_only_udm.target.resource_ancestors.name Extraídos do campo resourceName no registro bruto, representando o ID do projeto.
read_only_udm.additional.fields.key Várias instâncias são criadas com chaves codificadas em disco: compliances_id_0_0, compliances_standard_0, sourceProperties_ScannerName.
read_only_udm.about.labels.key Fixado em compliances_standard e compliances_id no código do analisador.
read_only_udm.principal.labels.key Fixado em sourceProperties_ScannerName no código do analisador.
read_only_udm.target.resource.attribute.labels.key Várias instâncias são criadas com chaves codificadas em disco: finding_id, source_id, sourceProperties_ResourcePath, sourceDisplayName, sourceProperties_ReactivationCount, sourceProperties_AllowedIpRange, sourceProperties_ExternallyAccessibleProtocolsAndPorts_IPProtocol, sourceProperties_ExternallyAccessibleProtocolsAndPorts_ports.
read_only_udm.security_result.about.user.attribute.roles.name Duas instâncias são criadas, uma com o valor Security e a outra com Technical, com base no campo contacts no registro bruto.
read_only_udm.security_result.detection_fields.key Várias instâncias são criadas com chaves codificadas: mute, mute_update_time, mute_initiator, createTime e state.

Alterações

2023-05-01

  • O analisador foi atualizado para processar mapeamentos adicionais de rótulos que não são mais usados (descontinuados).

2023-11-29

  • Os mapeamentos para principal/target.hostname e principal/target.asset.hostname foram ajustados para funcionar da mesma maneira.

2023-05-02

  • Agora, o analisador cria um endereço da Web (URL) formatado corretamente para o campo security_result.url_back_to_product no UDM.

2023-04-12

  • O analisador GCP_SECURITYCENTER_UNSPECIFIED foi atualizado como padrão.

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