Mengumpulkan log Barracuda WAF
Dokumen ini menjelaskan cara mengumpulkan log Firewall Aplikasi Web (WAF) Barracuda menggunakan Bindplane. Parser mengekstrak kolom dari log dalam format JSON dan Syslog, menormalisasinya, dan memetakan ke Unified Data Model (UDM). Fungsi ini menangani berbagai jenis log (traffic, firewall web) dan melakukan transformasi bersyarat berdasarkan nilai kolom, termasuk resolusi alamat IP/nama host, pemetaan arah, dan normalisasi tingkat keparahan.
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 dengan hak istimewa ke Barracuda WAF.
Mendapatkan file autentikasi penyerapan Google SecOps
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Proses Transfer. 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 mengirim ke Google SecOps
Akses file konfigurasi:
- Temukan 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).
- Temukan file
Edit file
config.yaml
sebagai berikut:receivers: tcplog: # Replace the port and IP address as required listen_address: "0.0.0.0:54525" 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: SYSLOG namespace: barracuda_waf raw_log_field: body service: pipelines: logs/source0__chronicle_w_labels-0: receivers: - tcplog 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 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-agent
Untuk memulai ulang agen Bindplane di Windows, Anda dapat menggunakan konsol Services atau memasukkan perintah berikut:
net stop BindPlaneAgent && net start BindPlaneAgent
Mengonfigurasi Barracuda WAF
- Login ke konsol Barracuda WAF menggunakan kredensial administrator.
- Klik tab Lanjutan > Ekspor log.
- Di bagian Log ekspor, klik Tambahkan server log ekspor.
- Berikan nilai berikut:
- Nama: masukkan nama untuk penerusan Google SecOps.
- Jenis server log: pilih Syslog.
- Alamat IP atau nama host: masukkan alamat IP
Bindplane
. - Port: masukkan port
Bindplane
. - Connection type: pilih jenis koneksi
TCP
(TCP direkomendasikan. Namun, protokol UDP atau SSL juga dapat digunakan). - Validasi sertifikat server: pilih Tidak.
- Sertifikat klien: pilih Tidak ada.
- Log timestamp and hostname: pilih Yes.
- Klik Tambahkan.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
action |
security_result.action |
Jika action adalah DENY , tetapkan ke BLOCK . Jika tidak, tetapkan ke ALLOW (khusus untuk jenis log WF ). Juga digunakan untuk peristiwa firewall umum. |
appProtocol |
network.application_protocol |
Jika appProtocol cocok dengan TLSv , tetapkan ke HTTPS . Jika tidak, gunakan nilai appProtocol . |
attackDetails |
security_result.description |
Diekstrak dari log mentah untuk jenis log WF . |
attackType |
security_result.summary |
Bagian dari security_result.summary , yang digabungkan dengan ruleType . |
bytesReceived |
network.received_bytes |
Dikonversi menjadi bilangan bulat tanpa tanda tangan dan dipetakan untuk jenis log TR . |
bytesSent |
network.sent_bytes |
Dikonversi menjadi bilangan bulat tanpa tanda tangan dan dipetakan untuk jenis log TR . |
hostName |
target.hostname |
Jika hostName bukan alamat IP, gunakan nilainya. Jika tidak, akan digabungkan ke target.ip . |
httpMethod loginId |
principal.user.userid |
Dipetakan untuk jenis log TR jika tidak sama dengan emptyToken . |
logType |
metadata.product_event_type |
Jika TR , tetapkan metadata.product_event_type ke Barracuda Access Log . Jika WF , tetapkan ke Barracuda Web Firewall Log . |
message |
metadata.description |
Digunakan saat desc tidak kosong. |
referrer |
network.http.referral_url |
Dipetakan untuk jenis log TR jika tidak sama dengan emptyToken . |
responseCode |
network.http.response_code |
Dikonversi menjadi bilangan bulat dan dipetakan untuk jenis log TR . |
rule |
security_result.rule_name |
Dipetakan untuk jenis log WF . |
ruleType |
security_result.summary |
Bagian dari security_result.summary , yang digabungkan dengan attackType . |
sec_desc |
security_result.rule_name |
Digunakan untuk peristiwa firewall umum. |
server |
target.ip |
Digabung ke dalam target.ip . |
serv |
target.ip |
Digabung ke dalam target.ip . |
severity |
security_result.severity , is_alert , is_significant |
Untuk jenis log WF : Dikonversi ke huruf besar. Jika EMERGENCY , ALER , atau CRITICAL , tetapkan security_result.severity ke CRITICAL , is_alert ke true, dan is_significant ke true. Jika ERROR , tetapkan ke HIGH . Jika WARNING , tetapkan ke MEDIUM . Jika NOTICE , tetapkan ke LOW . Jika tidak, tetapkan ke INFORMATIONAL . |
src |
principal.ip |
Juga digunakan untuk peristiwa firewall umum dan beberapa pembaruan status. |
srcPort |
principal.port |
Dikonversi ke bilangan bulat. |
target targetPort |
target.port |
Dikonversi ke bilangan bulat. |
time |
metadata.event_timestamp.seconds , metadata.event_timestamp.nanos , timestamp.seconds , timestamp.nanos |
Digabungkan dengan tz dan diuraikan untuk membuat stempel waktu peristiwa. Detik dan nano diekstrak dan diisi di kolom masing-masing. |
url urlParams |
target.url |
Ditambahkan ke url jika tidak sama dengan emptyToken untuk jenis log TR . |
userAgent userName |
target.user.userid , target.user.user_display_name |
Digunakan untuk peristiwa firewall umum. Jika tidak sama dengan emptyToken untuk jenis log TR , dipetakan ke target.user.user_display_name . Di-hardcode ke Barracuda . Tetapkan ke NETWORK_HTTP jika src dan target ada. Tetapkan ke STATUS_UPDATE jika hanya src yang ada. Tetapkan ke GENERIC_EVENT sebagai default atau untuk skenario lain seperti penguraian CEF. Di-hardcode ke BARRACUDA_WAF . |
Perubahan
2023-07-19
Perbaikan bug:
- Mengurai log mentah yang tidak diuraikan menggunakan pola Grok.
- Memetakan 'server' ke 'target.ip'.
2022-09-09
- Membuat parser default dan memigrasikan parser kustom ke parser default.
- Kolom berikut dipetakan:
- 'duser' dipetakan ke 'target.user.user_display_name'.
- 'suser' dipetakan ke '.principal.user.user_display_name'.
- 'suid' dipetakan ke 'principal.user.userid'.
- 'src' dipetakan ke 'principal.ip'.
- 'dst' dipetakan ke 'target.ip'.
- 'shost' dipetakan ke 'principal.hostname'.
- 'severity' dipetakan ke 'security_result.severity'.
- 'action' dipetakan ke 'security_result.action'.
- 'user_name' dipetakan ke 'target.user.userid'.
- 'domain_name' dipetakan ke 'target.domain.name'.
- 'mac_address' dipetakan ke 'principal.mac'.
- 'direction' dipetakan ke 'network.direction'.
- 'ip_protocol' dipetakan ke 'network.ip_protocol'.
- 'summary' dipetakan ke 'security_result.summary'.
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.