Coletar registros de DDI do BlueCat
Esse analisador processa mensagens syslog formatadas por LEEF e não-LEEF do Bluecat DDI (DNS, DHCP, IPAM). Ele extrai campos de vários tipos de registro (por exemplo, named, dhcpd, audit e CRON) usando padrões grok e lógica condicional, mapeando-os para a UDM com base no tipo de registro e preenchendo campos DNS, DHCP ou relacionados ao usuário.
Antes de começar
- Verifique se você tem uma instância do Google Security Operations.
- Verifique se você está usando o Windows 2016 ou uma versão mais recente ou um host Linux com systemd.
- Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Verifique se você tem acesso privilegiado ao Bluecat.
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.
- Faça o download do arquivo de autenticação de transferência.
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
- Para a instalação do Windows, execute o seguinte script:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Para a instalação do Linux, execute o seguinte script:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Outras opções de instalação podem ser encontradas neste guia de instalação.
Configurar o agente BindPlane para ingerir o Syslog e enviar ao Google SecOps
- Acesse a máquina em que o BindPlane está instalado.
Edite o arquivo
config.yaml
da seguinte forma:receivers: tcplog: # Replace the below port <54525> and IP <0.0.0.0> with your specific values listen_address: "0.0.0.0:54525" exporters: chronicle/chronicle_w_labels: compression: gzip # Adjust the creds location below according the placement of the credentials file you downloaded creds: '{ json file for creds }' # Replace <customer_id> below with your actual ID that you copied customer_id: <customer_id> endpoint: malachiteingestion-pa.googleapis.com # You can apply ingestion labels below as preferred ingestion_labels: log_type: SYSLOG namespace: bluceat_ddi raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Reinicie o agente do BindPlane para aplicar as mudanças:
sudo systemctl restart bindplane
Configurar o Syslog no Bluecat DDI
- Faça login no Bluecat Address Manager (BAM).
- No menu Configuração, selecione uma configuração.
- Selecione a guia Servidores.
- Em Servidores, clique no nome de um BDDS.
- A guia Detalhes do servidor será aberta.
- Clique no menu nome do servidor.
- Selecione Configuração do serviço.
- Clique em Tipo de serviço > Syslog. O Gerenciador de endereços consulta o servidor e retorna os valores atuais.
- Em Geral, defina os seguintes valores:
- Servidor Syslog: o endereço IP do servidor Syslog (Bindplane).
- Porta Syslog: a porta do servidor Syslog (Bindplane).
- Transporte de Syslog: selecione TCP ou UDP (dependendo da configuração do Bindplane).
- Clique em Adicionar.
- O servidor syslog recém-adicionado vai aparecer na lista.
- Clique em Atualizar.
Definir as configurações do Syslog no BlueCat DDI
- Faça login no Gerenciador de endereços do BlueCat.
- Acesse Configuração > Configurações do sistema > Registro.
- Nas Configurações de geração de registros, localize a seção Servidor Syslog.
- Clique em Adicionar servidor Syslog.
- Informe os valores necessários:
- Nome do servidor: um nome exclusivo para o servidor syslog (por exemplo, BindplaneServer).
- Endereço IP: o endereço IP ou o nome do host do servidor syslog.
- Protocolo: selecione TCP, UDP (padrão) ou TLS (com base na configuração do syslog).
- Porta: especifique a porta para a comunicação syslog (padrão: 514 para UDP/TCP, 6514 para TLS).
- Configure o nível de registro. Escolha o nível adequado com base nas suas necessidades. As opções incluem:
- Emergência: problemas críticos que exigem atenção imediata
- Alerta: alertas que exigem uma ação imediata
- Crítico: condições críticas
- Erro: eventos de erro
- Aviso: eventos de aviso
- Aviso: eventos normais, mas significativos
- Info: mensagens informativas
- Depuração: informações detalhadas de depuração
- Opcional: adicione uma instalação Syslog personalizada para categorizar logs (por exemplo, local0 ou local1).
- Salve a configuração.
Aplicar configurações de Syslog a dispositivos DDI
- Acesse Servidores > Gerenciar servidores.
- Selecione os servidores DNS/DHCP em que o syslog precisa ser ativado.
- Clique em Editar servidor.
- Na seção Registro:
- Selecione o servidor syslog que você configurou anteriormente.
- Ative a geração de registros para serviços específicos (por exemplo, consultas DNS ou aluguéis DHCP).
- Salve as alterações.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento de UDM | Lógica |
---|---|---|
client_ip |
network.dhcp.ciaddr |
Extraídos da mensagem DHCPREQUEST. Preenchido apenas para mensagens DHCPREQUEST. |
client_mac |
principal.mac |
Extraídos de mensagens DHCP (DHCPDISCOVER, DHCPREQUEST, DHCPRELEASE). |
client_mac |
target.mac |
Extraídos de mensagens DHCP (DHCPOFFER, DHCPNAK). |
client_mac |
network.dhcp.chaddr |
Extraídos de mensagens DHCP (DHCPREQUEST, DHCPOFFER, DHCPACK, DHCPNAK, DHCPRELEASE). |
cmd |
target.process.command_line |
Extraídos dos registros do CRON. As letras & e os espaços são removidos. |
description |
metadata.description |
Extraídos de vários tipos de registro, fornecendo mais contexto. |
description |
metadata.description |
Extraídos dos registros do syslog-ng, fornecendo mais contexto. |
file_path |
target.file.full_path |
Extraídos de vários tipos de registro, representando o caminho completo de um arquivo. |
file_path |
target.process.file.full_path |
Extraídos dos registros do agetty, representando o caminho completo para um arquivo relacionado a um processo. |
inner_message |
metadata.description |
É usado como a descrição de GENERIC_EVENTs quando o tipo de operação não está definido e para registros MEM-MON. |
metadata.event_type |
Determinado pelo analisador com base no tipo e no conteúdo do registro. Os valores possíveis incluem: NETWORK_DNS, NETWORK_DHCP, USER_LOGIN, USER_LOGOUT, USER_UNCATEGORIZED, GENERIC_EVENT, STATUS_UPDATE, NETWORK_CONNECTION. Sempre "BLUECAT_DDI". | |
metadata.vendor_name |
Sempre "Bluecat Networks". | |
metadata.product_name |
Sempre "Bluecat DDI". | |
metadata.event_timestamp |
Copiado do carimbo de data/hora analisado da entrada de registro. | |
network.protocol |
Defina como "DNS" para logs DNS e "DHCP" para logs DHCP. | |
network.dns.answers |
Uma matriz que contém registros de resposta. O campo data em answers é preenchido com target_ip , se presente. |
|
network.dns.questions |
Uma matriz que contém registros de perguntas. O campo name é preenchido com target_host , o campo type é derivado dos campos query_type ou question_type , e o campo class é derivado do campo qclass . |
|
network.dns.recursive |
Defina como "true" se o rec_flag for "+". |
|
qclass |
network.dns.questions.class |
Extraídos dos registros de consulta do DNS e mapeados para um valor inteiro usando o arquivo dns_query_class_mapping.include . |
query_type |
network.dns.questions.type |
Extraídos dos registros de consulta do DNS e mapeados para um valor inteiro usando o arquivo dhcp_qtype_mapping.include . |
relay_ip |
intermediary.ip |
Extraídos dos registros de DNS e DHCP, representando o endereço IP de um servidor intermediário ou de retransmissão. |
server_host |
target.hostname |
Extraídos de vários tipos de registro, representando o nome do host do servidor. |
server_host |
network.dhcp.sname |
Extraídos dos registros DHCP, representando o nome do host do servidor. |
server_host |
principal.hostname |
Extraídos do systemd, agetty e alguns registros de auditoria, representando o nome do host do principal. |
server_ip |
target.ip |
Extraídos de registros formatados em LEEF, que representam o endereço IP do servidor. |
src_ip |
principal.ip |
Extraídos de vários tipos de registro, representando o endereço IP de origem. |
src_ip |
network.dhcp.yiaddr |
Usado em mensagens DHCPINFORM para preencher o campo yiaddr. |
src_port |
principal.port |
Extraídos de vários tipos de registro, representando a porta de origem. |
src_user |
principal.user.userid |
Extraídos de CRON e registros de auditoria, representando o ID do usuário. |
target_host |
target.hostname |
Extraídos de vários tipos de registro, representando o nome de host de destino. |
target_host |
network.dns.questions.name |
Usado em registros DNS para preencher o nome da pergunta. |
target_ip |
target.ip |
Extraídos de vários tipos de registro, representando o endereço IP de destino. |
target_ip |
network.dhcp.ciaddr |
Usado em mensagens BOOTREQUEST para preencher o campo ciaddr. |
target_ip |
network.dns.answers.data |
Usado em registros DNS para preencher os dados de resposta. |
tgt_port |
target.port |
Extraídos dos registros do syslog-ng, representando a porta de destino. |
Alterações
2022-11-08
- O grok foi adicionado para registros recém-ingeridos de log_type: "agetty", "syslog-ng", "systemd".
- Adição de padrão grok para log_type: "named", "systemd", "CRON", "agetty", "syslog-ng" e os respectivos mapeamentos para os campos no log_type mencionado acima.
2022-09-01
- A
event_type
foi modificada de "GENERIC_EVENT" para "USER_UNCATEGORIZED" para reduzir a porcentagem genérica.
2022-08-16
- Mapeamento de UDM adicionado
metadata.vendor_name
para "Bluecat Networks"metadata.product_name
para "Bluecat DDI"
2022-05-05
- Foram adicionadas verificações para o campo
query_type
.