Coletar registros de erros do Cloud Security Command Center

Compatível com:

Este documento explica como exportar e processar registros de erros do Security Command Center nas operações de segurança do Google usando o Cloud Storage. O analisador transforma registros brutos formatados em JSON em um modelo de dados unificado (UDM, na sigla em inglês). Ele extrai campos relevantes do registro bruto, realiza a limpeza e a normalização de dados e estrutura a saída de acordo com o esquema do UDM para uma análise de segurança consistente.

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

      logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ferror_logs"
       resource.type="security_command_center_error"
      
    • 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 erros 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 erros do Security Command Center.
  4. Selecione Google Cloud Storage como o Tipo de origem.
  5. Selecione Erro 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-error-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.principalEmail about.user.email_addresses Valor retirado do campo access.principalEmail.
categoria metadata.product_event_type Valor retirado do campo category ou findings.category, dependendo do formato do registro.
contacts.security.contacts.email security_result.about.user.email_addresses Valor retirado do campo contacts.security.contacts.email. A função está definida como Security.
contacts.technical.contacts.email security_result.about.user.email_addresses Valor retirado do campo contacts.technical.contacts.email. A função está definida como Technical.
createTime security_result.detection_fields.value Valor retirado do campo createTime ou findings.createTime, dependendo do formato do registro. A chave está definida como createTime.
description security_result.description Valor retirado do campo description ou findings.description, dependendo do formato do registro.
eventTime metadata.event_timestamp Valor retirado do campo eventTime ou findings.eventTime, dependendo do formato do registro, e convertido em um carimbo de data/hora.
externalUri about.url Valor retirado do campo externalUri ou findings.externalUri, dependendo do formato do registro.
findingClass security_result.category_details Valor retirado do campo findingClass ou findings.findingClass, dependendo do formato do registro.
findingProviderId target.resource.attribute.labels.value Valor retirado do campo findingProviderId ou findings.findingProviderId, dependendo do formato do registro. A chave está definida como finding_provider_id.
mute security_result.detection_fields.value Valor retirado do campo mute ou findings.mute, dependendo do formato do registro. A chave está definida como mute.
nextSteps security_result.outcomes.value Valor retirado do campo nextSteps ou findings.nextSteps, dependendo do formato do registro. A chave está definida como nextSteps.
resourceName target.resource.name Valor retirado do campo resourceName, findings.resourceName, resource_name ou findings.resource_name, dependendo do formato do registro.
securityMarks.name security_result.detection_fields.value Valor retirado do campo securityMarks.name ou findings.securityMarks.name, dependendo do formato do registro. A chave está definida como securityMarks_name.
gravidade, security_result.severity Valor retirado do campo severity ou findings.severity, dependendo do formato do registro, e mapeado para o nível de gravidade do UDM correspondente.
sourceDisplayName target.resource.attribute.labels.value Valor retirado do campo sourceDisplayName ou findings.sourceDisplayName, dependendo do formato do registro. A chave está definida como source_display_name.
sourceProperties.ReactivationCount target.resource.attribute.labels.value Valor retirado do campo sourceProperties.ReactivationCount ou findings.sourceProperties.ReactivationCount, dependendo do formato do registro. A chave está definida como sourceProperties_ReactivationCount.
estado security_result.detection_fields.value Valor retirado do campo state ou findings.state, dependendo do formato do registro. A chave está definida como state.
is_alert É definido como true se a lógica do analisador determinar que o evento representa um alerta ativo.
is_significant Definido como true se a lógica do analisador determinar que o evento é significativo.
metadata.event_type Defina como GENERIC_EVENT como valor padrão.
metadata.log_type Valor codificado GCP_SECURITYCENTER_ERROR.
metadata.description Valor codificado Security Command Center.
metadata.product_name Valor codificado Security Command Center.
metadata.vendor_name Valor codificado Google.
target.resource.attribute.labels.key Valor codificado finding_id.
target.resource.attribute.labels.value Extraídos do campo name ou findings.name, capturando a última parte após o último caractere /.
target.resource.product_object_id Extraídos do campo parent ou findings.parent, capturando o valor após o último caractere /.
target.resource.ancestors.name Valor retirado do campo parent ou findings.parent, dependendo do formato do registro.
target.resource_ancestors.name Extraídos do campo resourceName ou findings.resourceName, capturando o valor após o prefixo //cloudresourcemanager.googleapis.com/projects/.
target.resource_ancestors.resource_type Valor codificado CLOUD_PROJECT.
target.resource.attribute.labels.key Valor codificado source_id.
target.resource.attribute.labels.value Extrai do campo parent ou findings.parent, capturando o valor após o segundo caractere /.
security_result.alert_state Mapeado com base no campo state ou findings.state. Se o estado for ACTIVE, o alert_state será definido como ALERTING. Caso contrário, será NOT_ALERTING.
about.user.email_addresses Valor retirado do campo iamBindings.member.
about.user.attribute.roles.name Valor codificado Security.

Alterações

2023-11-29

  • Correção de uma inconsistência entre a forma como principal/target.hostname e principal/target.asset.hostname eram processados.

2023-05-02

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

2023-04-12

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