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

Compatível com:

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

Antes de começar

Verifique se você atende os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • O Cloud IDS está configurado e ativo no seu ambiente do Google Cloud .
  • Acesso privilegiado ao Google Cloud e permissões adequadas para acessar o Cloud IDS.

Criar um bucket do Cloud Storage

  1. Faça login no console doGoogle 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 etapa:

    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 dos objetos 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 doGoogle Cloud .
  2. Acesse Geração de registros > 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 do coletor: selecione Cloud Storage e forneça o URI do bucket de armazenamento do Google Cloud . Por exemplo, gs://gcp-ids-logs.
    • Filtro de registro:

      logName="projects/<your-project-id>/logs/cloud-ids"
      
  5. Clique em Criar.

Configurar permissões para o 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 feeds

Para configurar um feed, siga estas etapas:

  1. Acesse Configurações > Gerenciamento de dados > Feeds. Se você estiver em uma plataforma somente SIEM, acesse Configurações > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, insira um nome para o feed, por exemplo, Registros do GCP IDS.
  5. Selecione Google Cloud Storage V2 como o Tipo de origem.
  6. Selecione GCP IDS como o Tipo de registro.
  7. Clique em Get Service Account ao lado do campo Chronicle Service Account.
  8. Clique em Próxima.
  9. Especifique valores para os seguintes parâmetros de entrada:
    • URI do bucket de armazenamento: URL do bucket do Cloud Storage. Por exemplo, gs://gcp-ids-logs.
    • Opções de exclusão da origem: selecione a opção de exclusão de acordo com sua preferência. Observação: se você selecionar a opção Delete transferred files ou Delete transferred files and empty directories, verifique se concedeu as permissões adequadas à conta de serviço.
    • Idade máxima do arquivo: inclui arquivos modificados nos últimos dias. O padrão é 180 dias.
  10. Clique em Próxima.
  11. Revise a configuração do novo feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento de UDM

Campo de registro Mapeamento de 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, somente 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 sobre a 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 é definida como "repeat_count".
jsonPayload.direction network.direction Mapeado com base no valor de "jsonPayload.direction":
- "client-to-server": OUTBOUND
- "server-to-client": INBOUND
jsonPayload.elapsed_time network.session_duration.seconds Mapeamento direto.
jsonPayload.ip_protocol network.ip_protocol Mapeamento direto, convertendo para maiúsculas e, em seguida, mapeando para o número do protocolo.
jsonPayload.name security_result.threat_name Mapeamento direto.
jsonPayload.network principal.resource.name Mapeamento direto, somente se a direção for de servidor para cliente.
jsonPayload.network target.resource.name Mapeamento direto, somente se a direção for de cliente para servidor ou se logName contiver traffic.
jsonPayload.repeat_count security_result.detection_fields.value Mapeado, se existir. A chave é 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 é definida como "start_time".
jsonPayload.start_time additional.fields.value.string_value Mapeado, se existir. A chave é definida como "start_time".
jsonPayload.threat_id security_result.threat_id Mapeamento direto.
jsonPayload.total_bytes about.labels.value Mapeado, se existir. A chave é definida como "total_bytes".
jsonPayload.total_bytes additional.fields.value.string_value Mapeado, se existir. A chave é definida como "total_bytes".
jsonPayload.total_packets about.labels.value Mapeado, se existir. A chave é definida como "total_packets".
jsonPayload.total_packets additional.fields.value.string_value Mapeado, se existir. A chave é definida como "total_packets".
jsonPayload.type security_result.detection_fields.value Mapeado, se existir. A chave é 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 o 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.

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