Integre o OpenSearch com o Google SecOps

Versão da integração: 1.0

Este documento explica como integrar o OpenSearch com o Google Security Operations.

Exemplos de utilização

A integração do OpenSearch aborda os seguintes exemplos de utilização de orquestração e investigação de segurança:

  • Procura de ameaças automatizada: procure periodicamente em todos os índices do OpenSearch indicadores de comprometimento (IoCs) ou padrões suspeitos através de consultas Lucene e DSL.

  • Ingestão de alertas centralizada: ingira documentos do OpenSearch como alertas acionáveis no Google SecOps, garantindo que os eventos de segurança do seu data lake são priorizados e investigados.

  • Obtenção de dados contextuais: enriqueça os registos de segurança existentes obtendo automaticamente registos relacionados ou dados do histórico do OpenSearch para fornecer aos analistas um contexto mais detalhado durante uma investigação.

  • Mapeamento de dados flexível: mapeie dinamicamente os níveis de gravidade e as etiquetas de ambiente dos documentos do OpenSearch para as normas do Google SecOps de modo a manter a consistência em diferentes origens de registos.

Antes de começar

Antes de configurar a integração na plataforma Google SecOps, verifique se tem o seguinte:

  • Ficheiro de certificado da AC: um ficheiro de autoridade de certificação válido para proteger a ligação.

  • Versão de integração mais recente: certifique-se de que está a usar a versão mais recente da integração do OpenSearch.

  • Certificado codificado em Base64: o conteúdo do ficheiro do certificado da AC tem de ser convertido numa string Base64 antes da configuração.

Para configurar a integração com um certificado da AC, conclua os seguintes passos:

  1. Abra a página de parâmetros de configuração da integração.
  2. Cole a string codificada em Base64 no campo Ficheiro de certificado da AC.
  3. Selecione a caixa de verificação Validar SSL.
  4. Clique em Testar para verificar se a integração está configurada com êxito.

Parâmetros de integração

A integração do OpenSearch requer os seguintes parâmetros:

Parâmetro Descrição
Server Address

Obrigatório.

O URL de ponto final da instância do OpenSearch, incluindo o protocolo e a porta (por exemplo, https://10.0.0.1:9200).

Username

Opcional.

O nome de utilizador usado para autenticar com a instância do OpenSearch.

Password

Opcional.

A palavra-passe associada ao nome de utilizador especificado.

API Token

Opcional.

O token da API usado para autenticação como alternativa a um nome de utilizador e a uma palavra-passe.

Authenticate

Opcional.

Se estiver selecionada, a integração autentica a ligação ao servidor OpenSearch através das credenciais fornecidas.

Verify SSL

Opcional.

Se esta opção estiver selecionada, a integração valida o certificado SSL quando se liga ao servidor OpenSearch.

CA Certificate File

Opcional.

O conteúdo do ficheiro de certificado da autoridade de certificação (AC) no formato PEM, usado para validar o certificado SSL do servidor.

Para ver instruções sobre como configurar uma integração no Google SecOps, consulte o artigo Configurar integrações.

Se necessário, pode fazer alterações numa fase posterior. Depois de configurar uma instância de integração, pode usá-la em manuais de procedimentos. Para mais informações sobre como configurar e suportar várias instâncias, consulte o artigo Suporte de várias instâncias.

Ações

Para mais informações sobre ações, consulte os artigos Responda a ações pendentes da sua mesa de trabalho e Realize uma ação manual.

Use a ação Pesquisa ES avançada para executar uma consulta de pesquisa pré-configurada no servidor OpenSearch e obter os resultados num formato de dicionário.

Esta ação não é executada em entidades do Google SecOps.

Dados de ações

A ação Pesquisa avançada de ES requer os seguintes parâmetros:

Parâmetro Descrição
Index

Opcional.

O padrão de pesquisa para o índice do OpenSearch (por exemplo, smp_playbooks-2019.06.13). Pode usar carateres universais para pesquisar vários índices (por exemplo, smp_playbooks-*).

O valor predefinido é *.

Query

Opcional.

A consulta de pesquisa a executar com a sintaxe do Lucene (por exemplo, level:error OR level:warning).

O valor predefinido é *.

Limit

Opcional.

O número máximo de documentos a devolver. Defina este valor como 0 para não ter limite.

O valor predefinido é 100.

Display Field

Opcional.

Uma lista separada por vírgulas de campos específicos a devolver.

O valor predefinido é * e devolve todos os campos.

Search Field

Opcional.

O campo específico a pesquisar quando Query não inclui um nome do campo de destino. Isto funciona como o destino de pesquisa predefinido para consultas de texto livre.

O valor predefinido é _all, que pesquisa em todos os campos indexados.

Timestamp Field

Opcional.

O nome do campo usado para a filtragem baseada no tempo.

Se Earliest Date e Oldest Date estiverem vazios, a ação não aplica filtros baseados no tempo.

O valor predefinido é @timestamp.

Oldest Date

Opcional.

A data de início da pesquisa. A ação devolve registos que ocorreram nesta data/hora ou após a mesma.

Pode fornecer uma indicação de tempo UTC exata (YYYY-MM-DDTHH:MM:SSZ) ou uma data/hora relativa (por exemplo, now-1d).

O valor predefinido é now-1d.

Earliest Date

Opcional.

A data de fim da pesquisa. A ação devolve registos que ocorreram a ou antes desta data/hora.

Pode fornecer uma indicação de tempo UTC exata (YYYY-MM-DDTHH:MM:SSZ) ou uma data/hora relativa (por exemplo, now).

O valor predefinido é now.

Resultados da ação

A ação Pesquisa avançada de ES fornece os seguintes resultados:

Tipo de saída da ação Disponibilidade
Fixação à parede da caixa Não disponível
Link da parede da caixa Não disponível
Mesa de parede para capas Não disponível
Tabela de enriquecimento Não disponível
Resultado JSON Não disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado do script

A tabela seguinte lista o valor da saída do resultado do script quando usa a ação Pesquisa ES avançada:

Nome do resultado do script Valor
results RESULTS

Use a ação DSL Search para fazer uma pesquisa abrangente em todos os índices do OpenSearch e obter resultados num formato de dicionário.

Esta ação não é executada em entidades do Google SecOps.

Dados de ações

A ação DSL Search requer os seguintes parâmetros:

Parâmetro Descrição
Index

Opcional.

O padrão de pesquisa para o índice do OpenSearch (por exemplo, smp_playbooks-2019.06.13). Pode usar carateres universais para pesquisar vários índices (por exemplo, smp_playbooks-*).

O valor predefinido é *.

Query

Opcional.

A consulta de pesquisa a executar com a sintaxe do Lucene (por exemplo, level:error OR level:warning).

O valor predefinido é *.

Limit

Opcional.

O número máximo de documentos a devolver. Defina este valor como 0 para não ter limite.

O valor predefinido é 100.

Resultados da ação

A ação DSL Search fornece os seguintes resultados:

Tipo de saída da ação Disponibilidade
Fixação à parede da caixa Não disponível
Link da parede da caixa Não disponível
Mesa de parede para capas Não disponível
Tabela de enriquecimento Não disponível
Resultado JSON Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo seguinte mostra o resultado JSON recebido quando usa a ação DSL Search:

[
    {
        "_score": 0.2876821,
        "_type": "person",
        "_id": "2",
        "_source": {
            "lastname": "Smith",
            "name": "John",
            "job_description": "Systems administrator"
        },
        "_index": "accounts"
    }, {
        "_score": 0.28582606,
        "_type": "person",
        "_id": "1",
        "_source":
        {
            "lastname": "Doe",
            "name": "John",
            "job_description": "Systems administrator and Linux specialist"
        },
        "_index": "accounts"
    }
]
Resultado do script

A tabela seguinte indica o valor da saída do resultado do script quando usa a ação DSL Search:

Nome do resultado do script Valor
results RESULTS

Tchim-tchim

Use a ação Ping para testar a conetividade com o OpenSearch.

Esta ação não é executada em entidades do Google SecOps.

Dados de ações

Nenhum.

Resultados da ação

A ação Ping fornece os seguintes resultados:

Tipo de saída da ação Disponibilidade
Fixação à parede da caixa Não disponível
Link da parede da caixa Não disponível
Mesa de parede para capas Não disponível
Tabela de enriquecimento Não disponível
Resultado JSON Não disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado do script

A tabela seguinte lista o valor do resultado do script quando usa a ação Ping:

Nome do resultado do script Valor
is_success true ou false

Use a ação Simple ES Search para fazer uma pesquisa básica em todos os campos indexados no OpenSearch e obter os resultados num formato de dicionário.

Esta ação não é executada em entidades do Google SecOps.

Dados de ações

A ação Simple ES Search requer os seguintes parâmetros:

Parâmetro Descrição
Index

Opcional.

O padrão de pesquisa para o índice do OpenSearch (por exemplo, smp_playbooks-2019.06.13). Pode usar carateres universais para pesquisar vários índices (por exemplo, smp_playbooks-*).

O valor predefinido é *.

Query

Opcional.

A consulta de pesquisa a executar com a sintaxe do Lucene (por exemplo, level:error OR level:warning).

O valor predefinido é *.

Limit

Opcional.

O número máximo de documentos a devolver. Defina este valor como 0 para não ter limite.

O valor predefinido é 100.

Resultados da ação

A ação Simple ES Search fornece os seguintes resultados:

Tipo de saída da ação Disponibilidade
Fixação à parede da caixa Não disponível
Link da parede da caixa Não disponível
Mesa de parede para capas Não disponível
Tabela de enriquecimento Não disponível
Resultado JSON Disponível
Mensagens de saída Disponível
Resultado do script Disponível
Resultado JSON

O exemplo seguinte mostra o resultado JSON recebido quando usa a ação Simple ES Search:

[{
    "_score": 0.2876821,
    "_type": "person",
    "_id": "2",
    "_source":
        {
          "lastname": "Smith",
          "name": "John",
          "job_description": "Systems administrator"
         },
     "_index": "accounts"
 },
 {
     "_score": 0.28582606,
     "_type": "person",
     "_id": "1",
     "_source":
       {
         "lastname": "Doe",
         "name": "John",
         "job_description": "Systems administrator and Linux specialist"
       },
    "_index": "accounts"
  }
 ]
Resultado do script

A tabela seguinte lista o valor da saída do resultado do script quando usa a ação Simple ES Search:

Nome do resultado do script Valor
results RESULTS

Conetores

Para mais informações sobre como configurar conetores no Google SecOps, consulte o artigo Carregue os seus dados (conetores).

Conetor OpenSearch

Use o conetor do OpenSearch para pesquisar índices do OpenSearch especificados com uma consulta Lucene fornecida e carregar documentos como alertas no Google SecOps.

Entradas do conetor

O conector do OpenSearch requer os seguintes parâmetros:

Parâmetro Descrição
Product Field Name

Obrigatório.

O nome do campo onde o nome do produto está armazenado.

O nome do produto afeta principalmente o mapeamento. Para simplificar e melhorar o processo de mapeamento do conector, o valor predefinido é resolvido para um valor alternativo referenciado a partir do código. Qualquer entrada inválida para este parâmetro é resolvida para um valor alternativo por predefinição.

O valor predefinido é Product Name.

Event Field Name

Obrigatório.

O nome do campo que determina o nome do evento (subtipo).

O valor predefinido é name.

Script Timeout (Seconds)

Obrigatório.

O limite de tempo limite, em segundos, para o processo Python que executa o script atual.

O valor predefinido é 180.

Server Address

Obrigatório.

O URL de ponto final da instância do OpenSearch, incluindo o protocolo e a porta (por exemplo, https://10.0.0.1:9200).

Username

Opcional.

O nome de utilizador usado para autenticar com a instância do OpenSearch.

Password

Opcional.

A palavra-passe associada ao nome de utilizador especificado.

Authenticate

Opcional.

Se estiver selecionada, a integração autentica a ligação ao servidor OpenSearch através das credenciais fornecidas.

API Token

Opcional.

O token da API usado para autenticação como alternativa a um nome de utilizador e a uma palavra-passe.

Verify SSL

Opcional.

Se estiver selecionada, a integração valida o certificado SSL quando se liga ao servidor OpenSearch.

Alert Name Field

Obrigatório.

O nome do campo que contém o nome do alerta (por exemplo, _source_alert_info_alert).

Timestamp Field

Obrigatório.

O nome do campo que contém a data/hora (por exemplo, _source_@timestamp).

Environment Field Name

Opcional.

O nome do campo onde o nome do ambiente está armazenado.

Se o campo de ambiente estiver em falta, o conector usa o valor predefinido.

O valor predefinido é "".

Indexes

Opcional.

O padrão de índice a pesquisar. Use * para pesquisar em todos os índices.

Query

Opcional.

A consulta de pesquisa a executar com a sintaxe do Lucene.

Alerts Count Limit

Obrigatório.

O número máximo de alertas a obter num único ciclo.

O valor predefinido é 20.

Max Days Backwards

Obrigatório.

O número de dias anteriores ao momento atual para obter alertas.

Este parâmetro pode aplicar-se à iteração inicial do conector depois de ativar o conector pela primeira vez ou ao valor alternativo para uma data/hora do conector expirada.

O valor predefinido é 1.

Severity Field Name

Opcional.

O nome do campo usado para extrair o valor da gravidade do alerta.

Se o campo contiver valores numéricos (inteiros ou números de vírgula flutuante), o conector mapeia-os automaticamente para os níveis de gravidade do Google SecOps (por exemplo, 100 é Critical). Se o campo contiver valores de string, tem de definir as regras de mapeamento no ficheiro severity_map_config.json.

Proxy Server Address

Opcional.

O endereço do servidor proxy a usar.

Proxy Username

Opcional.

O nome de utilizador usado para autenticar com o servidor proxy.

Proxy Password

Opcional.

A palavra-passe usada para a autenticação no servidor proxy.

Environment Regex Pattern

Opcional.

Um padrão de expressão regular a executar no valor encontrado no campo Environment Field Name. Este parâmetro permite-lhe manipular o campo de ambiente através da lógica de expressão regular.

Use o valor predefinido .* para obter o valor bruto Environment Field Name necessário.

Se o padrão de expressão regular for nulo ou estiver vazio, ou o valor do ambiente for nulo, o resultado do ambiente final é o ambiente predefinido.

Conetor DSL do OpenSearch

Use o conetor OpenSearch DSL para carregar documentos como alertas para o Google SecOps fazendo chamadas à API REST com consultas de linguagem específica do domínio (DSL).

Entradas do conetor

O conector DSL do OpenSearch requer os seguintes parâmetros:

Parâmetro Descrição
Product Field Name

Obrigatório.

O nome do campo onde o nome do produto está armazenado.

O nome do produto afeta principalmente o mapeamento. Para simplificar e melhorar o processo de mapeamento do conector, o valor predefinido é resolvido para um valor alternativo referenciado a partir do código. Qualquer entrada inválida para este parâmetro é resolvida para um valor alternativo por predefinição.

O valor predefinido é Product Name.

O valor predefinido é device_product.

Event Field Name

Obrigatório.

O nome do campo que determina o nome do evento (subtipo).

O valor predefinido é name.

Script Timeout (Seconds)

Obrigatório.

O limite de tempo limite, em segundos, para o processo Python que executa o script atual.

O valor predefinido é 60.

Server Address

Obrigatório.

O URL do ponto final da instância do OpenSearch, incluindo o protocolo (por exemplo, https://10.0.0.1).

Port

Obrigatório.

A porta usada para estabelecer ligação ao servidor da API OpenSearch.

Query

Obrigatório.

A consulta DSL usada para a pesquisa no formato JSON.

Para melhorar a estabilidade do conector, recomendamos que inclua uma chave de data/hora de ordenação em ordem ascendente na sua consulta.

Index

Obrigatório.

O índice usado para a pesquisa. Use _all para pesquisar em todos os índices.

Timestamp Field

Obrigatório.

O nome do campo que contém a data/hora (por exemplo, _source_@timestamp).

Alert Field Name

Obrigatório.

O nome do campo que contém o nome do alerta (por exemplo, _source_info_alertname).

Description Field

Opcional.

O nome do campo que contém a descrição do alerta (por exemplo, _source_alert_info_description).

Severity

Obrigatório.

O nível de gravidade estático a atribuir a todos os alertas carregados. Este parâmetro é usado se Alert Severity e Severity Field Name estiverem vazios.

O valor predefinido é Medium.

Alert Severity

Opcional.

A gravidade a atribuir aos alertas. Este parâmetro tem prioridade sobre Severity Field Name.

Se quiser usar o mapeamento dinâmico com o elemento Severity Field Name, deixe este campo vazio.

Severity Field Name

Opcional.

O nome do campo usado para extrair o valor da gravidade do alerta.

Se o campo contiver valores numéricos (inteiros ou números de vírgula flutuante), o conector mapeia-os automaticamente para os níveis de gravidade do Google SecOps (por exemplo, 100 é Critical). Se o campo contiver valores de string, tem de definir as regras de mapeamento no ficheiro severity_map_config.json.

Alerts Count Limit

Opcional.

O número máximo de alertas a obter num único ciclo.

O valor predefinido é 100.

Authenticate

Opcional.

Se estiver selecionada, o conetor autentica a ligação através das credenciais fornecidas.

Username

Opcional.

O nome de utilizador usado para autenticar com a instância do OpenSearch.

Password

Opcional.

A palavra-passe usada para autenticar com a instância do OpenSearch.

Use SSL

Opcional.

Se estiver selecionada, o conector ativa uma ligação SSL/TLS ao servidor.

Proxy Server Address

Opcional.

O endereço do servidor proxy a usar para a ligação.

Proxy Username

Opcional.

O nome de utilizador usado para autenticar com o servidor proxy.

Proxy Password

Opcional.

A palavra-passe usada para a autenticação no servidor proxy.

Environment Field Name

Opcional.

O nome do campo onde o nome do ambiente está armazenado.

Se o campo de ambiente estiver em falta, o conector usa o valor predefinido.

O valor predefinido é "".

Environment Regex Pattern

Opcional.

Um padrão de expressão regular a executar no valor encontrado no campo Environment Field Name. Este parâmetro permite-lhe manipular o campo de ambiente através da lógica de expressão regular.

Use o valor predefinido .* para obter o valor bruto Environment Field Name necessário.

Se o padrão de expressão regular for nulo ou estiver vazio, ou o valor do ambiente for nulo, o resultado do ambiente final é o ambiente predefinido.

O valor predefinido é .*.

Apoio técnico de notação

O conetor suporta três notações diferentes para o mapeamento de campos. Por exemplo, para mapear event.type, pode fornecer _source_event_type, event_type ou event.type.

Isto aplica-se aos seguintes parâmetros:

  • Product Field Name
  • Event Field Name
  • Severity Field Name
  • Environment Field Name
  • Timestamp Field
  • Alert Field Name
  • Description Field (Apenas conetor DSL)

Como mapear a gravidade no conector

Se o Severity Field Name contiver valores numéricos (inteiros ou flutuantes), o conetor mapeia-os da seguinte forma:

  • Crítico: 100
  • Elevada: 80 ≤ x < 100
  • Médio: 60 ≤ x < 80
  • Baixa: 40 ≤ x < 60
  • Informacional: x < 40

Para valores de string, tem de atualizar o ficheiro severity_map_config.json na pasta de scripts do conetor.

Exemplo de configuração

Para mapear um campo event.severity que contenha "Malicioso", "Desconhecido" ou "Benigno":

  1. Introduza event.severity no parâmetro Nome do campo de gravidade.
  2. Atualize severity_map_config.json:
{
    "event.severity": {
        "Malicious": 100,
        "Unknown": 60,
        "Benign": -1
    },
    "Default": 50
}

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