Mengumpulkan log ID Veridium
Dokumen ini menjelaskan cara menyerap log Veridium ID ke Google Security Operations menggunakan Bindplane. Parser pertama-tama mengekstrak kolom dari pesan syslog dan mengategorikannya berdasarkan "log_identifier". Kemudian, model ini menggunakan logika bersyarat dan penguraian key-value untuk memetakan kolom yang diekstrak ke dalam struktur model data terpadu (UDM), yang menangani format ActionLog
dan EventLog
.
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 Veridium ID
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: 'VERIDIUM_ID' 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 Veridium ID
- Login ke host Veridium ID menggunakan SSH atau CLI.
Edit file
/etc/rsyslog.conf
atau/etc/rsyslog.d/events.conf
menggunakan VI.vi /etc/rsyslog.conf
Masukkan detail berikut, ganti
<bindplane-ip>
dan<bindplane-port>
dengan detail agen Bindplane yang sebenarnya.module(load="imfile" PollingInterval="10") input(type="imfile" File="/var/log/veridiumid/websecadmin/events.log" Tag="ver-adminevents" reopenOnTruncate="on") input(type="imfile" File="/var/log/veridiumid/tomcat/events.log" Tag="ver-events" reopenOnTruncate="on") if $programname == 'ver-events' then @@<bindplane-ip>:<bindplane-port> if $programname == 'ver-adminevents' then @@<bindplane-ip>:<bindplane-port>
Simpan file dan keluar dari VI.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
_caller.accountId |
principal.user.userid |
Dipetakan langsung dari kolom _caller.accountId . |
_caller.accountEmailAddressInfo |
principal.user.email_addresses |
Dipetakan langsung dari kolom _caller.accountEmailAddressInfo . |
_caller.accountExternalId |
principal.user.email_addresses |
Dipetakan langsung dari kolom _caller.accountExternalId . |
_caller.accountStatus |
principal.user.attribute.labels[account_status].value |
Dipetakan langsung dari kolom _caller.accountStatus . |
_caller.deviceId |
principal.asset.asset_id |
Diawali dengan "VERIDIUM_ID:" dan dipetakan dari kolom _caller.deviceId . |
_caller.deviceDescription |
principal.asset.attribute.labels[device_description].value |
Dipetakan langsung dari kolom _caller.deviceDescription . |
_caller.deviceManufacturer |
principal.asset.attribute.labels[device_manufacturer].value |
Dipetakan langsung dari kolom _caller.deviceManufacturer . |
_caller.deviceName |
principal.asset.attribute.labels[device_name].value |
Dipetakan langsung dari kolom _caller.deviceName . |
_caller.deviceOs |
principal.asset.platform_software.platform |
Dipetakan dari kolom _caller.deviceOs . Jika nilainya "iOS", nilai tersebut dipetakan ke "IOS". Jika nilainya adalah "Android", nilai tersebut dipetakan ke "ANDROID". Jika nilainya adalah "WIN" atau "Windows", nilai tersebut dipetakan ke "WINDOWS". |
_caller.deviceStatus |
principal.asset.attribute.labels[device_status].value |
Dipetakan langsung dari kolom _caller.deviceStatus . |
_caller.deviceType |
principal.asset.attribute.labels[device_type].value |
Dipetakan langsung dari kolom _caller.deviceType . |
actionDate |
additional.fields[action_date].value.string_value |
Dipetakan langsung dari kolom actionDate . |
actionName |
metadata.product_event_type |
Dipetakan langsung dari kolom actionName . |
accountEmail |
principal.user.email_addresses |
Dipetakan langsung dari kolom accountEmail . |
accountExternalId |
principal.user.email_addresses |
Dipetakan langsung dari kolom accountExternalId . |
accountId |
principal.user.userid |
Dipetakan langsung dari kolom accountId . |
authenticatorDeviceContext.deviceMake |
intermediary.asset.hardware.manufacturer |
Dipetakan langsung dari kolom authenticatorDeviceContext.deviceMake . |
authenticatorDeviceContext.ip |
intermediary.ip |
Dipetakan langsung dari kolom authenticatorDeviceContext.ip . |
authenticatorDeviceContext.location.city |
intermediary.asset.location.city |
Dipetakan langsung dari kolom authenticatorDeviceContext.location.coordinates.latitude . |
authenticatorDeviceContext.location.coordinates.latitude |
intermediary.asset.location.region_latitude |
Dipetakan langsung dari kolom authenticatorDeviceContext.location.coordinates.latitude . |
authenticatorDeviceContext.location.coordinates.longitude |
intermediary.asset.location.region_longitude |
Dipetakan langsung dari kolom authenticatorDeviceContext.location.coordinates.longitude . |
authenticatorDeviceContext.location.countryName |
intermediary.asset.location.country_or_region |
Dipetakan langsung dari kolom authenticatorDeviceContext.location.countryName . |
authenticatorDeviceContext.location.ip |
intermediary.ip |
Dipetakan langsung dari kolom authenticatorDeviceContext.location.ip . |
authenticationDeviceDescription |
intermediary.asset.attribute.labels[authentication_device_description].value |
Dipetakan langsung dari kolom authenticationDeviceDescription . |
authenticationDeviceName |
intermediary.asset.asset_id |
Diawali dengan "VERIDIUM_ID:" dan dipetakan dari kolom authenticationDeviceName . |
authenticationDeviceOs |
intermediary.asset.platform_software.platform |
Dipetakan dari kolom authenticationDeviceOs . Jika nilainya "iOS", nilai tersebut dipetakan ke "IOS". Jika nilainya adalah "Android", nilai tersebut dipetakan ke "ANDROID". Jika nilainya adalah "WIN" atau "Windows", nilai tersebut dipetakan ke "WINDOWS". |
authenticationDeviceOsVersion |
intermediary.asset.platform_software.platform_version |
Dipetakan langsung dari kolom authenticationDeviceOsVersion . |
authenticationDevicePhone |
intermediary.asset.attribute.labels[authentication_device_phone].value |
Dipetakan langsung dari kolom authenticationDevicePhone . |
authenticationDevicePhoneModel |
intermediary.asset.attribute.labels[authentication_device_phone_model].value |
Dipetakan langsung dari kolom authenticationDevicePhoneModel . |
authenticationDeviceRegistrationTime |
intermediary.asset.attribute.labels[authentication_device_registeration_time].value |
Dipetakan langsung dari kolom authenticationDeviceRegistrationTime . |
authenticationDeviceType |
intermediary.asset.attribute.labels[authentication_device_type].value |
Dipetakan langsung dari kolom authenticationDeviceType . |
authenticationResult |
extensions.auth.auth_details |
Dipetakan langsung dari kolom authenticationResult . |
context.deviceMake |
principal.asset.hardware.manufacturer |
Dipetakan langsung dari kolom context.deviceMake . |
context.ip |
principal.ip |
Dipetakan langsung dari kolom context.ip . |
context.location.countryName |
principal.location.country_or_region |
Dipetakan langsung dari kolom context.location.countryName . |
context.location.ip |
principal.ip |
Dipetakan langsung dari kolom context.location.ip . |
context.osVersion |
principal.asset.platform_software.platform_version |
Dipetakan langsung dari kolom context.osVersion . |
context.userAgentRaw |
network.http.user_agent |
Dipetakan langsung dari kolom context.userAgentRaw . |
exploiterDeviceContext.deviceMake |
src.asset.hardware.manufacturer |
Dipetakan langsung dari kolom exploiterDeviceContext.deviceMake . |
exploiterDeviceContext.ip |
src.ip |
Dipetakan langsung dari kolom exploiterDeviceContext.ip . |
exploiterDeviceContext.location.city |
src.asset.location.city |
Dipetakan langsung dari kolom exploiterDeviceContext.location.city . |
exploiterDeviceContext.location.coordinates.latitude |
src.asset.location.region_latitude |
Dipetakan langsung dari kolom exploiterDeviceContext.location.coordinates.latitude . |
exploiterDeviceContext.location.coordinates.longitude |
src.asset.location.region_longitude |
Dipetakan langsung dari kolom exploiterDeviceContext.location.coordinates.longitude . |
exploiterDeviceContext.location.countryName |
src.asset.location.country_or_region |
Dipetakan langsung dari kolom exploiterDeviceContext.location.countryName . |
exploiterDeviceContext.location.ip |
src.ip |
Dipetakan langsung dari kolom exploiterDeviceContext.location.ip . |
exploiterDeviceContext.osName |
src.asset.platform_software.platform |
Dipetakan dari kolom exploiterDeviceContext.osName . Jika nilainya adalah "WIN" atau "Windows", nilai tersebut dipetakan ke "WINDOWS". Jika nilainya "iOS", nilai tersebut dipetakan ke "IOS". Jika nilainya adalah "Android", nilai tersebut dipetakan ke "ANDROID". |
exploiterDeviceContext.osVersion |
src.asset.platform_software.platform_version |
Dipetakan langsung dari kolom exploiterDeviceContext.osVersion . |
exploiterDeviceName |
src.asset.attribute.labels[exploiter_device_name].value |
Dipetakan langsung dari kolom exploiterDeviceName . |
hostname |
principal.hostname |
Dipetakan langsung dari kolom hostname . |
ipAddress |
principal.ip |
Dipetakan langsung dari kolom ipAddress . |
location |
principal.location.city |
Dipetakan langsung dari kolom location . |
location.city |
about.location.city |
Dipetakan langsung dari kolom location.city . |
location.coordinates.latitude |
about.location.region_latitude |
Dipetakan langsung dari kolom location.coordinates.latitude . |
location.coordinates.longitude |
about.location.region_longitude |
Dipetakan langsung dari kolom location.coordinates.longitude . |
location.countryName |
about.location.country_or_region |
Dipetakan langsung dari kolom location.countryName . |
location.ip |
about.ip |
Dipetakan langsung dari kolom location.ip . |
metadata.collected_timestamp |
metadata.collected_timestamp |
Dipetakan langsung dari kolom collected_time . |
metadata.event_timestamp |
metadata.event_timestamp |
Dipetakan langsung dari kolom event_time . |
metadata.event_type |
metadata.event_type |
Tetapkan ke "USER_UNCATEGORIZED". |
metadata.product_event_type |
metadata.product_event_type |
Dipetakan langsung dari kolom actionName . |
metadata.product_name |
metadata.product_name |
Disetel ke "VERIDIUM_ID". |
namespace |
principal.namespace |
Dipetakan langsung dari kolom namespace . |
pid |
principal.process.pid |
Dipetakan langsung dari kolom pid . |
request.context.userAgentRaw |
network.http.user_agent |
Dipetakan langsung dari kolom request.context.userAgentRaw . |
request.sessionId |
network.session_id |
Dipetakan langsung dari kolom request.sessionId . |
requestMethod |
network.http.method |
Dipetakan langsung dari kolom requestMethod . |
requestURI |
network.http.referral_url |
Dipetakan langsung dari kolom requestURI . |
security_result.severity |
security_result.severity |
Dipetakan dari kolom severity . Jika nilainya adalah "INFO", nilai tersebut dipetakan ke "INFORMATIONAL". |
principal.application |
Dipetakan langsung dari kolom application . |
|
principal.asset.hostname |
Dipetakan langsung dari kolom hostname . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.