Raccogliere i log di VMware vCenter

Supportato in:

Questo documento spiega come importare i log di VMware vCenter in Google Security Operations utilizzando Bindplane. Il parser trasforma i log non elaborati in un modello dei dati unificato (UDM). Tenta innanzitutto di analizzare i dati di log come JSON e, in caso di esito negativo, li tratta come un messaggio syslog, estraendo i campi utilizzando i pattern grok e mappandoli allo schema UDM.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps
  • Windows 2016 o versioni successive o un host Linux con systemd
  • Se l'esecuzione avviene tramite un proxy, assicurati che le porte del firewall siano aperte.
  • Accesso con privilegi a VMware vCenter

Recuperare il file di autenticazione importazione di Google SecOps

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

Recuperare 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

Installa l'agente Bindplane sul sistema operativo Windows o Linux seguendo le istruzioni riportate di seguito.

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 aggiuntive per l'installazione

Per ulteriori opzioni di installazione, consulta la guida all'installazione.

Configura l'agente Bindplane per importare Syslog e inviarli 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 port and IP address as required
            listen_address: "0.0.0.0:514"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds_file_path: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            log_type: 'VMWARE_VCENTER'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui questo comando:

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

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura Syslog per VMware vCenter

  1. Accedi alla UI web di vCenter Server Management.
  2. Vai a Syslog > Configurazione inoltro > Configura.
  3. Seleziona Crea configurazione di inoltro e inserisci l'indirizzo IP dell'agente Bindplane.
  4. Dal menu a discesa Protocollo, seleziona UDP o TCP, a seconda della configurazione effettiva dell'agente Bindplane.
  5. Nella sezione Porta, inserisci il numero di porta dell'agente Bindplane.
  6. Fai clic su Salva.
  7. Fai clic su Invia messaggio di prova e verifica che sia stato ricevuto.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
Access Mask principal.process.access_mask Convertito in decimale da esadecimale.
Account Domain principal.administrative_domain
Account Name principal.user.userid
ApplicationProtocol additional.fields
Authentication Package security_result.about.resource.name
Client Address principal.ip, principal.asset.ip Analizzato come IP.
Client Port principal.port Convertito in numero intero.
cmd target.process.command_line
date timestamp Analizzato come aaaa-MM-gg e unito all'ora come aaaa-MM-gg HH:mm:ss a quando, analizzato come data.
date_time timestamp Analizzato come data con i formati RFC 3339, TIMESTAMP_ISO8601 e SYSLOGTIMESTAMP.
desc metadata.description
eventid metadata.product_event_type Unito all'attività come eventid - task.
host_name principal.hostname, principal.asset.hostname
http_method network.http.method
ip target.ip, target.asset.ip
kv_data1 Analizzati come coppie chiave-valore.
kv_data2 Analizzati come coppie chiave-valore.
kv_msg1.cipher network.tls.cipher
kv_msg1.ctladdr intermediary.labels
kv_msg1.daemon security_result.about.labels
kv_msg1.from network.email.from Se mail_from non contiene @, viene aggiunto @local.
kv_msg1.msgid network.email.mail_id
kv_msg1.proto security_result.about.labels
kv_msg1.relay intermediary.hostname, intermediary.ip Analizzato come (HOSTNAME)? [IP] o HOSTNAME. Se relay_domain è presente, impostalo su intermediary.hostname. Se relay_ip è presente, uniscilo a intermediary.ip.
kv_msg1.size network.sent_bytes Convertito in numero intero senza segno.
kv_msg1.stat security_result.summary
kv_msg1.verify security_result.description, security_result.action Se kv_msg1.verify è FAIL, security_result.action è impostato su BLOCK.
kv_msg1.version network.tls.version
labels.log_type metadata.product_event_type
labels.net.host.ip principal.ip, principal.asset.ip
labels.net.host.port principal.port
labels.net.peer.ip target.ip, target.asset.ip
labels.net.peer.port target.port
labels.net.transport network.ip_protocol Se labels.net.transport è TCP, allora TCP.
level security_result.severity Se il livello è INFO/Informational/DEBUG/info/Information, allora INFORMATIONAL, se il livello è ERROR/error, allora ERROR, se il livello è WARNING, allora LOW.
log.file.path target.process.file.full_path
logName security_result.category_details
Logon Account principal.user.userid
Logon Type extensions.auth.mechanism Se logon_type è 2/Interactive, allora INTERACTIVE, se logon_type è 3/8, allora NETWORK, se logon_type è 4, allora BATCH, se logon_type è 5, allora SERVICE, se logon_type è 7, allora UNLOCK, se logon_type è 9, allora NEW_CREDENTIALS, se logon_type è 10, allora REMOTE_INTERACTIVE, se logon_type è 11, allora CACHED_INTERACTIVE, altrimenti MECHANISM_UNSPECIFIED.
mail_from network.email.from Se mail_from non contiene @, viene aggiunto @local.
mail_to network.email.to Se mail_to non contiene @, viene aggiunto @local.
message Analizzato con pattern grok.
namespace principal.namespace
port target.port Convertito in numero intero.
process_id target.process.pid
providername principal.application
Relative Target Name target.file.full_path
resource.labels.project_id src.cloud.project.id
resource.type src.labels
response_status network.http.response_code Convertito in numero intero.
sec_desc security_result.description
Security ID target.user.windows_sid
security_result_action_detail security_result.action_details
server_name target.hostname, target.asset.hostname
Share Name target.resource.name
Source Network Address principal.ip, principal.asset.ip Analizzato come IP.
Source Port principal.port Convertito in numero intero.
summary security_result.summary
target_host target.hostname, target.asset.hostname
target_url target.url
target_userid target.user.userid
time timestamp Analizzato come HH:mm:ss e unito alla data come aaaa-MM-gg HH:mm:ss a quando, analizzato come data.
upn_name intermediary.url
URL target.url
User ID target.user.windows_sid
user_id principal.user.userid
UserAgent network.http.user_agent
metadata.event_type Imposta STATUS_UPDATE se msg contiene API_HEALTH. o JobDispatcher, imposta USER_LOGIN se msg contiene logged in as e target_userid non è vuoto, imposta SCAN_HOST se msg contiene Leave Validate., imposta NETWORK_UNCATEGORIZED se msg contiene Getting IP Address from host, imposta RESOURCE_WRITTEN se msg contiene Wrote vpxd health, imposta NETWORK_HTTP se has_principal e has_target sono true e application_protocol non è vuoto, imposta PROCESS_LAUNCH se process_id e cmd non sono vuoti, imposta USER_UNCATEGORIZED se user_id non è vuoto o eventid è 4776, imposta USER_LOGIN se eventid è 4624/4768/4769, imposta USER_LOGOUT se eventid è 4634/4647, imposta USER_RESOURCE_ACCESS se eventid è 5145, imposta STATUS_UPDATE se host_name non è vuoto, imposta GENERIC_EVENT altrimenti.
extensions.auth.type Imposta su MACHINE se eventid è 4624/4768/4769.
metadata.log_type Imposta su VMWARE_VCENTER.
metadata.vendor_name Imposta su VMWARE.
metadata.product_name Imposta su VCENTER.
security_result.action Imposta su ALLOW se response_status è 200 o action è Allow.

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