Coletar registros do VMware Networking and Security Virtualization (NSX) Manager
Neste documento, descrevemos como coletar os registros do VMware Networking and Security Virtualization (NSX) Manager. O analisador extrai campos usando vários padrões grok com base no formato da mensagem. Em seguida, ele realiza a análise de valor-chave, a análise JSON e a lógica condicional para mapear os campos extraídos para a UDM, processando diferentes formatos de registro e enriquecendo os dados com contexto adicional.
Antes de começar
- Verifique se você tem uma instância do Google Security Operations.
- Use o Windows 2016 ou uma versão mais recente ou um host Linux com
systemd
. - Se você estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas.
- Verifique se você tem acesso administrativo ao VMWare NSX.
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 com segurança no sistema em que o agente do Bindplane será instalado.
Receber o ID do 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
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 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 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 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
No Linux, para reiniciar o agente do Bindplane, execute o seguinte comando:
sudo systemctl restart bindplane-agent
No Windows, para reiniciar o Bindplane Agent, use o console Serviços ou insira o seguinte comando:
net stop BindPlaneAgent && net start BindPlaneAgent
Configuração do Syslog para NSX Edge
- Faça login no vSphere Web Client.
- Acesse Rede e segurança > Edges do NSX.
- Selecione a instância específica do NSX Edge que você quer configurar.
- Acesse Configurações do Syslog:
- Para o NSX 6.4.4 e versões mais recentes:
- Acesse Gerenciar > Configurações > Configurações do eletrodoméstico.
- Clique em Configurações > Mudar configuração do Syslog.
- Para NSX 6.4.3 e versões anteriores:
- Acesse Gerenciar > Configurações > Configuração.
- Na caixa de diálogo Detalhes, clique em Mudar.
- Para o NSX 6.4.4 e versões mais recentes:
- Configure os detalhes do servidor Syslog:
- Servidor: insira o endereço IP ou o nome do host do servidor Syslog (Bindplane).
- Protocolo: selecione UDP ou TCP (dependendo da sua configuração do Bindplane).
- Porta: insira o número da porta (dependendo da configuração do Bindplane).
- Clique em OK para salvar as configurações.
Configuração do Syslog para o NSX Manager
- Faça login na interface da Web do NSX Manager com credenciais de administrador da seguinte maneira:
https://<NSX-Manager-IP>
ouhttps://<NSX-Manager-Hostname>
.
- Acesse Gerenciar configurações do eletrodoméstico > Geral.
- Clique em Editar para configurar as definições do servidor Syslog.
- Insira os detalhes do servidor Syslog:
- Servidor: insira o endereço IP ou o nome do host do servidor Syslog (Bindplane).
- Protocolo: selecione UDP ou TCP (dependendo da sua configuração do Bindplane).
- Porta: insira o número da porta (dependendo da configuração do Bindplane).
- Clique em OK para salvar as configurações.
Configuração do Syslog para o controlador NSX
- Faça login no vSphere Web Client.
- Acesse Rede e segurança > Instalação e upgrade > Gerenciamento > Nós do controlador NSX.
- Selecione o NSX Manager que gerencia os nós do controlador.
- Clique em Edição de atributos comuns do controlador.
- Na caixa de diálogo Servidores Syslog, clique em Adicionar:
- Digite o nome ou o endereço IP do servidor Syslog.
- Selecione o protocolo UDP (dependendo da configuração do Bindplane).
- Defina o Nível de registro (por exemplo,
INFO
).
- Clique em OK para salvar as configurações.
Tabela de mapeamento do UDM
Campo de registro | Mapeamento do UDM | Lógica |
---|---|---|
DST |
event.idm.read_only_udm.target.ip |
O endereço IP de destino é extraído do campo DST no registro bruto. |
ID |
event.idm.read_only_udm.metadata.product_log_id |
O ID do registro do produto é extraído do campo ID no registro bruto. |
MAC |
event.idm.read_only_udm.principal.mac |
O endereço MAC é extraído do campo MAC no registro bruto. |
ModuleName |
event.idm.read_only_udm.metadata.product_event_type |
O tipo de evento do produto é extraído do campo ModuleName no registro bruto. |
Operation |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
A operação é extraída do campo Operation no registro bruto e adicionada como um rótulo com a chave "Operation". |
PROTO |
event.idm.read_only_udm.network.ip_protocol |
O protocolo IP é extraído do campo PROTO no registro bruto. |
RES |
event.idm.read_only_udm.target.resource.name |
O nome do recurso de destino é extraído do campo RES no registro bruto. |
SRC |
event.idm.read_only_udm.principal.ip |
O endereço IP de origem é extraído do campo SRC no registro bruto. |
SPT |
event.idm.read_only_udm.principal.port |
A porta de origem é extraída do campo SPT no registro bruto. |
UserName |
event.idm.read_only_udm.principal.user.userid |
O ID do usuário é extraído do campo UserName no registro bruto. |
app_type |
event.idm.read_only_udm.principal.application |
O aplicativo principal é extraído do campo app_type no registro bruto. |
application |
event.idm.read_only_udm.target.application |
O aplicativo de destino é extraído do campo application no registro bruto. |
audit |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor de auditoria é extraído do campo audit no registro bruto e adicionado como um rótulo com a chave "audit". |
cancelTimeUTC |
event.idm.read_only_udm.principal.resource.attribute.last_update_time |
O horário da última atualização é derivado do campo cancelTimeUTC no registro bruto. |
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, ele será mapeado para o IP principal. Caso contrário, ele será 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 registro bruto e adicionado como um rótulo com a chave "Comp". |
datetime |
event.idm.read_only_udm.metadata.event_timestamp |
O carimbo de data/hora do evento é extraído do campo datetime no registro bruto. |
description |
event.idm.read_only_udm.metadata.description |
A descrição é extraída do campo description no registro bruto. |
details |
event.idm.read_only_udm.principal.resource.attribute.labels |
Os detalhes são extraídos do campo details no registro bruto e adicionados como rótulos. |
direction |
event.idm.read_only_udm.network.direction |
Se o campo direction for "OUT", ele será mapeado como "OUTBOUND". |
dst_ip |
event.idm.read_only_udm.target.ip |
O endereço IP de destino é extraído do campo dst_ip no registro bruto. |
DPT |
event.idm.read_only_udm.target.port |
A porta de destino é extraída do campo DPT no registro bruto. |
errorCode |
event.idm.read_only_udm.security_result.detection_fields |
O código de erro é extraído do campo errorCode no registro bruto e adicionado como um campo de detecção. |
eventType |
event.idm.read_only_udm.metadata.product_event_type |
O tipo de evento do produto é extraído do campo eventType no registro bruto. |
filepath |
event.idm.read_only_udm.principal.process.file.full_path |
O caminho do arquivo é extraído do campo filepath no registro bruto. |
hostname |
event.idm.read_only_udm.principal.ip |
O nome do host é extraído do campo hostname no registro bruto e, se for um endereço IP, é mapeado para o IP principal. |
kv_data |
Vários campos do UDM | Os pares de chave-valor em kv_data são mapeados para vários campos do UDM com base nas chaves. |
kv_data1 |
Vários campos do UDM | Os pares de chave-valor em kv_data1 são mapeados para vários campos do UDM com base nas chaves. |
kv_data2 |
Vários campos do UDM | Os pares de chave-valor em kv_data2 são mapeados para vários campos do UDM com base nas chaves. |
kv_data3 |
Vários campos do UDM | Os pares de chave-valor em kv_data3 são mapeados para vários campos do UDM com base nas chaves. |
kv_data4 |
Vários campos do UDM | Os pares de chave-valor em kv_data4 são mapeados para vários campos do UDM com base nas chaves. |
level |
event.idm.read_only_udm.security_result.severity |
Se o campo level for "INFO", ele será mapeado para "INFORMATIONAL". Se for "ERROR", será mapeado como "ERROR". |
managedExternally |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor "managedExternally" é extraído do campo managedExternally no registro bruto e adicionado como um rótulo com a chave "managedExternally". |
message |
Vários campos do UDM | O campo de mensagem é analisado para extrair vários campos de 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 registro bruto e adicionados como um rótulo com a chave "message". |
network_status |
event.idm.read_only_udm.additional.fields |
O status da rede é extraído do campo network_status no registro bruto e adicionado como um campo extra 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 registro bruto 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 registro bruto e adicionado como um rótulo com a chave "node". |
old_value |
Vários campos do UDM | O valor antigo é extraído do campo old_value no registro bruto e usado para preencher vários campos da UDM. |
payload |
Vários campos do UDM | O payload é extraído do campo payload no registro bruto e usado 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 registro bruto. |
reqId |
event.idm.read_only_udm.metadata.product_log_id |
O ID do registro do produto é extraído do campo reqId no registro bruto. |
resourceId |
event.idm.read_only_udm.principal.resource.product_object_id |
O ID do objeto do produto é extraído do campo resourceId no registro bruto. |
s2comp |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor s2comp é extraído do campo s2comp no registro bruto e adicionado como um rótulo com a chave "s2comp". |
ses |
event.idm.read_only_udm.network.session_id |
O ID da sessão é extraído do campo ses no registro bruto. |
src_host |
event.idm.read_only_udm.principal.hostname |
O nome do host principal é extraído do campo src_host no registro bruto. |
src_ip |
event.idm.read_only_udm.principal.ip |
O endereço IP de origem é extraído do campo src_ip no registro bruto. |
src_ip1 |
event.idm.read_only_udm.principal.ip |
O endereço IP de origem é extraído do campo src_ip1 no registro bruto. |
src_port |
event.idm.read_only_udm.principal.port |
A porta de origem é extraída do campo src_port no registro bruto. |
startTimeUTC |
event.idm.read_only_udm.principal.resource.attribute.creation_time |
O horário de criação é derivado do campo startTimeUTC no registro bruto. |
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", ele será mapeado para "HTTP". Caso contrário, ele será adicionado como um rótulo 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 registro bruto e adicionado como um rótulo 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 registro bruto. |
uid |
event.idm.read_only_udm.principal.user.userid |
O ID do usuário é extraído do campo uid no registro bruto. |
update |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
O valor da atualização é extraído do campo update no registro bruto e adicionado como um rótulo com a chave "update". |
user |
event.idm.read_only_udm.principal.user.user_display_name |
O nome de exibição do usuário é extraído do campo user no registro bruto. |
vmw_cluster |
event.idm.read_only_udm.target.resource.name |
O nome do recurso de destino é extraído do campo vmw_cluster no registro bruto. |
vmw_datacenter |
event.idm.read_only_udm.target.resource.attribute.labels.value |
O valor "vmw_datacenter" é extraído do campo vmw_datacenter no registro bruto e adicionado como um rótulo 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 host, ele será mapeado para o nome de host de destino. Caso contrário, se for um endereço IP, ele será 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 registro bruto. |
vmw_product |
event.idm.read_only_udm.target.application |
O aplicativo de destino é extraído do campo vmw_product no registro bruto. |
vmw_vcenter |
event.idm.read_only_udm.target.cloud.availability_zone |
A zona de disponibilidade é extraída do campo vmw_vcenter no registro bruto. |
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 registro bruto e adicionado como um rótulo com a chave "vmw_vcenter_id". |
vmw_vr_ops_appname |
event.idm.read_only_udm.intermediary.application |
O aplicativo intermediário é extraído do campo vmw_vr_ops_appname no registro bruto. |
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 registro bruto. |
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 registro bruto. |
vmw_vr_ops_hostname |
event.idm.read_only_udm.intermediary.hostname |
O nome do host intermediário é extraído do campo vmw_vr_ops_hostname no registro bruto. |
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 registro bruto. |
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 registro bruto e adicionado como um rótulo 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 registro bruto e adicionado como um rótulo com a chave "vmw_vr_ops_nodename". Determinado por uma série de instruçõ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 como "VMWARE_NSX". Codificado como "VMWARE_NSX". Codificado como "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. Defina como "SSH" se PROTO for "ssh2" ou como "HTTP" se subcomp for "http". Determinado por uma série de instruções condicionais com base nos valores de outros campos. Os valores possíveis são ALLOW e BLOCK. Defina como "VIRTUAL_MACHINE" se vmw_cluster não estiver vazio. |
Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.