Mengumpulkan log switch Arista
Parser ini mengekstrak kolom dari log switch Arista, yang menangani format JSON dan syslog. Proses ini menggunakan pola grok untuk mengurai berbagai jenis pesan log, memetakan kolom yang diekstrak ke UDM, dan memperkaya peristiwa dengan metadata seperti jenis peristiwa, tingkat keparahan, dan informasi pokok/target berdasarkan detail yang diekstrak.
Sebelum memulai
- Pastikan Anda memiliki instance Google SecOps.
- Pastikan Anda menggunakan Windows 2016 atau yang lebih baru, atau host Linux dengan
systemd
. - Jika berjalan di belakang proxy, pastikan port firewall terbuka.
- Arista EOS 4.23.x dan yang lebih baru sudah diinstal dan dapat diakses.
- Pastikan Anda memiliki akses istimewa di Switch Arista EOS.
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
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.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: '/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 ingestion_labels: log_type: ARISTA_SWITCH 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 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 di switch Arista
- Login ke switch Arista.
Buka mode konfigurasi:
Arista# config terminal
Berikan konfigurasi berikut pada switch untuk mengirim log ke agen Bindplane.
Arista(config)# logging host <bindplane-server-ip> <port-number> protocol [tcp/udp] Arista(config)# logging trap information Arista(config)# copy running-config startup-config
* Replace `<bindplane-server-ip>` with Bindplane agent IP address and `<port-number>` with the port configured to listen.
Masukkan konfigurasi tambahan untuk log eksekusi perintah:
Arista (config)# aaa accounting commands all console start-stop logging Arista (config)# aaa accounting commands all default start-stop logging Arista (config)# aaa accounting exec console start-stop logging Arista (config)# aaa accounting exec default start-stop logging Arista (config)# copy running-config startup-config
Masukkan konfigurasi tambahan untuk log login:
Arista (config)# aaa authentication policy on-success log Arista (config)# aaa authentication policy on-failure log Arista (config)# copy running-config startup-config
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
appname |
target.application |
Dipetakan langsung dari kolom appname . |
description |
metadata.description |
Dipetakan langsung dari kolom description , yang diekstrak dari kolom message menggunakan pola grok berdasarkan product_event_type . |
dst_ip |
target.ip , target.asset.ip |
Dipetakan langsung dari kolom dst_ip , yang diekstrak dari kolom message menggunakan pola grok. |
dst_mac |
target.mac |
Dipetakan langsung dari kolom dst_mac , yang diekstrak dari kolom message menggunakan pola grok. |
dst_port |
target.port |
Dipetakan langsung dari kolom dst_port , yang diekstrak dari kolom message menggunakan pola grok. |
facility |
additional.fields[facility].string_value |
Dipetakan langsung dari kolom facility . |
hostname |
principal.hostname , principal.asset.hostname |
Dipetakan langsung dari kolom hostname . |
inner_msg |
metadata.description |
Dipetakan langsung dari kolom inner_msg , yang diekstrak dari kolom message menggunakan pola grok. |
ip_protocol |
network.ip_protocol |
Dipetakan langsung dari kolom ip_protocol , yang diekstrak dari kolom message menggunakan pola grok. Jika nilainya adalah "tcp", nilai tersebut akan dikonversi menjadi "TCP". Jika jenis peristiwanya adalah "NO_IGMP_QUERIER", maka akan disetel ke "IGMP". |
pid |
principal.process.pid |
Dipetakan langsung dari kolom pid , yang diekstrak dari kolom message menggunakan pola grok. |
prin_ip |
principal.ip , principal.asset.ip |
Dipetakan langsung dari kolom prin_ip , yang diekstrak dari kolom message menggunakan pola grok. |
product_event_type |
metadata.product_event_type |
Dipetakan langsung dari kolom product_event_type , yang diekstrak dari kolom message menggunakan pola grok. |
proto |
network.application_protocol |
Jika kolom proto adalah "sshd", kolom UDM akan ditetapkan ke "SSH". |
severity |
security_result.severity , security_result.severity_details |
security_result.severity berasal dari kolom severity berdasarkan pemetaan berikut: "DEFAULT", "DEBUG", "INFO", "NOTICE" -> "INFORMATIONAL"; "WARNING", "ERROR", "ERR", "WARN" -> "MEDIUM"; "CRITICAL", "ALERT", "EMERGENCY" -> "HIGH". Nilai mentah severity dipetakan ke security_result.severity_details . |
session_id |
network.session_id |
Dipetakan langsung dari kolom session_id , yang diekstrak dari kolom message menggunakan pola grok. |
source_ip |
principal.ip , principal.asset.ip |
Dipetakan langsung dari kolom source_ip , yang diekstrak dari kolom message menggunakan pola grok. |
source_port |
principal.port |
Dipetakan langsung dari kolom source_port , yang diekstrak dari kolom message menggunakan pola grok. |
src_ip |
principal.ip , principal.asset.ip |
Dipetakan langsung dari kolom src_ip , yang diekstrak dari kolom message menggunakan pola grok. |
table_name |
target.resource.name |
Dipetakan langsung dari kolom table_name , yang diekstrak dari kolom message menggunakan pola grok. Jika kolom ini diisi, target.resource.resource_type akan ditetapkan ke "TABLE". |
target_host |
target.hostname , target.asset.hostname |
Dipetakan langsung dari kolom target_host , yang diekstrak dari kolom message menggunakan pola grok. |
target_ip |
target.ip , target.asset.ip |
Dipetakan langsung dari kolom target_ip , yang diekstrak dari kolom message menggunakan pola grok. |
target_package |
target.process.command_line |
Dipetakan langsung dari kolom target_package , yang diekstrak dari kolom message menggunakan pola grok. |
target_port |
target.port |
Dipetakan langsung dari kolom target_port , yang diekstrak dari kolom message menggunakan pola grok. |
timestamp |
metadata.event_timestamp |
Dipetakan langsung dari kolom timestamp setelah diurai menjadi objek stempel waktu. |
user |
principal.user.userid |
Dipetakan langsung dari kolom user , yang diekstrak dari kolom message menggunakan pola grok. |
user_name |
target.user.userid |
Dipetakan langsung dari kolom user_name , yang diekstrak dari kolom message menggunakan pola grok. |
vrf |
additional.fields[vrf].string_value |
Dipetakan langsung dari kolom vrf , yang diekstrak dari kolom message menggunakan pola grok. Diperoleh dari kombinasi kolom has_principal , has_target , user , message , product_event_type , dan description menggunakan logika bersyarat yang kompleks seperti yang dijelaskan dalam kode parser. Nilai defaultnya adalah "GENERIC_EVENT". Dikodekan secara permanen ke "ARISTA_SWITCH". Dikodekan secara permanen ke "Arista Switch". Dikodekan secara permanen ke "Arista". Tetapkan ke "BLOCK" jika kolom description berisi "connection rejected". |
dpid |
additional.fields[DPID].string_value |
Dipetakan langsung dari kolom dpid . |
intf |
additional.fields[intf].string_value |
Dipetakan langsung dari kolom intf . |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.