Mengumpulkan log Pengelola VMware Networking and Security Virtualization (NSX)
Dokumen ini menjelaskan cara mengumpulkan log VMware Networking and Security Virtualization (NSX) Manager. Parser mengekstrak kolom menggunakan berbagai pola grok berdasarkan format pesan. Kemudian, proses ini akan melakukan penguraian nilai kunci, penguraian JSON, dan logika kondisional untuk memetakan kolom yang diekstrak ke UDM, menangani berbagai format log, dan memperkaya data dengan konteks tambahan.
Sebelum memulai
- Pastikan Anda memiliki instance Google Security Operations.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di balik proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses administratif ke VMWare NSX.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat BindPlane akan diinstal.
Mendapatkan ID pelanggan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Profil.
- Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.
Menginstal Agen BindPlane
Penginstalan Windows
- Buka Command Prompt atau PowerShell sebagai administrator.
Jalankan perintah berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Penginstalan Linux
- Buka terminal dengan hak istimewa root atau sudo.
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 ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
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).
- Cari file
Edit file
config.yaml
sebagai berikut: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
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 Mendapatkan file autentikasi penyerapan Google SecOps.
Mulai ulang Agen BindPlane untuk menerapkan perubahan
Di Linux, untuk memulai ulang Agen BindPlane, jalankan perintah berikut:
sudo systemctl restart bindplane-agent
Di Windows, untuk memulai ulang Agen BindPlane, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Konfigurasi Syslog untuk NSX Edge
- Login ke vSphere Web Client.
- Buka Networking & Security > NSX Edges.
- Pilih instance NSX Edge tertentu yang ingin Anda konfigurasi.
- Buka Setelan Syslog:
- Untuk NSX 6.4.4 dan yang lebih baru:
- Buka Kelola > Setelan > Setelan Perangkat.
- Klik Setelan > Ubah Konfigurasi Syslog.
- Untuk NSX 6.4.3 dan yang lebih lama:
- Buka Kelola > Setelan > Konfigurasi.
- Pada dialog Details, klik Change.
- Untuk NSX 6.4.4 dan yang lebih baru:
- Konfigurasikan detail server Syslog:
- Server: masukkan alamat IP atau nama host server Syslog (Bindplane).
- Protokol: pilih UDP atau TCP (bergantung pada konfigurasi server syslog/Bindplane Anda).
- Port: masukkan nomor port (bergantung pada konfigurasi server syslog/Bindplane Anda).
- Klik OK untuk menyimpan setelan.
Konfigurasi Syslog untuk NSX Manager
- Login ke antarmuka web NSX Manager dengan kredensial administrator sebagai berikut:
https://<NSX-Manager-IP>
atauhttps://<NSX-Manager-Hostname>
.
- Buka Kelola Setelan Appliance > Umum.
- Klik Edit untuk mengonfigurasi setelan server Syslog.
- Masukkan detail server Syslog:
- Server: masukkan alamat IP atau nama host server Syslog (Bindplane).
- Protokol: pilih UDP atau TCP (bergantung pada konfigurasi server syslog/Bindplane Anda).
- Port: masukkan nomor port (bergantung pada konfigurasi server syslog/Bindplane Anda).
- Klik OK untuk menyimpan setelan.
Konfigurasi Syslog untuk NSX Controller
- Login ke vSphere Web Client.
- Buka Networking & Security > Installation and Upgrade > Management > NSX Controller Nodes.
- Pilih NSX Manager yang mengelola node pengontrol.
- Klik Common Controller Attributes Edit.
- Pada dialog Server Syslog, klik Tambahkan:
- Masukkan nama server atau alamat IP Syslog.
- Pilih protokol UDP (bergantung pada konfigurasi server syslog/Bindplane Anda).
- Tetapkan Log Level (misalnya,
INFO
).
- Klik OK untuk menyimpan setelan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
DST |
event.idm.read_only_udm.target.ip |
Alamat IP tujuan diekstrak dari kolom DST dalam log mentah. |
ID |
event.idm.read_only_udm.metadata.product_log_id |
ID log produk diekstrak dari kolom ID dalam log mentah. |
MAC |
event.idm.read_only_udm.principal.mac |
Alamat MAC diekstrak dari kolom MAC dalam log mentah. |
ModuleName |
event.idm.read_only_udm.metadata.product_event_type |
Jenis peristiwa produk diekstrak dari kolom ModuleName dalam log mentah. |
Operation |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Operasi diekstrak dari kolom Operation dalam log mentah dan ditambahkan sebagai label dengan kunci "Operasi". |
PROTO |
event.idm.read_only_udm.network.ip_protocol |
Protokol IP diekstrak dari kolom PROTO dalam log mentah. |
RES |
event.idm.read_only_udm.target.resource.name |
Nama resource target diekstrak dari kolom RES dalam log mentah. |
SRC |
event.idm.read_only_udm.principal.ip |
Alamat IP sumber diekstrak dari kolom SRC dalam log mentah. |
SPT |
event.idm.read_only_udm.principal.port |
Port sumber diekstrak dari kolom SPT dalam log mentah. |
UserName |
event.idm.read_only_udm.principal.user.userid |
ID pengguna diekstrak dari kolom UserName dalam log mentah. |
app_type |
event.idm.read_only_udm.principal.application |
Aplikasi utama diekstrak dari kolom app_type dalam log mentah. |
application |
event.idm.read_only_udm.target.application |
Aplikasi target diekstrak dari kolom application dalam log mentah. |
audit |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai audit diekstrak dari kolom audit dalam log mentah dan ditambahkan sebagai label dengan kunci "audit". |
cancelTimeUTC |
event.idm.read_only_udm.principal.resource.attribute.last_update_time |
Waktu pembaruan terakhir berasal dari kolom cancelTimeUTC dalam log mentah. |
client |
event.idm.read_only_udm.principal.ip atau event.idm.read_only_udm.principal.administrative_domain |
Jika kolom client adalah alamat IP, kolom tersebut akan dipetakan ke IP utama. Jika tidak, domain akan dipetakan ke domain administratif utama. |
comp |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai komponen diekstrak dari kolom comp dalam log mentah dan ditambahkan sebagai label dengan kunci "Comp". |
datetime |
event.idm.read_only_udm.metadata.event_timestamp |
Stempel waktu peristiwa diekstrak dari kolom datetime dalam log mentah. |
description |
event.idm.read_only_udm.metadata.description |
Deskripsi diekstrak dari kolom description dalam log mentah. |
details |
event.idm.read_only_udm.principal.resource.attribute.labels |
Detail diekstrak dari kolom details dalam log mentah dan ditambahkan sebagai label. |
direction |
event.idm.read_only_udm.network.direction |
Jika kolom direction adalah "OUT", kolom tersebut akan dipetakan ke "OUTBOUND". |
dst_ip |
event.idm.read_only_udm.target.ip |
Alamat IP tujuan diekstrak dari kolom dst_ip dalam log mentah. |
DPT |
event.idm.read_only_udm.target.port |
Port tujuan diekstrak dari kolom DPT dalam log mentah. |
errorCode |
event.idm.read_only_udm.security_result.detection_fields |
Kode error diekstrak dari kolom errorCode dalam log mentah dan ditambahkan sebagai kolom deteksi. |
eventType |
event.idm.read_only_udm.metadata.product_event_type |
Jenis peristiwa produk diekstrak dari kolom eventType dalam log mentah. |
filepath |
event.idm.read_only_udm.principal.process.file.full_path |
Jalur file diekstrak dari kolom filepath dalam log mentah. |
hostname |
event.idm.read_only_udm.principal.ip |
Nama host diekstrak dari kolom hostname dalam log mentah dan, jika berupa alamat IP, dipetakan ke IP utama. |
kv_data |
Berbagai kolom UDM | Pasangan nilai kunci di kv_data dipetakan ke berbagai kolom UDM berdasarkan kuncinya. |
kv_data1 |
Berbagai kolom UDM | Pasangan nilai kunci di kv_data1 dipetakan ke berbagai kolom UDM berdasarkan kuncinya. |
kv_data2 |
Berbagai kolom UDM | Pasangan nilai kunci di kv_data2 dipetakan ke berbagai kolom UDM berdasarkan kuncinya. |
kv_data3 |
Berbagai kolom UDM | Pasangan nilai kunci di kv_data3 dipetakan ke berbagai kolom UDM berdasarkan kuncinya. |
kv_data4 |
Berbagai kolom UDM | Pasangan nilai kunci di kv_data4 dipetakan ke berbagai kolom UDM berdasarkan kuncinya. |
level |
event.idm.read_only_udm.security_result.severity |
Jika kolom level adalah "INFO", kolom tersebut akan dipetakan ke "INFORMATIONAL". Jika "ERROR", nilai akan dipetakan ke "ERROR". |
managedExternally |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai managedExternally diekstrak dari kolom managedExternally dalam log mentah dan ditambahkan sebagai label dengan kunci "managedExternally". |
message |
Berbagai kolom UDM | Kolom pesan diuraikan untuk mengekstrak berbagai kolom UDM. |
message_data |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Data pesan diekstrak dari kolom message_data dalam log mentah dan ditambahkan sebagai label dengan kunci "message". |
network_status |
event.idm.read_only_udm.additional.fields |
Status jaringan diekstrak dari kolom network_status dalam log mentah dan ditambahkan sebagai kolom tambahan dengan kunci "Network_Connection_Status". |
new_value |
Berbagai kolom event.idm.read_only_udm.target |
Nilai baru diekstrak dari kolom new_value dalam log mentah dan digunakan untuk mengisi berbagai kolom target. |
node |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai node diekstrak dari kolom node dalam log mentah dan ditambahkan sebagai label dengan kunci "node". |
old_value |
Berbagai kolom UDM | Nilai lama diekstrak dari kolom old_value dalam log mentah dan digunakan untuk mengisi berbagai kolom UDM. |
payload |
Berbagai kolom UDM | Payload diekstrak dari kolom payload dalam log mentah dan digunakan untuk mengisi berbagai kolom UDM. |
pid |
event.idm.read_only_udm.target.process.pid |
ID proses diekstrak dari kolom pid dalam log mentah. |
reqId |
event.idm.read_only_udm.metadata.product_log_id |
ID log produk diekstrak dari kolom reqId dalam log mentah. |
resourceId |
event.idm.read_only_udm.principal.resource.product_object_id |
ID objek produk diekstrak dari kolom resourceId dalam log mentah. |
s2comp |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai s2comp diekstrak dari kolom s2comp dalam log mentah dan ditambahkan sebagai label dengan kunci "s2comp". |
ses |
event.idm.read_only_udm.network.session_id |
ID sesi diekstrak dari kolom ses dalam log mentah. |
src_host |
event.idm.read_only_udm.principal.hostname |
Nama host utama diekstrak dari kolom src_host dalam log mentah. |
src_ip |
event.idm.read_only_udm.principal.ip |
Alamat IP sumber diekstrak dari kolom src_ip dalam log mentah. |
src_ip1 |
event.idm.read_only_udm.principal.ip |
Alamat IP sumber diekstrak dari kolom src_ip1 dalam log mentah. |
src_port |
event.idm.read_only_udm.principal.port |
Port sumber diekstrak dari kolom src_port dalam log mentah. |
startTimeUTC |
event.idm.read_only_udm.principal.resource.attribute.creation_time |
Waktu pembuatan berasal dari kolom startTimeUTC dalam log mentah. |
subcomp |
event.idm.read_only_udm.network.application_protocol atau event.idm.read_only_udm.principal.resource.attribute.labels.value |
Jika kolom subcomp adalah "http", kolom tersebut akan dipetakan ke "HTTP". Jika tidak, sub-komponen akan ditambahkan sebagai label dengan kunci "Sub Comp". |
tname |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai tname diekstrak dari kolom tname dalam log mentah dan ditambahkan sebagai label dengan kunci "tname". |
type |
event.idm.read_only_udm.metadata.product_event_type |
Jenis peristiwa produk diekstrak dari kolom type dalam log mentah. |
uid |
event.idm.read_only_udm.principal.user.userid |
ID pengguna diekstrak dari kolom uid dalam log mentah. |
update |
event.idm.read_only_udm.principal.resource.attribute.labels.value |
Nilai update diekstrak dari kolom update dalam log mentah dan ditambahkan sebagai label dengan kunci "update". |
user |
event.idm.read_only_udm.principal.user.user_display_name |
Nama tampilan pengguna diekstrak dari kolom user dalam log mentah. |
vmw_cluster |
event.idm.read_only_udm.target.resource.name |
Nama resource target diekstrak dari kolom vmw_cluster dalam log mentah. |
vmw_datacenter |
event.idm.read_only_udm.target.resource.attribute.labels.value |
Nilai vmw_datacenter diekstrak dari kolom vmw_datacenter dalam log mentah dan ditambahkan sebagai label dengan kunci "vmw_datacenter". |
vmw_host |
event.idm.read_only_udm.target.hostname atau event.idm.read_only_udm.target.ip |
Jika kolom vmw_host adalah nama host, kolom tersebut akan dipetakan ke nama host target. Jika bukan alamat IP, alamat tersebut akan dipetakan ke IP target. |
vmw_object_id |
event.idm.read_only_udm.target.resource.product_object_id |
ID objek produk diekstrak dari kolom vmw_object_id dalam log mentah. |
vmw_product |
event.idm.read_only_udm.target.application |
Aplikasi target diekstrak dari kolom vmw_product dalam log mentah. |
vmw_vcenter |
event.idm.read_only_udm.target.cloud.availability_zone |
Zona ketersediaan diekstrak dari kolom vmw_vcenter dalam log mentah. |
vmw_vcenter_id |
event.idm.read_only_udm.target.resource.attribute.labels.value |
Nilai vmw_vcenter_id diekstrak dari kolom vmw_vcenter_id dalam log mentah dan ditambahkan sebagai label dengan kunci "vmw_vcenter_id". |
vmw_vr_ops_appname |
event.idm.read_only_udm.intermediary.application |
Aplikasi perantara diekstrak dari kolom vmw_vr_ops_appname dalam log mentah. |
vmw_vr_ops_clustername |
event.idm.read_only_udm.intermediary.resource.name |
Nama resource perantara diekstrak dari kolom vmw_vr_ops_clustername dalam log mentah. |
vmw_vr_ops_clusterrole |
event.idm.read_only_udm.intermediary.resource.attribute.roles.name |
Nama peran resource perantara diekstrak dari kolom vmw_vr_ops_clusterrole dalam log mentah. |
vmw_vr_ops_hostname |
event.idm.read_only_udm.intermediary.hostname |
Nama host perantara diekstrak dari kolom vmw_vr_ops_hostname dalam log mentah. |
vmw_vr_ops_id |
event.idm.read_only_udm.intermediary.resource.product_object_id |
ID objek produk perantara diekstrak dari kolom vmw_vr_ops_id dalam log mentah. |
vmw_vr_ops_logtype |
event.idm.read_only_udm.intermediary.resource.attribute.labels.value |
Nilai vmw_vr_ops_logtype diekstrak dari kolom vmw_vr_ops_logtype dalam log mentah dan ditambahkan sebagai label dengan kunci "vmw_vr_ops_logtype". |
vmw_vr_ops_nodename |
event.idm.read_only_udm.intermediary.resource.attribute.labels.value |
Nilai vmw_vr_ops_nodename diekstrak dari kolom vmw_vr_ops_nodename dalam log mentah dan ditambahkan sebagai label dengan kunci "vmw_vr_ops_nodename". Ditentukan oleh serangkaian pernyataan bersyarat berdasarkan nilai kolom lain. Nilai yang mungkin adalah USER_LOGIN, NETWORK_CONNECTION, STATUS_UPDATE, dan GENERIC_EVENT. Di-hardcode ke "VMWARE_NSX". Di-hardcode ke "VMWARE_NSX". Di-hardcode ke "VMWARE_NSX". Tetapkan ke "AUTHTYPE_UNSPECIFIED" jika Operation adalah "LOGIN" dan target_details tidak kosong, atau jika message berisi "authentication failure" dan application tidak kosong. Tetapkan ke "SSH" jika PROTO adalah "ssh2", atau tetapkan ke "HTTP" jika subcomp adalah "http". Ditentukan oleh serangkaian pernyataan bersyarat berdasarkan nilai kolom lain. Kemungkinan nilainya adalah ALLOW dan BLOCK. Tetapkan ke "VIRTUAL_MACHINE" jika vmw_cluster tidak kosong. |
Perubahan
2023-11-15
- Peningkatan: Dari kolom "Nilai Lama":
- Memetakan "unique_id" ke "principal.resource.product_object_id".
- Memetakan "resource_type" ke "principal.resource.sub_type".
- Memetakan "_create_user","_last_modified_user" ke "principal.user.email_addresses".
- Memetakan "action" ke "security_result.action".
- Memetakan "rule_id" ke "security_result.rule_id".
- Memetakan "display_name" ke "principal.resource.name".
- Memetakan "_last_modified_time" ke "principal.resource.attribute.last_update_time".
- Memetakan "_create_time" ke "principal.resource.attribute.creation_time".
- Memetakan "parent_path" ke "principal.resource.parent".
- Memetakan "path" ke "principal.process.file.full_path".
- Memetakan "id" ke "principal.resource.id".
- Dari kolom Nilai Baru:
- Memetakan "resource_type" ke "target.resource.sub_type".
- Memetakan "unique_id" ke "target.resource.product_object_id".
- Memetakan "path" ke "target.process.file.full_path".
- Memetakan "display_name" ke "target.resource.name".
- Memetakan "id" ke "target.resource.id".
- Memetakan "vmw_host" ke "target_details.hostname atau target_details.ip" berdasarkan nilai di vmw_host.
- Memetakan "vmw_product" ke "target.application".
- Memetakan "vmw_vcenter" ke "target.cloud.availability_zone".
- Memetakan "vmw_cluster" ke "target.resource.name".
- Memetakan "vmw_object_id" ke "target.resource.product_object_id".
- Memetakan "vmw_datacenter" ke "target.resource.attribute.labels".
- Memetakan "vmw_vcenter_id" ke "target.resource.attribute.labels".
- Memetakan "vmw_vr_ops_logtype" ke "intermediary.resource.attribute.labels".
- Memetakan "vmw_vr_ops_appname" ke "intermediary.application".
- Memetakan "vmw_vr_ops_hostname" ke "intermediary.hostname".
- Memetakan "vmw_vr_ops_nodename" ke "intermediary.resource.attribute.labels".
- Memetakan "vmw_vr_ops_clustername" ke "intermediary.resource.name".
- Memetakan "vmw_vr_ops_clusterrole" ke "intermediary.resource.attribute.labels.roles.name".
- Memetakan "vmw_vr_ops_id" ke "intermediary.resource.product_object_id".
2023-10-13
- Peningkatan: Mengubah pola Grok untuk mengurai "sourceIp" dengan port.
- Memetakan "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" ke "principal.resource.attribute.labels".
- Mempetakan kolom di "payload" ke "principal.resource.attribute.labels".
- Memetakan "client" ke "principal.ip"
- Kolom yang dipetakan di "new_value" ke "target.resource.attribute.labels".
2023-10-03
- Peningkatan: Menambahkan pola Grok untuk memeriksa apakah "sourceIp" adalah alamat IP yang valid atau tidak sebelum memetakan ke kolom UDM.
2023-09-12
- Peningkatan: Menambahkan dukungan untuk log syslog yang memiliki kolom "Nilai baru" dan "Nilai lama".
2023-06-26
- Nilai yang dipetakan di "PASS", "DROP", "REJECT", "NAT", "NONAT", "RDR", "NORDR", "PUNT", "REDIRECT", dan "COPY" ke kunci "additional.fields" sebagai "Network_Status".
2023-03-07
- Memetakan "errorCode" ke "security_result.detection_fields".
- Memetakan "app_type" ke "principal.application".
- Memetakan "tname", "s2comp", "node" ke "principal.resource.attribute.labels".
- Memetakan "exe" ke "target.process.file.full_path".
- Memetakan "dst_ip" ke "target.ip".
- Memetakan "ses" ke "network.session_id".
- Memetakan "hostname" ke "principal.ip".
- Memetakan "direction" ke "network.direction".
- Memetakan "reqId" ke "metadata.product_log_id".
2022-06-10
- Parser yang baru dibuat