Mengumpulkan log VMware Horizon

Didukung di:

Dokumen ini menjelaskan cara menyerap log Omnissa Horizon (sebelumnya dikenal sebagai VMware Horizon) ke Google Security Operations menggunakan Bindplane. Parser pertama-tama menggunakan ekspresi reguler (pola grok) untuk mengekstrak kolom dari pesan syslog mentah. Kemudian, kolom yang diekstrak dipetakan ke kolom yang sesuai dalam skema UDM Chronicle, menormalisasi dan menyusun data untuk analisis.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps
  • Windows 2016 atau yang lebih baru atau host Linux dengan systemd
  • Jika berjalan di belakang proxy, pastikan port firewall terbuka
  • Akses istimewa ke Omnissa Horizon 8

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

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

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. Jalankan perintah berikut:

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

Referensi penginstalan tambahan

Untuk opsi penginstalan tambahan, lihat panduan penginstalan.

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:
    • Cari file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    • Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. Edit file config.yaml sebagai berikut:

    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_HORIZON'
            raw_log_field: body
            ingestion_labels:
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    • Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.
    • Ganti <customer_id> dengan ID pelanggan yang sebenarnya.
    • Perbarui /path/to/ingestion-authentication-file.json ke jalur tempat file autentikasi disimpan di bagian Dapatkan file autentikasi penyerapan Google SecOps.

Mulai ulang agen Bindplane untuk menerapkan perubahan

  • Untuk memulai ulang agen Bindplane di Linux, jalankan perintah berikut:

    sudo systemctl restart bindplane-agent
    
  • Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Mengonfigurasi Syslog untuk Omnissa Horizon (sebelumnya VMware Horizon)

  1. Login ke UI web Onmissa Horizon,
  2. Buka Setelan > Konfigurasi Peristiwa.
  3. Di bagian Send to syslog servers, klik Add.
  4. Masukkan alamat IP dan nomor port agen Bindplane (pastikan Anda mengonfigurasi protokol Bindplane sebagai UDP).
  5. Klik Simpan.

Tabel Pemetaan UDM

Kolom log Pemetaan UDM Logika
ActionId metadata.product_log_id Nilai 'ActionId' dari log mentah dipetakan ke 'metadata.product_log_id'.
admin_domain principal.administrative_domain Nilai 'admin_domain' dari log mentah dipetakan ke 'principal.administrative_domain'.
BrokerName principal.hostname Nilai 'BrokerName' dari log mentah dipetakan ke 'principal.hostname'.
BrokerSessionId network.session_id Nilai 'BrokerSessionId' dari log mentah dipetakan ke 'network.session_id'.
ClientIpAddress principal.ip Nilai 'ClientIpAddress' dari log mentah dipetakan ke 'principal.ip'.
CurrentSessionLength network.session_duration.seconds Nilai 'CurrentSessionLength' dari log mentah dikonversi menjadi bilangan bulat, lalu dipetakan ke 'network.session_duration.seconds'.
description metadata.description Nilai 'description' dari log mentah dipetakan ke 'metadata.description'.
DesktopDisplayName principal.hostname Nilai 'DesktopDisplayName' dari log mentah dipetakan ke 'principal.hostname'.
EventType metadata.product_event_type Nilai 'EventType' dari log mentah dipetakan ke 'metadata.product_event_type'.
ForwardedClientIpAddress principal.nat_ip Nilai 'ForwardedClientIpAddress' dari log mentah dipetakan ke 'principal.nat_ip'.
GlobalEntitlementName target.user.group_identifiers Nilai 'GlobalEntitlementName' dari log mentah dipetakan ke 'target.user.group_identifiers'.
host principal.hostname Nilai 'host' dari log mentah dipetakan ke 'principal.hostname'.
MachineDnsName principal.url Nilai 'MachineDnsName' dari log mentah dipetakan ke 'principal.url'.
MachineName intermediary.hostname Nilai 'MachineName' dari log mentah dipetakan ke 'intermediary.hostname'.
Module additional.fields Kunci "Module" dengan nilai 'Module' dari log mentah ditambahkan ke array 'additional.fields'.
pid principal.process.pid Nilai 'pid' dari log mentah dipetakan ke 'principal.process.pid'.
PoolId additional.fields Kunci "PoolId" dengan nilai 'PoolId' dari log mentah ditambahkan ke array 'additional.fields'.
program principal.application Nilai 'program' dari log mentah dipetakan ke 'principal.application'.
SessionType additional.fields Kunci "SessionType" dengan nilai 'SessionType' dari log mentah ditambahkan ke array 'additional.fields'.
Severity security_result.severity Nilai 'Severity' dari log mentah dikapitalisasi, dipetakan ke tingkat keparahan Chronicle generik, lalu dipetakan ke 'security_result.severity'.
timestamp metadata.event_timestamp Nilai 'timestamp' dari log mentah dikonversi ke format Chronicle, lalu dipetakan ke 'metadata.event_timestamp'.
UserDisplayName target.user.user_display_name Nilai 'UserDisplayName' dari log mentah dipetakan ke 'target.user.user_display_name'.
UserName target.user.userid Nilai 'UserName' dari log mentah dipetakan ke 'target.user.userid'.
UserSID target.user.windows_sid Nilai 'UserSID' dari log mentah dipetakan ke 'target.user.windows_sid'.
ViewApiMethodName additional.fields Kunci "ViewApiMethodName" dengan nilai 'ViewApiMethodName' dari log mentah ditambahkan ke array 'additional.fields'.
ViewApiServiceName additional.fields Kunci "ViewApiServiceName" dengan nilai 'ViewApiServiceName' dari log mentah ditambahkan ke array 'additional.fields'.
extensions.auth.type Nilai ditetapkan ke "SSO" jika kolom 'EventType' adalah salah satu dari "ADMIN_USERLOGGEDOUT", "AGENT_CONNECTED", "AGENT_DISCONNECTED", "AGENT_ENDED", "AGENT_PENDING", "AGENT_PENDING_EXPIRED", "AGENT_RECONNECTED", "BROKER_DESKTOP_REQUEST", "BROKER_LMV_REMOTE_POD_DESKTOP_LAUNCH", "BROKER_MACHINE_ALLOCATED", "BROKER_USER_AUTHFAILED_BAD_USER_PASSWORD", "BROKER_USER_LOCK_SSO", "BROKER_USERLOGGEDIN", "BROKER_USERLOGGEDOUT", "VLSI_USERLOGGEDIN", "VLSI_INSUFFICIENT_PERMISSION", "VLSI_USERLOGGEDIN_REST", "TIMING_PROFILER_TUNNEL_CONNECTION", "TIMING_PROFILER_GET_LAUNCH_ITEMS", "TIMING_PROFILER_USER_AUTHENTICATION".
metadata.event_type Nilai ditentukan oleh kolom 'EventType'. Jika 'EventType' adalah salah satu dari "ADMIN_USERLOGGEDOUT", "AGENT_DISCONNECTED", "AGENT_ENDED", "AGENT_PENDING_EXPIRED", "BROKER_USER_LOCK_SSO", "BROKER_USERLOGGEDOUT", maka 'metadata.event_type' adalah "USER_LOGOUT". Jika 'EventType' adalah salah satu dari "AGENT_CONNECTED", "AGENT_PENDING", "AGENT_RECONNECTED", "BROKER_USERLOGGEDIN", "VLSI_USERLOGGEDIN", "VLSI_INSUFFICIENT_PERMISSION", "VLSI_USERLOGGEDIN_REST", maka 'metadata.event_type' adalah "USER_LOGIN". Jika 'EventType' adalah "TIMING_PROFILER_GET_LAUNCH_ITEMS", maka 'metadata.event_type' adalah "STATUS_UNCATEGORIZED". Jika 'EventType' adalah "AGENT_SHUTDOWN", maka 'metadata.event_type' adalah "STATUS_SHUTDOWN". Jika 'EventType' adalah salah satu dari "AGENT_STARTUP", "BROKER_LMV_REMOTE_POD_DESKTOP_LAUNCH", maka 'metadata.event_type' adalah "STATUS_STARTUP". Jika tidak, 'metadata.event_type' adalah "GENERIC_EVENT".
metadata.log_type Nilainya ditetapkan ke "VMWARE_HORIZON".
metadata.product_name Nilai ditetapkan ke "HORIZON".
metadata.vendor_name Nilai ditetapkan ke "VMWARE".

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.