Mengumpulkan log VMware vCenter
Dokumen ini menjelaskan cara menyerap log VMware vCenter ke Google Security Operations menggunakan BindPlane. Parser mengubah log mentah menjadi model data terpadu (UDM). Pertama-tama, data ini mencoba mengurai data log sebagai JSON, dan jika gagal, data ini memperlakukan data sebagai pesan syslog, mengekstrak kolom menggunakan pola grok, dan memetakannya ke skema UDM.
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 VMware vCenter
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. 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
Instal agen Bindplane di sistem operasi Windows atau Linux Anda sesuai dengan petunjuk berikut.
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.
Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya 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 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
- 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 VMware vCenter
- Login ke UI web vCenter Server Management.
- Buka Syslog > Forwarding Configuration > Configure.
- Pilih Create Forwarding Configuration dan masukkan alamat IP agen Bindplane.
- Dari drop-down Protocol, pilih UDP atau TCP, bergantung pada konfigurasi agen Bindplane Anda yang sebenarnya.
- Di bagian Port, masukkan nomor port agen Bindplane.
- Klik Simpan.
- Klik Kirim Pesan Pengujian dan verifikasi apakah pesan tersebut diterima.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
Access Mask |
principal.process.access_mask | Dikonversi ke desimal dari heksadesimal. |
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 | Diuraikan sebagai IP. |
Client Port |
principal.port | Dikonversi ke bilangan bulat. |
cmd |
target.process.command_line | |
date |
timestamp | Diuraikan sebagai yyyy-MM-dd dan digabungkan dengan waktu sebagai yyyy-MM-dd HH:mm:ss ke when, diuraikan sebagai tanggal. |
date_time |
timestamp | Diuraikan sebagai tanggal dengan format RFC 3339, TIMESTAMP_ISO8601, SYSLOGTIMESTAMP. |
desc |
metadata.description | |
eventid |
metadata.product_event_type | Digabungkan dengan tugas sebagai eventid - task. |
host_name |
principal.hostname, principal.asset.hostname | |
http_method |
network.http.method | |
ip |
target.ip, target.asset.ip | |
kv_data1 |
Diuraikan sebagai pasangan nilai kunci. | |
kv_data2 |
Diuraikan sebagai pasangan nilai kunci. | |
kv_msg1.cipher |
network.tls.cipher | |
kv_msg1.ctladdr |
intermediary.labels | |
kv_msg1.daemon |
security_result.about.labels | |
kv_msg1.from |
network.email.from | Jika mail_from tidak berisi @, maka akan ditambahkan dengan @local. |
kv_msg1.msgid |
network.email.mail_id | |
kv_msg1.proto |
security_result.about.labels | |
kv_msg1.relay |
intermediary.hostname, intermediary.ip | Diurai sebagai (HOSTNAME)? [IP] atau HOSTNAME, jika relay_domain ada, maka ditetapkan ke intermediary.hostname, jika relay_ip ada, maka digabungkan ke intermediary.ip. |
kv_msg1.size |
network.sent_bytes | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan. |
kv_msg1.stat |
security_result.summary | |
kv_msg1.verify |
security_result.description, security_result.action | Jika kv_msg1.verify adalah FAIL, maka security_result.action ditetapkan ke 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 | Jika labels.net.transport adalah TCP, maka TCP. |
level |
security_result.severity | Jika levelnya adalah INFO/Informational/DEBUG/info/Information, maka INFORMATIONAL, jika levelnya adalah ERROR/error, maka ERROR, jika levelnya adalah WARNING, maka LOW. |
log.file.path |
target.process.file.full_path | |
logName |
security_result.category_details | |
Logon Account |
principal.user.userid | |
Logon Type |
extensions.auth.mechanism | Jika logon_type adalah 2/Interactive, maka INTERACTIVE, jika logon_type adalah 3/8, maka NETWORK, jika logon_type adalah 4, maka BATCH, jika logon_type adalah 5, maka SERVICE, jika logon_type adalah 7, maka UNLOCK, jika logon_type adalah 9, maka NEW_CREDENTIALS, jika logon_type adalah 10, maka REMOTE_INTERACTIVE, jika logon_type adalah 11, maka CACHED_INTERACTIVE, jika tidak, MECHANISM_UNSPECIFIED. |
mail_from |
network.email.from | Jika mail_from tidak berisi @, maka akan ditambahkan dengan @local. |
mail_to |
network.email.to | Jika mail_to tidak berisi @, maka akan ditambahkan dengan @local. |
message |
Diuraikan dengan pola grok. | |
namespace |
principal.namespace | |
port |
target.port | Dikonversi ke bilangan bulat. |
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 | Dikonversi ke bilangan bulat. |
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 | Diuraikan sebagai IP. |
Source Port |
principal.port | Dikonversi ke bilangan bulat. |
summary |
security_result.summary | |
target_host |
target.hostname, target.asset.hostname | |
target_url |
target.url | |
target_userid |
target.user.userid | |
time |
timestamp | Diuraikan sebagai HH:mm:ss dan digabungkan dengan tanggal sebagai yyyy-MM-dd HH:mm:ss ke when, diuraikan sebagai tanggal. |
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 | Ditetapkan ke STATUS_UPDATE jika msg berisi API_HEALTH. atau JobDispatcher, ditetapkan ke USER_LOGIN jika msg berisi logged in as dan target_userid tidak kosong, ditetapkan ke SCAN_HOST jika msg berisi Leave Validate., ditetapkan ke NETWORK_UNCATEGORIZED jika msg berisi Getting IP Address from host, ditetapkan ke RESOURCE_WRITTEN jika msg berisi Wrote vpxd health, ditetapkan ke NETWORK_HTTP jika has_principal dan has_target bernilai benar dan application_protocol tidak kosong, ditetapkan ke PROCESS_LAUNCH jika process_id dan cmd tidak kosong, ditetapkan ke USER_UNCATEGORIZED jika user_id tidak kosong atau eventid adalah 4776, ditetapkan ke USER_LOGIN jika eventid adalah 4624/4768/4769, ditetapkan ke USER_LOGOUT jika eventid adalah 4634/4647, ditetapkan ke USER_RESOURCE_ACCESS jika eventid adalah 5145, ditetapkan ke STATUS_UPDATE jika host_name tidak kosong, ditetapkan ke GENERIC_EVENT jika tidak ada yang cocok. | |
extensions.auth.type | Disetel ke MACHINE jika eventid adalah 4624/4768/4769. | |
metadata.log_type | Setel ke VMWARE_VCENTER. | |
metadata.vendor_name | Setel ke VMWARE. | |
metadata.product_name | Tetapkan ke VCENTER. | |
security_result.action | Disetel ke ALLOW jika response_status adalah 200 atau tindakan adalah Izinkan. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.