Recolha registos do sistema de deteção de intrusões do Cloud (Cloud IDS)

Compatível com:

Este documento explica como exportar e carregar registos do Cloud IDS para o Google Security Operations através do Cloud Storage. O analisador transforma os registos do Cloud IDS formatados em JSON não processados de Google Cloud num formato UDM estruturado. Extrai campos relevantes, mapeia-os para o esquema de UDM, categoriza eventos e enriquece os dados com contexto adicional, como a direção da rede e os tipos de recursos.

Antes de começar

Certifique-se de que tem os seguintes pré-requisitos:

  • Instância do Google SecOps.
  • O IDS na nuvem está configurado e ativo no seu ambiente Google Cloud .
  • Acesso privilegiado ao Google Cloud e autorizações adequadas para aceder ao Cloud IDS.

Crie um contentor do Cloud Storage

  1. Inicie sessão na Google Cloud consola.
  2. Aceda à página Contentores do Cloud Storage.

    Aceda aos contentores

  3. Clique em Criar.

  4. 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:

    1. Na secção Começar, faça o seguinte:

      1. Introduza um nome exclusivo que cumpra os requisitos do nome do contentor; por exemplo, gcp-ids-logs.
      2. 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.

      3. Para adicionar uma etiqueta de grupo, clique na seta de expansão para expandir a secção Etiquetas.

      4. Clique em Adicionar etiqueta e especifique uma chave e um valor para a etiqueta.

    2. Na secção Escolha onde quer armazenar os seus dados, faça o seguinte:

      1. Selecione um Tipo de localização.
      2. 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.

      3. Para configurar a replicação entre contentores, expanda a secção Configurar replicação entre contentores.

    3. 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.

    4. 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.

    5. Na secção Escolha como proteger os dados de objetos, faça o seguinte:

      1. Selecione qualquer uma das opções em Proteção de dados que quer definir para o seu contentor.
      2. 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.
  5. Clique em Criar.

Configure a exportação de registos do Cloud IDS

  1. Inicie sessão na Google Cloud consola.
  2. Aceda a Registo > Router de registos.
  3. Clique em Criar destino.
  4. Forneça os seguintes parâmetros de configuração:

    • Nome do destino: introduza um nome significativo; por exemplo, google-cloud-ids-logs-sink.
    • Destino da sincronização: selecione Cloud Storage e indique o Google Cloud URI do contentor de armazenamento; por exemplo, gs://gcp-ids-logs.
    • Filtro de registo:

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

Configure autorizações para o Cloud Storage

  1. Aceda a IAM e administrador > IAM.
  2. Localize a conta de serviço do Cloud Logging.
  3. Conceda a função roles/storage.admin no contentor.

Configure feeds

Para configurar um feed, siga estes passos:

  1. Aceda a Definições do SIEM > Feeds.
  2. Clique em Adicionar novo feed.
  3. Na página seguinte, clique em Configurar um único feed.
  4. No campo Nome do feed, introduza um nome para o feed; por exemplo, Registos de IDS da GCP.
  5. Selecione Google Cloud Storage V2 como Tipo de origem.
  6. Selecione GCP IDS como o Tipo de registo.
  7. Clique em Obter conta de serviço junto ao campo Conta de serviço do Chronicle.
  8. Clicar em Seguinte.
  9. Especifique valores para os seguintes parâmetros de entrada:
    • URI do contentor de armazenamento: URL do contentor do Cloud Storage; por exemplo, gs://gcp-ids-logs.
    • Opções de eliminação da origem: selecione a opção de eliminação de acordo com a sua preferência. Nota: se selecionar a opção Delete transferred files ou Delete transferred files and empty directories, certifique-se de que concedeu as autorizações adequadas à conta de serviço.
    • Idade máxima do ficheiro: inclui ficheiros modificados no último número de dias. A predefinição é 180 dias
  10. Clicar em Seguinte.
  11. 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
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 do servidor para o cliente.
jsonPayload.application target.application Mapeamento direto, apenas se a direção for do cliente para o 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 está 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, conversão para maiúsculas e, em seguida, 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 do servidor para o cliente.
jsonPayload.network target.resource.name Mapeamento direto, apenas 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, sendo o valor predefinido "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 do servidor para o cliente.
target.resource.resource_type Valor estático: VPC_NETWORK, adicionado se "jsonPayload.network" existir e a direção for do cliente para o servidor ou se logName contiver traffic.
observer.resource.resource_type Valor estático: CLOUD_PROJECT, adicionado se existir "resource.labels.resource_container" ou "resource.type".
observer.resource.attribute.cloud.environment Valor estático: GOOGLE_CLOUD_PLATFORM, adicionado se existir "resource.labels.resource_container" ou "resource.type".

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