Recolha registos do VMware Networking and Security Virtualization (NSX) Manager
Este documento descreve como pode recolher os registos do VMware Networking and Security Virtualization (NSX) Manager. O analisador extrai campos através de vários padrões grok com base no formato da mensagem. Em seguida, realiza a análise de chave/valor, a análise JSON e a lógica condicional para mapear os campos extraídos para o UDM, processando diferentes formatos de registo e enriquecendo os dados com contexto adicional.
Antes de começar
- Certifique-se de que tem uma instância do Google Security Operations.
- Certifique-se de que está a usar o Windows 2016 ou posterior, ou um anfitrião Linux com
systemd
. - Se estiver a executar o serviço através de um proxy, certifique-se de que as portas da firewall estão abertas.
- Certifique-se de que tem acesso administrativo ao VMWare NSX.
Obtenha o ficheiro de autenticação de carregamento do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Agentes de recolha.
- Transfira o ficheiro de autenticação de carregamento. Guarde o ficheiro de forma segura no sistema onde o agente do Bindplane vai ser instalado.
Obtenha o ID de cliente do Google SecOps
- Inicie sessão na consola Google SecOps.
- Aceda a Definições do SIEM > Perfil.
- Copie e guarde o ID do cliente da secção Detalhes da organização.
Instale o agente do Bindplane
Instalação do Windows
- Abra a Linha de comandos ou o PowerShell como administrador.
Execute o seguinte 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 raiz ou sudo.
Execute o seguinte comando:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Recursos de instalação adicionais
- Para ver opções de instalação adicionais, consulte este guia de instalação.
Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps
Aceda ao ficheiro de configuração:
- Localize o ficheiro
config.yaml
. Normalmente, encontra-se no diretório/etc/bindplane-agent/
no Linux ou no diretório de instalação no Windows. - Abra o ficheiro com um editor de texto (por exemplo,
nano
,vi
ou Bloco de notas).
- Localize o ficheiro
Edite o ficheiro
config.yaml
da seguinte forma:receivers: udplog: # 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: vmware_nsx raw_log_field: body 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
<customer_id>
pelo ID de cliente real.Atualize
/path/to/ingestion-authentication-file.json
para o caminho onde o ficheiro de autenticação foi guardado na secção Obtenha o ficheiro de autenticação de carregamento do Google SecOps.
Reinicie o agente do Bindplane para aplicar as alterações
No Linux, para reiniciar o agente Bindplane, execute o seguinte comando:
sudo systemctl restart bindplane-agent
No Windows, para reiniciar o agente Bindplane, pode usar a consola Serviços ou introduzir o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configuração do Syslog para o NSX Edge
- Inicie sessão no vSphere Web Client.
- Aceda a Redes e segurança > NSX Edges.
- Selecione a instância específica do NSX Edge que quer configurar.
- Aceda a Definições de Syslog:
- Para o NSX 6.4.4 e posterior:
- Aceda a Gerir > Definições > Definições do dispositivo.
- Clique em Definições > Alterar configuração do Syslog.
- Para o NSX 6.4.3 e anteriores:
- Aceda a Gerir > Definições > Configuração.
- Na caixa de diálogo Detalhes, clique em Alterar.
- Para o NSX 6.4.4 e posterior:
- Configure os detalhes do servidor Syslog:
- Servidor: introduza o endereço IP ou o nome de anfitrião do servidor Syslog (Bindplane).
- Protocolo: selecione UDP ou TCP (consoante a configuração do Bindplane).
- Porta: introduza o número da porta (consoante a configuração do Bindplane).
- Clique em OK para guardar as definições.
Configuração do Syslog para o NSX Manager
- Inicie sessão na interface Web do NSX Manager com as credenciais de administrador da seguinte forma:
https://<NSX-Manager-IP>
ouhttps://<NSX-Manager-Hostname>
.
- Aceda a Gerir definições do dispositivo > Geral.
- Clique em Editar para configurar as definições do servidor Syslog.
- Introduza os detalhes do servidor Syslog:
- Servidor: introduza o endereço IP ou o nome de anfitrião do servidor Syslog (Bindplane).
- Protocolo: selecione UDP ou TCP (consoante a configuração do Bindplane).
- Porta: introduza o número da porta (consoante a configuração do Bindplane).
- Clique em OK para guardar as definições.
Configuração do Syslog para o controlador NSX
- Inicie sessão no vSphere Web Client.
- Aceda a Redes e segurança > Instalação e atualização > Gestão > Nós do controlador NSX.
- Selecione o NSX Manager que gere os nós do controlador.
- Clique em Edição de atributos do controlador comum.
- Na caixa de diálogo Servidores Syslog, clique em Adicionar:
- Introduza o nome do servidor Syslog ou o endereço IP.
- Selecione o protocolo UDP (consoante a configuração do Bindplane).
- Defina o Nível de registo (por exemplo,
INFO
).
- Clique em OK para guardar as definições.
Tabela de mapeamento da UDM
Campo de registo | Mapeamento de UDM | Lógica |
---|---|---|
DST |
event.idm.read_only_udm.target.ip |
O endereço IP de destino é extraído do campo DST no registo não processado. |
ID |
event.idm.read_only_udm.metadata.product_log_id |
O ID do registo do produto é extraído do campo ID no registo não processado. |
MAC |
event.idm.read_only_udm.principal.mac |
O endereço MAC é extraído do campo MAC no registo não processado. |
ModuleName |
event.idm.read_only_udm.metadata.product_event_type |
O tipo de evento do produto é extraído do campo ModuleName no registo não processado. |
Operation |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
A operação é extraída do campo Operation no registo não processado e adicionada como uma etiqueta com a chave "Operation". |
PROTO |
event.idm.read_only_udm.network.ip_protocol |
O protocolo IP é extraído do campo PROTO no registo não processado. |
RES |
event.idm.read_only_udm.target.resource.name |
O nome do recurso de destino é extraído do campo RES no registo não processado. |
SRC |
event.idm.read_only_udm.principal.ip |
O endereço IP de origem é extraído do campo SRC no registo não processado. |
SPT |
event.idm.read_only_udm.principal.port |
A porta de origem é extraída do campo SPT no registo não processado. |
UserName |
event.idm.read_only_udm.principal.user.userid |
O ID do utilizador é extraído do campo UserName no registo não processado. |
app_type |
event.idm.read_only_udm.principal.application |
A aplicação principal é extraída do campo app_type no registo não processado. |
application |
event.idm.read_only_udm.target.application |
A aplicação de destino é extraída do campo application no registo não processado. |
audit |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor de auditoria é extraído do campo audit no registo não processado e adicionado como uma etiqueta com a chave "audit". |
cancelTimeUTC |
event.idm.read_only_udm.principal.resource.attribute.last_update_time |
A hora da última atualização é derivada do campo cancelTimeUTC no registo não processado. |
client |
event.idm.read_only_udm.principal.ip ou event.idm.read_only_udm.principal.administrative_domain |
Se o campo client for um endereço IP, é mapeado para o IP principal. Caso contrário, é mapeado para o domínio administrativo principal. |
comp |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor do componente é extraído do campo comp no registo não processado e adicionado como uma etiqueta com a chave "Comp". |
datetime |
event.idm.read_only_udm.metadata.event_timestamp |
A data/hora do evento é extraída do campo datetime no registo não processado. |
description |
event.idm.read_only_udm.metadata.description |
A descrição é extraída do campo description no registo não processado. |
details |
event.idm.read_only_udm.principal.resource.attribute.labels |
Os detalhes são extraídos do campo details no registo não processado e adicionados como etiquetas. |
direction |
event.idm.read_only_udm.network.direction |
Se o campo direction for "OUT", é mapeado para "OUTBOUND". |
dst_ip |
event.idm.read_only_udm.target.ip |
O endereço IP de destino é extraído do campo dst_ip no registo não processado. |
DPT |
event.idm.read_only_udm.target.port |
A porta de destino é extraída do campo DPT no registo não processado. |
errorCode |
event.idm.read_only_udm.security_result.detection_fields |
O código de erro é extraído do campo errorCode no registo não processado e adicionado como um campo de deteção. |
eventType |
event.idm.read_only_udm.metadata.product_event_type |
O tipo de evento do produto é extraído do campo eventType no registo não processado. |
filepath |
event.idm.read_only_udm.principal.process.file.full_path |
O caminho do ficheiro é extraído do campo filepath no registo não processado. |
hostname |
event.idm.read_only_udm.principal.ip |
O nome do anfitrião é extraído do campo hostname no registo não processado e, se for um endereço IP, é mapeado para o IP principal. |
kv_data |
Vários campos UDM | Os pares de chave-valor em kv_data são mapeados para vários campos de UDM com base nas respetivas chaves. |
kv_data1 |
Vários campos UDM | Os pares de chave-valor em kv_data1 são mapeados para vários campos de UDM com base nas respetivas chaves. |
kv_data2 |
Vários campos UDM | Os pares de chave-valor em kv_data2 são mapeados para vários campos de UDM com base nas respetivas chaves. |
kv_data3 |
Vários campos UDM | Os pares de chave-valor em kv_data3 são mapeados para vários campos de UDM com base nas respetivas chaves. |
kv_data4 |
Vários campos UDM | Os pares de chave-valor em kv_data4 são mapeados para vários campos de UDM com base nas respetivas chaves. |
level |
event.idm.read_only_udm.security_result.severity |
Se o campo level for "INFO", é mapeado para "INFORMATIONAL". Se for "ERROR", é mapeado para "ERROR". |
managedExternally |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor managedExternally é extraído do campo managedExternally no registo não processado e adicionado como uma etiqueta com a chave "managedExternally". |
message |
Vários campos UDM | O campo de mensagem é analisado para extrair vários campos da UDM. |
message_data |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Os dados da mensagem são extraídos do campo message_data no registo não processado e adicionados como uma etiqueta com a chave "message". |
network_status |
event.idm.read_only_udm.additional.fields |
O estado da rede é extraído do campo network_status no registo não processado e adicionado como um campo adicional com a chave "Network_Connection_Status". |
new_value |
Vários campos event.idm.read_only_udm.target |
O novo valor é extraído do campo new_value no registo não processado e usado para preencher vários campos de destino. |
node |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor do nó é extraído do campo node no registo não processado e adicionado como uma etiqueta com a chave "node". |
old_value |
Vários campos UDM | O valor antigo é extraído do campo old_value no registo não processado e usado para preencher vários campos do UDM. |
payload |
Vários campos UDM | A carga útil é extraída do campo payload no registo não processado e usada para preencher vários campos da UDM. |
pid |
event.idm.read_only_udm.target.process.pid |
O ID do processo é extraído do campo pid no registo não processado. |
reqId |
event.idm.read_only_udm.metadata.product_log_id |
O ID do registo do produto é extraído do campo reqId no registo não processado. |
resourceId |
event.idm.read_only_udm.principal.resource.product_object_id |
O ID do objeto do produto é extraído do campo resourceId no registo não processado. |
s2comp |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor s2comp é extraído do campo s2comp no registo não processado e adicionado como uma etiqueta com a chave "s2comp". |
ses |
event.idm.read_only_udm.network.session_id |
O ID da sessão é extraído do campo ses no registo não processado. |
src_host |
event.idm.read_only_udm.principal.hostname |
O nome de anfitrião principal é extraído do campo src_host no registo não processado. |
src_ip |
event.idm.read_only_udm.principal.ip |
O endereço IP de origem é extraído do campo src_ip no registo não processado. |
src_ip1 |
event.idm.read_only_udm.principal.ip |
O endereço IP de origem é extraído do campo src_ip1 no registo não processado. |
src_port |
event.idm.read_only_udm.principal.port |
A porta de origem é extraída do campo src_port no registo não processado. |
startTimeUTC |
event.idm.read_only_udm.principal.resource.attribute.creation_time |
A hora de criação é derivada do campo startTimeUTC no registo não processado. |
subcomp |
event.idm.read_only_udm.network.application_protocol ou event.idm.read_only_udm.principal.resource.attribute.labels.value |
Se o campo subcomp for "http", é mapeado para "HTTP". Caso contrário, é adicionado como uma etiqueta com a chave "Sub Comp". |
tname |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor tname é extraído do campo tname no registo não processado e adicionado como uma etiqueta com a chave "tname". |
type |
event.idm.read_only_udm.metadata.product_event_type |
O tipo de evento do produto é extraído do campo type no registo não processado. |
uid |
event.idm.read_only_udm.principal.user.userid |
O ID do utilizador é extraído do campo uid no registo não processado. |
update |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor de atualização é extraído do campo update no registo não processado e adicionado como uma etiqueta com a chave "update". |
user |
event.idm.read_only_udm.principal.user.user_display_name |
O nome a apresentar do utilizador é extraído do campo user no registo não processado. |
vmw_cluster |
event.idm.read_only_udm.target.resource.name |
O nome do recurso de destino é extraído do campo vmw_cluster no registo não processado. |
vmw_datacenter |
event.idm.read_only_udm.target.resource.attribute.labels.value |
O valor vmw_datacenter é extraído do campo vmw_datacenter no registo não processado e adicionado como uma etiqueta com a chave "vmw_datacenter". |
vmw_host |
event.idm.read_only_udm.target.hostname ou event.idm.read_only_udm.target.ip |
Se o campo vmw_host for um nome de anfitrião, é mapeado para o nome de anfitrião de destino. Caso contrário, se for um endereço IP, é mapeado para o IP de destino. |
vmw_object_id |
event.idm.read_only_udm.target.resource.product_object_id |
O ID do objeto do produto é extraído do campo vmw_object_id no registo não processado. |
vmw_product |
event.idm.read_only_udm.target.application |
A aplicação de destino é extraída do campo vmw_product no registo não processado. |
vmw_vcenter |
event.idm.read_only_udm.target.cloud.availability_zone |
A zona de disponibilidade é extraída do campo vmw_vcenter no registo não processado. |
vmw_vcenter_id |
event.idm.read_only_udm.target.resource.attribute.labels.value |
O valor vmw_vcenter_id é extraído do campo vmw_vcenter_id no registo não processado e adicionado como uma etiqueta com a chave "vmw_vcenter_id". |
vmw_vr_ops_appname |
event.idm.read_only_udm.intermediary.application |
A aplicação intermediária é extraída do campo vmw_vr_ops_appname no registo não processado. |
vmw_vr_ops_clustername |
event.idm.read_only_udm.intermediary.resource.name |
O nome do recurso intermediário é extraído do campo vmw_vr_ops_clustername no registo não processado. |
vmw_vr_ops_clusterrole |
event.idm.read_only_udm.intermediary.resource.attribute.roles.name |
O nome da função do recurso intermediário é extraído do campo vmw_vr_ops_clusterrole no registo não processado. |
vmw_vr_ops_hostname |
event.idm.read_only_udm.intermediary.hostname |
O nome do anfitrião intermediário é extraído do campo vmw_vr_ops_hostname no registo não processado. |
vmw_vr_ops_id |
event.idm.read_only_udm.intermediary.resource.product_object_id |
O ID do objeto do produto intermediário é extraído do campo vmw_vr_ops_id no registo não processado. |
vmw_vr_ops_logtype |
event.idm.read_only_udm.intermediary.resource.attribute.labels.value |
O valor vmw_vr_ops_logtype é extraído do campo vmw_vr_ops_logtype no registo não processado e adicionado como uma etiqueta com a chave "vmw_vr_ops_logtype". |
vmw_vr_ops_nodename |
event.idm.read_only_udm.intermediary.resource.attribute.labels.value |
O valor vmw_vr_ops_nodename é extraído do campo vmw_vr_ops_nodename no registo não processado e adicionado como uma etiqueta com a chave "vmw_vr_ops_nodename". Determinado por uma série de declarações condicionais com base nos valores de outros campos. Os valores possíveis são USER_LOGIN, NETWORK_CONNECTION, STATUS_UPDATE e GENERIC_EVENT. Codificado de forma rígida para "VMWARE_NSX". Codificado de forma rígida para "VMWARE_NSX". Codificado de forma rígida para "VMWARE_NSX". Definido como "AUTHTYPE_UNSPECIFIED" se Operation for "LOGIN" e target_details não estiver vazio, ou se message contiver "authentication failure" e application não estiver vazio. Definido como "SSH" se PROTO for "ssh2" ou definido como "HTTP" se subcomp for "http". Determinado por uma série de declarações condicionais com base nos valores de outros campos. Os valores possíveis são ALLOW e BLOCK. Definido como "VIRTUAL_MACHINE" se vmw_cluster não estiver vazio. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais da Google SecOps.