Mengumpulkan log Barracuda WAF

Didukung di:

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

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Proses Transfer. Simpan file dengan aman di sistem tempat Bindplane akan diinstal.

Mendapatkan ID pelanggan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Profil.
  3. Salin dan simpan ID Pelanggan dari bagian Detail Organisasi.

Menginstal agen Bindplane

Penginstalan Windows

  1. Buka Command Prompt atau PowerShell sebagai administrator.
  2. Jalankan perintah berikut:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Penginstalan Linux

  1. Buka terminal dengan hak istimewa root atau sudo.
  2. 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

Mengonfigurasi agen Bindplane untuk menyerap Syslog dan mengirim ke Google SecOps

  1. Akses file konfigurasi:

    1. Temukan file config.yaml. Biasanya, file ini berada di direktori /etc/bindplane-agent/ di Linux atau di direktori penginstalan di Windows.
    2. Buka file menggunakan editor teks (misalnya, nano, vi, atau Notepad).
  2. 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
    
  3. Ganti port dan alamat IP sesuai kebutuhan di infrastruktur Anda.

  4. Ganti <customer_id> dengan ID pelanggan yang sebenarnya.

  5. 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

  1. Login ke konsol Barracuda WAF menggunakan kredensial administrator.
  2. Klik tab Lanjutan > Ekspor log.
  3. Di bagian Log ekspor, klik Tambahkan server log ekspor.
  4. 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.