Coletar registros do Tanium Threat Response

Compatível com:

Este documento explica como ingerir registros do Tanium Threat Response no Google Security Operations usando a funcionalidade nativa de exportação do AWS S3 do Tanium Connect. O Tanium Threat Response gera alertas de detecção de ameaças, descobertas de investigações e dados de resposta a incidentes no formato JSON, que podem ser exportados diretamente para o S3 usando o Tanium Connect sem exigir funções Lambda personalizadas. O analisador transforma dados JSON brutos do Tanium Threat Response em um modelo de dados unificado (UDM). Primeiro, ele tenta analisar a mensagem recebida como JSON, processa possíveis erros e extrai e mapeia campos relevantes para a estrutura da UDM, incluindo detalhes sobre o host, o usuário, o processo, a atividade de rede e as descobertas de segurança afetados.

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Tanium Core Platform 7.0 ou mais recente
  • O módulo Tanium Threat Response instalado e configurado
  • Módulo Tanium Connect instalado com uma licença válida
  • Tanium Direct Connect 1.9.30 ou mais recente para recursos de investigação
  • Acesso privilegiado ao Tanium Console com direitos administrativos
  • Acesso privilegiado à AWS (S3, IAM)

Configurar a conta de serviço do Tanium Threat Response

  1. Faça login no Tanium Console.
  2. Acesse Módulos > Resposta a ameaças.
  3. Clique em Configurações no canto superior direito.
  4. Na seção Conta de serviço, configure o seguinte:
    • Usuário da conta de serviço: selecione um usuário com as permissões adequadas de resposta a ameaças.
    • Verifique se a conta tem o privilégio de função de usuário de conexão.
    • Confirme o acesso aos alertas e dados de investigação da Resposta a ameaças.
  5. Clique em Salvar para aplicar a configuração da conta de serviço.

Coletar os pré-requisitos do Tanium Threat Response

  1. Faça login no Tanium Console como administrador.
  2. Acesse Administração > Permissões > Usuários.
  3. Crie ou identifique um usuário da conta de serviço com os seguintes papéis:
    • Função Administrador de resposta a ameaças ou Usuário somente leitura de resposta a ameaças.
    • Privilégio da função Usuário de conexão.
    • Acesso a grupos de computadores monitorados (recomendado: grupo Todos os computadores).
    • Permissão Ler pergunta salva para conjuntos de conteúdo da resposta a ameaças.

Configurar o bucket do AWS S3 e o IAM para o Google SecOps

  1. Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
  2. Salve o Nome e a Região do bucket para referência futura (por exemplo, tanium-threat-response-logs).
  3. Crie um usuário seguindo este guia: Como criar um usuário do IAM.
  4. Selecione o usuário criado.
  5. Selecione a guia Credenciais de segurança.
  6. Clique em Criar chave de acesso na seção Chaves de acesso.
  7. Selecione Serviço de terceiros como o Caso de uso.
  8. Clique em Próxima.
  9. Opcional: adicione uma tag de descrição.
  10. Clique em Criar chave de acesso.
  11. Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
  12. Clique em Concluído.
  13. Selecione a guia Permissões.
  14. Clique em Adicionar permissões na seção Políticas de permissões.
  15. Selecione Adicionar permissões.
  16. Selecione Anexar políticas diretamente.
  17. Pesquise e selecione a política AmazonS3FullAccess.
  18. Clique em Próxima.
  19. Clique em Adicionar permissões

Configurar o destino do AWS S3 do Tanium Connect

  1. Faça login no Tanium Console.
  2. Acesse Módulos > Conectar.
  3. Clique em Criar conexão.
  4. Informe os seguintes detalhes de configuração:
    • Nome: insira um nome descritivo. Por exemplo, Threat Response Alerts to S3 for SecOps.
    • Descrição: descrição opcional (por exemplo, Export threat detection alerts and investigation findings to AWS S3 for Google SecOps ingestion).
    • Ativar: selecione para ativar a conexão e executá-la conforme programado.
  5. Clique em Próxima.

Configurar a origem da conexão

  1. Na seção Origem, forneça os seguintes detalhes de configuração:
    • Tipo de origem: selecione Pergunta salva.
    • Pergunta salva: selecione uma das seguintes perguntas salvas relacionadas à resposta a ameaças:
      • Resposta a ameaças - alertas para alertas de detecção de ameaças.
      • Resposta a ameaças - Resultados da investigação para descobertas da investigação.
      • Resposta a ameaças: correspondências de inteligência para correspondências de inteligência contra ameaças.
      • Resposta a ameaças - Atividade do endpoint para atividades suspeitas no endpoint.
      • Resposta a ameaças: conexões de rede para ameaças com base em rede.
    • Grupo de computadores: selecione Todos os computadores ou grupos específicos para monitorar.
    • Intervalo de atualização: defina o intervalo adequado para a coleta de dados (por exemplo, 10 minutos para alertas de ameaças).
  2. Clique em Próxima.

Configurar o destino do AWS S3

  1. Na seção Destino, forneça os seguintes detalhes de configuração:
    • Tipo de destino: selecione AWS S3.
    • Nome do destino: insira um nome exclusivo (por exemplo, Google SecOps ThreatResponse S3 Destination).
    • Chave de acesso da AWS: insira a chave de acesso da AWS do arquivo CSV baixado na etapa de configuração do AWS S3.
    • Chave de acesso secreta da AWS: insira a chave de acesso secreta da AWS do arquivo CSV baixado na etapa de configuração do AWS S3.
    • Nome do bucket: insira o nome do bucket do S3 (por exemplo, tanium-threat-response-logs).
    • Região: selecione a região da AWS em que o bucket do S3 está localizado.
    • Prefixo da chave: insira um prefixo para os objetos do S3 (por exemplo, tanium/threat-response/).
  2. Clique em Próxima.

Configurar filtros

  1. Na seção Filtros, configure as opções de filtragem de dados:
    • Enviar apenas novos itens: selecione essa opção para enviar apenas novos alertas de ameaça desde a última exportação.
    • Filtros de coluna: adicione filtros com base em atributos de alerta específicos, se necessário. Por exemplo, filtre por gravidade do alerta, tipo de ameaça ou status da investigação.
  2. Clique em Próxima.

Formatar dados para o AWS S3

  1. Na seção Formato, configure o formato dos dados:
    • Formato: selecione JSON.
    • Opções:
      • Incluir cabeçalhos: desmarque para evitar cabeçalhos na saída JSON.
      • Incluir células vazias: selecione de acordo com sua preferência.
    • Opções avançadas:
      • Nomeação de arquivos: use a nomeação padrão com base no carimbo de data/hora.
      • Compactação: selecione Gzip para reduzir os custos de armazenamento e o tempo de transferência.
  2. Clique em Próxima.

Programar a conexão

  1. Na seção Programação, configure a programação de exportação:
    • Ativar programação: selecione para ativar as exportações automáticas programadas.
    • Tipo de programação: selecione Recorrente.
    • Frequência: selecione A cada 10 minutos para receber alertas de resposta a ameaças em tempo hábil.
    • Horário de início: defina o horário de início adequado para a primeira exportação.
  2. Clique em Próxima.

Salvar e verificar conexão

  1. Revise a configuração da conexão na tela de resumo.
  2. Clique em Salvar para criar a conexão.
  3. Clique em Testar conexão para verificar a configuração.
  4. Se o teste for bem-sucedido, clique em Executar agora para fazer uma exportação inicial.
  5. Monitore o status da conexão na página Visão geral do Connect.

Configurar um feed no Google SecOps para ingerir registros do Tanium Threat Response

  1. Acesse Configurações do SIEM > Feeds.
  2. Clique em + Adicionar novo feed.
  3. No campo Nome do feed, insira um nome para o feed (por exemplo, Tanium Threat Response logs).
  4. Selecione Amazon S3 V2 como o Tipo de origem.
  5. Selecione Tanium Threat Response como o Tipo de registro.
  6. Clique em Próxima.
  7. Especifique valores para os seguintes parâmetros de entrada:
    • URI do S3: s3://tanium-threat-response-logs/tanium/threat-response/
    • Opções de exclusão de fontes: selecione a opção de exclusão de acordo com sua preferência.
    • Idade máxima do arquivo: inclui arquivos modificados no último número de dias. O padrão é de 180 dias.
    • ID da chave de acesso: chave de acesso do usuário com acesso ao bucket do S3.
    • Chave de acesso secreta: chave secreta do usuário com acesso ao bucket do S3.
    • Namespace do recurso: o namespace do recurso.
    • Rótulos de ingestão: o rótulo aplicado aos eventos deste feed.
  8. Clique em Próxima.
  9. Revise a nova configuração do feed na tela Finalizar e clique em Enviar.

Tabela de mapeamento do UDM

Campo de registro Mapeamento do UDM Lógica
ID do alerta security_result.rule_instance O valor desse campo é extraído do campo "ID do alerta" no registro bruto.
IP do computador principal.ip O valor desse campo é extraído do campo "IP do computador" no registro bruto.
IP do computador target.ip O valor desse campo é extraído do campo "IP do computador" no registro bruto.
Nome do computador principal.hostname O valor desse campo é extraído do campo "Nome do computador" no log bruto.
Nome do computador target.hostname O valor desse campo é extraído do campo "Nome do computador" no log bruto.
ID target.resource.attribute.labels O valor desse campo é extraído do campo "id" no registro bruto. A chave é codificada como "id".
ID da Intel security_result.rule_id O valor desse campo é extraído do campo "Intel Id" no registro bruto.
Marcadores da Intel security_result.description O valor desse campo é extraído do campo "Intel Labels" no registro bruto.
Nome da Intel security_result.summary O valor desse campo é extraído do campo "Intel Name" no registro bruto.
Nome da Intel security_result.threat_name O valor desse campo é extraído do campo "Intel Name" no registro bruto.
Tipo de inteligência security_result.rule_type O valor desse campo é extraído do campo "Intel Type" no registro bruto.
MatchDetails.finding.system_info.bits principal.asset.platform_software.bits O valor desse campo é extraído do campo "MatchDetails.finding.system_info.bits" no registro bruto.
MatchDetails.finding.system_info.os principal.asset.platform_software.platform_version O valor desse campo é extraído do campo "MatchDetails.finding.system_info.os" no registro bruto.
MatchDetails.finding.system_info.patch_level principal.asset.platform_software.platform_patch_level O valor desse campo é extraído do campo "MatchDetails.finding.system_info.patch_level" no registro bruto.
MatchDetails.finding.system_info.platform principal.asset.platform_software.platform O valor desse campo é extraído do campo "MatchDetails.finding.system_info.platform" no registro bruto.
MatchDetails.match.contexts.0.event.registrySet.keyPath target.registry.registry_key O valor desse campo é extraído do campo "MatchDetails.match.contexts.0.event.registrySet.keyPath" no registro bruto.
MatchDetails.match.contexts.0.event.registrySet.valueName target.registry.registry_value_name O valor desse campo é extraído do campo "MatchDetails.match.contexts.0.event.registrySet.valueName" no registro bruto.
MatchDetails.match.properties.args security_result.about.process.command_line O valor desse campo é extraído do campo "MatchDetails.match.properties.args" no registro bruto.
MatchDetails.match.properties.file.fullpath target.process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.file.fullpath" no registro bruto.
MatchDetails.match.properties.file.md5 target.process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.file.md5" no registro bruto.
MatchDetails.match.properties.file.sha1 target.process.file.sha1 O valor desse campo é extraído do campo "MatchDetails.match.properties.file.sha1" no registro bruto.
MatchDetails.match.properties.file.sha256 target.process.file.sha256 O valor desse campo é extraído do campo "MatchDetails.match.properties.file.sha256" no registro bruto.
MatchDetails.match.properties.fullpath target.process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.fullpath" no registro bruto.
MatchDetails.match.properties.local_port principal.port O valor desse campo é extraído do campo "MatchDetails.match.properties.local_port" no registro bruto.
MatchDetails.match.properties.md5 target.process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.md5" no registro bruto.
MatchDetails.match.properties.parent.args security_result.about.process.command_line O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.args" no registro bruto.
MatchDetails.match.properties.parent.file.fullpath target.process.parent_process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.file.fullpath" no registro bruto.
MatchDetails.match.properties.parent.file.md5 target.process.parent_process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.file.md5" no registro bruto.
MatchDetails.match.properties.parent.parent.file.fullpath target.process.parent_process.parent_process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.file.fullpath" no registro bruto.
MatchDetails.match.properties.parent.parent.file.md5 target.process.parent_process.parent_process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.file.md5" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.file.fullpath" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.file.md5" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.parent.file.md5" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.full_path O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5 target.process.parent_process.parent_process.parent_process.parent_process.parent_process.file.md5 O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5" no registro bruto.
MatchDetails.match.properties.parent.pid target.process.parent_process.pid O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.pid" no registro bruto.
MatchDetails.match.properties.parent.parent.pid target.process.parent_process.parent_process.pid O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.pid" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.pid O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.pid" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.pid O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.parent.pid" no registro bruto.
MatchDetails.match.properties.parent.parent.parent.parent.parent.pid target.process.parent_process.parent_process.parent_process.parent_process.parent_process.pid O valor desse campo é extraído do campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.pid" no registro bruto.
MatchDetails.match.properties.pid target.process.pid O valor desse campo é extraído do campo "MatchDetails.match.properties.pid" no registro bruto.
MatchDetails.match.properties.protocol network.ip_protocol O valor desse campo é extraído do campo "MatchDetails.match.properties.protocol" no registro bruto.
MatchDetails.match.properties.remote_ip target.ip O valor desse campo é extraído do campo "MatchDetails.match.properties.remote_ip" no registro bruto.
MatchDetails.match.properties.remote_port target.port O valor desse campo é extraído do campo "MatchDetails.match.properties.remote_port" no registro bruto.
MatchDetails.match.properties.sha1 target.process.file.sha1 O valor desse campo é extraído do campo "MatchDetails.match.properties.sha1" no registro bruto.
MatchDetails.match.properties.sha256 target.process.file.sha256 O valor desse campo é extraído do campo "MatchDetails.match.properties.sha256" no registro bruto.
MatchDetails.match.properties.user target.administrative_domain O nome de domínio é extraído do campo "MatchDetails.match.properties.user" no registro bruto procurando um caractere de barra invertida (""). Os caracteres antes da barra invertida são considerados o nome de domínio.
MatchDetails.match.properties.user target.user.userid O nome de usuário é extraído do campo "MatchDetails.match.properties.user" no registro bruto procurando um caractere de barra invertida (""). Os caracteres após a barra invertida são considerados o nome de usuário.
Técnicas do MITRE security_result.threat_id O valor desse campo é extraído do campo "Técnicas da MITRE" no registro bruto.
params security_result.detection_fields O valor desse campo é extraído do campo "params" no registro bruto. A chave é codificada como "params_" concatenada com o índice do parâmetro.
Carimbo de data/hora metadata.event_timestamp O valor desse campo é extraído do campo "Timestamp" no registro bruto.
N/A is_alert Esse campo é codificado como "true" se o campo "IP do computador" no registro bruto não estiver vazio.
N/A metadata.log_type Esse campo está fixado no código como "TANIUM_THREAT_RESPONSE".
N/A metadata.product_event_type Esse campo está fixado no código como "Tanium Signal".
N/A metadata.product_name Esse campo está fixado no código como "Resposta a ameaças".
N/A metadata.vendor_name Esse campo está fixado no código como "Tanium".
N/A network.http.method Esse campo é codificado como "POST" se o valor do campo "method" no registro bruto for "submit".

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