Coletar registros do VMware Networking and Security Virtualization (NSX) Manager

Compatível com:

Este documento explica como ingerir registros do VMware NSX Manager no Google Security Operations usando o agente Bindplane.

O VMware NSX é uma plataforma de virtualização e segurança de rede que gera mensagens syslog para eventos de firewall, regras de firewall distribuídas, mudanças de roteamento, registros de auditoria e eventos de controlador. O analisador extrai campos usando padrões grok, análise de chave-valor e análise JSON, e os mapeia para o modelo de dados unificado (UDM).

Antes de começar

Verifique se você tem os pré-requisitos a seguir:

  • Uma instância do Google SecOps
  • Windows Server 2016 ou mais recente ou host Linux com systemd
  • Conectividade de rede entre o agente do Bindplane e o ambiente do VMware NSX
  • Se estiver executando por trás de um proxy, verifique se as portas do firewall estão abertas de acordo com os requisitos do agente Bindplane.
  • Acesso administrativo ao VMware NSX

Receber o arquivo de autenticação de ingestão do Google SecOps

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Agentes de coleta.
  3. 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

  1. Faça login no console do Google SecOps.
  2. Acesse Configurações do SIEM > Perfil.
  3. 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

  1. Abra o prompt de comando ou o PowerShell como administrador.
  2. Execute este comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sc query observiq-otel-collector
    

    O serviço vai aparecer como EM EXECUÇÃO.

Instalação do Linux

  1. Abra um terminal com privilégios de root ou sudo.
  2. Execute este comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    
  3. Aguarde a conclusão da instalação.

  4. Execute o seguinte comando para confirmar a instalação:

    sudo systemctl status observiq-otel-collector
    

    O serviço vai aparecer como ativo (em execução).

Outros recursos de instalação

Para mais opções de instalação e solução de problemas, consulte o guia de instalação do agente do Bindplane.

Configurar o agente do Bindplane para ingerir syslog e enviar ao Google SecOps

Localizar o arquivo de configuração

  • Linux:

    sudo nano /opt/observiq-otel-collector/config.yaml
    
  • Windows:

    notepad "C:\Program Files\observIQ OpenTelemetry Collector\config.yaml"
    

Editar o arquivo de configuração

  • Substitua todo o conteúdo de config.yaml pela seguinte configuração:

    receivers:
        udplog:
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/vmware_nsx:
            compression: gzip
            creds_file_path: '/etc/bindplane-agent/ingestion-auth.json'
            customer_id: '<customer_id>'
            endpoint: malachiteingestion-pa.googleapis.com
            log_type: VMWARE_NSX
            raw_log_field: body
    
    service:
        pipelines:
            logs/vmware_nsx_to_chronicle:
                receivers:
                    - udplog
                exporters:
                    - chronicle/vmware_nsx
    

Parâmetros de configuração

Substitua os seguintes marcadores de posição:

  • Configuração do receptor:

    • listen_address: endereço IP e porta a serem detectados:
      • 0.0.0.0 para detectar em todas as interfaces (recomendado)
      • A porta 514 é a porta padrão do syslog. Ela exige acesso root no Linux. Use 1514 para acesso não root.
  • Configuração do exportador:

    • creds_file_path: caminho completo para o arquivo de autenticação de ingestão:
      • Linux: /etc/bindplane-agent/ingestion-auth.json
      • Windows: C:\Program Files\observIQ OpenTelemetry Collector\ingestion-auth.json
    • customer_id: ID do cliente copiado do console do Google SecOps
    • endpoint: URL do endpoint regional:
      • EUA: malachiteingestion-pa.googleapis.com
      • Europa: europe-malachiteingestion-pa.googleapis.com
      • Ásia: asia-southeast1-malachiteingestion-pa.googleapis.com
      • Consulte a lista completa em Endpoints regionais.

Salve o arquivo de configuração.

  • Depois de editar, salve o arquivo:
    • Linux: pressione Ctrl+O, Enter e Ctrl+X.
    • Windows: clique em Arquivo > Salvar.

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 observiq-otel-collector
    
    1. Verifique se o serviço está em execução:

      sudo systemctl status observiq-otel-collector
      
    2. Verifique se há erros nos registros:

      sudo journalctl -u observiq-otel-collector -f
      
  • Para reiniciar o agente do Bindplane no Windows, escolha uma das seguintes opções:

    • Prompt de comando ou PowerShell como administrador:

      net stop observiq-otel-collector && net start observiq-otel-collector
      
    • Console de serviços:

      1. Pressione Win+R, digite services.msc e pressione Enter.
      2. Localize o Coletor do OpenTelemetry da observIQ.
      3. Clique com o botão direito do mouse e selecione Reiniciar.
      4. Verifique se o serviço está em execução:

        sc query observiq-otel-collector
        
      5. Verifique se há erros nos registros:

        type "C:\Program Files\observIQ OpenTelemetry Collector\log\collector.log"
        

Configuração do Syslog para NSX Edge

  1. Faça login no vSphere Web Client.
  2. Acesse Rede e segurança > NSX Edges.
  3. Selecione a instância específica do NSX Edge que você quer configurar.
  4. Acesse Configurações do Syslog:
    • Para NSX 6.4.4 e versões mais recentes: Gerenciar > Configurações > Configurações do appliance > Configurações > Mudar configuração do Syslog.
    • Para NSX 6.4.3 e versões anteriores: Gerenciar > Configurações > Configuração > Detalhes > Mudar.
  5. 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).
  6. Clique em OK para salvar as configurações.

Configuração do Syslog para o NSX Manager

  1. Faça login na interface da Web do NSX Manager com credenciais de administrador (https://<NSX-Manager-IP> ou https://<NSX-Manager-Hostname>).
  2. Acesse Gerenciar configurações do eletrodoméstico > Geral.
  3. Clique em Editar para configurar as definições do servidor syslog.
  4. 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).
  5. Clique em OK para salvar as configurações.

Configuração do Syslog para o controlador NSX

  1. Faça login no vSphere Web Client.
  2. Acesse Rede e segurança > Instalação e upgrade > Gerenciamento > Nós do controlador NSX.
  3. Selecione o NSX Manager que gerencia os nós do controlador.
  4. Clique em Edição de atributos comuns do controlador.
  5. Na caixa de diálogo Syslog Servers, clique em Add:
    • 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).
  6. 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 A hora da última atualização é derivada 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. Fixado no código como "VMWARE_NSX". Fixado no código como "VMWARE_NSX". Fixado no código 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.
Resource event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
zone_action event.idm.read_only_udm.security_result.detection_fields Mapeado do registro de mudanças
product_id event.idm.read_only_udm.metadata.product_log_id Mapeado do registro de mudanças
dst_port event.idm.read_only_udm.target.port Mapeado do registro de mudanças
sent_pkt event.idm.read_only_udm.network.sent_packets Mapeado do registro de mudanças
received_pkt event.idm.read_only_udm.network.received_packets Mapeado do registro de mudanças
sent_byte event.idm.read_only_udm.network.sent_bytes Mapeado do registro de mudanças
received_byte event.idm.read_only_udm.network.received_bytes Mapeado do registro de mudanças
msg1 event.idm.read_only_udm.metadata.description Mapeado do registro de mudanças
ip_version event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
ip_protocol_type event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
ip_protocol_code event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
interface_id event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
tcp_flags event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
src_zone_value event.idm.read_only_udm.principal.resource.attribute.labels Mapeado do registro de mudanças
sec_desc event.idm.read_only_udm.security_result.description Mapeado do registro de mudanças
Originated_Ip event.idm.read_only_udm.principal.ip Mapeado do registro de mudanças
Originated_Ip event.idm.read_only_udm.principal.asset.ip Mapeado do registro de mudanças
event_source event.idm.read_only_udm.target.resource.name Mapeado do registro de mudanças
Resource_Name event.idm.read_only_udm.target.resource.name Mapeado do registro de mudanças
Universal_Object event.idm.read_only_udm.target.resource.attribute.labels Mapeado do registro de mudanças
Severity event.idm.read_only_udm.security_result.severity Mapeado do registro de mudanças
Code event.idm.read_only_udm.security_result.rule_id Mapeado do registro de mudanças
Event_Message event.idm.read_only_udm.metadata.description Mapeado do registro de mudanças
Above_supported_instances event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
Above_threshold_instances event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
Below_threshold_instances event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
supported_compact event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
supported_quadlarge event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
supported_large event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
supported_xlarge event.idm.read_only_udm.additional.fields Mapeado do registro de mudanças
action security_result.action_details Mapeado do registro de mudanças
rule_id security_result.rule_id Mapeado do registro de mudanças
network.direction INBOUND Mapeado do registro de mudanças
security_result.action_details ALLOW Mapeado do registro de mudanças
security_result.action_details BLOCK Mapeado do registro de mudanças
metadata.event_type NETWORK_CONNECTION Mapeado do registro de mudanças
unique_id principal.resource.product_object_id Mapeado do registro de mudanças
resource_type principal.resource.sub_type Mapeado do registro de mudanças
_create_user","_last_modified_user principal.user.email_addresses Mapeado do registro de mudanças
action security_result.action Mapeado do registro de mudanças
display_name principal.resource.name Mapeado do registro de mudanças
_last_modified_time principal.resource.attribute.last_update_time Mapeado do registro de mudanças
_create_time principal.resource.attribute.creation_time Mapeado do registro de mudanças
parent_path principal.resource.parent Mapeado do registro de mudanças
id principal.resource.id Mapeado do registro de mudanças
resource_type target.resource.sub_type Mapeado do registro de mudanças
unique_id target.resource.product_object_id Mapeado do registro de mudanças
path target.process.file.full_path Mapeado do registro de mudanças
id target.resource.id Mapeado do registro de mudanças
vmw_host target_details.hostname or target_details.ip Mapeado do registro de mudanças
vmw_vr_ops_clusterrole intermediary.resource.attribute.labels.roles.name Mapeado do registro de mudanças
vmw_host","vmw_product","vmw_vcenter","vmw_cluster","vmw_vr_ops_id","vmw_object_id","vmw_datacenter","vmw_vcenter_id","vmw_vr_ops_logtype","vmw_vr_ops_appname","vmw_vr_ops_hostname","vmw_vr_ops_nodename","vmw_vr_ops_clustername","vmw_vr_ops_clusterrole","managedExternally","update","filepath","eventType","resourceId principal.resource.attribute.labels Mapeado do registro de mudanças
tname", "s2comp", "node principal.resource.attribute.labels Mapeado do registro de mudanças
exe target.process.file.full_path Mapeado do registro de mudanças

Registro de alterações

Ver o registro de alterações deste analisador

Precisa de mais ajuda? Receba respostas de membros da comunidade e profissionais do Google SecOps.