Mengumpulkan log Brocade ServerIron
Parser ini mengekstrak kolom dari pesan syslog Brocade ServerIron menggunakan pencocokan ekspresi reguler dan memetakannya ke Model Data Terpadu (UDM). Layanan ini menangani berbagai format log, termasuk status jaringan, autentikasi pengguna, dan peristiwa keamanan. Parser melakukan konversi dan pengayaan jenis data jika diperlukan.
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 belakang proxy, pastikan port firewall terbuka.
- Pastikan Anda memiliki akses istimewa ke instance Brocade ServerIron.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan.
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 memproses Syslog dan mengirimkannya 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_ServerIron 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 Brocade ServerIron ADX
Login ke perangkat ADX dan masukkan mode konfigurasi global:
enable configure terminal
Aktifkan Logging Syslog:
logging on
Tentukan alamat IP atau nama host dan port server syslog, termasuk protokol yang diinginkan (Bindplane):
logging host <syslog-server-ip> [udp | tcp] port <port-number>
Contoh untuk TCP di port 54525:
logging host 10.10.10.10 tcp port 54525
Opsional: tetapkan Fasilitas Syslog (local0 hingga local7):
logging facility local0
Tentukan tingkat keparahan minimum log yang akan dikirim ke server syslog:
logging trap <severity-level>
Simpan konfigurasi:
write memory
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
%{GREEDYDATA} | metadata.description | Kolom %{GREEDYDATA} dipetakan ke metadata.description jika cocok dengan pola "-- %{GREEDYDATA} --". |
%{GREEDYDATA:auth_result} | security_result.description | Kolom %{GREEDYDATA:auth_result} digabungkan dengan kolom %{GREEDYDATA:desc} untuk membentuk security_result.description jika %{GREEDYDATA:desc} ada. |
%{GREEDYDATA:desc} | security_result.description | Kolom %{GREEDYDATA:desc} digunakan untuk mengisi kolom security_result.description. Kolom ini dapat digabungkan dengan kolom lain, bergantung pada format log mentah. |
%{GREEDYDATA:login_to} | security_result.description | Kolom %{GREEDYDATA:login_to} digabungkan dengan kolom %{GREEDYDATA:desc} untuk membentuk security_result.description jika %{GREEDYDATA:desc} ada. |
%{GREEDYDATA:user} | target.user.userid | Kolom %{GREEDYDATA:user} dipetakan ke target.user.userid. |
%{HOST:principal_host} | principal.hostname | Kolom %{HOST:principal_host} dipetakan ke principal.hostname. |
%{HOST:target_host} | target.hostname | Kolom %{HOST:target_host} dipetakan ke target.hostname. |
%{INT:http_port} | additional.fields.value.string_value | Kolom %{INT:http_port} dipetakan ke additional.fields.value.string_value dengan kunci "HTTP Port". |
%{INT:target_port} | target.port | Kolom %{INT:target_port} dipetakan ke target.port dan dikonversi menjadi bilangan bulat. |
%{INT:telnet_port} | additional.fields.value.string_value | Kolom %{INT:telnet_port} dipetakan ke additional.fields.value.string_value dengan kunci "Telnet Port". |
%{INT:tftp_port} | additional.fields.value.string_value | Kolom %{INT:tftp_port} dipetakan ke additional.fields.value.string_value dengan kunci "TFTP Port". |
%{IP:principal_ip} | principal.ip | Kolom %{IP:principal_ip} dipetakan ke principal.ip. |
%{IP:target_ip} | target.ip | Kolom %{IP:target_ip} dipetakan ke target.ip. |
%{IPV4:principal_ip} | principal.ip | Kolom %{IPV4:principal_ip} dipetakan ke principal.ip. |
%{IPV4:target_ip} | target.ip | Kolom %{IPV4:target_ip} dipetakan ke target.ip. |
%{MAC:principal_mac} | principal.mac | Kolom %{MAC:principal_mac} dipetakan ke principal.mac setelah dikonversi ke format [0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}:[0-9a-f]{2}. |
%{USERNAME:target_host} | target.hostname | Kolom %{USERNAME:target_host} dipetakan ke target.hostname. |
%{USERNAME:user} | target.user.userid | Kolom %{USERNAME:user} dipetakan ke target.user.userid. |
%{WORD:auth_result} | security_result.description | Kolom %{WORD:auth_result} digabungkan dengan kolom %{GREEDYDATA:desc} untuk membentuk security_result.description jika %{GREEDYDATA:desc} ada. |
%{WORD:proto} | network.application_protocol | Kolom %{WORD:proto} dipetakan ke network.application_protocol jika nilainya adalah 'SSH'. |
timestamp | metadata.event_timestamp | Kolom stempel waktu diuraikan dari data log mentah menggunakan pola grok dan dikonversi menjadi objek stempel waktu. |
extensions.auth.type | Nilai disetel ke "MACHINE" jika kolom proto tidak kosong dan kolom auth_action adalah "logout" atau "login". | |
metadata.description | Kolom ini diisi dengan nilai kolom "metadata_description" jika tidak kosong. | |
metadata.event_type | Kolom ini diisi berdasarkan nilai kolom lain menggunakan logika bersyarat: - STATUS_STARTUP: jika target_port_status adalah "up". - STATUS_SHUTDOWN: jika target_port_status adalah "down". - USER_LOGOUT: jika proto tidak kosong dan auth_action adalah "logout". - USER_LOGIN: jika proto tidak kosong dan auth_action adalah "login". - STATUS_UPDATE: jika metadata_description cocok dengan "state changed". - GENERIC_EVENT: jika tidak ada kondisi di atas yang terpenuhi. |
|
metadata.log_type | Nilai di-hardcode ke "BROCADE_SERVERIRON". | |
metadata.product_name | Nilai di-hardcode ke "ServerIron". | |
metadata.vendor_name | Nilai dikodekan secara permanen menjadi "Brocade". | |
security_result.action | Nilai ditetapkan ke "BLOCK" jika kolom desc berisi "fail", atau kolom auth_result berisi "fail" atau "rejected". |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.