Coletar registros do Sistema de detecção de intrusões do Cloud (Cloud IDS)

Compatível com:

Este documento explica como exportar e processar registros do Cloud IDS no Google Security Operations usando o Cloud Storage. O analisador transforma os registros do Cloud IDS formatados em JSON brutos de Google Cloud em um formato UDM estruturado. Ele extrai campos relevantes, os mapeia para o esquema do UDM, categoriza eventos e enriquece os dados com mais contexto, como direção de rede e tipos de recursos.

Antes de começar

  • Verifique se você tem uma instância do Google SecOps.
  • Verifique se o Cloud IDS está configurado e ativo no seu Google Cloud ambiente.
  • Verifique se você tem acesso privilegiado a Google Cloud e as permissões adequadas para acessar os IDS do Cloud.

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-ids-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 a exportação de registros do Cloud IDS

  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, google-cloud-ids-logs-sink.
    • Destino da sink: selecione Cloud Storage e forneça o URI do bucket do Google Cloud storage. Por exemplo, gs://gcp-ids-logs.
    • Filtro de registro:

      logName="projects/<your-project-id>/logs/cloud-ids"
      
  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.

Configurar um feed no Google SecOps para processar registros do Cloud IDS

  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, Logs de IDS do GCP.
  4. Selecione Google Cloud Storage como o Tipo de origem.
  5. Selecione GCP IDS 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-ids-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
insertId metadata.product_log_id Mapeamento direto.
jsonPayload.alert_severity security_result.severity Mapeamento direto.
jsonPayload.alert_time metadata.event_timestamp Mapeamento direto.
jsonPayload.application principal.application Mapeamento direto, apenas se a direção for de servidor para cliente.
jsonPayload.application target.application Mapeamento direto, somente se a direção for de cliente para servidor ou se logName contiver traffic.
jsonPayload.category security_result.category Mapeado com base no valor de 'jsonPayload.category':
- 'dos': NETWORK_DENIAL_OF_SERVICE
- 'info-leak': NETWORK_SUSPICIOUS
- 'protocol-anomaly': NETWORK_MALICIOUS
- 'backdoor', 'spyware', 'trojan': SOFTWARE_MALICIOUS
jsonPayload.category security_result.category_details Mapeamento direto.
jsonPayload.cves extensions.vulns.vulnerabilities.cve_id Mapeamento direto, iterando pela matriz.
jsonPayload.destination_ip_address target.ip Mapeamento direto.
jsonPayload.destination_port target.port Mapeamento direto.
jsonPayload.details extensions.vulns.vulnerabilities.description Mapeamento direto.
jsonPayload.details security_result.detection_fields.value Mapeado se "jsonPayload.repeat_count" existir. A chave está definida como "repeat_count".
jsonPayload.direction network.direction Mapeado com base no valor de 'jsonPayload.direction':
- 'client-to-server': SAÍDA
- 'server-to-client': ENTRADA
jsonPayload.elapsed_time network.session_duration.seconds Mapeamento direto.
jsonPayload.ip_protocol network.ip_protocol Mapeamento direto, conversão para maiúsculas e mapeamento para o número do protocolo.
jsonPayload.name security_result.threat_name Mapeamento direto.
jsonPayload.network principal.resource.name Mapeamento direto, apenas se a direção for de servidor para cliente.
jsonPayload.network target.resource.name Mapeamento direto, somente se a direção for do cliente para o servidor ou se logName contiver traffic.
jsonPayload.repeat_count security_result.detection_fields.value Mapeado, se existir. A chave está definida como "repeat_count".
jsonPayload.session_id network.session_id Mapeamento direto.
jsonPayload.source_ip_address principal.ip Mapeamento direto.
jsonPayload.source_port principal.port Mapeamento direto.
jsonPayload.start_time about.labels.value Mapeado, se existir. A chave está definida como "start_time".
jsonPayload.start_time additional.fields.value.string_value Mapeado, se existir. A chave está definida como "start_time".
jsonPayload.threat_id security_result.threat_id Mapeamento direto.
jsonPayload.total_bytes about.labels.value Mapeado, se existir. A chave está definida como "total_bytes".
jsonPayload.total_bytes additional.fields.value.string_value Mapeado, se existir. A chave está definida como "total_bytes".
jsonPayload.total_packets about.labels.value Mapeado, se existir. A chave está definida como "total_packets".
jsonPayload.total_packets additional.fields.value.string_value Mapeado, se existir. A chave está definida como "total_packets".
jsonPayload.type security_result.detection_fields.value Mapeado, se existir. A chave está definida como "type".
jsonPayload.uri_or_filename target.file.full_path Mapeamento direto.
logName security_result.category_details Mapeamento direto.
receiveTimestamp metadata.collected_timestamp Mapeamento direto.
resource.labels.id observer.resource.product_object_id Mapeamento direto.
resource.labels.location observer.location.name Mapeamento direto.
resource.labels.resource_container observer.resource.name Mapeamento direto.
resource.type observer.resource.resource_subtype Mapeamento direto.
metadata.event_type Determinado por um conjunto de regras condicionais com base na presença e nos valores de outros campos, com padrão "GENERIC_EVENT".
metadata.vendor_name Valor estático: Google Cloud Platform.
metadata.product_name Valor estático: GCP_IDS.
metadata.log_type Valor estático: GCP_IDS.
extensions.vulns.vulnerabilities.vendor Valor estático: GCP_IDS, adicionado para cada CVE em "jsonPayload.cves".
principal.resource.resource_type Valor estático: VPC_NETWORK, adicionado se "jsonPayload.network" existir e a direção for de servidor para cliente.
target.resource.resource_type Valor estático: VPC_NETWORK, adicionado se "jsonPayload.network" existir e a direção for de cliente para servidor ou se logName contiver traffic.
observer.resource.resource_type Valor estático: CLOUD_PROJECT, adicionado se "resource.labels.resource_container" ou "resource.type" existir.
observer.resource.attribute.cloud.environment Valor estático: GOOGLE_CLOUD_PLATFORM, adicionado se "resource.labels.resource_container" ou "resource.type" existir.
is_alert Verdadeiro se "jsonPayload.alert_severity" for "CRITICAL". Caso contrário, será falso.
is_significant Verdadeiro se "jsonPayload.alert_severity" for "CRITICAL". Caso contrário, será falso.

Alterações

2024-05-01

  • Adicionamos outros mapeamentos para noun.labels descontinuado.

2023-12-13

  • O analisador GCP_IDS foi promovido para o padrão.

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