Recolha registos do Tanium Threat Response
Este documento explica como carregar registos do Tanium Threat Response para o Google Security Operations através da funcionalidade de exportação nativa do AWS S3 do Tanium Connect. O Tanium Threat Response produz alertas de deteção de ameaças, resultados de investigações e dados de resposta a incidentes no formato JSON, que podem ser exportados diretamente para o S3 através do Tanium Connect sem necessitar de funções Lambda personalizadas. O analisador transforma dados JSON não processados do Tanium Threat Response num modelo de dados unificado (UDM). Primeiro, tenta analisar a mensagem recebida como JSON, processa potenciais erros e, em seguida, extrai e mapeia os campos relevantes para a estrutura UDM, incluindo detalhes sobre o anfitrião, o utilizador, o processo, a atividade de rede e as conclusões de segurança afetados.
Antes de começar
Certifique-se de que tem os seguintes pré-requisitos:
- Uma instância do Google SecOps
- Tanium Core Platform 7.0 ou posterior
- 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 posterior para capacidades de investigação
- Acesso privilegiado à consola do Tanium com direitos administrativos
- Acesso privilegiado à AWS (S3, IAM)
Configure a conta de serviço do Tanium Threat Response
- Inicie sessão na Tanium Console.
- Aceda a Módulos > Resposta a ameaças.
- Clique em Definições na parte superior direita.
- Na secção Conta de serviço, configure o seguinte:
- Utilizador da conta de serviço: selecione um utilizador com as autorizações de resposta a ameaças adequadas.
- Verifique se a conta tem o privilégio da função de utilizador de ligação.
- Confirme o acesso aos alertas de resposta a ameaças e aos dados de investigação.
- Clique em Guardar para aplicar a configuração da conta de serviço.
Recolha os pré-requisitos do Tanium Threat Response
- Inicie sessão na consola do Tanium como administrador.
- Aceda a Administração > Autorizações > Utilizadores.
- Crie ou identifique um utilizador da conta de serviço com as seguintes funções:
- Função Administrador de resposta a ameaças ou Utilizador de resposta a ameaças apenas de leitura.
- Privilégio da função Utilizador associado.
- Acesso a grupos de computadores monitorizados (recomendado: grupo Todos os computadores).
- Autorização Read Saved Question para conjuntos de conteúdo de resposta a ameaças.
Configure o contentor do AWS S3 e o IAM para o Google SecOps
- Crie um contentor do Amazon S3 seguindo este manual do utilizador: Criar um contentor
- Guarde o nome e a região do contentor para referência futura (por exemplo,
tanium-threat-response-logs
). - Crie um utilizador seguindo este guia do utilizador: Criar um utilizador do IAM.
- Selecione o utilizador criado.
- Selecione o separador Credenciais de segurança.
- Clique em Criar chave de acesso na secção Chaves de acesso.
- Selecione Serviço de terceiros como o Exemplo de utilização.
- Clicar em Seguinte.
- Opcional: adicione uma etiqueta de descrição.
- Clique em Criar chave de acesso.
- Clique em Transferir ficheiro CSV para guardar a chave de acesso e a chave de acesso secreta para utilização posterior.
- Clique em Concluído.
- Selecione o separador Autorizações.
- Clique em Adicionar autorizações na secção Políticas de autorizações.
- Selecione Adicionar autorizações.
- Selecione Anexar políticas diretamente
- Pesquise e selecione a política AmazonS3FullAccess.
- Clicar em Seguinte.
- Clique em Adicionar autorizações.
Configure o destino do AWS S3 do Tanium Connect
- Inicie sessão na Tanium Console.
- Aceda a Módulos > Ligar.
- Clique em Criar associação.
- Indique os seguintes detalhes de configuração:
- Nome: introduza 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 esta opção para ativar a execução da associação de acordo com um horário.
- Nome: introduza um nome descritivo (por exemplo,
- Clicar em Seguinte.
Configure a origem da associação
- Na secção Origem, faculte os seguintes detalhes de configuração:
- Tipo de origem: selecione Pergunta guardada.
- Pergunta guardada: selecione uma das seguintes perguntas guardadas relacionadas com a Resposta a ameaças:
- Resposta a ameaças – Alertas para alertas de deteção de ameaças.
- Resposta a ameaças – Resultados da investigação para as conclusões da investigação.
- Resposta a ameaças – Correspondências de informações para correspondências de informações sobre ameaças.
- Resposta a ameaças – Atividade do ponto final para atividade suspeita do ponto final.
- Resposta a ameaças – Ligações de rede para ameaças baseadas na rede.
- Grupo de computadores: selecione Todos os computadores ou grupos de computadores específicos para monitorizar.
- Intervalo de atualização: defina o intervalo adequado para a recolha de dados (por exemplo, 10 minutos para alertas de ameaças).
- Clicar em Seguinte.
Configure o destino do AWS S3
- Na secção Destino, faculte os seguintes detalhes de configuração:
- Tipo de destino: selecione AWS S3.
- Nome do destino: introduza um nome exclusivo (por exemplo,
Google SecOps ThreatResponse S3 Destination
). - Chave de acesso da AWS: introduza a chave de acesso da AWS a partir do ficheiro CSV transferido no passo de configuração do AWS S3.
- Chave de acesso secreta da AWS: introduza a chave de acesso secreta da AWS a partir do ficheiro CSV transferido no passo de configuração do AWS S3.
- Nome do contentor: introduza o nome do contentor do S3 (por exemplo,
tanium-threat-response-logs
). - Região: selecione a região da AWS onde o seu contentor do S3 está localizado.
- Prefixo da chave: introduza um prefixo para os objetos S3 (por exemplo,
tanium/threat-response/
).
- Clicar em Seguinte.
Configure filtros
- Na secção Filtros, configure as opções de filtragem de dados:
- Enviar apenas novos itens: selecione esta opção para enviar apenas novos alertas de ameaças desde a última exportação.
- Filtros de colunas: adicione filtros com base em atributos de alertas específicos, se necessário (por exemplo, filtre por gravidade do alerta, tipo de ameaça ou estado da investigação).
- Clicar em Seguinte.
Formate os dados para o AWS S3
- Na secção Formato, configure o formato de dados:
- Formato: selecione JSON.
- Opções:
- Incluir cabeçalhos: desmarque esta opção para evitar cabeçalhos no resultado JSON.
- Incluir células vazias: selecione com base na sua preferência.
- Opções avançadas:
- Nomenclatura de ficheiros: use a nomenclatura predefinida baseada na data/hora.
- Compressão: selecione Gzip para reduzir os custos de armazenamento e o tempo de transferência.
- Clicar em Seguinte.
Agende a associação
- Na secção Programação, configure a programação de exportação:
- Ativar agendamento: selecione esta opção para ativar as exportações agendadas automáticas.
- Tipo de programação: selecione Recorrente.
- Frequência: selecione A cada 10 minutos para receber alertas de resposta a ameaças atempados.
- Hora de início: defina a hora de início adequada para a primeira exportação.
- Clicar em Seguinte.
Guarde e valide a associação
- Reveja a configuração da associação no ecrã de resumo.
- Clique em Guardar para criar a associação.
- Clique em Testar associação para validar a configuração.
- Se o teste for bem-sucedido, clique em Executar agora para fazer uma exportação inicial.
- Monitorize o estado da ligação na página Vista geral do Connect.
Configure um feed no Google SecOps para carregar registos do Tanium Threat Response
- Aceda a Definições do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- No campo Nome do feed, introduza um nome para o feed (por exemplo,
Tanium Threat Response logs
). - Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Tanium Threat Response como o Tipo de registo.
- Clicar em Seguinte.
- Especifique valores para os seguintes parâmetros de entrada:
- URI do S3:
s3://tanium-threat-response-logs/tanium/threat-response/
- Opções de eliminação de origens: selecione a opção de eliminação de acordo com a sua preferência.
- Idade máxima do ficheiro: inclua ficheiros modificados no último número de dias. A predefinição é 180 dias.
- ID da chave de acesso: chave de acesso do utilizador com acesso ao contentor do S3.
- Chave de acesso secreta: chave secreta do utilizador com acesso ao contentor do S3.
- Espaço de nomes do recurso: o espaço de nomes do recurso.
- Etiquetas de carregamento: a etiqueta aplicada aos eventos deste feed.
- URI do S3:
- Clicar em Seguinte.
- Reveja a nova configuração do feed no ecrã Finalizar e, de seguida, clique em Enviar.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento do UDM | Lógica |
---|---|---|
ID do alerta | security_result.rule_instance | O valor deste campo é retirado do campo "ID do alerta" no registo não processado. |
IP do computador | principal.ip | O valor deste campo é retirado do campo "IP do computador" no registo não processado. |
IP do computador | target.ip | O valor deste campo é retirado do campo "IP do computador" no registo não processado. |
Nome do computador | principal.hostname | O valor deste campo é retirado do campo "Nome do computador" no registo não processado. |
Nome do computador | target.hostname | O valor deste campo é retirado do campo "Nome do computador" no registo não processado. |
id | target.resource.attribute.labels | O valor deste campo é retirado do campo "id" no registo não processado. A chave está codificada como "id". |
ID da Intel | security_result.rule_id | O valor deste campo é retirado do campo "Intel Id" no registo não processado. |
Etiquetas Intel | security_result.description | O valor deste campo é retirado do campo "Intel Labels" no registo não processado. |
Nome da Intel | security_result.summary | O valor deste campo é retirado do campo "Intel Name" no registo não processado. |
Nome da Intel | security_result.threat_name | O valor deste campo é retirado do campo "Intel Name" no registo não processado. |
Tipo de Intel | security_result.rule_type | O valor deste campo é retirado do campo "Tipo de Intel" no registo não processado. |
MatchDetails.finding.system_info.bits | principal.asset.platform_software.bits | O valor deste campo é retirado do campo "MatchDetails.finding.system_info.bits" no registo não processado. |
MatchDetails.finding.system_info.os | principal.asset.platform_software.platform_version | O valor deste campo é retirado do campo "MatchDetails.finding.system_info.os" no registo não processado. |
MatchDetails.finding.system_info.patch_level | principal.asset.platform_software.platform_patch_level | O valor deste campo é retirado do campo "MatchDetails.finding.system_info.patch_level" no registo não processado. |
MatchDetails.finding.system_info.platform | principal.asset.platform_software.platform | O valor deste campo é retirado do campo "MatchDetails.finding.system_info.platform" no registo não processado. |
MatchDetails.match.contexts.0.event.registrySet.keyPath | target.registry.registry_key | O valor deste campo é retirado do campo "MatchDetails.match.contexts.0.event.registrySet.keyPath" no registo não processado. |
MatchDetails.match.contexts.0.event.registrySet.valueName | target.registry.registry_value_name | O valor deste campo é retirado do campo "MatchDetails.match.contexts.0.event.registrySet.valueName" no registo não processado. |
MatchDetails.match.properties.args | security_result.about.process.command_line | O valor deste campo é retirado do campo "MatchDetails.match.properties.args" no registo não processado. |
MatchDetails.match.properties.file.fullpath | target.process.file.full_path | O valor deste campo é retirado do campo "MatchDetails.match.properties.file.fullpath" no registo não processado. |
MatchDetails.match.properties.file.md5 | target.process.file.md5 | O valor deste campo é retirado do campo "MatchDetails.match.properties.file.md5" no registo não processado. |
MatchDetails.match.properties.file.sha1 | target.process.file.sha1 | O valor deste campo é retirado do campo "MatchDetails.match.properties.file.sha1" no registo não processado. |
MatchDetails.match.properties.file.sha256 | target.process.file.sha256 | O valor deste campo é retirado do campo "MatchDetails.match.properties.file.sha256" no registo não processado. |
MatchDetails.match.properties.fullpath | target.process.file.full_path | O valor deste campo é retirado do campo "MatchDetails.match.properties.fullpath" no registo não processado. |
MatchDetails.match.properties.local_port | principal.port | O valor deste campo é retirado do campo "MatchDetails.match.properties.local_port" no registo não processado. |
MatchDetails.match.properties.md5 | target.process.file.md5 | O valor deste campo é retirado do campo "MatchDetails.match.properties.md5" no registo não processado. |
MatchDetails.match.properties.parent.args | security_result.about.process.command_line | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.args" no registo não processado. |
MatchDetails.match.properties.parent.file.fullpath | target.process.parent_process.file.full_path | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.file.fullpath" no registo não processado. |
MatchDetails.match.properties.parent.file.md5 | target.process.parent_process.file.md5 | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.file.md5" no registo não processado. |
MatchDetails.match.properties.parent.parent.file.fullpath | target.process.parent_process.parent_process.file.full_path | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.file.fullpath" no registo não processado. |
MatchDetails.match.properties.parent.parent.file.md5 | target.process.parent_process.parent_process.file.md5 | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.file.md5" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.file.fullpath | target.process.parent_process.parent_process.parent_process.file.full_path | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.file.fullpath" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.file.md5 | target.process.parent_process.parent_process.parent_process.file.md5 | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.file.md5" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath | target.process.parent_process.parent_process.parent_process.parent_process.file.full_path | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.parent.file.fullpath" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.parent.file.md5 | target.process.parent_process.parent_process.parent_process.parent_process.file.md5 | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.parent.file.md5" no registo não processado. |
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 deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.file.fullpath" no registo não processado. |
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 deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.file.md5" no registo não processado. |
MatchDetails.match.properties.parent.pid | target.process.parent_process.pid | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.pid" no registo não processado. |
MatchDetails.match.properties.parent.parent.pid | target.process.parent_process.parent_process.pid | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.pid" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.pid | target.process.parent_process.parent_process.parent_process.pid | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.pid" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.parent.pid | target.process.parent_process.parent_process.parent_process.parent_process.pid | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.parent.pid" no registo não processado. |
MatchDetails.match.properties.parent.parent.parent.parent.parent.pid | target.process.parent_process.parent_process.parent_process.parent_process.parent_process.pid | O valor deste campo é retirado do campo "MatchDetails.match.properties.parent.parent.parent.parent.parent.pid" no registo não processado. |
MatchDetails.match.properties.pid | target.process.pid | O valor deste campo é retirado do campo "MatchDetails.match.properties.pid" no registo não processado. |
MatchDetails.match.properties.protocol | network.ip_protocol | O valor deste campo é retirado do campo "MatchDetails.match.properties.protocol" no registo não processado. |
MatchDetails.match.properties.remote_ip | target.ip | O valor deste campo é retirado do campo "MatchDetails.match.properties.remote_ip" no registo não processado. |
MatchDetails.match.properties.remote_port | target.port | O valor deste campo é retirado do campo "MatchDetails.match.properties.remote_port" no registo não processado. |
MatchDetails.match.properties.sha1 | target.process.file.sha1 | O valor deste campo é retirado do campo "MatchDetails.match.properties.sha1" no registo não processado. |
MatchDetails.match.properties.sha256 | target.process.file.sha256 | O valor deste campo é retirado do campo "MatchDetails.match.properties.sha256" no registo não processado. |
MatchDetails.match.properties.user | target.administrative_domain | O nome de domínio é extraído do campo "MatchDetails.match.properties.user" no registo não processado procurando um caráter de barra invertida (""). Os carateres antes da barra invertida são considerados o nome de domínio. |
MatchDetails.match.properties.user | target.user.userid | O nome de utilizador é extraído do campo "MatchDetails.match.properties.user" no registo não processado procurando um caráter de barra invertida (""). Os carateres após a barra invertida são considerados o nome de utilizador. |
Técnicas da MITRE | security_result.threat_id | O valor deste campo é retirado do campo "MITRE Techniques" no registo não processado. |
params | security_result.detection_fields | O valor deste campo é retirado do campo "params" no registo não processado. A chave está codificada como "params_" concatenada com o índice do parâmetro. |
Indicação de tempo | metadata.event_timestamp | O valor deste campo é retirado do campo "Data/hora" no registo não processado. |
N/A | is_alert | Este campo está codificado como "true" se o campo "IP do computador" no registo não processado não estiver vazio. |
N/A | metadata.log_type | Este campo está codificado como "TANIUM_THREAT_RESPONSE". |
N/A | metadata.product_event_type | Este campo está codificado como "Tanium Signal". |
N/A | metadata.product_name | Este campo está codificado como "Resposta a ameaças". |
N/A | metadata.vendor_name | Este campo está codificado como "Tanium". |
N/A | network.http.method | Este campo está codificado de forma rígida como "POST" se o valor do campo "method" no registo não processado for "submit". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.