Logpoint

Este documento fornece orientações sobre como integrar o Logpoint ao Google SecOps.

Casos de uso

Realizar ações ativas: executar consultas para receber mais informações sobre as entidades.

Configurar a integração do Logpoint no Google Security Operations

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

Parâmetros de integração

Use os seguintes parâmetros para configurar a integração:

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Endereço IP String https://x.x.x.x Sim Endereço IP da instância do Logpoint.
Nome de usuário String N/A Sim Nome de usuário da conta do Logpoint.
Secret Senha N/A Sim Chave de API secreta da conta do Logpoint
Arquivo de certificado de CA String N/A Não Arquivo de certificado de CA codificado em Base64.
Verificar SSL Caixa de seleção Selecionado Sim Se estiver ativado, verifique se o certificado SSL da conexão com o servidor do Logpoint é válido.

Ações

Ping

Descrição

Teste a conectividade com o Logpoint usando os parâmetros fornecidos na página de configuração da integração na página do Google SecOps Content Hub.

Parâmetros

N/A

Corrida

A ação não é executada em entidades nem tem parâmetros de entrada obrigatórios.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor
is_success is_success=False
is_success is_success=True
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:
se for bem-sucedida: "Successfully connected to the Logpoint server with the provided connection parameters!"

A ação deve falhar e interromper a execução de um playbook:
se não for bem-sucedida: "Falha ao se conectar ao servidor do Logpoint! O erro é {0}".format(exception.stacktrace)

Geral

Executar consulta

Descrição

Execute a consulta de pesquisa no Logpoint.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Consulta String N/A Sim Especifique a consulta que precisa ser executada no Logpoint.
Período DDL

Últimas 24 horas

Valores possíveis:
Última hora

Últimas 12 horas

Últimas 24 horas

Últimos 30 dias

Últimos 365 dias

Personalizado

Sim Especifique o período da consulta. Se "Personalizado" estiver selecionado, você também precisará informar o horário de início e de término.
Horário de início String N/A Não

Especifique o horário de início da consulta. Formato:

YYYY-MM-DDThh:mm:ssZ ou carimbo de data/hora.

Horário de término String N/A Não

Especifique o horário de término da consulta.Formato:

YYYY-MM-DDThh:mm:ssZ ou carimbo de data/hora. Se nada for fornecido, a ação vai usar o horário atual como horário de término.

Repositórios CSV N/A Não Especifique uma lista separada por vírgulas de nomes dos repositórios. Se nada for fornecido, a ação vai pesquisar em todos os repositórios.
Número máximo de resultados a serem retornados Inteiro 100 Não Especifique quantos resultados devem ser retornados.

Corrida

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor
is_success is_success=False
is_success is_success=True
Resultado do JSON
{
    "query_type": "simple",
    "rows": [
        {
            "msg": "2021-01-10 10:27:50 Benchmarker; reporting speed; service=norm_front; actual_mps=1; doable_mps=19096;",
            "log_ts": 1610274470,
            "actual_mps": "1",
            "doable_mps": "19096",
            "_type_str": "_tz device_name msg source_name col_type object norm_id service collected_at label device_ip
    _enrich_policy action _fromV550 repo_name logpoint_name",
    "device_name": "localhost",
            "_offset": 48317,
            "logpoint_name": "Logpoint",
            "action": "reporting speed",
            "repo_name": "_logpoint",
            "source_name": "/opt/immune/var/log/benchmarker/norm_front.log",
            "col_ts": 1610274470,
            "_tz": "UTC",
            "norm_id": "Logpoint",
            "_identifier": "0",
            "collected_at": "Logpoint",
            "device_ip": "127.0.0.1",
            "service": "norm_front",
            "_fromV550": "t",
            "_enrich_policy": "None",
            "_type_num": "actual_mps doable_mps col_ts sig_id log_ts _offset _identifier",
            "_type_ip": "device_ip",
            "sig_id": "10505",
            "col_type": "filesystem",
            "object": "Benchmarker",
            "_labels": [
                "Logpoint",
                "Benchmarker"
            ]
        }
    ],
    "version": 6,
    "extracted_terms": [],
    "time_range": [
        1609496280,
        1610274480
    ],
    "orig_search_id": "9acac4a0-e530-4a19-a446-e17d4d9f8aae",
    "success": true,
    "final": true,
    "totalPages": 1,
    "estim_count": 185003,
    "complete": true,
    "status": {
        "Logpoint": {
            "default": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 3,
                "final": true
            },
            "_logpoint": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 185000,
                "final": true
            },
            "LogSource1": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 0,
                "final": true
            },
            "_LogpointAlerts": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 0,
                "final": true
            }
        }
    }
}
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:
se success == true para todas as solicitações (is_success = true): "Successfully executed query and retrieved results from Logpoint".

Se success == true para todas as solicitações, mas não houver resultados (is_success=false): "Nenhum dado foi encontrado para a consulta fornecida."

Se success == false para pelo menos uma solicitação (is_success = false): "A ação não conseguiu executar a consulta e recuperar os resultados do Logpoint. Motivo: {0}".format(message)

Mensagem assíncrona

"Aguardando a consulta terminar de ser processada no Logpoint."

A ação deve falhar e interromper a execução de um playbook:
se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Executar consulta'. Motivo: {0}''.format(error.Stacktrace)

Se houver tempo limite:

Erro ao executar a ação "Executar consulta". Motivo: a ação atingiu o tempo limite. Reduza o período ou diminua o número de resultados a serem retornados.

Se pelo menos um repositório não for encontrado:

"Erro ao executar a ação "Executar consulta". Motivo: os seguintes repositórios não foram encontrados no Logpoint: {0}. Verifique se todos os repositórios estão disponíveis.".format(lista separada por vírgulas de repositórios que não foram encontrados)

Se "Personalizado" estiver selecionado, mas o "Horário de início" não for informado:

"Erro ao executar a ação "Executar consulta". Motivo: é necessário informar o "Horário de início" se a opção "Personalizado" estiver selecionada para o período.

Geral
Tabela do painel de casos

Nome da tabela: "Resultados"

Todas as colunas da resposta serão usadas como colunas da tabela.

Geral

Executar consulta de entidade

Descrição

Executar consulta no Logpoint com base nas entidades. Tipos de entidade atualmente aceitos: usuário, IP, endereço de e-mail, URL, hash de arquivo, nome do host. Observação: o endereço de e-mail é uma entidade de usuário que corresponde ao formato do endereço de e-mail.

Como trabalhar com parâmetros de ação

Essa ação permite recuperar facilmente informações relacionadas a entidades. Por exemplo, é possível resolver o caso de uso em que você quer ver a quantidade de registros dos endpoints afetados pelo hash fornecido sem nenhuma criação de consulta complicada.

Para resolver esse problema no Logpoint, você precisa preparar a seguinte consulta: ("device_ip"="10.0.0.1" or "device_ip"="10.0.0.2") and ("hash"="7694f4a66316e53c8cdd9d9954bd611d" or "hash"="8264ee52f589f4c0191aa94f87aa1aeb") | chart count() by device_ip

Para criar a mesma consulta usando a ação "Executar consulta de entidade", preencha os parâmetros da ação da seguinte maneira:

Consulta | chart count() by device_ip
Chave de entidade de IP device_ip
Chave de entidade de hash de arquivo jogo da velha
Operador entre entidades E

Todos os outros campos podem ser deixados em branco.

Se o caso de uso for ver quantos endpoints foram afetados pelos hashes fornecidos, a configuração de "Executar consulta de entidade" terá a seguinte aparência.

Consulta | chart count() by device_ip
Chave de entidade de hash de arquivo jogo da velha

O "Operador entre entidades" nessa situação não terá impacto, porque ele só afeta a consulta quando várias "Chaves de entidade" são fornecidas.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Consulta String Sim Especifique a consulta que precisa ser executada. Consulte a documentação da ação para mais detalhes.
Período DDL

Últimas 24 horas

Valores possíveis:
Última hora

Últimas 12 horas

Últimas 24 horas

Últimos 30 dias

Últimos 365 dias

Personalizado

Sim Especifique o período da consulta. Se a opção "Personalizado" estiver selecionada, você também precisará informar o horário de início. O horário de término usará o horário atual por padrão.
Horário de início String Não

Especifique o horário de início da consulta. Formato:

YYYY-MM-DDThh:mm:ssZ ou carimbo de data/hora.

Horário de término String Não

Especifique o horário de término da consulta.Formato:

YYYY-MM-DDThh:mm:ssZ ou carimbo de data/hora. Se nada for fornecido, a ação vai usar o horário atual como horário de término.

Repositórios CSV Não Especifique uma lista separada por vírgulas de nomes dos repositórios. Se nada for fornecido, a ação vai pesquisar em todos os repositórios.
Chave de entidade de IP String Não Especifique qual chave deve ser usada com entidades de IP. Consulte a documentação da ação para mais detalhes.
Chave de entidade do nome do host String Não Especifique qual chave deve ser usada com as entidades de nome do host ao preparar o . Consulte a documentação da ação para mais detalhes.
Chave de entidade de hash de arquivo Não Especifique qual chave deve ser usada com as entidades de hash de arquivo. Consulte a documentação da ação para mais detalhes.
Chave de entidade do usuário Não Especifique qual chave deve ser usada com as entidades de usuário. Consulte a documentação da ação para mais detalhes.
Chave de entidade de URL Não Especifique qual chave deve ser usada com as entidades de URL. Consulte a documentação da ação para mais detalhes.
Chave de entidade do endereço de e-mail Não Especifique qual chave deve ser usada com as entidades de endereço de e-mail. Consulte a documentação da ação para mais detalhes.
Interromper se não houver entidades suficientes Caixa de seleção Selecionado Sim Se ativada, a ação não vai começar a ser executada, a menos que todos os tipos de entidade estejam disponíveis para as ".. Chaves de entidade" especificadas. Exemplo: se "Chave de entidade de IP" e "Chave de entidade de hash de arquivo" forem especificadas, mas não houver hashes de arquivo no escopo, a ação não vai executar a consulta se esse parâmetro estiver ativado.
Operador entre entidades DDL

OU

Valores possíveis:

OU

E

Sim Especifique qual deve ser o operador lógico usado entre diferentes tipos de entidade.
Número máximo de resultados a serem retornados Inteiro 100 Não Especifique quantos resultados devem ser retornados.

Corrida

Essa ação é executada nas seguintes entidades:

  • Endereço IP
  • Host
  • Usuário
  • Hash
  • URL

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor
is_success is_success=False
is_success is_success=True
Resultado do JSON
{
    "query_type": "simple",
    "rows": [
        {
            "msg": "2021-01-10 10:27:50 Benchmarker; reporting speed; service=norm_front; actual_mps=1; doable_mps=19096;",
            "log_ts": 1610274470,
            "actual_mps": "1",
            "doable_mps": "19096",
            "_type_str": "_tz device_name msg source_name col_type object norm_id service collected_at label device_ip
    _enrich_policy action _fromV550 repo_name logpoint_name",
    "device_name": "localhost",
            "_offset": 48317,
            "logpoint_name": "Logpoint",
            "action": "reporting speed",
            "repo_name": "_logpoint",
            "source_name": "/opt/immune/var/log/benchmarker/norm_front.log",
            "col_ts": 1610274470,
            "_tz": "UTC",
            "norm_id": "Logpoint",
            "_identifier": "0",
            "collected_at": "Logpoint",
            "device_ip": "127.0.0.1",
            "service": "norm_front",
            "_fromV550": "t",
            "_enrich_policy": "None",
            "_type_num": "actual_mps doable_mps col_ts sig_id log_ts _offset _identifier",
            "_type_ip": "device_ip",
            "sig_id": "10505",
            "col_type": "filesystem",
            "object": "Benchmarker",
            "_labels": [
                "Logpoint",
                "Benchmarker"
            ]
        }
    ],
    "version": 6,
    "extracted_terms": [],
    "time_range": [
        1609496280,
        1610274480
    ],
    "orig_search_id": "9acac4a0-e530-4a19-a446-e17d4d9f8aae",
    "success": true,
    "final": true,
    "totalPages": 1,
    "estim_count": 185003,
    "complete": true,
    "status": {
        "Logpoint": {
            "default": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 3,
                "final": true
            },
            "_logpoint": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 185000,
                "final": true
            },
            "LogSource1": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 0,
                "final": true
            },
            "_LogpointAlerts": {
                "@class": "com.logpoint.libcommon.merger.api.SimpleStatus",
                "estim_count": 0,
                "final": true
            }
        }
    }
}
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:
se success == true para todas as solicitações (is_success = true): "Successfully executed query and retrieved results from Logpoint".

Se success == true para todas as solicitações, mas não houver resultados (is_success=false): "Nenhum dado foi encontrado para a consulta fornecida."

Se success == false para pelo menos uma solicitação (is_success = false): "A ação não conseguiu executar a consulta e recuperar os resultados do Logpoint. Motivo: {0}".format(message)

Mensagem assíncrona

"Aguardando a consulta terminar de ser processada no Logpoint."

Se a opção "Interromper se não houver entidades suficientes" estiver ativada e não houver tipos de entidade suficientes disponíveis para as "Chaves de entidade" fornecidas (is_success=false): a ação não conseguiu criar a consulta porque não foram fornecidos tipos de entidade suficientes para as "Chaves de entidade" especificadas. Desative o parâmetro "Parar se não houver entidades suficientes" ou forneça pelo menos uma entidade para cada ".. Chave de entidade" especificada.

A ação deve falhar e interromper a execução de um playbook:
se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Executar consulta de entidade'. Motivo: {0}''.format(error.Stacktrace)

Se houver tempo limite:

Erro ao executar a ação "Executar consulta de entidade". Motivo: a ação atingiu o tempo limite. Reduza o período ou o número de resultados a serem retornados.

Se pelo menos um repositório não for encontrado:
"Erro ao executar a ação 'Executar consulta de entidade'. Motivo: os seguintes repositórios não foram encontrados no Logpoint: {0}. Verifique se todos os repositórios estão disponíveis.".format(lista separada por vírgulas de repositórios que não foram encontrados)

Se nenhuma chave "Entity" for especificada:

Erro ao executar a ação "Executar consulta de entidade". Motivo: especifique pelo menos um parâmetro ".. Chave de entidade".

Se "Personalizado" estiver selecionado, mas o "Horário de início" não for informado:

"Erro ao executar a ação "Executar consulta de entidade". Motivo: é necessário informar o "Horário de início" se a opção "Personalizado" estiver selecionada para o período.

Geral

Tabela do painel de casos

Nome da tabela: "Resultados"

Todas as colunas da resposta serão usadas como colunas da tabela.

Geral

Listar repositórios

Descrição

Liste os repositórios disponíveis no Logpoint.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Número máximo de repositórios a serem retornados Inteiro 100 Não Especifique quantos relatórios devem ser retornados.

Corrida

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor
is_success is_success=False
is_success is_success=True
Resultado do JSON
{
    "success": true,
    "allowed_repos": [
        {
            "repo": "default",
            "address": "127.0.0.1:5504/default"
        },
        {
            "repo": "_logpoint",
            "address": "127.0.0.1:5504/_logpoint"
        },
        {
            "repo": "_LogpointAlerts",
            "address": "127.0.0.1:5504/_LogpointAlerts"
        },
        {
            "repo": "LogSource1",
            "address": "127.0.0.1:5504/LogSource1"
        }
    ],
    "logpoint": [
        {
            "name": "Logpoint",
            "ip": "127.0.0.1"
        }
    ]
}
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:
se success == true (is_success = true): "Successfully retrieve available repos query from Logpoint".

A ação deve falhar e interromper a execução de um playbook:
se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Listar repositórios'. Motivo: {0}''.format(error.Stacktrace)

Geral
Tabela do painel de casos

Nome da tabela: "Repositórios disponíveis"

Nome: allowed_repos/repo

Endereço: allowed_repos/address

Geral

Atualizar status do incidente

Descrição

Atualize o status do incidente no Logpoint.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Código do incidente String N/A Sim Especifique o ID do incidente que você quer atualizar.
Ação DLL

Fechar

Valores possíveis:

Resolver

Fechar

Sim Especifique a ação para o incidente.

Corrida

Essa ação não é executada em entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor
is_success is_success=False
is_success is_success=True
Painel de casos
Tipo de resultado Valor / Descrição Tipo
Mensagem de saída*

A ação não pode falhar nem interromper a execução de um playbook:
se success== true (is_success = true): "Successfully {0} incident with ID {1} in Logpoint.".format(resolved/closed, incident_id)

if success== false(is_success = true): "Action wasn't able to {0} incident with ID {1} in Logpoint.".format(resolve/close, incident_id)

A ação deve falhar e interromper a execução de um playbook:

Se houver um erro fatal, como credenciais incorretas, falta de conexão com o servidor, entre outros: "Erro ao executar a ação 'Atualizar status do incidente'. Motivo: {0}''.format(error.Stacktrace)

Geral

Conector

Logpoint: conector de incidentes

Descrição

Extrair incidentes do Logpoint.

Configurar o conector de incidentes do Logpoint no Google SecOps

Para instruções detalhadas sobre como configurar um conector no Google SecOps, consulte Configurar o conector.

Parâmetros do conector

Use os seguintes parâmetros para configurar o conector:

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Nome do campo do produto String Nome do produto Sim Insira o nome do campo de origem para recuperar o nome do campo do produto.
Nome do campo do evento String tipo Sim Insira o nome do campo de origem para recuperar o nome do campo de evento.
Nome do campo do ambiente String "" Não

Descreve o nome do campo em que o nome do ambiente é armazenado.

Se o campo de ambiente não for encontrado, o ambiente será o padrão.

Padrão Regex do ambiente String .* Não

Um padrão de regex para ser executado no valor encontrado no campo "Nome do campo de ambiente".

O padrão é .* para capturar tudo e retornar o valor inalterado.

Usado para permitir que o usuário manipule o campo de ambiente usando a lógica de regex.

Se o padrão de regex for nulo ou vazio, ou se o valor do ambiente for nulo, o resultado final será o ambiente padrão.

Tempo limite de script (segundos) Inteiro 180 Sim Limite de tempo limite para o processo do Python que executa o script atual.
Endereço IP String https://x.x.x.x Sim Endereço IP da instância do Logpoint.
Nome de usuário String N/A Sim Nome de usuário da conta do Logpoint.
Secret Senha N/A Sim Secret da conta do Logpoint.
Máximo de horas para trás Inteiro 1 Não Quantidade de horas de onde buscar incidentes.
Menor risco de busca String N/A Não

Risco mais baixo dos incidentes a serem buscados. Valores possíveis:

Crítica, alta, média, baixa.

Número máximo de incidentes a serem buscados Inteiro 10 Não Quantos incidentes devem ser processados por iteração do conector.
Usar a lista de permissões como uma lista de bloqueio Caixa de seleção Desmarcado Sim Se ativada, a lista de permissões será usada como uma lista de bloqueio.
Verificar SSL Caixa de seleção Desmarcado Sim Se ativada, verifica se o certificado SSL da conexão com o servidor do Logpoint é válido.
Arquivo de certificado de CA String N/A Não Arquivo de certificado de CA codificado em Base64.
Endereço do servidor proxy String N/A Não O endereço do servidor proxy a ser usado.
Nome de usuário do proxy String N/A Não O nome de usuário do proxy para autenticação.
Senha do proxy Senha N/A Não A senha do proxy para autenticação.
Filtro de usuário CSV N/A Não Uma lista separada por vírgulas de nomes de usuário usados para filtrar incidentes. Somente os incidentes criados pelos usuários válidos são ingeridos. Se nada for fornecido, esse filtro não será aplicado, e o conector vai ingerir incidentes de todos os usuários.

Regras do conector

Suporte a proxy

O conector é compatível com proxy.

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