Coletar registros do Tanium Stream
Este documento explica como ingerir registros do Tanium Stream no Google Security Operations usando a funcionalidade nativa de exportação do AWS S3 do Tanium Connect. O Tanium Stream fornece telemetria de endpoint em tempo real, dados de busca de ameaças e análises comportamentais em formato JSON, que podem ser exportados diretamente para o S3 usando o Tanium Connect sem exigir funções Lambda personalizadas. O analisador transforma registros JSON brutos do Tanium Stream em um modelo de dados unificado (UDM). Primeiro, ele normaliza campos comuns e aplica uma lógica específica com base em "logType" ou "eventType" para mapear informações relevantes nos campos apropriados da UDM, processando vários tipos de eventos, como conexões de rede, logins de usuários, inicializações de processos e modificações de arquivos.
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 Stream instalado e configurado
- Módulo Tanium Connect instalado com uma licença válida
- Tanium Threat Response 3.4.346 ou mais recente (se estiver usando a integração do TR)
- Acesso privilegiado ao Tanium Console com direitos administrativos
- Acesso privilegiado à AWS (S3, IAM)
Configurar a conta de serviço do Tanium Stream
- Faça login no Tanium Console.
- Acesse Módulos > Transmissão.
- Clique em Configurações no canto superior direito.
- 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 do Stream.
- Verifique se a conta tem o privilégio de função de usuário de conexão.
- Confirme o acesso às fontes de dados e aos endpoints do Stream.
- Clique em Salvar para aplicar a configuração da conta de serviço.
Coletar os pré-requisitos do Tanium Stream
- Faça login no Tanium Console como administrador.
- Acesse Administração > Permissões > Usuários.
- Crie ou identifique um usuário da conta de serviço com os seguintes papéis:
- Função Administrador de stream ou Usuário somente leitura de stream.
- 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 do Stream.
Configurar o bucket do AWS S3 e o IAM para o Google SecOps
- Crie um bucket do Amazon S3 seguindo este guia do usuário: Como criar um bucket
- Salve o Nome e a Região do bucket para referência futura (por exemplo,
tanium-stream-logs
). - Crie um usuário seguindo este guia: Como criar um usuário do IAM.
- Selecione o usuário criado.
- Selecione a guia Credenciais de segurança.
- Clique em Criar chave de acesso na seção Chaves de acesso.
- Selecione Serviço de terceiros como o Caso de uso.
- Clique em Próxima.
- Opcional: adicione uma tag de descrição.
- Clique em Criar chave de acesso.
- Clique em Fazer o download do arquivo CSV para salvar a chave de acesso e a chave de acesso secreta para uso posterior.
- Clique em Concluído.
- Selecione a guia Permissões.
- Clique em Adicionar permissões na seção Políticas de permissões.
- Selecione Adicionar permissões.
- Selecione Anexar políticas diretamente.
- Pesquise e selecione a política AmazonS3FullAccess.
- Clique em Próxima.
- Clique em Adicionar permissões
Configurar o destino do AWS S3 do Tanium Connect
- Faça login no Tanium Console.
- Acesse Módulos > Conectar.
- Clique em Criar conexão.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome descritivo. Por exemplo,
Stream Telemetry to S3 for SecOps
. - Descrição: descrição opcional (por exemplo,
Export endpoint telemetry and threat hunting data to AWS S3 for Google SecOps ingestion
). - Ativar: selecione para ativar a conexão e executá-la conforme programado.
- Nome: insira um nome descritivo. Por exemplo,
- Clique em Próxima.
Configurar a origem da conexão
- 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 ao Stream:
- Stream - Endpoint Events para telemetria de endpoint em tempo real.
- Transmita eventos de rede para monitorar a atividade de rede.
- Stream - Process Events para acompanhamento da execução de processos.
- Stream - File Events para atividade do sistema de arquivos.
- Stream - Threat Hunting Data para análise comportamental.
- 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, 5 minutos para telemetria em tempo real).
- Clique em Próxima.
Configurar o destino do AWS S3
- 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 Stream 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-stream-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/stream/
).
- Clique em Próxima.
Configurar filtros
- Na seção Filtros, configure as opções de filtragem de dados:
- Enviar apenas novos itens: selecione essa opção para enviar apenas novos dados de telemetria desde a última exportação.
- Filtros de coluna: adicione filtros com base em atributos de evento específicos, se necessário (por exemplo, filtre por tipo de evento, nome do processo ou indicadores de ameaça).
- Clique em Próxima.
Formatar dados para o AWS S3
- 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.
- Clique em Próxima.
Programar a conexão
- 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 5 minutos para dados de telemetria quase em tempo real.
- Horário de início: defina o horário de início adequado para a primeira exportação.
- Clique em Próxima.
Salvar e verificar conexão
- Revise a configuração da conexão na tela de resumo.
- Clique em Salvar para criar a conexão.
- Clique em Testar conexão para verificar a configuração.
- Se o teste for bem-sucedido, clique em Executar agora para fazer uma exportação inicial.
- 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 Stream
- Acesse Configurações do SIEM > Feeds.
- Clique em + Adicionar novo feed.
- No campo Nome do feed, insira um nome para o feed (por exemplo,
Tanium Stream logs
). - Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Tanium Stream como o Tipo de registro.
- Clique em Próxima.
- Especifique valores para os seguintes parâmetros de entrada:
- URI do S3:
s3://tanium-stream-logs/tanium/stream/
- 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.
- URI do S3:
- Clique em Próxima.
- 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 |
---|---|---|
additional.event__AlgorithmName | additional.fields.key: eventAlgorithmName additional.fields.value.string_value: %{additional.eventAlgorithmName} |
Valor extraído diretamente do campo additional.event__AlgorithmName do registro bruto. |
additional.event__AuthenticationPackageName | target.resource.name: %{additional.event__AuthenticationPackageName} | Valor extraído diretamente do campo additional.event__AuthenticationPackageName do registro bruto. |
additional.event__CallerProcessId | principal.process.pid: %{additional.event__CallerProcessId} | Valor extraído diretamente do campo additional.event__CallerProcessId do registro bruto. |
additional.event__CallerProcessName | principal.process.file.fullpath: %{additional.event_CallerProcessName} | Valor extraído diretamente do campo additional.event__CallerProcessName do registro bruto. |
additional.event__ClientProcessId | principal.process.pid: %{additional.event__ClientProcessId} | Valor extraído diretamente do campo additional.event__ClientProcessId do registro bruto. |
additional.event__ClientProcessStartKey | additional.fields.key: eventClientProcessStartKey additional.fields.value.string_value: %{additional.eventClientProcessStartKey} |
Valor extraído diretamente do campo additional.event__ClientProcessStartKey do registro bruto. |
additional.event__CommandLine | target.process.commandline: %{additional.event_CommandLine} | Valor extraído diretamente do campo additional.event__CommandLine do registro bruto. |
additional.event__ElevatedToken | additional.fields.key: event__ElevatedToken additional.fields.value.string_value: Yes/No |
Valor extraído diretamente do campo de registro bruto additional.event__ElevatedToken .Se o valor for "%%1842", ele será substituído por "Sim". Se o valor for "%%1843", ele será substituído por "Não". |
additional.event__FQDN | principal.hostname: %{additional.event__FQDN} | Valor extraído diretamente do campo additional.event__FQDN do registro bruto. |
additional.event__FailureReason | additional.fields.key: eventFailureReason additional.fields.value.string_value: %{additional.eventFailureReason} |
Valor extraído diretamente do campo additional.event__FailureReason do registro bruto. |
additional.event__ImpersonationLevel | additional.fields.key: eventImpersonationLevel additional.fields.value.string_value: %{additional.eventImpersonationLevel} |
Valor extraído diretamente do campo additional.event__ImpersonationLevel do registro bruto. |
additional.event__IpAddress | target.ip: %{additional.event__IpAddress} | Valor extraído diretamente do campo additional.event__IpAddress do registro bruto. |
additional.event__IpPort | target.port: %{additional.event__IpPort} | Valor extraído diretamente do campo de registro bruto additional.event__IpPort e convertido em um número inteiro. |
additional.event__KeyLength | additional.fields.key: eventKeyLength additional.fields.value.string_value: %{additional.eventKeyLength} |
Valor extraído diretamente do campo additional.event__KeyLength do registro bruto. |
additional.event__KeyName | additional.fields.key: eventKeyName additional.fields.value.string_value: %{additional.eventKeyName} |
Valor extraído diretamente do campo additional.event__KeyName do registro bruto. |
additional.event__KeyType | additional.fields.key: eventKeyType additional.fields.value.string_value: %{additional.eventKeyType} |
Valor extraído diretamente do campo additional.event__KeyType do registro bruto. |
additional.event__LmPackageName | additional.fields.key: eventLmPackageName additional.fields.value.string_value: %{additional.eventLmPackageName} |
Valor extraído diretamente do campo additional.event__LmPackageName do registro bruto. |
additional.event__LogonGuid | target.resource.product_objectid: %{additional.event_LogonGuid} | Valor extraído diretamente do campo de registro bruto additional.event__LogonGuid com chaves removidas. |
additional.event__LogonProcessName | target.process.file.fullpath: %{additional.event_LogonProcessName} | Valor extraído diretamente do campo additional.event__LogonProcessName do registro bruto. |
additional.event__LogonType | extensions.auth.authdetails: Logon Type: %{additional.event_LogonType} | Valor extraído diretamente do campo additional.event__LogonType do registro bruto. |
additional.event__MandatoryLabel | additional.fields.key: eventMandatoryLabel additional.fields.value.string_value: %{additional.eventMandatoryLabel} |
Valor extraído diretamente do campo additional.event__MandatoryLabel do registro bruto. |
additional.event__NewProcessId | target.process.pid: %{additional.event__NewProcessId} | Valor extraído diretamente do campo additional.event__NewProcessId do registro bruto. |
additional.event__NewProcessName | target.process.file.fullpath: %{additional.event_NewProcessName} | Valor extraído diretamente do campo additional.event__NewProcessName do registro bruto. |
additional.event__ObjectServer | security_result.categorydetails: %{additional.event_ObjectServer} | Valor extraído diretamente do campo additional.event__ObjectServer do registro bruto. |
additional.event__Operation | additional.fields.key: eventOperation additional.fields.value.string_value: %{additional.eventOperation} |
Valor extraído diretamente do campo additional.event__Operation do registro bruto. |
additional.event__ParentProcessId | principal.process.parentprocess.pid: %{additional.event_ParentProcessId} | Valor extraído diretamente do campo additional.event__ParentProcessId do registro bruto. |
additional.event__ParentProcessName | principal.process.parent_process.file.fullpath: %{additional.event_ParentProcessName} | Valor extraído diretamente do campo additional.event__ParentProcessName do registro bruto. |
additional.event__ProcessId | principal.process.pid: %{additional.event__ProcessId} | Valor extraído diretamente do campo additional.event__ProcessId do registro bruto. |
additional.event__ProcessName | principal.process.file.fullpath: %{additional.event_ProcessName} | Valor extraído diretamente do campo additional.event__ProcessName do registro bruto. |
additional.event__PrivilegeList | principal.user.attribute.permissions.name: %{additional.event__PrivilegeList} | Valor extraído diretamente do campo additional.event__PrivilegeList do registro bruto. |
additional.event__ProviderName | additional.fields.key: eventProviderName additional.fields.value.string_value: %{additional.eventProviderName} |
Valor extraído diretamente do campo additional.event__ProviderName do registro bruto. |
additional.event__RestrictedAdminMode | additional.fields.key: eventRestrictedAdminMode additional.fields.value.string_value: %{additional.eventRestrictedAdminMode} |
Valor extraído diretamente do campo additional.event__RestrictedAdminMode do registro bruto. |
additional.event__ReturnCode | additional.fields.key: eventReturnCode additional.fields.value.string_value: %{additional.eventReturnCode} |
Valor extraído diretamente do campo additional.event__ReturnCode do registro bruto. |
additional.event__RpcCallClientLocality | additional.fields.key: eventRpcCallClientLocality additional.fields.value.string_value: %{additional.eventRpcCallClientLocality} |
Valor extraído diretamente do campo additional.event__RpcCallClientLocality do registro bruto. |
additional.event__Service | securityresult.description: %{additional.event_Service} | Valor extraído diretamente do campo additional.event__Service do registro bruto. |
additional.event__Status | additional.fields.key: eventStatus additional.fields.value.string_value: %{additional.eventStatus} |
Valor extraído diretamente do campo additional.event__Status do registro bruto. |
additional.event__SubStatus | additional.fields.key: eventSubStatus additional.fields.value.string_value: %{additional.eventSubStatus} |
Valor extraído diretamente do campo additional.event__SubStatus do registro bruto. |
additional.event__SubjectDomainName | principal.administrativedomain: %{additional.event_SubjectDomainName} | Valor extraído diretamente do campo additional.event__SubjectDomainName do registro bruto. |
additional.event__SubjectLogonId | additional.fields.key: eventSubjectLogonId additional.fields.value.string_value: %{additional.eventSubjectLogonId} |
Valor extraído diretamente do campo additional.event__SubjectLogonId do registro bruto. |
additional.event__SubjectUserName | principal.user.user_displayname: %{additional.event_SubjectUserName} | Valor extraído diretamente do campo additional.event__SubjectUserName do registro bruto. |
additional.event__SubjectUserSid | principal.user.windowssid: %{additional.event_SubjectUserSid} | Valor extraído diretamente do campo additional.event__SubjectUserSid do registro bruto. |
additional.event__TaskContentNew | additional.fields.key: eventTaskContentNew additional.fields.value.string_value: %{additional.eventTaskContentNew} |
Valor extraído diretamente do campo additional.event__TaskContentNew do registro bruto. |
additional.event__TaskName | additional.fields.key: eventTaskName additional.fields.value.string_value: %{additional.eventTaskName} |
Valor extraído diretamente do campo additional.event__TaskName do registro bruto. |
additional.event__TargetDomainName | target.administrativedomain: %{additional.event_TargetDomainName} | Valor extraído diretamente do campo additional.event__TargetDomainName do registro bruto. |
additional.event__TargetLinkedLogonId | additional.fields.key: eventTargetLinkedLogonId additional.fields.value.string_value: %{additional.eventTargetLinkedLogonId} |
Valor extraído diretamente do campo additional.event__TargetLinkedLogonId do registro bruto. |
additional.event__TargetLogonId | additional.fields.key: eventTargetLogonId additional.fields.value.string_value: %{additional.eventTargetLogonId} |
Valor extraído diretamente do campo additional.event__TargetLogonId do registro bruto. |
additional.event__TargetOutboundDomainName | additional.fields.key: eventTargetOutboundDomainName additional.fields.value.string_value: %{additional.eventTargetOutboundDomainName} |
Valor extraído diretamente do campo additional.event__TargetOutboundDomainName do registro bruto. |
additional.event__TargetOutboundUserName | additional.fields.key: eventTargetOutboundUserName additional.fields.value.string_value: %{additional.eventTargetOutboundUserName} |
Valor extraído diretamente do campo additional.event__TargetOutboundUserName do registro bruto. |
additional.event__TargetSid | target.user.windowssid: %{additional.event_TargetSid} | Valor extraído diretamente do campo additional.event__TargetSid do registro bruto. |
additional.event__TargetUserName | target.user.userid: %{additional.event__TargetUserName} | Valor extraído diretamente do campo additional.event__TargetUserName do registro bruto. |
additional.event__TargetUserSid | target.user.windowssid: %{additional.event_TargetUserSid} | Valor extraído diretamente do campo additional.event__TargetUserSid do registro bruto. |
additional.event__TokenElevationType | additional.fields.key: eventTokenElevationType additional.fields.value.string_value: %{additional.eventTokenElevationType} |
Valor extraído diretamente do campo additional.event__TokenElevationType do registro bruto. |
additional.event__TransmittedServices | additional.fields.key: eventTransmittedServices additional.fields.value.string_value: %{additional.eventTransmittedServices} |
Valor extraído diretamente do campo additional.event__TransmittedServices do registro bruto. |
additional.event__VirtualAccount | additional.fields.key: eventVirtualAccount additional.fields.value.string_value: %{additional.eventVirtualAccount} |
Valor extraído diretamente do campo additional.event__VirtualAccount do registro bruto. |
additional.event__WorkstationName | target.hostname: %{additional.event__WorkstationName} | Valor extraído diretamente do campo additional.event__WorkstationName do registro bruto. |
additional.event_id | security_result.rule_name: EventID: %{additional.event_id} | Valor extraído diretamente do campo de registro bruto additional.event_id e convertido em uma string. |
additional.query | network.dns.questions.name: %{additional.query} | Valor extraído diretamente do campo additional.query do registro bruto. |
additional.response | network.dns.answers.name: %{additional.response} | Valor extraído diretamente do campo additional.response do registro bruto. |
metadata.description | metadata.description: %{metadata.description} | Valor extraído diretamente do campo metadata.description do registro bruto. |
metadata.eventTimestamp | metadata.event_timestamp.seconds: Extracted from %{metadata.eventTimestamp} metadata.event_timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Os segundos e nanossegundos são extraídos do campo de registro bruto metadata.eventTimestamp usando a análise de data. |
metadata.eventType | metadata.product_event_type: %{metadata.eventType} metadata.event_type: %{metadata.eventType} |
Valor extraído diretamente do campo metadata.eventType do registro bruto. |
metadata.logType | metadata.product_event_type: %{metadata.logType} metadata.event_type: %{metadata.logType} |
Valor extraído diretamente do campo metadata.logType do registro bruto. |
network.applicationProtocol | network.application_protocol: %{network.applicationProtocol} | Valor extraído diretamente do campo network.applicationProtocol do registro bruto. |
network.direction | network.direction: %{network.direction} | Valor extraído diretamente do campo network.direction do registro bruto. |
network.ipProtocol | network.ip_protocol: %{network.ipProtocol} | Valor extraído diretamente do campo network.ipProtocol do registro bruto. |
principal.assetId | principal.asset_id: TANIUM:%{principal.assetId} | Valor extraído diretamente do campo de registro bruto principal.assetId e com o prefixo "TANIUM:". |
principal.hostname | principal.hostname: %{principal.hostname} | Valor extraído diretamente do campo principal.hostname do registro bruto. |
principal.process.companySpecificParentProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId} | Valor extraído diretamente do campo de registro bruto principal.process.companySpecificParentProcessId e formatado como "TANIUM:%{principal.assetId}:%{principal.process.companySpecificParentProcessId}". |
principal.process.companySpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId} | Valor extraído diretamente do campo de registro bruto principal.process.companySpecificProcessId e formatado como "TANIUM:%{principal.assetId}:%{principal.process.companySpecificProcessId}". |
principal.process.commandLine | target.process.command_line: %{principal.process.commandLine} | Valor extraído diretamente do campo de registro bruto principal.process.commandLine com aspas duplas removidas e hífens substituídos por e comercial. |
principal.process.file.fullPath | target.process.file.full_path: %{principal.process.file.fullPath} | Valor extraído diretamente do campo principal.process.file.fullPath do registro bruto. |
principal.process.file.md5 | target.process.file.md5: %{principal.process.file.md5} | Valor extraído diretamente do campo de registro bruto principal.process.file.md5 e convertido para minúsculas. |
principal.process.parentPid | principal.process.pid: %{principal.process.parentPid} | Valor extraído diretamente do campo de registro bruto principal.process.parentPid apenas para eventos PROCESS_LAUNCH . |
principal.process.pid | target.process.pid: %{principal.process.pid} | Valor extraído diretamente do campo de registro bruto principal.process.pid apenas para eventos PROCESS_LAUNCH . |
principal.process.productSpecificProcessId | principal.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Valor extraído diretamente do campo principal.process.productSpecificProcessId do registro bruto e formatado como "TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}". |
principal.user.groupid | principal.user.group_identifiers: %{principal.user.groupid} | Valor extraído diretamente do campo principal.user.groupid do registro bruto. |
principal.user.userid | principal.user.userid: %{principal.user.userid} | Valor extraído diretamente do campo principal.user.userid do registro bruto. |
src.ip | principal.ip: %{src.ip} | Valor extraído diretamente do campo src.ip do registro bruto. |
src.port | principal.port: %{src.port} | Valor extraído diretamente do campo de registro bruto src.port e convertido em um número inteiro. |
target.file.fullPath | target.file.full_path: %{target.file.fullPath} | Valor extraído diretamente do campo target.file.fullPath do registro bruto. |
target.file.md5 | target.file.md5: %{target.file.md5} | Valor extraído diretamente do campo target.file.md5 do registro bruto. |
target.port | target.port: %{target.port} | Valor extraído diretamente do campo de registro bruto target.port e convertido em um número inteiro. |
target.registry.registryKey | target.registry.registry_key: %{target.registry.registryKey} | Valor extraído diretamente do campo target.registry.registryKey do registro bruto. |
target.registry.registryValue | target.registry.registry_value_data: %{target.registry.registryValue} | Valor extraído diretamente do campo target.registry.registryValue do registro bruto. |
target.user.userDisplayName | target.user.user_display_name: %{target.user.userDisplayName} | Valor extraído diretamente do campo target.user.userDisplayName do registro bruto. |
target.user.windowsSid | target.user.windows_sid: %{target.user.windowsSid} | Valor extraído diretamente do campo target.user.windowsSid do registro bruto. |
user-agent | network.http.user_agent: %{user-agent} | Valor extraído diretamente do campo de registro bruto user-agent com aspas duplas removidas. |
N/A | extensions.auth.auth_mechanism: LOCAL/NETWORK/BATCH/SERVICE/UNLOCK/NETWORK_CLEAR_TEXT/NEW_CREDENTIALS/REMOTE_INTERACTIVE/CACHED_INTERACTIVE/MECHANISM_UNSPECIFIED | Determinado pelo código do analisador com base no valor de additional.event__LogonType . |
N/A | extensions.auth.type: MACHINE | Adicionado pelo código do analisador para eventos USER_LOGIN e USER_LOGOUT . |
N/A | metadata.event_type: PROCESS_LAUNCH/NETWORK_CONNECTION/FILE_OPEN/FILE_DELETION/REGISTRY_MODIFICATION/USER_LOGIN/STATUS_UPDATE/USER_LOGOUT/PROCESS_MODULE_LOAD/PROCESS_TERMINATION/USER_CHANGE_PERMISSIONS/SCHEDULED_TASK_MODIFICATION/SCHEDULED_TASK_DISABLE/SCHEDULED_TASK_ENABLE/SCHEDULED_TASK_DELETION/SCHEDULED_TASK_CREATION/PROCESS_UNCATEGORIZED | Determinado pelo código do analisador com base no valor de metadata.logType e additional.event_id . |
N/A | metadata.log_type: TANIUM_TH | Valor codificado adicionado pelo código do analisador. |
N/A | metadata.product_name: Stream | Valor codificado adicionado pelo código do analisador. |
N/A | metadata.vendor_name: Tanium | Valor codificado adicionado pelo código do analisador. |
N/A | principal.hostname: %{principal_hostname} | Valor extraído de principal.hostname ou additional.event__FQDN . |
N/A | principal.ip: %{srcIp} | Extraído da mensagem de registro bruta usando grok se src.ip estiver presente. |
N/A | securityresult.about.resource.name: %{additional.event_AuthenticationPackageName} | Valor extraído diretamente do campo de registro bruto additional.event__AuthenticationPackageName para valores additional.event_id específicos. |
N/A | security_result.category: AUTH_VIOLATION | Adicionado pelo código do analisador para valores específicos de additional.event_id . |
N/A | security_result.rule_name: EventID: %{additional.event_id} | Valor extraído diretamente do campo de registro bruto additional.event_id e convertido em uma string. |
N/A | target.hostname: %{query_host} | Extraído do campo de registro bruto additional.query se ele contiver um nome de host. |
N/A | target.ip: %{dstIp} | Extraído da mensagem de registro bruta usando grok se src.ip estiver presente. |
N/A | target.ip: %{query_ip} | Extraído do campo de registro bruto additional.query se ele contiver um endereço IP. |
N/A | target.process.command_line: %{principal_process_commandLine} | Valor extraído de principal.process.commandLine se não estiver vazio. |
N/A | target.process.file.full_path: %{principal_process_file_fullPath} | Valor extraído de principal.process.file.fullPath se não estiver vazio. |
N/A | target.process.file.md5: %{principal_process_file_md5} | Valor extraído de principal.process.file.md5 se não estiver vazio. |
N/A | target.process.product_specific_process_id: TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId} | Valor extraído de principal.process.productSpecificProcessId e formatado como "TANIUM:%{principal.assetId}:%{principal.process.productSpecificProcessId}". |
N/A | target.resource.resource_type: TASK | Adicionado pelo código do analisador para valores específicos de additional.event_id . |
N/A | timestamp.seconds: Extracted from %{metadata.eventTimestamp} timestamp.nanos: Extracted from %{metadata.eventTimestamp} |
Os segundos e nanossegundos são extraídos do campo de registro bruto metadata.eventTimestamp usando a análise de data. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.