Recolha registos não especificados do Security Command Center
Este documento explica como exportar e carregar registos não especificados do Security Command Center para o Google Security Operations através do Cloud Storage. O analisador transforma as conclusões de segurança formatadas em JSON não processado num modelo de dados unificado (UDM). Especificamente, processa inconsistências na estrutura dos dados de entrada, extrai campos relevantes, como detalhes de vulnerabilidades e informações do utilizador, e enriquece a saída com etiquetas e metadados para uma análise e correlação melhoradas.
Antes de começar
Certifique-se de que tem os 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.
Crie um contentor do Cloud Storage
- Inicie sessão na Google Cloud consola.
Aceda à página Contentores do Cloud Storage.
Clique em Criar.
Na página Criar um depósito, introduza as informações do depósito. Após cada um dos passos seguintes, clique em Continuar para avançar para o passo seguinte:
Na secção Começar, faça o seguinte:
- Introduza um nome exclusivo que cumpra os requisitos do nome do contentor; por exemplo, gcp-scc-unspecified-logs.
Para ativar o espaço de nomes hierárquico, clique na seta de expansão para expandir a secção Otimizar para cargas de trabalho orientadas para ficheiros e com grande volume de dados e, de seguida, selecione Ativar espaço de nomes hierárquico neste contentor.
Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.
Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.
Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:
- Selecione um Tipo de localização.
Use o menu de tipo de localização para selecionar uma Localização onde os dados de objetos no seu contentor vão ser armazenados permanentemente.
Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.
Na secção Escolha uma classe de armazenamento para os seus dados, selecione uma classe de armazenamento predefinida para o contentor ou selecione Autoclass para a gestão automática da classe de armazenamento dos dados do seu contentor.
Na secçã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 controlo de acesso para os objetos do seu contentor.
Na secção Escolha como proteger os dados de objetos, faça o seguinte:
- Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
- Para escolher como os dados de objetos vão ser encriptados, clique na seta de expansão com a etiqueta Encriptação de dados e selecione um Método de encriptação de dados.
Clique em Criar.
Configure o registo do Security Command Center
- Inicie sessão na Google Cloud consola.
Aceda à página do Security Command Center.
Selecione a sua organização.
Clique em Definições.
Clique no separador Exportações contínuas.
Em Nome da exportação, clique em Exportação de registos.
Em Sinks, ative a opção Registar resultados no registo.
Em Projeto de registo, introduza ou pesquise o projeto onde quer registar as descobertas.
Clique em Guardar.
Configure a exportação de registos não especificados do Security Command Center
- Inicie sessão na Google Cloud consola.
- Aceda a Registo > Router de registos.
- Clique em Criar destino.
Forneça os seguintes parâmetros de configuração:
- Nome do destino: introduza um nome significativo; por exemplo,
scc-unspecified-logs-sink
. - Destino da sincronização: selecione Armazenamento do Cloud Storage e introduza o URI do seu contentor; por exemplo,
gs://gcp-scc-unspecified-logs
. Filtro de registo:
logName="projects/<your-project-id>/logs/cloudsecurityscanner.googleapis.com%2Funspecified" resource.type="security_command_center_unspecified"
Definir opções de exportação: inclua todas as entradas de registo.
- Nome do destino: introduza um nome significativo; por exemplo,
Clique em Criar.
Configure autorizações para o Cloud Storage
- Aceda a IAM e administrador > IAM.
- Localize a conta de serviço do Cloud Logging.
- Conceda a função roles/storage.admin no contentor.
Configure feeds
Para configurar um feed, siga estes passos:
- Aceda a Definições do SIEM > Feeds.
- Clique em Adicionar novo feed.
- Na página seguinte, clique em Configurar um único feed.
- No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos não especificados do Security Command Center.
- Selecione Google Cloud Storage V2 como Tipo de origem.
- Selecione Security Command Center Unspecified como o Tipo de registo.
- Clique em Obter conta de serviço junto ao campo Conta de serviço do Chronicle.
- Clicar em Seguinte.
Especifique valores para os seguintes parâmetros de entrada:
- URI do contentor de armazenamento: URL do contentor do Cloud Storage; por exemplo,
gs://gcp-scc-unspecified-logs
. Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência.
Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias.
- URI do contentor de armazenamento: URL do contentor do Cloud Storage; por exemplo,
Clicar em Seguinte.
Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
canonicalName | read_only_udm.target.resource_ancestors.name | Mapeado diretamente a partir do campo de registo não processado canonicalName . Isto representa o elemento principal do recurso de destino. |
categoria | read_only_udm.metadata.product_event_type | Mapeado diretamente a partir do campo de registo não processado category . |
categoria | read_only_udm.metadata.event_type | Derivado do campo category . Se a categoria for OPEN_FIREWALL e forem cumpridas determinadas condições, é mapeada para SCAN_VULN_HOST . Caso contrário, o fuso horário predefinido é GENERIC_EVENT . |
categoria | read_only_udm.security_result.category | Mapeado a partir do campo de registo não processado category . Se a categoria for OPEN_FIREWALL , é mapeada para POLICY_VIOLATION . |
complies.ids | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo de registo não processado complies.ids . Representa o ID de conformidade. |
complies.standard | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo de registo não processado complies.standard . Representa a norma de conformidade. |
complies.standard | read_only_udm.about.labels.value | Mapeado diretamente a partir do campo de registo não processado complies.standard . Representa a norma de conformidade. |
contacts.security.contacts.email | read_only_udm.security_result.about.user.email_addresses | Mapeado diretamente a partir do campo de registo não processado contacts.security.contacts.email . Representa o endereço de email do contacto de segurança. |
contacts.technical.contacts.email | read_only_udm.security_result.about.user.email_addresses | Mapeado diretamente a partir do campo de registo não processado contacts.technical.contacts.email . Representa o endereço de email do contacto técnico. |
createTime | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo de registo não processado createTime . |
eventTime | read_only_udm.metadata.event_timestamp | Mapeado diretamente a partir do campo de registo não processado eventTime após a conversão numa data/hora. |
externalUri | read_only_udm.about.url | Mapeado diretamente a partir do campo de registo não processado externalUri . |
mudo/muda | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo de registo não processado mute . |
muteInitiator | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo de registo não processado muteInitiator . |
muteUpdateTime | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo de registo não processado muteUpdateTime . |
nome | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado name . Este será usado como o ID de localização. |
pai ou mãe | read_only_udm.target.resource_ancestors.name | Mapeado diretamente a partir do campo de registo não processado parent . |
parentDisplayName | read_only_udm.metadata.description | Mapeado diretamente a partir do campo de registo não processado parentDisplayName . |
resourceName | read_only_udm.target.resource.name | Mapeado diretamente a partir do campo de registo não processado resourceName . |
gravidade | read_only_udm.security_result.severity | Mapeado diretamente a partir do campo de registo não processado severity . |
sourceDisplayName | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceDisplayName . |
sourceProperties.AllowedIpRange | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.AllowedIpRange . |
sourceProperties.ExternallyAccessibleProtocolsAndPorts.IPProtocol | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.ExternallyAccessibleProtocolsAndPorts.IPProtocol . |
sourceProperties.ExternallyAccessibleProtocolsAndPorts.ports | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.ExternallyAccessibleProtocolsAndPorts.ports . |
sourceProperties.ReactivationCount | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.ReactivationCount . |
sourceProperties.ResourcePath | read_only_udm.target.resource.attribute.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.ResourcePath . Os valores são concatenados numa única string. |
sourceProperties.ScannerName | read_only_udm.additional.fields.value.string_value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.ScannerName . |
sourceProperties.ScannerName | read_only_udm.principal.labels.value | Mapeado diretamente a partir do campo de registo não processado sourceProperties.ScannerName . |
estado | read_only_udm.security_result.detection_fields.value | Mapeado diretamente a partir do campo de registo não processado state . |
read_only_udm.metadata.log_type | Codificado como GCP_SECURITYCENTER_UNSPECIFIED no código do analisador. |
|
read_only_udm.metadata.product_log_id | Extraído do campo name , que representa o ID da descoberta. |
|
read_only_udm.metadata.product_name | Codificado como Security Command Center no código do analisador. |
|
read_only_udm.metadata.vendor_name | Codificado como Google no código do analisador. |
|
read_only_udm.security_result.about.investigation.status | Codificado como NEW no código do analisador. |
|
read_only_udm.security_result.alert_state | Codificado como NOT_ALERTING no código do analisador. |
|
read_only_udm.security_result.url_back_to_product | Construído no código do analisador com 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ído do campo parent no registo não processado, que representa o ID da origem. |
|
read_only_udm.target.resource.resource_type | Definido como CLUSTER no código do analisador. |
|
read_only_udm.target.resource_ancestors.resource_type | Codificado como CLOUD_PROJECT no código do analisador. |
|
read_only_udm.target.resource_ancestors.name | Extraído do campo resourceName no registo não processado, que representa o ID do projeto. |
|
read_only_udm.additional.fields.key | São criadas várias instâncias com chaves codificadas: compliances_id_0_0 , compliances_standard_0 e sourceProperties_ScannerName . |
|
read_only_udm.about.labels.key | Codificado como compliances_standard e compliances_id no código do analisador. |
|
read_only_udm.principal.labels.key | Codificado como sourceProperties_ScannerName no código do analisador. |
|
read_only_udm.target.resource.attribute.labels.key | São criadas várias instâncias com chaves codificadas: finding_id , source_id , sourceProperties_ResourcePath , sourceDisplayName , sourceProperties_ReactivationCount , sourceProperties_AllowedIpRange , sourceProperties_ExternallyAccessibleProtocolsAndPorts_IPProtocol e sourceProperties_ExternallyAccessibleProtocolsAndPorts_ports . |
|
read_only_udm.security_result.about.user.attribute.roles.name | São criadas duas instâncias, uma com o valor Security e a outra com Technical , com base no campo contacts no registo não processado. |
|
read_only_udm.security_result.detection_fields.key | São criadas várias instâncias com chaves codificadas: mute , mute_update_time , mute_initiator , createTime e state . |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.