Recolha registos do VMware Networking and Security Virtualization (NSX) Manager

Compatível com:

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

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Agentes de recolha.
  3. 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

  1. Inicie sessão na consola Google SecOps.
  2. Aceda a Definições do SIEM > Perfil.
  3. Copie e guarde o ID do cliente da secção Detalhes da organização.

Instale o agente do Bindplane

Instalação do Windows

  1. Abra a Linha de comandos ou o PowerShell como administrador.
  2. Execute o seguinte comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Instalação do Linux

  1. Abra um terminal com privilégios de raiz ou sudo.
  2. 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

Configure o agente Bindplane para carregar o Syslog e enviá-lo para o Google SecOps

  1. 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).
  2. 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
    
  3. Substitua a porta e o endereço IP conforme necessário na sua infraestrutura.

  4. Substitua <customer_id> pelo ID de cliente real.

  5. 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

  1. Inicie sessão no vSphere Web Client.
  2. Aceda a Redes e segurança > NSX Edges.
  3. Selecione a instância específica do NSX Edge que quer configurar.
  4. Aceda a Definições de Syslog:
    1. 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.
    2. Para o NSX 6.4.3 e anteriores:
      • Aceda a Gerir > Definições > Configuração.
      • Na caixa de diálogo Detalhes, clique em Alterar.
  5. 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).
  6. Clique em OK para guardar as definições.

Configuração do Syslog para o NSX Manager

  1. Inicie sessão na interface Web do NSX Manager com as credenciais de administrador da seguinte forma:
    • https://<NSX-Manager-IP> ou https://<NSX-Manager-Hostname>.
  2. Aceda a Gerir definições do dispositivo > Geral.
  3. Clique em Editar para configurar as definições do servidor Syslog.
  4. 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).
  5. Clique em OK para guardar as definições.

Configuração do Syslog para o controlador NSX

  1. Inicie sessão no vSphere Web Client.
  2. Aceda a Redes e segurança > Instalação e atualização > Gestão > Nós do controlador NSX.
  3. Selecione o NSX Manager que gere os nós do controlador.
  4. Clique em Edição de atributos do controlador comum.
  5. Na caixa de diálogo Servidores Syslog, clique em Adicionar:
    1. Introduza o nome do servidor Syslog ou o endereço IP.
    2. Selecione o protocolo UDP (consoante a configuração do Bindplane).
    3. Defina o Nível de registo (por exemplo, INFO).
  6. 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.