Mengumpulkan log tombol Brocade
Parser ini mengekstrak kolom dari log tombol Brocade menggunakan pola grok yang cocok dengan berbagai format log. Kemudian, alat ini memetakan kolom yang diekstrak ini ke kolom UDM, menangani struktur log yang berbeda, dan memperkaya data dengan metadata seperti informasi vendor dan produk. Parser juga melakukan transformasi data, seperti mengonversi tingkat keparahan dan menangani pesan berulang, sebelum menghasilkan output UDM akhir.
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 Admin CLI ke Switch Brocade.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer.
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
- Untuk penginstalan Windows, jalankan skrip berikut:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
- Untuk penginstalan Linux, jalankan skrip berikut:
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
- Opsi penginstalan tambahan dapat ditemukan di panduan penginstalan ini.
Mengonfigurasi Agen BindPlane untuk menyerap Syslog dan mengirim ke Google SecOps
- Akses komputer tempat BindPlane diinstal.
Edit file
config.yaml
sebagai berikut:receivers: tcplog: # 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: Brocade_Switch raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog exporters: - chronicle/chronicle_w_labels
Mulai ulang Agen BindPlane untuk menerapkan perubahan:
sudo systemctl restart bindplane
Mengonfigurasi Ekspor Syslog dari Switch Brocade
- Hubungkan ke tombol Brocade menggunakan SSH atau Telnet dengan kredensial yang sesuai.
Jalankan perintah berikut untuk menentukan alamat IP atau nama host dan Port server syslog (Bindplane):
syslogadmin --set -ip <IP> -port <Port>
Contoh:
syslogadmin --set -ip 10.10.10.10 -port 54525
Jalankan perintah berikut untuk menampilkan server syslog yang dikonfigurasi:
syslogadmin --show -ip
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
application |
additional.fields[].key : "application"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom application@1588 dalam log mentah jika kolom KV_DATA ada. |
class |
additional.fields[].key : "class"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom class@1588 dalam log mentah jika kolom KV_DATA ada. |
domain |
principal.administrative_domain |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom domain . |
Event |
additional.fields[].key : "event_category"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom arg0@1588 dalam log mentah jika kolom KV_DATA ada. |
event_id |
metadata.product_log_id |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom event_id . |
event_type |
metadata.product_event_type |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom event_type . |
flags |
additional.fields[].key : "flags"additional.fields[].value.string_value : |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom flags . |
Info |
metadata.description |
Nilai yang diekstrak dari kolom Info , diuraikan menggunakan grok. |
interface |
app_protocol_src |
Nilai yang diekstrak dari kolom interface@1588 dalam log mentah jika kolom KV_DATA ada. Digunakan untuk mendapatkan network.application_protocol . |
ip |
principal.ip |
Nilai yang diekstrak dari kolom ip , diuraikan menggunakan grok. Digabung ke principal.ip jika tidak sama dengan IP yang diekstrak dari kolom Info . |
Info , IP Addr |
principal.ip |
Nilai yang diekstrak dari kolom IP Addr dalam kolom Info , diuraikan menggunakan grok. |
log |
additional.fields[].key : "log"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom log@1588 dalam log mentah jika kolom KV_DATA ada. |
msg |
metadata.description |
Nilai yang diekstrak dari kolom msg , diuraikan menggunakan grok. |
msgid |
additional.fields[].key : "msgid"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom msgid@1588 dalam log mentah jika kolom KV_DATA ada. |
prin_host |
principal.hostname principal.asset.hostname |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom prin_host . |
product_version |
metadata.product_version |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom product_version . |
repeat_count |
additional.fields[].key : "repeat_count"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom msg , diuraikan menggunakan grok. |
role , user_role |
principal.user.attribute.roles[].name |
Nilai yang diekstrak dari kolom role@1588 atau user_role . Jika nilainya "admin", nilai tersebut akan diganti dengan "Admin". |
sequence_number |
additional.fields[].key : "sequence_number"additional.fields[].value.string_value : |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom sequence_number . |
severity |
security_result.severity |
Nilai yang diekstrak dari kolom severity , diuraikan menggunakan grok. Dipetakan ke nilai keparahan UDM (INFORMATIONAL, ERROR, CRITICAL, MEDIUM). |
Status |
security_result.summary |
Nilai yang diekstrak dari kolom Status . |
switch_name |
additional.fields[].key : "switch_name"additional.fields[].value.string_value : |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom switch_name . |
target_application |
target.application |
Nilai yang diekstrak dari pola grok yang cocok dengan kolom target_application . |
time |
additional.fields[].key : "time"additional.fields[].value.string_value : |
Nilai yang diekstrak dari kolom time dalam kolom kv_data3 . |
timestamp |
metadata.event_timestamp.seconds |
Nilai yang diekstrak dari kolom timestamp , diuraikan menggunakan filter tanggal. |
user |
principal.user.userid principal.user.user_display_name |
Nilai yang diekstrak dari kolom user atau user@1588 , diuraikan menggunakan grok. Disalin dari principal.hostname . Disalin dari principal.ip . Disalin dari metadata.product_event_type atau ditetapkan ke "STATUS_UPDATE" berdasarkan kondisi. Disalin dari create_time.nanos log. Ditentukan oleh logika parser berdasarkan nilai has_principal , has_target , has_userid , dan event_type . Dapat berupa "SYSTEM_AUDIT_LOG_UNCATEGORIZED", "STATUS_UPDATE", atau "GENERIC_EVENT". Di-hardcode ke "BROCADE_SWITCH". Di-hardcode ke "BROCADE". Di-hardcode ke "BROCADE_SWITCH". Berasal dari kolom interface atau ditetapkan ke "SSH" jika kolom interface berisi "SSH". |
Perubahan
2024-04-15
- Menambahkan dukungan untuk log khusus pelanggan.
2023-12-01
- Parser yang baru dibuat.