Coletar registros de recursos do Tanium
Este documento explica como ingerir registros de recursos do Tanium no Google Security Operations usando dois métodos diferentes. Você pode escolher entre a exportação nativa do Amazon S3 do Tanium Connect ou o encaminhamento de syslog em tempo real via Bindplane. Os dois métodos usam o módulo Tanium Connect para extrair dados de recursos do Tanium e encaminhá-los ao Chronicle para análise e monitoramento. O analisador transforma registros brutos em um formato estruturado de acordo com o UDM do Chronicle. Para isso, primeiro ele normaliza os pares de chave-valor de vários formatos de entrada (JSON, Syslog) e depois mapeia os campos extraídos para os atributos correspondentes da UDM em objetos JSON aninhados que representam entidades de recurso, usuário e relacionamento.
Antes de começar
Verifique se você tem os pré-requisitos a seguir:
- Uma instância do Google SecOps
- Acesso privilegiado ao console do Tanium (módulo Connect) para configurar destinos de exportação
- Escolha seu método de integração preferido:
- Opção 1 (recomendada): acesso privilegiado à AWS (S3, IAM) para exportação nativa do S3
- Opção 2: Windows 2016 ou mais recente ou um host Linux com
systemd
para a instalação do agente Bindplane
Opção 1: configurar a exportação de registros de recursos do Tanium usando o AWS S3
Criar um bucket do Amazon S3
- 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-asset-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 Tanium Connect para exportação do S3
- Faça login no Tanium Console com privilégios de administrador.
- Acesse Módulos > Conectar > Visão geral e clique em Criar conexão.
- Clique em Criar.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome descritivo. Por exemplo,
Google SecOps Asset S3 Export
. - Descrição: descrição opcional para essa conexão.
- Ativar: selecione Ativar para executar em uma programação.
- Nome: insira um nome descritivo. Por exemplo,
- Clique em Próxima.
- Na configuração de Origem:
- Origem: selecione Pergunta salva.
- Pergunta: escolha uma pergunta salva que retorne dados de recursos ou crie uma com sensores relacionados a recursos (por exemplo, nome do computador, endereço IP, plataforma do SO, domínio).
- Grupo de computadores: selecione o grupo de computadores para segmentar a coleta de dados de recursos.
- Clique em Próxima.
- Na configuração de Destino:
- Destino: escolha AWS S3.
- Nome: insira um nome de destino (por exemplo,
Chronicle Asset S3
). - ID da chave de acesso da AWS: insira o ID da chave de acesso do usuário do IAM.
- Chave de acesso secreta da AWS: insira a chave de acesso secreta do usuário do IAM.
- Nome do bucket do S3:
tanium-asset-logs
. - Prefixo da chave do S3:
tanium/assets/
(prefixo opcional para a organização). - Região: selecione a região da AWS em que o bucket do S3 está localizado.
- Clique em Próxima.
- Na configuração Formatação:
- Formato: selecione JSON para exportar dados estruturados.
- Colunas: selecione os campos de recurso que você quer exportar e formate-os adequadamente.
- Clique em Próxima.
- Na configuração Programação:
- Programação: configure a programação de entrega (por exemplo, a cada hora ou diariamente).
- Data/hora de início: defina quando a conexão deve começar a ser executada.
- Clique em Salvar para criar a conexão e iniciar a exportação automatizada do S3.
Opcional: criar um usuário e chaves do IAM somente leitura para o Google SecOps
- Acesse Console da AWS > IAM > Usuários > Adicionar usuários.
- Clique em Add users.
- Informe os seguintes detalhes de configuração:
- Usuário: insira
secops-reader
. - Tipo de acesso: selecione Chave de acesso – Acesso programático.
- Usuário: insira
- Clique em Criar usuário.
- Anexe a política de leitura mínima (personalizada): Usuários > secops-reader > Permissões > Adicionar permissões > Anexar políticas diretamente > Criar política.
No editor JSON, insira a seguinte política:
{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": ["s3:GetObject"], "Resource": "arn:aws:s3:::tanium-asset-logs/*" }, { "Effect": "Allow", "Action": ["s3:ListBucket"], "Resource": "arn:aws:s3:::tanium-asset-logs" } ] }
Defina o nome como
secops-reader-policy
.Acesse Criar política > pesquise/selecione > Próxima > Adicionar permissões.
Acesse Credenciais de segurança > Chaves de acesso > Criar chave de acesso.
Faça o download do CSV (esses valores são inseridos no feed).
Configurar um feed no Google SecOps para ingerir registros de recursos do Tanium
- 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 Asset logs
). - Selecione Amazon S3 V2 como o Tipo de origem.
- Selecione Ativo do Tanium como o Tipo de registro.
- Clique em Próxima.
- Especifique valores para os seguintes parâmetros de entrada:
- URI do S3:
s3://tanium-asset-logs/tanium/assets/
- 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.
Opção 2: configurar a exportação de registros de recursos do Tanium usando syslog e Bindplane
Receber o arquivo de autenticação de ingestão do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Agentes de coleta.
- Baixe o arquivo de autenticação de ingestão. Salve o arquivo de forma segura no sistema em que o Bindplane será instalado.
Receber o ID de cliente do Google SecOps
- Faça login no console do Google SecOps.
- Acesse Configurações do SIEM > Perfil.
- Copie e salve o ID do cliente na seção Detalhes da organização.
Instalar o agente do Bindplane
Instale o agente do Bindplane no seu sistema operacional Windows ou Linux de acordo com as instruções a seguir.
Instalação do Windows
- Abra o Prompt de Comando ou o PowerShell como administrador.
Execute este comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Instalação do Linux
- Abra um terminal com privilégios de root ou sudo.
Execute este comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Outros recursos de instalação
- Para mais opções de instalação, consulte este guia de instalação.
Configurar o agente do Bindplane para ingerir o Syslog e enviar ao Google SecOps
Acesse o arquivo de configuração:
- Localize o arquivo
config.yaml
. Normalmente, ele fica no diretório/etc/bindplane-agent/
no Linux ou no diretório de instalação no Windows. - Abra o arquivo usando um editor de texto (por exemplo,
nano
,vi
ou Bloco de Notas).
- Localize o arquivo
Edite o arquivo
config.yaml
da seguinte forma:receivers: udplog: # Replace the port and IP address as required listen_address: "0.0.0.0:514" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the path to the credentials file you downloaded in Step 1 creds_file_path: '/path/to/ingestion-authentication-file.json' # Replace with your actual customer ID from Step 2 customer_id: <PLACEHOLDER_CUSTOMER_ID> endpoint: malachiteingestion-pa.googleapis.com # Add optional ingestion labels for better organization log_type: 'TANIUM_ASSET' raw_log_field: body ingestion_labels: service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - udplog exporters: - chronicle/chronicle_w_labels
- Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.
- Substitua
<PLACEHOLDER_CUSTOMER_ID>
pelo ID do cliente real. - Atualize
/path/to/ingestion-authentication-file.json
para o caminho em que o arquivo de autenticação foi salvo na seção Receber arquivo de autenticação de ingestão do Google SecOps.
Reinicie o agente do Bindplane para aplicar as mudanças
Para reiniciar o agente do Bindplane no Linux, execute o seguinte comando:
sudo systemctl restart bindplane-agent
Para reiniciar o agente do Bindplane no Windows, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurar o encaminhamento do Syslog no recurso do Tanium
- Faça login no Tanium Console com privilégios de administrador.
- Acesse Módulos > Conectar > Visão geral e clique em Criar conexão.
- Clique em Criar.
- Informe os seguintes detalhes de configuração:
- Nome: insira um nome descritivo. Por exemplo,
Google SecOps Asset Integration
. - Descrição: descrição opcional para essa conexão.
- Ativar: selecione Ativar para executar em uma programação.
- Nome: insira um nome descritivo. Por exemplo,
- Clique em Próxima.
- Na configuração de Origem:
- Origem: selecione Pergunta salva.
- Pergunta: escolha uma pergunta salva que retorne dados de recursos ou crie uma com sensores relacionados a recursos.
- Grupo de computadores: selecione o grupo de computadores para segmentar a coleta de dados de recursos.
- Clique em Próxima.
- Na configuração de Destino:
- Destino: escolha SIEM/Syslog.
- Nome: insira um nome de destino (por exemplo,
Chronicle Asset Syslog
). - Host: insira o endereço IP do agente do BindPlane.
- Porta: insira o número da porta do agente do BindPlane (por exemplo,
514
). - Protocolo: selecione UDP.
- Formato: selecione SYSLOG RFC 5424.
- Fuso horário: selecione o fuso horário UTC para ter consistência universal em todos os sistemas.
- Clique em Próxima.
- Na configuração Formatação:
- Formato: selecione JSON.
- Colunas: selecione os campos de recursos que você quer encaminhar (por exemplo, nome do computador, endereço IP, plataforma do SO, domínio).
- Clique em Próxima.
- Na configuração Programação:
- Programação: configure a programação de entrega (por exemplo, a cada hora).
- Data/hora de início: defina quando a conexão deve começar a ser executada.
- Clique em Salvar para criar a conexão e iniciar o encaminhamento.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
application_name | entity.metadata.source_labels.value | O valor é extraído do campo "application_name", se ele existir no registro bruto. |
application_vendor | entity.metadata.source_labels.value | O valor é extraído do campo "application_vendor", se ele existir no registro bruto. |
application_version | entity.metadata.product_version | O valor é extraído do campo "application_version", se ele existir no registro bruto. |
BIOS_Current_Language | entity.metadata.source_labels.value | O valor é extraído do campo "BIOS_Current_Language", se ele existir no registro bruto. |
BIOS_Release_Date | entity.metadata.source_labels.value | O valor é extraído do campo "BIOS_Release_Date" se ele existir no registro bruto. |
BIOS_Vendor | entity.metadata.source_labels.value | O valor é extraído do campo "BIOS_Vendor" se ele existir no registro bruto. |
BIOS_Version | entity.metadata.product_version | O valor é extraído do campo "BIOS_Version", se ele existir no registro bruto. |
Tipo de chassi | entity.entity.asset.category | O valor é extraído do campo "Tipo de chassi", se ele existir no registro bruto. |
ID do computador | entity.entity.asset.product_object_id | O valor é extraído do campo "ID do computador", se ele existir no registro bruto. Também usado para preencher entity.relations.entity.asset.asset_id com o prefixo "id: ". |
Nome do computador | entity.entity.asset.hostname | O valor é extraído do campo "Nome do computador", se ele existir no registro bruto. |
Contagem | entity.metadata.source_labels.value | O valor é extraído do campo "Count" (Contagem), se ele existir no registro bruto. |
Impressão digital do endpoint | entity.entity.asset.hardware.serial_number | O valor é extraído do campo "Endpoint Fingerprint" (Impressão digital do endpoint), se ele existir no registro bruto. |
Endereço IP | entity.entity.asset.ip | Os valores são extraídos do campo "Endereço IP" e adicionados como endereços IP separados à matriz. |
Último usuário conectado | entity.relations.entity.user.userid | O valor é extraído do campo "Último usuário conectado", com a remoção de qualquer prefixo de domínio, se ele existir no registro bruto. |
Última reinicialização | entity.entity.asset.last_boot_time | O valor é analisado no campo "Última reinicialização" e formatado como um carimbo de data/hora, se existir no registro bruto. |
Endereço MAC | entity.entity.asset.mac | Os valores são extraídos do campo "Endereço MAC" e adicionados como endereços MAC separados à matriz. |
Fabricante | entity.entity.asset.hardware.manufacturer | O valor é extraído do campo "Fabricante", se ele existir no registro bruto. |
Sistema operacional | entity.entity.asset.platform_software.platform_version | O valor é extraído do campo "Sistema operacional", se ele existir no registro bruto. Usado para determinar o valor de entity.entity.asset.platform_software.platform (WINDOWS, LINUX ou MAC). |
plataforma | entity.entity.asset.platform_software.platform_version | O valor é extraído do campo "platform" (plataforma), se ele existir no registro bruto. Usado para determinar o valor de entity.entity.asset.platform_software.platform (WINDOWS, LINUX ou MAC). |
serial_number | entity.entity.asset.hardware.serial_number | O valor é extraído do campo "serial_number" se ele existir no registro bruto. |
version | entity.entity.asset.platform_software.platform_version | O valor é extraído do campo "version" (versão), se ele existir no registro bruto. Usado para determinar o valor de entity.entity.asset.platform_software.platform (WINDOWS, LINUX ou MAC). |
N/A | entity.metadata.collected_timestamp | Definido como o create_time do lote. |
N/A | entity.metadata.vendor_name | Sempre definido como "TANIUM_ASSET". |
N/A | entity.metadata.product_name | Sempre definido como "TANIUM_ASSET". |
N/A | entity.metadata.entity_type | Sempre definido como "ASSET". |
N/A | entity.relations.entity_type | Sempre definido como "USER". |
N/A | entity.relations.relationship | Sempre definido como "OWNS". |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.