Integrar o Splunk ao Google SecOps

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

Antes de começar

Antes de integrar o Splunk ao Google SecOps, determine o método de ingestão adequado para sua arquitetura de implantação e verifique se o ambiente atende a todas as dependências, caminhos de rede e permissões de acesso necessárias.

O Google SecOps aceita dois métodos de ingestão:

  • Ingestão baseada em push: o Splunk avalia os alertas localmente e envia eventos diretamente para o Google SecOps usando o complemento TA-Siemplify e as ações de acionamento de alertas. Não é necessário configurar o conector no Google SecOps.

  • Ingestão baseada em pull: os conectores do Google SecOps consultam periodicamente os endpoints da API REST do Splunk para recuperar alertas, resultados da pesquisa SPL ou eventos notáveis do Splunk ES.

Ingestão baseada em push

A ingestão baseada em push requer conectividade HTTPS de saída direta do Splunk para o Google SecOps, além de configurações de complementos específicas nos cabeçalhos de pesquisa do Splunk.

Verifique os seguintes requisitos antes de configurar a ingestão baseada em push:

  1. Faça o download e instale o pacote TA-Siemplify da Splunkbase em todos os cabeçalhos de pesquisa do Splunk de destino. Em ambientes distribuídos, implante o complemento no cluster de cabeçalho de pesquisa usando o Splunk Deployer ou o Deployment Server.

  2. Verifique se uma versão compatível do Splunk Common Information Model (Splunk_SA_CIM) está instalada no Search Head para oferecer suporte a alertas e geração de registros modulares.

  3. Verifique se os cabeçalhos de pesquisa do Splunk têm acesso de rede de saída por HTTPS (porta TCP 443) ao URL da instância do Google SecOps.

  4. Verifique se você tem uma conta no Google SecOps com permissões administrativas para gerar chaves de API (Configurações > Avançado > API). Verifique se a chave de API gerada tem um papel com permissões de criação de alertas e casos.

  5. Se você planeja ingerir eventos brutos de pesquisas de transformação (como pesquisas que usam stats, chart ou timechart), verifique se dispatch.buckets = 1 está configurado em savedsearches.conf nos cabeçalhos de pesquisa.

Ingestão baseada em extração

A ingestão baseada em pull, as ações do playbook e os jobs de sincronização exigem que o Google SecOps (ou um agente remoto) estabeleça conexões administrativas de entrada com o Splunk.

Verifique os seguintes requisitos antes de configurar conectores, ações ou jobs de pull:

  1. Conectividade de rede: verifique a linha de visão da rede do Google SecOps (ou do agente remoto) para a porta da API REST de gerenciamento do Splunk (padrão: 8089/TCP).

  2. Certificado de CA personalizado: se a instância do Splunk usar um certificado de CA particular ou interno, verifique se você está executando a versão 26.0 ou mais recente da integração do Splunk no Google SecOps.

  3. Autenticação: consiga credenciais de usuário válidas do Splunk (nome de usuário e senha) ou gere um token do portador do Splunk (para ativar esse método de autenticação na plataforma do Splunk, é necessária a autenticação de token).

  4. Recursos do papel do Splunk: verifique se a conta do Splunk que está sendo autenticada tem um papel com os seguintes recursos:

    • search
    • schedule_search
    • edit_tcp (obrigatório apenas se você usar a ação Enviar evento)
    • edit_notable_events (obrigatório apenas se você estiver usando a ação Atualizar eventos notáveis ou jobs de sincronização do Splunk ES)
  5. Permissões de repositório de dados e de pesquisa: verifique se a conta de autenticação tem acesso aos repositórios de dados relevantes do Splunk para os componentes escolhidos:

    • Conector de pull do Splunk: permissões de leitura para a tabela de consulta siemplify_alerts (preenchida quando TA-Siemplify é instalado e configurado no modo de pull).
    • Conector e ações de consulta do Splunk:
      • Permissões de pesquisa em índices de eventos de destino (não requer TA-Siemplify).
      • Permissões de gravação e entrada no índice de destino se você estiver usando a ação Enviar evento.
    • Splunk ES: conector e jobs de eventos notáveis: uma instalação ativa do Splunk Enterprise Security (ES), permissões de leitura para o índice notable e acesso à macro get_notable_index (não requer TA-Siemplify).

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 do servidor String {SCHEMA}://{IP}:{PORT} Sim Endereço do servidor do Splunk.
Nome de usuário String N/A Não O endereço de e-mail do usuário que será usado para se conectar ao Splunk.
Senha Senha N/A Não A senha do usuário correspondente.
Token da API Senha N/A Não Token da API Splunk. O token de API tem prioridade sobre outros métodos de autenticação quando esse campo não está vazio.
Verificar SSL Caixa de seleção Desmarcado Não Use essa caixa de seleção se a conexão do Splunk exigir uma verificação de SSL (desmarcada por padrão).
Arquivo de certificado de CA String N/A Não Arquivo de certificado de CA codificado em Base64.

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

Se necessário, você pode fazer mudanças depois. Depois de configurar uma instância de integração, é possível usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Como oferecer suporte a várias instâncias.

Ações

Para mais informações sobre ações, consulte Responder a ações pendentes na sua mesa de trabalho e Executar uma ação manual no seu caso.

Receber eventos de host

Receba eventos relacionados a hosts no Splunk.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Limite de eventos por host Inteiro 100 Sim Especifique quantos eventos serão retornados por host.
Resultados de String 24h atrás Sim Especifique o horário de início dos eventos.
Resultados para String agora Sim Especifique o horário de término dos eventos.
Campos de resultado CSV N/A Não Especifique uma lista separada por vírgulas de campos que precisam ser retornados.
Índice String N/A Não Especifique qual índice deve ser usado ao pesquisar eventos relacionados ao host. Se nada for fornecido, a ação não usará o índice.
Chave do organizador String host Não Especifique qual chave deve ser usada para receber informações sobre eventos do host. Padrão: host.

Corrida

Essa ação é executada na entidade Hostname.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
sucesso Verdadeiro/falso success:False
Resultado do JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
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-sucedido e os resultados estiverem disponíveis: "Successfully returned events for the following hosts in Splunk: \n {0}".format(entity.identifier)

Se for bem-sucedido e os resultados não estiverem disponíveis para alguns: "Nenhum evento foi encontrado para os seguintes hosts no Splunk:\n {0}".format(entity.identifier)

Se a operação for bem-sucedida e os resultados não estiverem disponíveis para todos: "Nenhum evento foi encontrado para os hosts fornecidos no Splunk"

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 'Receber eventos do host'. Motivo: {0}''.format(error.Stacktrace)

Se 400: "Erro ao executar a ação 'Receber eventos do host'. Motivo: {0}''.format(messages/text)

Geral
Tabela do painel de casos

Nome: eventos de {Entity.identifier}

Colunas: com base nos resultados.

Ping

Teste a conectividade com o Splunk 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

Essa 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 Exemplo
is_success Verdadeiro/falso is_success:False
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: "A conexão com o servidor do Splunk foi estabelecida usando os parâmetros fornecidos."

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 Splunk! O erro é {0}".format(exception.stacktrace)

Geral

Visualizador de CSV do Splunk

Parâmetros

Parâmetro Tipo Valor padrão É obrigatório Descrição
Resultados string N/A Sim Resultados brutos.

Corrida

Essa ação é executada em todas as entidades.

Resultados da ação

Resultado do script
Nome do resultado do script Opções de valor Exemplo
is_succeed Verdadeiro/falso is_succeed:False

SplunkQuery

Executar uma consulta no Splunk.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Modo de pesquisa DDL

Inteligente

Valores possíveis:

  • Detalhado
  • Inteligente
  • Rápido
Não Especifique o modo de execução da pesquisa.
Consulta String Sim Especifique a consulta que precisa ser executada. Exemplo: index="_internal"
Limite de contagem de resultados Inteiro 100 Não

Especifique quantos resultados serão retornados.
Observação: esse parâmetro anexa a palavra-chave "head" à consulta fornecida. O padrão é 100.

Resultados do String 24h atrás Não Especifique o horário de início da consulta. Padrão: -24h
Resultados para String agora Não Especifique o horário de término da consulta. Padrão: now.
Campos de resultado CSV Não

Especifique uma lista separada por vírgulas de campos que precisam ser retornados.
Observação: esse parâmetro anexa a palavra-chave "fields" à consulta fornecida.

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 Exemplo
is_succeed Verdadeiro/falso is_succeed:False
Resultado do JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
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 a operação for bem-sucedida e os resultados estiverem disponíveis: "Os resultados da consulta "{0}" foram retornados com sucesso no Splunk".format(query)

Se for bem-sucedido e os resultados não estiverem disponíveis: "Nenhum resultado foi encontrado para a consulta "{0}" no Splunk".format(query)

Mensagem assíncrona: "Waiting for query {0} to finish execution.".format(query name)

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 'SplunkQuery'. Motivo: {0}''.format(error.Stacktrace)

Se 400: "Erro ao executar a ação 'SplunkQuery'. Motivo: {0}''.format(messages/text)

Geral
Tabela do painel de casos

Nome: resultados da consulta do Splunk

Colunas: com base nos resultados.

Geral

Enviar evento

Envie o evento para o Splunk.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Índice String main Sim Especifique o índice em que o evento deve ser criado.
Evento String N/A Sim Especifique o evento bruto que precisa ser enviado.
Host String N/A Não Especifique o host relacionado ao evento.
Origem String N/A Não Especifique a origem do evento. Exemplo: www.
Sourcetype String N/A Não Especifique o tipo de origem do evento. Exemplo: web_event

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 Exemplo
sucesso Verdadeiro/falso success:False
Resultado do JSON
{
    "index": "default",
    "bytes": 70,
    "host": "dogo",
    "source": "www",
    "sourcetype": "web_event"
}
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-sucedido: "Successfully added a new event to index "{0}" in Splunk.".format(index)

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 'Enviar evento'. Motivo: {0}''.format(error.Stacktrace)

Se for 400: "Erro ao executar a ação 'Enviar evento'. Motivo: {0}''.format(messages/text)

Geral

Atualizar eventos importantes

Atualize eventos importantes no Splunk ES.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
IDs de eventos importantes CSV N/A Sim Especifique os IDs de eventos importantes. Exemplo: 1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7@@notable@@cb87390ae72763679d3f6f8f097ebe2b,1D234D5B-1531-2D2B-BB94-41C439BE12B7@@notable@@cb87390ae72763679d3f6f8f097ebe2b
Status DDL

Selecione uma opção.

Valores possíveis:

Selecione uma opção.

Não atribuído

Novo

Em andamento

Pendente

Resolvido

Fechado

Sim Especifique o novo status para eventos importantes.
Urgência DDL

Selecione uma opção.

Valores possíveis:

Selecione uma opção.

Crítico

Alta

Médio

Baixo

Informativa

Sim Especifique a nova urgência do evento notável.
Novo proprietário String N/A Sim Especifique o novo proprietário do evento importante.
Comentário String N/A Sim Especifique o comentário para o evento notável.

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 Exemplo
is_success Verdadeiro/falso is_success:False
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-sucedido e os dados estiverem disponíveis (is_success=true)

print "Successfully updated {0} notable events in Splunk.".format(count(notable_events))

Se houver falha na atualização (status_code=400, is_success=false):

print "A ação não conseguiu atualizar os eventos importantes. Reason:{0}".format(string_from_response)

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:

print "Error executing action "Update Notable Events". Motivo: {0}''.format(error.Stacktrace)

Geral

Executar consulta de entidade

Execute uma consulta de entidade no Splunk.

Como trabalhar com parâmetros de ação?

Essa ação permite recuperar rapidamente informações relacionadas a entidades. Por exemplo, é possível resolver o caso de uso em que você quer ver a quantidade de eventos dos endpoints afetados pelos hashes fornecidos sem nenhuma construção de consulta complicada. Para resolver esse problema no Splunk, você precisa preparar a seguinte consulta: index="main" | where (device_ip="10.0.0.1" or device_ip="10.12.12.12") and (hash="bad_hash_1" or hash="bad_hash_2") Para criar a mesma consulta usando a ação "Executar consulta de entidade", preencha os parâmetros de ação da seguinte maneira:

Consulta index="main"
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 ficar vazios.

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 index="main"
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
Modo de pesquisa DDL

Inteligente

    Valores possíveis:
  • Detalhado
  • Inteligente
  • Rápido
Não Especifique o modo de execução da pesquisa.
Consulta String Sim Especifique a consulta que precisa ser executada sem a cláusula "Where". Exemplo: index="_internal"
Limite de contagem de resultados Inteiro 100 Não Especifique quantos resultados serão retornados. Observação: esse parâmetro anexa a palavra-chave "head" à consulta fornecida. O padrão é 100.
Resultados do String 24h atrás Não Especifique o horário de início da consulta. Padrão: -24h
Resultados para String agora Não Especifique o horário de término da consulta. Padrão: now.
Campos de resultado CSV N/A Não

Especifique uma lista separada por vírgulas de campos que precisam ser retornados.
Observação: esse parâmetro anexa a palavra-chave "fields" à consulta fornecida.

Chave de entidade de IP String N/A 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/A 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 String N/A 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 da entidade do usuário String N/A 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 String N/A 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 String N/A 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 iniciar a execução, 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 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.

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 Exemplo
is_succeed Verdadeiro/falso is_succeed:False
Resultado do JSON
[{
    "app": "SA-AccessProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087674",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:58.404 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-AccessProtection;Access - Default Account Usage - Rule\", search_type=\"\", user=\"admin\", app=\"SA-AccessProtection\", savedsearch_name=\"Access - Default Account Usage - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=0, dispatch_time=1612179969, run_time=51348.242, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtQWNjZXNzUHJvdGVjdGlvbg__RMD509c859ea7b9951b8_at_1612179932_61.40533\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "0",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".404",
    "_time": "2021-02-02T04:01:58.404+02:00"
},
{
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087731",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "127.0.0.1 - admin [02/Feb/2021:04:01:58.172 +0200] \"POST /servicesNS/nobody/SA-AccessProtection/saved/searches/Access%20-%20Default%20Account%20Usage%20-%20Rule/notify?trigger.condition_state=1 HTTP/1.1\" 200 1985 - - - 3ms",
    "_serial": "1",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "splunkd_access",
    "_subsecond": ".172",
    "_time": "2021-02-02T04:01:58.172+02:00"
},
{
    "app": "SA-EndpointProtection",
    "_bkt": "_internal~425~1A082D7B-D5A1-4A2B-BB94-41C439BE3EB7",
    "_cd": "425:9087653",
    "_indextime": "1612231318",
    "_kv": "1",
    "_raw": "02-02-2021 04:01:57.804 +0200 INFO  SavedSplunker - savedsearch_id=\"nobody;SA-EndpointProtection;Endpoint - Should Timesync Host Not Syncing - Rule\", search_type=\"\", user=\"admin\", app=\"SA-EndpointProtection\", savedsearch_name=\"Endpoint - Should Timesync Host Not Syncing - Rule\", priority=default, status=success, digest_mode=1, scheduled_time=1612179932, window_time=300, dispatch_time=1612179970, run_time=51347.420, result_count=0, alert_actions=\"\", sid=\"rt_scheduler__admin_U0EtRW5kcG9pbnRQcm90ZWN0aW9u__RMD5ef3c08822811b7cd_at_1612179932_62.25751\", suppressed=1, thread_id=\"AlertNotifierWorker-0\", workload_pool=\"\"",
    "_serial": "2",
    "_si": [
        "splunk",
        "_internal"
    ],
    "_sourcetype": "scheduler",
    "_subsecond": ".804",
    "_time": "2021-02-02T04:01:57.804+02:00"
}]
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 a operação for bem-sucedida e os resultados estiverem disponíveis: "Os resultados da consulta "{0}" foram retornados com sucesso no Splunk".format(query)

Se for bem-sucedido e os resultados não estiverem disponíveis: "Nenhum resultado foi encontrado para a consulta "{0}" no Splunk".format(query)

Mensagem assíncrona: "Waiting for query {0} to finish execution.".format(query name)

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 for 400: "Erro ao executar a ação 'Executar consulta de entidade'. Motivo: {0}''.format(messages/text)

Geral
Tabela do painel de casos

Nome: resultados da consulta do Splunk

Colunas: com base nos resultados.

Geral

Conectores

Para saber como configurar conectores no Google SecOps, consulte Ingerir seus dados (conectores).

Conector de consulta do Splunk

O conector envia consultas que fazem parte da lista dinâmica (whitelist), recupera resultados e cria um caso com base nos resultados recuperados.

Exemplos de consultas do Splunk para visualizar os registros

  1. As consultas precisam ser inseridas como regras de lista dinâmica (whitelist).

  2. As consultas de pesquisa com vários filtros precisam usar espaço como delimitador entre os filtros de pesquisa, por exemplo, index=cim_modactions sourcetype=modular_alerts:risk.

  3. O uso de várias regras de lista dinâmica (whitelist), em vez de inserir vários filtros de pesquisa delimitados por espaço na mesma regra, resulta em uma pesquisa separada executada para cada regra adicionada.

    • index=cim_modactions
    • sourcetype=modular_alerts:send_data_to_siemplify
    • index=_internal sourcetype=splunkd
    • component=sendmodalert
    • action=send_data_to_siemplify
    • index=_internal source=/opt/splunk/var/log/splunk/send_data_to_siemplify_modalert.log

Parâmetros do conector

Para configurar o conector, use os seguintes parâmetros:

Parâmetros
Product Field Name Obrigatório

Insira o nome do campo de origem para recuperar o nome de Product Field.

O valor padrão é device_product.

Event Field Name Obrigatório

Insira o nome do campo de origem para recuperar o nome de Event Field.

O valor padrão é app.

API Root Obrigatório

Raiz da API da instância do Splunk.

O valor padrão é https://IP:8089.

Username Obrigatório

Nome de usuário da conta do Splunk.

Password Obrigatório

Senha da conta do Splunk.

API Token Opcional

Token da API do Splunk.

Se esse campo tiver algum valor, o token de API terá prioridade sobre outros métodos de autenticação.

Verify SSL Obrigatório

Se marcada, verifica se o certificado SSL para a conexão com o servidor do CrowdStrike é válido.

Desmarcada por padrão.

Environment Field Name Opcional

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

Rule Generator Field Obrigatório

O nome do campo usado para mapear o valor do gerador de regras.

Alert Name Field Name Obrigatório

Nome do alerta.

Events Count Limit Per Query Opcional

Quantidade máxima de eventos a serem buscados por consulta.

Max Day Backwards Opcional

Quantidade de dias de onde buscar eventos.

Aggregate Events Query Opcional

Se ativado, o conector vai combinar todos os eventos em um único alerta.

Essa configuração está desativada por padrão.

PythonProcessTimeout (Seconds) Obrigatório

Limite de tempo limite para o processo do Python que executa o script atual.

O valor padrão é de 60 segundos.

Proxy Server Address Opcional

Endereço do servidor proxy a ser usado.

Proxy Username Opcional

Nome de usuário do proxy para autenticação.

Proxy Password Opcional

Senha do proxy para autenticação.

Environment Regex Pattern Opcional

Um padrão de expressão regular a ser executado no valor encontrado no campo Environment Field Name.

O valor padrão .* captura tudo e retorna o valor inalterado.

O parâmetro permite manipular o campo de ambiente usando a lógica de expressão regular.

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

Regras do conector

O conector é compatível com proxy.

Conector de extração do Splunk

Extraia alertas e eventos do Splunk para o Google SecOps.

Parâmetros do conector

Para configurar o conector, use os seguintes parâmetros:

Parâmetros
Product Field Name Obrigatório

Insira o nome do campo de origem para recuperar o nome de Product Field.

O valor padrão é device_product.

Event Field Name Obrigatório

Insira o nome do campo de origem para recuperar o nome de Event Field.

O valor padrão é name.

Environment Field Name Opcional

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

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

O valor padrão é "".

Environment Regex Pattern Opcional

Um padrão de expressão regular a ser executado no valor encontrado no campo Environment Field Name.

O valor padrão .* captura tudo e retorna o valor inalterado.

O parâmetro permite manipular o campo de ambiente usando a lógica de expressão regular.

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

PythonProcessTimeout (Seconds) Obrigatório

Limite de tempo limite para o processo do Python que executa o script atual.

O valor padrão é de 60 segundos.

Server Address Obrigatório

Endereço IP do servidor de API Splunk.

Port Obrigatório

Porta da instância do Splunk.

O valor padrão é 8089.

Username Obrigatório

Nome de usuário da conta do Splunk.

Password Obrigatório

Senha da conta do Splunk.

Time Frame Opcional

Período para buscar os alertas.

O valor padrão é 1 hora.

Exemplos:

Se o valor for definido como 1 minuto, o conector vai buscar alertas a partir de 1 minuto atrás.

Se o valor for definido como 3 horas, o conector vai buscar alertas a partir de 3 horas atrás.

Se o valor for definido como 1 dia ou semana, o conector vai buscar alertas a partir de 1 dia (24 horas) ou 1 semana atrás, respectivamente.

Alerts Count Limit Opcional

Número de alertas retornados pelo conector por iteração.

O valor padrão é 100.

Use SSL Opcional

Marque para ativar a conexão SSL ou TLS.

Desmarcada por padrão.

Proxy Server Address Opcional

Endereço do servidor proxy a ser usado.

Proxy Username Opcional

Nome de usuário do proxy para autenticação.

Proxy Password Opcional

Senha do proxy para autenticação.

Regras do conector

O conector é compatível com proxy.

Splunk ES - Conector de eventos notáveis

Ingerir eventos notáveis do Splunk ES.

Definir a prioridade do caso

A prioridade do caso é definida pelo parâmetro Urgency no evento notável. Somente esse parâmetro é considerado ao ingerir o evento notável no Google SecOps.

Parâmetros do conector

Para configurar o conector, use os seguintes parâmetros:

Parâmetros
Product Field Name Obrigatório

Insira o nome do campo de origem para recuperar o nome de Product Field.

O valor padrão é Product Name.

Event Field Name Obrigatório

Insira o nome do campo de origem para recuperar o nome de Event Field.

O valor padrão é index.

Environment Field Name Opcional

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

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

O valor padrão é "".

Environment Regex Pattern Opcional

Um padrão de expressão regular a ser executado no valor encontrado no campo Environment Field Name.

O valor padrão .* captura tudo e retorna o valor inalterado.

O parâmetro permite manipular o campo de ambiente usando a lógica de expressão regular.

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

Script Timeout (Seconds) Obrigatório

Limite de tempo limite para o processo do Python que executa o script atual.

O valor padrão é 180 segundos.

Server Address Obrigatório

Endereço do servidor da instância do Splunk.

O valor padrão é https://:8089.

Username Opcional

Nome de usuário da conta do Splunk.

Password Opcional

Senha da conta do Splunk.

API Token Obrigatório

Token da API do Splunk.

Se esse campo tiver algum valor, o token de API terá prioridade sobre outros métodos de autenticação.

Lowest Urgency To Fetch Obrigatório

A urgência mais baixa usada para buscar eventos importantes.

Os valores possíveis são:

  • Informational
  • Low
  • Medium
  • High
  • Critical

O valor padrão é Medium.

Fetch Max Hours Backwards Opcional

Quantidade de horas de onde buscar eventos notáveis.

O valor padrão é 1 hora.

Only Drilldown Events Opcional

Se ativado, o conector tenta buscar eventos de detalhamento sem buscar eventos de base. Esse parâmetro exige que a opção Fetch Base Events esteja ativada.

Essa configuração está desativada por padrão.

Padding Time Opcional

Quantidade de horas que serão usadas como preenchimento.

Se nenhum valor for fornecido, esse parâmetro não será aplicável.

O valor máximo é de 12 horas.

Max Notable Events To Fetch Opcional

Número de eventos notáveis a serem processados por iteração do conector.

O valor padrão é 10.

Use whitelist as a blacklist Obrigatório

Se ativada, a lista dinâmica será usada como uma lista de bloqueio.

Essa configuração está desativada por padrão.

Verify SSL Obrigatório

Se marcada, verifica se o certificado SSL para a conexão com o servidor do CrowdStrike é válido.

Desmarcada por padrão.

Proxy Server Address Opcional

Endereço do servidor proxy a ser usado.

Proxy Username Opcional

Nome de usuário do proxy para autenticação.

Proxy Password Opcional

Senha do proxy para autenticação.

Query Filter Opcional

Filtro de consulta adicional enviado ao Splunk para receber eventos notáveis.

O valor fornecido aqui é anexado à cláusula de consulta WHERE.

Extract Base Events Opcional

Se ativado, o conector extrai eventos de base relacionados ao evento notável usando informações sobre o job. Em outro caso, o conector cria um evento do Google SecOps com base no evento notável.

Se esse parâmetro for definido como True, mas o conector não puder trabalhar com jobs, ele vai usar informações sobre eventos importantes como um mecanismo de fallback.

Ativado por padrão.

Multivalue Fields Opcional

Uma lista separada por vírgulas de campos que contêm várias entidades.

Por exemplo, se um campo tiver dois nomes de host, o evento notável será dividido em dois eventos do Google SecOps para mapear as entidades corretamente.

Notable Event Data Along Base Event Opcional

Se ativado, o conector adiciona eventos do Google SecOps com base no evento notável, além dos eventos de base.

Essa configuração está desativada por padrão.

Rule Generator Field Name Opcional

O nome do campo usado para mapear o valor do gerador de regras.

Somente as informações sobre o evento notável são usadas para o mapeamento, os eventos são desconsiderados. Se um valor inválido for fornecido, o conector definirá o campo como o valor rule_name.

Alert Name Source Opcional

Origem do nome do alerta.

Os valores possíveis são:

  • Search Name
  • Rule Name

O valor padrão é Search Name.

Alert Start Time Field Opcional

Um campo do evento notável do Splunk para usar como o start_time do alerta.

Se o campo estiver vazio, for inválido ou não puder ser analisado como um carimbo de data/hora, o conector vai usar o comportamento padrão com o campo _time.

Como usar o parâmetro Query Filter

Se for necessário restringir os eventos importantes com base em parâmetros específicos, use o parâmetro Query Filter. O valor fornecido nesse parâmetro é anexado à cláusula WHERE da consulta enviada para receber eventos notáveis.

Confira o exemplo da consulta enviada:

(`get_notable_index` OR `get_sequenced_index`) | eval `get_event_id_meval`,
rule_id=event_id | tags outputfield=tag | `mvappend_field(tag,orig_tag)` |
`notable_xref_lookup` | `get_correlations` | `get_current_status` | `get_owner`
| `get_urgency` | typer | where (urgency="medium" AND urgency="low") AND
(status_label="Unassigned" OR status_label="New")  | tail 50 | fields *

Por exemplo, se Query Filter = isTesting = True, a consulta será exibida da seguinte maneira:

search (`get_notable_index` OR `get_sequenced_index`) | eval epoch=_time | eval
`get_event_id_meval`,rule_id=event_id | tags outputfield=tag |
`mvappend_field(tag,orig_tag)` | `notable_xref_lookup` | `get_correlations` |
`get_current_status` | `get_owner` | `get_urgency` | typer | where
(urgency!="informational" AND urgency!="low" **AND isTesting = "True"**) |
fields *

Regras do conector

O conector do Splunk ES usa uma lista dinâmica e uma lista de bloqueio (whitelist e blacklist). O conector usa o campo search_name do evento para comparar com a lista dinâmica.

Evento do conector

[{
    "indicator": "2012/06/29_21:50", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-578a9be5-0e03-4ec0-940d-4b1842f40fd0", 
    "date_last": "2020-07-15 08:12:07 AM",
"Url": "indicator"
  },{
    "indicator": "2010/12/19_16:35", 
    "tlp": "TLP:RED", 
    "itype": "mal_url", 
    "severity": "very-high", 
    "classification": "public", 
    "detail": "", 
    "confidence": 50, 
    "actor": "", 
    "feed_name": "import", 
    "source": "admin", 
    "feed_site_netloc": "localhost", 
    "campaign": "", 
    "type": "url", 
    "id": "anomali:indicator-52cadd07-330a-45fd-962f-32e22d36a89a", 
    "date_last": "2020-07-15 08:12:07 AM"
  }]

Jobs

Para mais informações sobre jobs, consulte Configurar um novo job e Programação avançada.

Sincronizar eventos fechados do Splunk ES

Sincroniza eventos notáveis fechados do Splunk ES e alertas do Google SecOps.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Endereço do servidor String https://IP:8089 Sim Endereço do servidor da instância do Splunk.
Nome de usuário String N/A Não Nome de usuário da conta do Splunk.
Senha Senha N/A Não Senha da conta do Splunk.
Token da API Senha N/A Sim Token da API do Splunk. O token de API tem prioridade sobre outros métodos de autenticação quando esse campo não está vazio.
Máximo de horas para trás Inteiro 24 Sim Especifique quantas horas anteriores serão sincronizadas. Padrão: 24 horas.
Verificar SSL Caixa de seleção Selecionado Sim Se ativado, verifique se o certificado SSL da conexão com o servidor do Splunk é válido.

Sincronizar comentários do Splunk ES

Esse job vai sincronizar os comentários em eventos do Splunk ES e casos do Google SecOps.

Parâmetros

Nome de exibição do parâmetro Tipo Valor padrão É obrigatório Descrição
Endereço do servidor String https://IP:8089 Sim Endereço do servidor da instância do Splunk.
Nome de usuário String N/A Não Nome de usuário da conta do Splunk.
Senha Senha N/A Não Senha da conta do Splunk.
Token da API Senha N/A Sim Token da API do Splunk. O token de API tem prioridade sobre outros métodos de autenticação quando esse campo não está vazio.
Verificar SSL Caixa de seleção Selecionado Sim Se ativado, verifique se o certificado SSL da conexão com o servidor do Splunk é válido.

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