Raccogli i log di VMware Networking and Security Virtualization (NSX) Manager

Supportato in:

Questo documento descrive come raccogliere i log di VMware Networking and Security Virtualization (NSX) Manager. Il parser estrae i campi utilizzando vari pattern grok in base al formato del messaggio. Esegue quindi l'analisi di parsing delle coppie chiave-valore, l'analisi JSON e la logica condizionale per mappare i campi estratti all'UDM, gestire diversi formati di log e arricchire i dati con un contesto aggiuntivo.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di utilizzare Windows 2016 o versioni successive o un host Linux con systemd.
  • Se il servizio è in esecuzione dietro un proxy, assicurati che le porte del firewall siano aperte.
  • Assicurati di disporre dell'accesso amministrativo a VMWare NSX.

Recupera il file di autenticazione di importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane Agent.

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installazione di Windows

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

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

Installazione di Linux

  1. Apri un terminale con privilegi root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse di installazione aggiuntive

Configurare l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi al file di configurazione:

    • Individua il file config.yaml. In genere si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    • Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    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. Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.

Riavvia Bindplane Agent per applicare le modifiche

  • In Linux, per riavviare Bindplane Agent, esegui il seguente comando:

    sudo systemctl restart bindplane-agent
    
  • In Windows, per riavviare l'agente Bindplane, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configurazione di Syslog per NSX Edge

  1. Accedi al client web vSphere.
  2. Vai a Networking e sicurezza > NSX Edge.
  3. Seleziona l'istanza NSX Edge specifica che vuoi configurare.
  4. Vai a Impostazioni syslog:
    1. Per NSX 6.4.4 e versioni successive:
      • Vai a Gestisci > Impostazioni > Impostazioni dell'elettrodomestico.
      • Fai clic su Impostazioni > Modifica configurazione Syslog.
    2. Per NSX 6.4.3 e versioni precedenti:
      • Vai a Gestisci > Impostazioni > Configurazione.
      • Nella finestra di dialogo Dettagli, fai clic su Cambia.
  5. Configura i dettagli del server Syslog:
    • Server: inserisci l'indirizzo IP o il nome host del server Syslog (Bindplane).
    • Protocollo: seleziona UDP o TCP (a seconda della configurazione di Bindplane).
    • Porta: inserisci il numero di porta (a seconda della configurazione di Bindplane).
  6. Fai clic su OK per salvare le impostazioni.

Configurazione di Syslog per NSX Manager

  1. Accedi all'interfaccia web di NSX Manager con le credenziali di amministratore come segue:
    • https://<NSX-Manager-IP> o https://<NSX-Manager-Hostname>.
  2. Vai a Gestisci impostazioni dell'appliance > Generali.
  3. Fai clic su Modifica per configurare le impostazioni del server Syslog.
  4. Inserisci i dettagli del server Syslog:
    • Server: inserisci l'indirizzo IP o il nome host del server Syslog (Bindplane).
    • Protocollo: seleziona UDP o TCP (a seconda della configurazione di Bindplane).
    • Porta: inserisci il numero di porta (a seconda della configurazione di Bindplane).
  5. Fai clic su OK per salvare le impostazioni.

Configurazione di Syslog per NSX Controller

  1. Accedi a vSphere Web Client.
  2. Vai a Networking e sicurezza > Installazione e upgrade > Gestione > Nodi controller NSX.
  3. Seleziona l'NSX Manager che gestisce i nodi del controller.
  4. Fai clic su Modifica attributi controller comuni.
  5. Nella finestra di dialogo Server syslog, fai clic su Aggiungi:
    1. Inserisci il nome o l'indirizzo IP del server Syslog.
    2. Seleziona il protocollo UDP (a seconda della configurazione di Bindplane).
    3. Imposta il livello di log (ad esempio INFO).
  6. Fai clic su OK per salvare le impostazioni.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
DST event.idm.read_only_udm.target.ip L'indirizzo IP di destinazione viene estratto dal campo DST nel log non elaborato.
ID event.idm.read_only_udm.metadata.product_log_id L'ID log del prodotto viene estratto dal campo ID nel log non elaborato.
MAC event.idm.read_only_udm.principal.mac L'indirizzo MAC viene estratto dal campo MAC nel log non elaborato.
ModuleName event.idm.read_only_udm.metadata.product_event_type Il tipo di evento del prodotto viene estratto dal campo ModuleName nel log non elaborato.
Operation event.idm.read_only_udm.principal.resource.attribute.labels.value L'operazione viene estratta dal campo Operation nel log non elaborato e aggiunta come etichetta con la chiave "Operation".
PROTO event.idm.read_only_udm.network.ip_protocol Il protocollo IP viene estratto dal campo PROTO nel log non elaborato.
RES event.idm.read_only_udm.target.resource.name Il nome della risorsa target viene estratto dal campo RES nel log non elaborato.
SRC event.idm.read_only_udm.principal.ip L'indirizzo IP di origine viene estratto dal campo SRC nel log non elaborato.
SPT event.idm.read_only_udm.principal.port La porta di origine viene estratta dal campo SPT nel log non elaborato.
UserName event.idm.read_only_udm.principal.user.userid L'ID utente viene estratto dal campo UserName nel log non elaborato.
app_type event.idm.read_only_udm.principal.application L'applicazione principale viene estratta dal campo app_type nel log non elaborato.
application event.idm.read_only_udm.target.application L'applicazione di destinazione viene estratta dal campo application nel log non elaborato.
audit event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore del controllo viene estratto dal campo audit nel log non elaborato e aggiunto come etichetta con la chiave "audit".
cancelTimeUTC event.idm.read_only_udm.principal.resource.attribute.last_update_time L'ora dell'ultimo aggiornamento è ricavata dal campo cancelTimeUTC nel log non elaborato.
client event.idm.read_only_udm.principal.ip o event.idm.read_only_udm.principal.administrative_domain Se il campo client è un indirizzo IP, viene mappato all'IP principale. In caso contrario, viene mappato al dominio amministrativo principale.
comp event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore del componente viene estratto dal campo comp nel log non elaborato e aggiunto come etichetta con chiave "Comp".
datetime event.idm.read_only_udm.metadata.event_timestamp Il timestamp dell'evento viene estratto dal campo datetime nel log non elaborato.
description event.idm.read_only_udm.metadata.description La descrizione viene estratta dal campo description nel log non elaborato.
details event.idm.read_only_udm.principal.resource.attribute.labels I dettagli vengono estratti dal campo details nel log non elaborato e aggiunti come etichette.
direction event.idm.read_only_udm.network.direction Se il campo direction è "OUT", viene mappato a "OUTBOUND".
dst_ip event.idm.read_only_udm.target.ip L'indirizzo IP di destinazione viene estratto dal campo dst_ip nel log non elaborato.
DPT event.idm.read_only_udm.target.port La porta di destinazione viene estratta dal campo DPT nel log non elaborato.
errorCode event.idm.read_only_udm.security_result.detection_fields Il codice di errore viene estratto dal campo errorCode nel log non elaborato e aggiunto come campo di rilevamento.
eventType event.idm.read_only_udm.metadata.product_event_type Il tipo di evento del prodotto viene estratto dal campo eventType nel log non elaborato.
filepath event.idm.read_only_udm.principal.process.file.full_path Il percorso del file viene estratto dal campo filepath nel log non elaborato.
hostname event.idm.read_only_udm.principal.ip Il nome host viene estratto dal campo hostname nel log non elaborato e, se si tratta di un indirizzo IP, viene mappato all'IP principale.
kv_data Vari campi UDM Le coppie chiave-valore in kv_data vengono mappate a vari campi UDM in base alle relative chiavi.
kv_data1 Vari campi UDM Le coppie chiave-valore in kv_data1 vengono mappate a vari campi UDM in base alle relative chiavi.
kv_data2 Vari campi UDM Le coppie chiave-valore in kv_data2 vengono mappate a vari campi UDM in base alle relative chiavi.
kv_data3 Vari campi UDM Le coppie chiave-valore in kv_data3 vengono mappate a vari campi UDM in base alle relative chiavi.
kv_data4 Vari campi UDM Le coppie chiave-valore in kv_data4 vengono mappate a vari campi UDM in base alle relative chiavi.
level event.idm.read_only_udm.security_result.severity Se il campo level è "INFO", viene mappato a "INFORMATIONAL". Se è "ERROR", viene mappato a "ERROR".
managedExternally event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore managedExternally viene estratto dal campo managedExternally nel log non elaborato e aggiunto come etichetta con la chiave "managedExternally".
message Vari campi UDM Il campo del messaggio viene analizzato per estrarre vari campi UDM.
message_data event.idm.read_only_udm.principal.resource.attribute.labels.value I dati del messaggio vengono estratti dal campo message_data nel log non elaborato e aggiunti come etichetta con la chiave "message".
network_status event.idm.read_only_udm.additional.fields Lo stato della rete viene estratto dal campo network_status nel log non elaborato e aggiunto come campo aggiuntivo con la chiave "Network_Connection_Status".
new_value Vari campi event.idm.read_only_udm.target Il nuovo valore viene estratto dal campo new_value nel log non elaborato e utilizzato per compilare vari campi target.
node event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore del nodo viene estratto dal campo node nel log non elaborato e aggiunto come etichetta con chiave "node".
old_value Vari campi UDM Il vecchio valore viene estratto dal campo old_value nel log non elaborato e utilizzato per compilare vari campi UDM.
payload Vari campi UDM Il payload viene estratto dal campo payload nel log non elaborato e utilizzato per compilare vari campi UDM.
pid event.idm.read_only_udm.target.process.pid L'ID processo viene estratto dal campo pid nel log non elaborato.
reqId event.idm.read_only_udm.metadata.product_log_id L'ID log del prodotto viene estratto dal campo reqId nel log non elaborato.
resourceId event.idm.read_only_udm.principal.resource.product_object_id L'ID oggetto del prodotto viene estratto dal campo resourceId nel log non elaborato.
s2comp event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore s2comp viene estratto dal campo s2comp nel log non elaborato e aggiunto come etichetta con chiave "s2comp".
ses event.idm.read_only_udm.network.session_id L'ID sessione viene estratto dal campo ses nel log non elaborato.
src_host event.idm.read_only_udm.principal.hostname Il nome host principale viene estratto dal campo src_host nel log non elaborato.
src_ip event.idm.read_only_udm.principal.ip L'indirizzo IP di origine viene estratto dal campo src_ip nel log non elaborato.
src_ip1 event.idm.read_only_udm.principal.ip L'indirizzo IP di origine viene estratto dal campo src_ip1 nel log non elaborato.
src_port event.idm.read_only_udm.principal.port La porta di origine viene estratta dal campo src_port nel log non elaborato.
startTimeUTC event.idm.read_only_udm.principal.resource.attribute.creation_time La data e l'ora di creazione vengono ricavate dal campo startTimeUTC nel log non elaborato.
subcomp event.idm.read_only_udm.network.application_protocol o event.idm.read_only_udm.principal.resource.attribute.labels.value Se il campo subcomp è "http", viene mappato a "HTTP". In caso contrario, viene aggiunta come etichetta con la chiave "Sub Comp".
tname event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore tname viene estratto dal campo tname nel log non elaborato e aggiunto come etichetta con la chiave "tname".
type event.idm.read_only_udm.metadata.product_event_type Il tipo di evento del prodotto viene estratto dal campo type nel log non elaborato.
uid event.idm.read_only_udm.principal.user.userid L'ID utente viene estratto dal campo uid nel log non elaborato.
update event.idm.read_only_udm.principal.resource.attribute.labels.value Il valore dell'aggiornamento viene estratto dal campo update nel log non elaborato e aggiunto come etichetta con chiave "update".
user event.idm.read_only_udm.principal.user.user_display_name Il nome visualizzato dell'utente viene estratto dal campo user nel log non elaborato.
vmw_cluster event.idm.read_only_udm.target.resource.name Il nome della risorsa target viene estratto dal campo vmw_cluster nel log non elaborato.
vmw_datacenter event.idm.read_only_udm.target.resource.attribute.labels.value Il valore vmw_datacenter viene estratto dal campo vmw_datacenter nel log non elaborato e aggiunto come etichetta con la chiave "vmw_datacenter".
vmw_host event.idm.read_only_udm.target.hostname o event.idm.read_only_udm.target.ip Se il campo vmw_host è un nome host, viene mappato al nome host di destinazione. In caso contrario, se si tratta di un indirizzo IP, viene mappato all'IP target.
vmw_object_id event.idm.read_only_udm.target.resource.product_object_id L'ID oggetto del prodotto viene estratto dal campo vmw_object_id nel log non elaborato.
vmw_product event.idm.read_only_udm.target.application L'applicazione di destinazione viene estratta dal campo vmw_product nel log non elaborato.
vmw_vcenter event.idm.read_only_udm.target.cloud.availability_zone La zona di disponibilità viene estratta dal campo vmw_vcenter nel log non elaborato.
vmw_vcenter_id event.idm.read_only_udm.target.resource.attribute.labels.value Il valore vmw_vcenter_id viene estratto dal campo vmw_vcenter_id nel log non elaborato e aggiunto come etichetta con la chiave "vmw_vcenter_id".
vmw_vr_ops_appname event.idm.read_only_udm.intermediary.application L'applicazione intermedia viene estratta dal campo vmw_vr_ops_appname nel log non elaborato.
vmw_vr_ops_clustername event.idm.read_only_udm.intermediary.resource.name Il nome della risorsa intermedia viene estratto dal campo vmw_vr_ops_clustername nel log non elaborato.
vmw_vr_ops_clusterrole event.idm.read_only_udm.intermediary.resource.attribute.roles.name Il nome del ruolo della risorsa intermedia viene estratto dal campo vmw_vr_ops_clusterrole nel log non elaborato.
vmw_vr_ops_hostname event.idm.read_only_udm.intermediary.hostname Il nome host intermedio viene estratto dal campo vmw_vr_ops_hostname nel log non elaborato.
vmw_vr_ops_id event.idm.read_only_udm.intermediary.resource.product_object_id L'ID oggetto prodotto intermedio viene estratto dal campo vmw_vr_ops_id nel log non elaborato.
vmw_vr_ops_logtype event.idm.read_only_udm.intermediary.resource.attribute.labels.value Il valore vmw_vr_ops_logtype viene estratto dal campo vmw_vr_ops_logtype nel log non elaborato e aggiunto come etichetta con la chiave "vmw_vr_ops_logtype".
vmw_vr_ops_nodename event.idm.read_only_udm.intermediary.resource.attribute.labels.value Il valore vmw_vr_ops_nodename viene estratto dal campo vmw_vr_ops_nodename nel log non elaborato e aggiunto come etichetta con la chiave "vmw_vr_ops_nodename". Determinato da una serie di istruzioni condizionali in base ai valori di altri campi. I valori possibili sono USER_LOGIN, NETWORK_CONNECTION, STATUS_UPDATE e GENERIC_EVENT. Hardcoded su "VMWARE_NSX". Hardcoded su "VMWARE_NSX". Hardcoded su "VMWARE_NSX". Impostato su "AUTHTYPE_UNSPECIFIED" se Operation è "LOGIN" e target_details non è vuoto oppure se message contiene "authentication failure" e application non è vuoto. Imposta su "SSH" se PROTO è "ssh2" o su "HTTP" se subcomp è "http". Determinato da una serie di istruzioni condizionali in base ai valori di altri campi. I valori possibili sono ALLOW e BLOCK. Imposta su "VIRTUAL_MACHINE" se vmw_cluster non è vuoto.

Modifiche

2023-11-15

  • Miglioramento: dal campo "Valore precedente":
  • "unique_id" è stato mappato a "principal.resource.product_object_id".
  • "resource_type" è stato mappato a "principal.resource.sub_type".
  • "_create_user" e "_last_modified_user" sono stati mappati a "principal.user.email_addresses".
  • "action" è stato mappato a "security_result.action".
  • "rule_id" è stato mappato a "security_result.rule_id".
  • "display_name" è stato mappato a "principal.resource.name".
  • "_last_modified_time" è stato mappato a "principal.resource.attribute.last_update_time".
  • "_create_time" è stato mappato a "principal.resource.attribute.creation_time".
  • "parent_path" è stato mappato a "principal.resource.parent".
  • "path" è stato mappato a "principal.process.file.full_path".
  • "id" è stato mappato a "principal.resource.id".
  • Dal campo Nuovo valore:
  • "resource_type" è stato mappato a "target.resource.sub_type".
  • "unique_id" è stato mappato a "target.resource.product_object_id".
  • "path" è stato mappato a "target.process.file.full_path".
  • "display_name" è stato mappato a "target.resource.name".
  • "id" è stato mappato a "target.resource.id".
  • "vmw_host" è stato mappato a "target_details.hostname o target_details.ip" in base al valore in vmw_host.
  • "vmw_product" è stato mappato a "target.application".
  • "vmw_vcenter" è stato mappato a "target.cloud.availability_zone".
  • "vmw_cluster" è stato mappato a "target.resource.name".
  • "vmw_object_id" è stato mappato a "target.resource.product_object_id".
  • "vmw_datacenter" è stato mappato a "target.resource.attribute.labels".
  • "vmw_vcenter_id" è stato mappato a "target.resource.attribute.labels".
  • "vmw_vr_ops_logtype" è stato mappato a "intermediary.resource.attribute.labels".
  • "vmw_vr_ops_appname" è stato mappato a "intermediary.application".
  • "vmw_vr_ops_hostname" è stato mappato a "intermediary.hostname".
  • "vmw_vr_ops_nodename" è stato mappato a "intermediary.resource.attribute.labels".
  • "vmw_vr_ops_clustername" è stato mappato a "intermediary.resource.name".
  • "vmw_vr_ops_clusterrole" è stato mappato a "intermediary.resource.attribute.labels.roles.name".
  • "vmw_vr_ops_id" è stato mappato a "intermediary.resource.product_object_id".

2023-10-13

  • Miglioramento: è stato modificato un pattern Grok per analizzare "sourceIp" con le porte.
  • "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" a "principal.resource.attribute.labels".
  • I campi in "payload" sono stati mappati a "principal.resource.attribute.labels".
  • "client" è stato mappato a "principal.ip"
  • I campi mappati in "new_value" a "target.resource.attribute.labels".

2023-10-03

  • Miglioramento: è stato aggiunto un pattern Grok per verificare se "sourceIp" è un indirizzo IP valido o meno prima di mapparlo al campo UDM.

2023-09-12

  • Miglioramento: è stato aggiunto il supporto per i log syslog che contengono i campi "Nuovo valore" e "Valore precedente".

2023-06-26

  • Valori mappati in "PASS", "DROP", "REJECT", "NAT", "NONAT", "RDR", "NORDR", "PUNT", "REDIRECT" e "COPY" alla chiave "additional.fields" come "Network_Status".

2023-03-07

  • "errorCode" è stato mappato a "security_result.detection_fields".
  • "app_type" è stato mappato a "principal.application".
  • "tname", "s2comp" e "node" sono stati mappati a "principal.resource.attribute.labels".
  • "exe" è stato mappato a "target.process.file.full_path".
  • "dst_ip" è stato mappato a "target.ip".
  • "ses" è stato mappato a "network.session_id".
  • "hostname" è stato mappato a "principal.ip".
  • "direction" è stato mappato a "network.direction".
  • "reqId" è stato mappato a "metadata.product_log_id".

2022-06-10

  • Analizzatore appena creato

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.