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:
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.
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.
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). Verifique se a chave de API gerada tem um papel com permissões de criação de alertas e casos.
Se você planeja ingerir eventos brutos de pesquisas de transformação (como pesquisas que usam
stats,chartoutimechart), verifique sedispatch.buckets = 1está configurado emsavedsearches.confnos 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:
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).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: 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).
Recursos do papel do Splunk: verifique se a conta do Splunk que está sendo autenticada tem um papel com os seguintes recursos:
searchschedule_searchedit_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)
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 quandoTA-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.
- 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 requerTA-Siemplify).
- Conector de pull 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 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: A ação deve 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. |
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:
|
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. |
| 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. |
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
|
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. |
| 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
As consultas precisam ser inseridas como regras de lista dinâmica (
whitelist).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.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_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 de O valor padrão é |
Event Field Name |
Obrigatório
Insira o nome do campo de origem para recuperar o nome de 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 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 O valor padrão 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 O valor padrão é |
Event Field Name |
Obrigatório
Insira o nome do campo de origem para recuperar o nome de 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 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 O valor padrão 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 é |
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 O valor padrão é |
Event Field Name |
Obrigatório
Insira o nome do campo de origem para recuperar o nome de 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 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 é |
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:
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 tenta buscar eventos de detalhamento sem
buscar eventos de base. Esse parâmetro exige que a opção 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 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 |
Alert Name Source |
Opcional
Origem do nome do alerta. Os valores possíveis são:
O valor padrão é |
Alert Start Time Field |
Opcional
Um campo do evento notável do Splunk para usar como o
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 |
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.