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ários.
O Google SecOps oferece suporte a 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 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 de pesquisa da SPL ou eventos notáveis do Splunk ES.
Ingestão baseada em push
A ingestão baseada em push exige conectividade HTTPS de saída direta do Splunk para o Google SecOps, além de configurações específicas de complemento nos cabeçalhos de pesquisa do Splunk.
Verifique os seguintes requisitos antes de configurar a ingestão baseada em push:
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 seu cluster de cabeças de pesquisa usando o Splunk Deployer ou o Deployment Server.
Verifique se uma versão compatível do Modelo de informações comuns do Splunk (Splunk_SA_CIM) está instalada no cabeçalho de pesquisa para oferecer suporte a alertas e registros modulares.
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.
Verifique se você tem uma conta no Google SecOps com permissões administrativas para gerar chaves de API (Configurações > Avançado > API). Confira se a chave de API gerada tem uma função com permissões de criação de alertas e casos.
Se você planeja ingerir eventos brutos de pesquisas de transformação (como pesquisas usando
stats,chartoutimechart), verifique sedispatch.buckets = 1está configurado emsavedsearches.confnos seus cabeçalhos de pesquisa.
Ingestão baseada em extração
A ingestão baseada em pull, as ações de playbook e os jobs de sincronização exigem o Google SecOps (ou um agente remoto) para estabelecer conexões administrativas de entrada com o Splunk.
Verifique os seguintes requisitos antes de configurar conectores de extração, ações ou jobs:
Conectividade de rede: verifique a visibilidade da rede do Google SecOps (ou do seu agente remoto) para a porta da API REST de gerenciamento do Splunk (padrão:
8089/TCP).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.
Autenticação: obtenha credenciais de usuário do Splunk válidas (nome de usuário e senha) ou gere um token de autenticação do Splunk (para ativar esse método de autenticação na plataforma Splunk, é necessário autenticação por token).
Recursos da função do Splunk: verifique se a conta do Splunk que está sendo autenticada tem uma função com os seguintes recursos:
searchschedule_searchedit_tcp(obrigatório apenas se você estiver usando a ação Enviar evento)edit_notable_events(obrigatório apenas se você estiver usando a ação Atualizar eventos importantes ou trabalhos de sincronização do Splunk ES)
Permissões de repositório de dados e pesquisa: verifique se a conta de autenticação tem acesso aos repositórios de dados relevantes do Splunk para os componentes escolhidos:
- Conector de extração do Splunk: permissões de leitura para a tabela de consulta
siemplify_alerts, que é preenchida quandoTA-Siemplifyé instalado e configurado no modo de extração. - 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 ao usar a ação Enviar evento.
- Permissões de pesquisa em índices de eventos de destino
(não requer
- 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
notablee acesso à macroget_notable_index(não exigeTA-Siemplify).
- Conector de extração do Splunk: permissões de leitura para a tabela de consulta
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 Splunk. |
| Nome de usuário | String | N/A | Não | O endereço de e-mail do usuário que deve 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 do Splunk. O token de API tem prioridade sobre outros métodos de autenticação quando este campo não está vazio. |
| Verificar SSL | Caixa de seleção | Desmarcado | Não | Use esta caixa de seleção se a conexão do Splunk exigir uma verificação 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.
Você pode fazer mudanças mais tarde, se necessário. Depois de configurar uma instância de integração, você pode usá-la em playbooks. Para mais informações sobre como configurar e oferecer suporte a várias instâncias, consulte Suporte a várias instâncias.
Ações
Para mais informações sobre ações, consulte Responder a ações pendentes da sua mesa de trabalho e Realizar uma ação manual.
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 retornar por host. |
| Resultados de | String | -24h | 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 host | String | host | Não | Especifique qual chave deve ser usada para receber informações sobre eventos de host. Padrão: host. |
Executar em
Essa ação é executada na entidade "Nome do host".
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 a operação for bem-sucedida e houver resultados disponíveis: "Eventos retornados com sucesso 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 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 precisa falhar e interromper a execução de um playbook: Se houver um erro fatal, como credenciais incorretas, sem conexão com o servidor, outro: "Erro ao executar a ação "Receber eventos do host". Motivo: {0}''.format(error.Stacktrace) Se 400: "Erro ao executar a ação "Get Host Events". Motivo: {0}''.format(messages/text) |
Geral |
| Tabela do painel de casos | Nome:eventos {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 guia "Marketplace" do Google Security Operations.
Parâmetros
N/A
Executar em
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: A ação precisa falhar e interromper a execução de um playbook: |
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. |
Executar em
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
Execute 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:
|
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 retornar. |
| Resultados de | String | -24h | 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: agora. |
| Campos de resultado | CSV | Não | Especifique uma lista separada por vírgulas de campos que precisam ser retornados. |
Executar em
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 houver resultados disponíveis: "Os resultados da consulta "{0}" no Splunk foram retornados com sucesso".format(query) Se a operação for bem-sucedida e os resultados não estiverem disponíveis: "Nenhum resultado foi encontrado para a consulta "{0}" no Splunk".format(query) Mensagem assíncrona: "Aguardando a conclusão da execução da consulta {0}".format(nome da consulta) A ação precisa falhar e interromper a execução de um playbook: Se houver um erro fatal, como credenciais incorretas, sem conexão com o servidor, outro: "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
Enviar 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 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 |
Executar em
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 a operação for bem-sucedida: "Um novo evento foi adicionado ao índice "{0}" no Splunk.".format(index) A ação precisa falhar e interromper a execução de um playbook: Se houver um erro fatal, como credenciais incorretas, sem conexão com o servidor, outro: "Erro ao executar a ação "Enviar evento". Motivo: {0}''.format(error.Stacktrace) Se 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 para o evento notável. |
| Novo proprietário | String | N/A | Sim | Especifique o novo proprietário do evento notável. |
| Comentário | String | N/A | Sim | Especifique o comentário para o evento importante. |
Executar em
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 a solicitação for bem-sucedida e os dados estiverem disponíveis (is_success=true) print "Successfully updated {0} notable events in Splunk.".format(count(notable_events)) Se a atualização falhar (status_code=400, is_success=false): print "Action wasn't able to update notable events. Reason:{0}".format(string_from_response) A ação precisa falhar e interromper a execução de um playbook: Se o erro for fatal, como credenciais incorretas, sem conexão com o servidor, 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 facilmente 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 criar consultas complicadas. Para resolver esse problema no Splunk, prepare 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 da ação da seguinte maneira:
| Consulta | index="main" |
|---|---|
| Chave da 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 saber quantos endpoints foram afetados pelos hashes fornecidos, a configuração da "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" não terá impacto nessa situação, porque 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:
|
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 retornar. Observação: esse parâmetro anexa a palavra-chave "head" à consulta fornecida. O padrão é 100. |
| Resultados de | String | -24h | 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: agora. |
| Campos de resultado | CSV | N/A | Não | Especifique uma lista separada por vírgulas de campos que precisam ser retornados. |
| Chave da 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 da entidade de nome do host | String | N/A | Não | Especifique qual chave deve ser usada com entidades de nome de 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 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 entidades de usuário. Consulte a documentação da ação para mais detalhes. |
| Chave da entidade de URL | String | N/A | Não | Especifique qual chave deve ser usada com entidades de URL. Consulte a documentação da ação para mais detalhes. |
| Chave da entidade de endereço de e-mail | String | N/A | Não | Especifique qual chave deve ser usada com entidades de endereço de e-mail. Consulte a documentação da ação para mais detalhes. |
| Parar se não houver entidades suficientes | Caixa de seleção | Selecionado | Sim | Se ativada, a ação não vai começar a execução, a menos que todos os tipos de entidade estejam disponíveis para as ".. chaves de entidade" especificadas. Exemplo: se "Chave da entidade de IP" e "Chave da 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 operador lógico deve ser usado entre diferentes tipos de entidade. |
Executar em
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 houver resultados disponíveis: "Os resultados da consulta "{0}" no Splunk foram retornados com sucesso".format(query) Se a operação for bem-sucedida e os resultados não estiverem disponíveis: "Nenhum resultado foi encontrado para a consulta "{0}" no Splunk".format(query) Mensagem assíncrona: "Aguardando a conclusão da execução da consulta {0}".format(nome da consulta) Se a opção "Parar 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 da entidade" especificada. A ação precisa falhar e interromper a execução de um playbook: Se houver um erro fatal, como credenciais incorretas, sem conexão com o servidor, outro: "Erro ao executar a ação "Executar consulta de entidade". Motivo: {0}''.format(error.Stacktrace) Se 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 mais sobre como configurar conectores no Google SecOps, consulte Ingerir seus dados (conectores).
Conector de consultas do Splunk
O conector envia consultas que fazem parte da lista dinâmica (whitelist),
recupera resultados e cria um caso com base neles.
Exemplos de consultas do Splunk para visualizar os registros
As consultas precisam ser inseridas como as regras da lista dinâmica (
whitelist).As consultas de pesquisa com vários filtros devem usar espaço como delimitador entre os filtros de pesquisa. Por exemplo,
index=cim_modactions sourcetype=modular_alerts:risk.Usar 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_modactionssourcetype=modular_alerts:send_data_to_siemplifyindex=_internal sourcetype=splunkdcomponent=sendmodalertaction=send_data_to_siemplifyindex=_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 O valor padrão é |
Event Field Name |
Obrigatório
Insira o nome do campo de origem para recuperar o nome O valor padrão é |
API Root |
Obrigatório
Raiz da API da instância do Splunk. O valor padrão é
|
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 um valor, o token da API terá prioridade sobre outros métodos de autenticação. |
Verify SSL |
Obrigatório
Se marcada, verifica se o certificado SSL da conexão com o servidor do CrowdStrike é válido. Por padrão, essa opção não está marcada. |
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 Número máximo de eventos a serem buscados por consulta. |
Max Day Backwards |
Opcional Número de dias a partir de onde buscar eventos. |
Aggregate Events Query |
Opcional Se ativado, o conector vai combinar todos os eventos em um alerta. Essa configuração está desativada por padrão. |
PythonProcessTimeout (Seconds) |
Obrigatório Limite de tempo limite para o processo 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 O valor padrão O parâmetro permite manipular o campo "environment" 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á o ambiente padrão. |
Regras do conector
O conector é compatível com proxy.
Conector de extração do Splunk
Extrair 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 O valor padrão é |
Event Field Name |
Obrigatório
Insira o nome do campo de origem para recuperar o nome O valor padrão é |
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 resultante será O valor padrão é |
Environment Regex Pattern |
Opcional
Um padrão de expressão regular a ser executado no valor encontrado no campo O valor padrão O parâmetro permite manipular o campo "environment" 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 Python que executa o script atual. O valor padrão é de 60 segundos. |
Server Address |
Obrigatório
Endereço IP do servidor da API Splunk. |
Port |
Obrigatório
Porta da instância do Splunk. O valor padrão é |
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 uma iteração. O valor padrão é 100. |
Use SSL |
Opcional
Marque para ativar a conexão SSL ou TLS. Por padrão, essa opção não está marcada. |
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 importantes 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 O valor padrão é |
Event Field Name |
Obrigatório
Insira o nome do campo de origem para recuperar o nome O valor padrão é |
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 O valor padrão O parâmetro permite manipular o campo "environment" 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á o ambiente padrão. |
Script Timeout (Seconds) |
Obrigatório Limite de tempo limite para o processo Python que executa o script atual. O valor padrão é de 180 segundos. |
Server Address |
Obrigatório
Endereço do servidor da instância do Splunk. O valor padrão é |
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 um valor, o token da API terá prioridade sobre outros métodos de autenticação. |
Lowest Urgency To Fetch |
Obrigatório
A menor urgência usada para buscar eventos importantes. Os valores possíveis são:
O valor padrão é |
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 tentará buscar eventos de detalhamento sem buscar eventos básicos. Esse parâmetro exige que a opção Essa configuração está desativada por padrão. |
Padding Time |
Opcional
Quantidade de horas que será usada como padding. 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 uma 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 da conexão com o servidor do CrowdStrike é válido. Por padrão, essa opção não está marcada. |
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. Caso contrário, o conector cria um evento do Google SecOps com base no evento notável. Se esse parâmetro estiver definido como 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 contiver 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 básicos. 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 mapeamento. Os eventos são ignorados. Se um valor inválido for fornecido, o conector definirá o campo como o valor |
Alert Name Source |
Opcional
Origem do nome do alerta. Os valores possíveis são:
O valor padrão é |
Como usar o parâmetro Query Filter
Se for necessário restringir os eventos notáveis 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 um exemplo de 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 vai aparecer da seguinte forma:
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 listas dinâmicas e de bloqueio (whitelist e blacklist). Ele 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 este campo não está vazio. |
| Máximo de horas para trás | Inteiro | 24 | Sim | Especifique quantas horas retroceder para sincronizar os status. Padrão: 24 horas. |
| Verificar SSL | Caixa de seleção | Selecionado | Sim | Se ativada, verifique se o certificado SSL da conexão com o servidor do Splunk é válido. |
Sincronizar comentários do Splunk ES
Esse job sincroniza 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 este campo não está vazio. |
| Verificar SSL | Caixa de seleção | Selecionado | Sim | Se ativada, 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.