Coletar registros de erros do Security Command Center
Este documento explica como exportar e ingerir registros de erros do Security Command Center no Google Security Operations usando o Cloud Storage. O analisador transforma registros brutos formatados em JSON em um modelo de dados unificado (UDM). Ele extrai campos relevantes do registro bruto, realiza limpeza e normalização de dados e estrutura a saída de acordo com o esquema da UDM para uma análise de segurança consistente.
Antes de começar
Verifique se você atende aos seguintes pré-requisitos:
- O Security Command Center está ativado e configurado no seu ambiente Google Cloud .
- Instância do Google SecOps.
- Acesso privilegiado ao Security Command Center e ao Cloud Logging.
Criar um bucket do Cloud Storage
- Faça login no console doGoogle Cloud .
Acesse a página Buckets do Cloud Storage.
Clique em Criar.
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 etapa:
Na seção Começar, faça o seguinte:
- Insira um nome exclusivo que atenda aos requisitos de nome de bucket. Por exemplo, gcp-scc-error-logs.
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.
Para adicionar um rótulo de bucket, clique na seta de expansão para abrir a seção Rótulos.
Clique em Adicionar rótulo e especifique uma chave e um valor para o rótulo.
Na seção Escolha onde armazenar seus dados, faça o seguinte:
- Selecione um tipo de local.
Use o menu do tipo de local para selecionar um Local em que os dados de objetos no bucket serão armazenados permanentemente.
Para configurar a replicação entre buckets, abra a seção Configurar a replicação entre buckets.
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.
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.
Na seção Escolha como proteger os dados do objeto, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que você quer definir para o bucket.
- 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.
Clique em Criar.
Configurar o registro em registros do Security Command Center
- Faça login no console doGoogle Cloud .
Acesse a página Security Command Center.
Selecione a organização.
Clique em Configurações.
Clique na guia Exportações contínuas.
Em Nome da exportação, clique em Exportação do Logging.
Em Coletores, ative a opção Registrar descobertas no Logging.
Em Projeto do Logging, insira ou pesquise o projeto em que você quer registrar as descobertas.
Clique em Salvar.
Configurar a exportação de registros de erros do Security Command Center
- Faça login no console doGoogle Cloud .
- Acesse Logging > Roteador de registros.
- Clique em Criar coletor.
Forneça os seguintes parâmetros de configuração:
- Nome do coletor: insira um nome significativo, por exemplo,
scc-error-logs-sink
. - Destino do gravador: selecione Cloud Storage e insira o URI do bucket. Por exemplo,
gs://gcp-scc-error-logs
. Filtro de registros:
logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Ferror_logs" resource.type="security_command_center_error"
Definir opções de exportação: inclua todas as entradas de registro.
- Nome do coletor: insira um nome significativo, por exemplo,
Clique em Criar.
Configurar permissões para o Cloud Storage
- Acesse IAM e administrador > IAM.
- Localize a conta de serviço do Cloud Logging.
- Conceda o papel roles/storage.admin no bucket.
Configurar feeds
Há dois pontos de entrada diferentes para configurar feeds na plataforma do Google SecOps:
- Configurações do SIEM > Feeds
- Central de conteúdo > Pacotes de conteúdo
Configure feeds em "Configurações do SIEM" > "Feeds".
Para configurar um feed, siga estas etapas:
- Acesse Configurações do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na próxima página, clique em Configurar um único feed.
- No campo Nome do feed, insira um nome para o feed, por exemplo, Registros de erros do Security Command Center.
- Selecione Google Cloud Storage como o Tipo de origem.
- Selecione Erro do Security Command Center como o Tipo de registro.
- Clique em Receber conta de serviço ao lado do campo Conta de serviço do Chronicle.
- Clique em Próxima.
Especifique valores para os seguintes parâmetros de entrada:
- URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo,
gs://gcp-scc-error-logs
. - URI é um: selecione Diretório que inclui subdiretórios.
Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
- URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo,
Clique em Próxima.
Revise a nova configuração do feed na tela Finalizar e clique em Enviar.
Configurar feeds na Central de conteúdo
Especifique valores para os seguintes campos:
- URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo,
gs://gcp-scc-error-logs
. - URI é um: selecione Diretório que inclui subdiretórios.
- Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
Opções avançadas
- Nome do feed: um valor pré-preenchido que identifica o feed.
- Tipo de origem: método usado para coletar registros no Google SecOps.
- Namespace do recurso: namespace associado ao feed.
- Rótulos de ingestão: rótulos aplicados a todos os eventos deste feed.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
access.principalEmail | about.user.email_addresses | Valor extraído do campo access.principalEmail . |
categoria | metadata.product_event_type | Valor extraído do campo category ou findings.category , dependendo do formato do registro. |
contacts.security.contacts.email | security_result.about.user.email_addresses | Valor extraído do campo contacts.security.contacts.email . O papel é definido como Security . |
contacts.technical.contacts.email | security_result.about.user.email_addresses | Valor extraído do campo contacts.technical.contacts.email . O papel é definido como Technical . |
createTime | security_result.detection_fields.value | Valor extraído do campo createTime ou findings.createTime , dependendo do formato do registro. A chave está definida como createTime . |
description | security_result.description | Valor extraído do campo description ou findings.description , dependendo do formato do registro. |
eventTime | metadata.event_timestamp | Valor extraído do campo eventTime ou findings.eventTime , dependendo do formato do registro, e convertido em um carimbo de data/hora. |
externalUri | about.url | Valor extraído do campo externalUri ou findings.externalUri , dependendo do formato do registro. |
findingClass | security_result.category_details | Valor extraído do campo findingClass ou findings.findingClass , dependendo do formato do registro. |
findingProviderId | target.resource.attribute.labels.value | Valor extraído 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 extraído do campo mute ou findings.mute , dependendo do formato do registro. A chave está definida como mute . |
nextSteps | security_result.outcomes.value | Valor extraído do campo nextSteps ou findings.nextSteps , dependendo do formato do registro. A chave está definida como nextSteps . |
resourceName | target.resource.name | Valor extraído do campo resourceName , findings.resourceName , resource_name ou findings.resource_name , dependendo do formato do registro. |
securityMarks.name | security_result.detection_fields.value | Valor extraído 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 extraído do campo severity ou findings.severity , dependendo do formato do registro, e mapeado para o nível de gravidade correspondente da UDM. |
sourceDisplayName | target.resource.attribute.labels.value | Valor extraído 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 extraído 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 extraído do campo state ou findings.state , dependendo do formato do registro. A chave está definida como state . |
metadata.event_type | Definido como GENERIC_EVENT como um 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ído do campo name ou findings.name , capturando a última parte depois do último caractere / . |
|
target.resource.product_object_id | Extraído do campo parent ou findings.parent , capturando o valor após o último caractere / . |
|
target.resource.ancestors.name | Valor extraído do campo parent ou findings.parent , dependendo do formato do registro. |
|
target.resource_ancestors.name | Extraído 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 | Extraído 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 extraído do campo iamBindings.member . |
|
about.user.attribute.roles.name | Valor codificado Security . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.