Mengumpulkan log Vectra Stream
Dokumen ini menjelaskan cara menyerap log Vectra Stream ke Google Security Operations menggunakan Bindplane. Parser mengekstrak pasangan nilai kunci dari log Vectra Stream, menormalisasi berbagai kolom ke dalam model data terpadu (UDM), dan memetakan jenis log ke jenis peristiwa UDM tertentu. Log ini menangani log berformat JSON dan syslog, menghapus pesan yang salah format, dan memperkaya data dengan konteks tambahan berdasarkan nilai kolom tertentu.
Sebelum memulai
Pastikan Anda memiliki prasyarat berikut:
- Instance Google SecOps
- Host Windows 2016 atau yang lebih baru atau Linux dengan
systemd - Jika beroperasi dari balik proxy, pastikan port firewall terbuka sesuai dengan persyaratan agen Bindplane
- Akses istimewa ke UI Vectra
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 ini.
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.yamlsebagai 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: 'VECTRA_STREAM' 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. - Ganti
/path/to/ingestion-authentication-file.jsondengan jalur tempat file autentikasi disimpan di bagian Mendapatkan 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-agentUntuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi Vectra Stream untuk mengirim Syslog
- Login ke UI Vectra (otak).
- Buka Setelan > Notifikasi.
- Buka bagian Syslog.
- Klik Edit untuk menambahkan atau mengedit konfigurasi Syslog.
- Berikan detail konfigurasi berikut:
- Tujuan: Masukkan alamat IP agen Bindplane.
- Port: Masukkan nomor port agen Bindplane.
- Protocol: Pilih UDP atau TCP berdasarkan konfigurasi agen Bindplane Anda yang sebenarnya.
- Format: Pilih JSON.
- Jenis Log: Pilih log yang ingin Anda kirim ke Google SecOps.
- Klik Simpan.
- Klik Uji untuk menguji konfigurasi.
Tabel Pemetaan UDM
| Kolom Log | Pemetaan UDM | Logika |
|---|---|---|
| AA | network.dns.authoritative | Dikonversi menjadi boolean dari nilai string. |
| account_session_id | network.session_id | Pemetaan langsung. |
| account_session_time | network.session_duration | Dikonversi menjadi stempel waktu dari detik UNIX. |
| jawaban | network.dns.answers.data | Pemetaan langsung. |
| assigned_ip | network.dhcp.yiaddr | Pemetaan langsung. |
| beacon_type | metadata.description | Pemetaan langsung. |
| beacon_uid | network.session_id | Pemetaan langsung. |
| calling_station_id | intermediary.asset.product_object_id | Pemetaan langsung. |
| certificate.issuer | network.tls.client.certificate.issuer | Pemetaan langsung. |
| certificate.not_valid_after | network.tls.client.certificate.not_after | Dikonversi menjadi stempel waktu dari UNIX atau UNIX_MS, bergantung pada formatnya. |
| certificate.not_valid_before | network.tls.client.certificate.not_before | Dikonversi menjadi stempel waktu dari UNIX atau UNIX_MS, bergantung pada formatnya. |
| certificate.serial | network.tls.client.certificate.serial | Pemetaan langsung. |
| certificate.subject | network.tls.client.certificate.subject | Pemetaan langsung. |
| certificate.version | network.tls.client.certificate.version | Pemetaan langsung. |
| cipher | network.tls.cipher | Pemetaan langsung. |
| cipher_alg | network.tls.cipher | Pemetaan langsung. |
| klien | principal.application | Pemetaan langsung. |
| client_cipher | network.tls.client.supported_ciphers | Pemetaan langsung. |
| community_id | network.community_id | Pemetaan langsung. |
| compression_alg | additional.fields.value.string_value | Ditambahkan ke kolom tambahan dengan kunci "compression_alg". |
| connect_info | security_result.description | Pemetaan langsung. |
| conn_state | metadata.description | Dipetakan ke deskripsi berdasarkan nilai conn_state. |
| kue | target.user.userid | Pemetaan langsung. |
| kurva | network.tls.curve | Pemetaan langsung. |
| dhcp_server_ip | network.dhcp.giaddr | Pemetaan langsung. |
| dns_server_ips | principal.ip | Setiap IP dalam array ditambahkan ke array principal.ip. |
| domain | target.domain.name | Pemetaan langsung. |
| dst_display_name | target.hostname, target.asset.hostname | Pemetaan langsung. |
| dst_luid | target.asset.product_object_id | Pemetaan langsung. |
| durasi | network.session_duration.seconds | Dikonversi menjadi bilangan bulat dari nilai string. |
| endpoint | principal.application | Pemetaan langsung. |
| didirikan | network.tls.established | Dikonversi menjadi boolean dari nilai string. |
| host | target.hostname, target.asset.hostname | Mengekstrak nama host dari kolom "host". |
| host_key | additional.fields.value.string_value | Ditambahkan ke kolom tambahan dengan kunci "host_key". |
| host_key_alg | additional.fields.value.string_value | Ditambahkan ke kolom tambahan dengan kunci "host_key_alg". |
| host_multihomed | additional.fields.value.string_value | Ditambahkan ke kolom tambahan dengan kunci "host_multihomed" dan nilai "subnet %{host_multihomed}". |
| hostname | target.hostname, target.asset.hostname | Pemetaan langsung. |
| id.orig_h | principal.ip | Pemetaan langsung. |
| id.orig_p | principal.port | Dikonversi menjadi bilangan bulat dari nilai string. |
| id.resp_h | target.ip, target.asset.ip | Pemetaan langsung. |
| id.resp_p | target.port | Dikonversi menjadi bilangan bulat dari nilai string. |
| issuer | network.tls.client.certificate.issuer | Pemetaan langsung. |
| ja3 | network.tls.client.ja3 | Pemetaan langsung. |
| ja3s | network.tls.server.ja3s | Pemetaan langsung. |
| kex_alg | additional.fields.value.string_value | Ditambahkan ke kolom tambahan dengan kunci "kex_alg". |
| lease_time | network.dhcp.lease_time_seconds | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| log_type | metadata.log_type | Pemetaan langsung. |
| mac | principal.mac | Pemetaan langsung. |
| mac_alg | additional.fields.value.string_value | Ditambahkan ke kolom tambahan dengan kunci "mac_alg". |
| mail_from | network.email.from | Pemetaan langsung. |
| metadata_type | metadata.product_event_type | Pemetaan langsung. |
| metode | network.http.method | Pemetaan langsung. |
| nama | target.file.full_path | Pemetaan langsung. |
| nas_identifier | target.user.attribute.roles.name | Pemetaan langsung. |
| next_protocol | network.tls.next_protocol | Pemetaan langsung. |
| orig_hostname | principal.hostname | Pemetaan langsung. |
| orig_ip_bytes | network.sent_bytes | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| orig_sluid | principal.hostname | Pemetaan langsung. |
| jalur | target.file.full_path | Pemetaan langsung. |
| proto | network.ip_protocol | Dipetakan ke nama protokol IP berdasarkan nilai numerik. |
| di-proxy | principal.ip | Jika nilainya adalah alamat IP, nilai tersebut akan ditambahkan ke array principal.ip. |
| qclass | network.dns.questions.class | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| qclass_name | network.dns.questions.name | Pemetaan langsung. |
| query | network.dns.questions.name, principal.process.command_line | Pemetaan langsung. |
| qtype | network.dns.questions.type | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| RA | network.dns.recursion_available | Dikonversi menjadi boolean dari nilai string. |
| radius_type | metadata.description | Pemetaan langsung. |
| rcode | network.dns.response_code | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| RD | network.dns.recursion_desired | Dikonversi menjadi boolean dari nilai string. |
| rcpt_to | network.email.reply_to, network.email.to | Alamat email pertama dipetakan ke reply_to, sedangkan alamat email lainnya ditambahkan ke array to. |
| referrer | network.http.referral_url | Pemetaan langsung. |
| resp_domain | target.domain.name | Pemetaan langsung. |
| resp_hostname | target.hostname, target.asset.hostname | Pemetaan langsung. |
| resp_ip_bytes | network.received_bytes | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| resp_mime_types | target.file.mime_type | Pemetaan langsung. |
| hasil | security_result.description | Pemetaan langsung. |
| result_code | security_result.action_details | Pemetaan langsung. |
| rtt | network.session_duration.seconds | Dikonversi menjadi bilangan bulat dari nilai string. |
| security_result | security_result | Digabungkan dengan objek security_result yang ada. |
| sensor_uid | observer.asset_id | Diformat sebagai "Sensor_UID:%{sensor_uid}". |
| server | target.application | Pemetaan langsung. |
| server_name | network.tls.client.server_name | Pemetaan langsung. |
| pelanggan | target.application | Pemetaan langsung. |
| src_display_name | principal.hostname | Pemetaan langsung. |
| src_luid | principal.asset.product_object_id | Pemetaan langsung. |
| status | security_result.summary | Pemetaan langsung. |
| status_code | network.http.response_code | Dikonversi menjadi bilangan bulat dari nilai string. |
| status_msg | security_result.summary | Pemetaan langsung. |
| subject | network.email.subject | Pemetaan langsung. |
| berhasil | security_result.action | Dipetakan ke "ALLOW" jika benar, "BLOCK" jika salah. |
| TC | network.dns.truncated | Dikonversi menjadi boolean dari nilai string. |
| trans_id | network.dhcp.transaction_id, network.dns.id | Dikonversi menjadi bilangan bulat yang tidak bertanda tangan dari nilai string. |
| ts | metadata.event_timestamp | Dikonversi menjadi stempel waktu dari berbagai format. |
| uid | metadata.product_log_id | Pemetaan langsung. |
| uri | target.url | Pemetaan langsung. |
| user_agent | network.http.user_agent | Pemetaan langsung. |
| nama pengguna | principal.user.userid | Pemetaan langsung. |
| versi | network.tls.version, principal.platform_version | Pemetaan langsung. |
| version_num | network.tls.version_protocol | Pemetaan langsung. |
| metadata.event_type | Ditentukan oleh logika parser berdasarkan jenis log dan metadata. | |
| metadata.vendor_name | Nilai yang dikodekan secara permanen: "Vectra". | |
| metadata.product_name | Nilai yang di-hardcode: "Vectra Stream". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.