Mengumpulkan log F5 ASM

Didukung di:

Dokumen ini menjelaskan cara menyerap log F5 Application Security Manager (ASM) ke Google Security Operations menggunakan BindPlane. Parser menangani berbagai format log F5 ASM (seperti syslog, CSV, CEF, dan Splunk), dan menormalisasinya ke dalam Model Data Terpadu (UDM). Fitur ini menggunakan pola grok dan ekstraksi nilai kunci untuk mengurai kolom, pemfilteran XML untuk detail pelanggaran, logika bersyarat untuk kategorisasi peristiwa dan pemetaan tingkat keparahan, serta menggabungkan kolom yang diekstrak ke dalam skema UDM.

Sebelum memulai

Pastikan Anda memenuhi prasyarat berikut:

  • Instance Google SecOps
  • Windows 2016 atau yang lebih baru, atau host Linux dengan systemd
  • Jika dijalankan di belakang proxy, port firewall terbuka
  • Akses istimewa ke F5 ASM

Mendapatkan file autentikasi penyerapan Google SecOps

  1. Login ke konsol Google SecOps.
  2. Buka Setelan SIEM > Agen Pengumpulan.
  3. Download File Autentikasi Penyerapan. 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

Untuk opsi penginstalan tambahan, lihat panduan penginstalan.

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. 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).
  2. 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_file_path: '/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: 'F5_ASM'
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - udplog
                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 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 F5 ASM

  1. Login ke instance tmsh dengan mengetik perintah berikut:

    tmsh
    
  2. Edit konfigurasi syslog menggunakan perintah berikut:

    edit /sys syslog all-properties
    
  3. Konfigurasi syslog terbuka di editor teks vi dan terlihat mirip dengan contoh berikut:

    modify syslog {
              auth-priv-from notice
              auth-priv-to emerg
              cron-from warning
              cron-to emerg
              daemon-from notice
              daemon-to emerg
              description none
              include none
              iso-date disabled
              kern-from notice
              kern-to emerg
              mail-from notice
              mail-to emerg
              messages-from notice
              messages-to warning
              remote-servers none
              user-log-from notice
              user-log-to emerg
          }
    
  4. Ganti baris include none dengan filter syslog berikut:

        include `
              filter f_audit{
                  match(AUDIT);
              };
              destination d_syslog_server {
                      udp(\`<bindplane-ip>\` port (<bindplane-port>));
              };
              log {
                      source(s_syslog_pipe);
                          filter(f_audit);
                          destination(d_syslog_server);
              };
              `
    
  5. Ganti <bindplane-ip> dan <bindplane-port> dengan alamat IP dan nomor port sebenarnya yang dikonfigurasi untuk agen Bindplane Anda.

  6. Keluar dari vi dengan mengetik urutan tombol berikut:

    :wq!
    
  7. Pada perintah berikut, ketik y untuk menyimpan perubahan pada file:

    Save changes? (y/n/e)
    
  8. Simpan konfigurasi dengan mengetik perintah berikut:

    save /sys config
    

Tabel pemetaan UDM

Kolom Log Pemetaan UDM Logika
act security_result.action Jika act adalah blocked, dipetakan ke BLOCK. Jika act adalah passed atau legal, dipetakan ke ALLOW. Jika act berisi alerted, dipetakan ke KARANTINA. Jika tidak, defaultnya adalah ALLOW untuk format Splunk.
app network.application_protocol Dipetakan langsung ke HTTPS jika ada di log mentah.
attack_type security_result.category_details, metadata.description Digunakan bersama dengan kolom lain untuk menentukan security_result.category. Jika tidak ada deskripsi lain, deskripsi tersebut akan menjadi deskripsi acara. Untuk log format Splunk, kolom ini digunakan untuk menentukan kategori dan ringkasan jika violations kosong.
client_ip principal.ip, principal.asset.ip Dipetakan langsung ke IP utama.
cn1 network.http.response_code Dipetakan langsung ke kode respons HTTP.
cn2 security_result.severity_details Dipetakan langsung ke detail tingkat keparahan hasil keamanan. Digunakan dengan response_code untuk menentukan apakah suatu peristiwa adalah pemberitahuan.
column1 principal.ip, principal.asset.ip Memetakan ke IP utama untuk log berformat CSV tertentu.
column2 target.port Memetakan ke port target untuk log berformat CSV tertentu.
column3 target.ip, target.asset.ip Memetakan ke IP target untuk log berformat CSV tertentu.
column4 security_result.severity Dipetakan ke tingkat keparahan hasil keamanan untuk log berformat CSV tertentu. Nilai Information, Informational, 0, 4 dipetakan ke INFORMASI. Warning, 1, 3 dipetakan ke MEDIUM. Error, 2 dipetakan ke ERROR. Critical, CRITICAL, critical dipetakan ke KRITIS.
column7 security_result.detection_fields, network.http.response_code Berisi data XML. viol_name dalam request-violations diekstrak dan ditambahkan sebagai kolom deteksi dengan kunci Request Violation Name_index. viol_name dalam response_violations diekstrak dan ditambahkan sebagai kolom deteksi dengan kunci Response Violation Name_index. response_code dalam response_violations dipetakan ke network.http.response_code.
column8 security_result.rule_name Dipetakan ke nama aturan hasil keamanan untuk log berformat CSV tertentu.
cs1 security_result.rule_name Dipetakan langsung ke nama aturan hasil keamanan.
cs2 security_result.summary Dipetakan langsung ke ringkasan hasil keamanan.
cs5 principal.ip, principal.asset.ip, additional.fields Jika cs5 berisi URL LDAP JNDI, URL tersebut akan ditambahkan sebagai kolom tambahan dengan kunci JNDI_LDAP_URL. Jika tidak, jika berisi IP yang dipisahkan koma, IP apa pun yang berbeda dari principal_ip akan ditambahkan sebagai IP utama tambahan.
cs6 principal.location.country_or_region Dipetakan langsung ke negara atau wilayah lokasi utama.
data network.session_id, network.sent_bytes, network.tls.version Jika ada, diuraikan sebagai JSON untuk mengekstrak sessionid, bits (dipetakan ke sent_bytes), dan version.
date_time metadata.event_timestamp Dipetakan langsung ke stempel waktu peristiwa setelah mengurai dan mengonversi ke format yang benar.
dest_ip target.ip, target.asset.ip Memetakan langsung ke IP target.
dest_port target.port Dipetakan langsung ke port target.
dhost target.hostname Dipetakan langsung ke nama host target.
dpt target.port Dipetakan langsung ke port target.
dst target.ip Memetakan langsung ke IP target.
dvc intermediary.ip Dipetakan langsung ke IP perantara.
dvchost target.hostname, intermediary.hostname Memetakan langsung ke nama host target dan nama host perantara.
errdefs_msgno additional.fields Ditambahkan sebagai kolom tambahan dengan kunci errdefs_msgno.
externalId additional.fields Ditambahkan sebagai kolom tambahan dengan kunci Support_Id.
f5_host target.hostname, intermediary.hostname Memetakan langsung ke nama host target dan nama host perantara.
geo_info principal.location.country_or_region, security_result.detection_fields Memetakan ke negara atau wilayah lokasi utama. Juga ditambahkan sebagai kolom deteksi dengan kunci geo_info.
host target.hostname Dipetakan langsung ke nama host target.
ids additional.fields Diuraikan sebagai daftar ID dukungan yang dipisahkan koma. Setiap ID ditambahkan ke kolom tambahan bernilai daftar dengan kunci supportid.
ip_addr_intelli security_result.detection_fields Ditambahkan sebagai kolom deteksi dengan kunci ip_addr_intelli.
ip_client principal.ip Dipetakan langsung ke IP utama.
ip_route_domain principal.ip, principal.asset.ip Bagian IP diekstrak dan dipetakan ke IP utama.
irule security_result.rule_name Dipetakan langsung ke nama aturan hasil keamanan.
irule-version security_result.rule_version Dipetakan langsung ke versi aturan hasil keamanan.
level security_result.severity, security_result.severity_details Digunakan untuk menentukan tingkat keparahan hasil keamanan. error atau warning dipetakan ke TINGGI. notice dipetakan ke SEDANG. information atau info dipetakan ke RENDAH. Nilai mentah juga dipetakan ke severity_details.
logtime metadata.event_timestamp Dipetakan langsung ke stempel waktu peristiwa setelah penguraian.
management_ip_address, management_ip_address_2 intermediary.ip Dipetakan langsung ke IP perantara.
method network.http.method Dipetakan langsung ke metode HTTP.
msg security_result.summary, metadata.description Dipetakan langsung ke ringkasan hasil keamanan untuk beberapa format log. Jika tidak ada deskripsi lain, deskripsi tersebut akan menjadi deskripsi acara.
policy_name security_result.about.resource.name, security_result.rule_name Dipetakan langsung ke nama resource hasil keamanan atau nama aturan.
process target.application Dipetakan langsung ke aplikasi target.
process_id principal.process.pid Dipetakan langsung ke ID proses utama.
protocol network.application_protocol, network.ip_protocol, app_protocol Dipetakan langsung ke protokol aplikasi atau protokol IP, bergantung pada format log.
proxy_id security_result.rule_id Dipetakan langsung ke ID aturan hasil keamanan.
query_string additional.fields Ditambahkan sebagai kolom tambahan dengan kunci query_string.
referrer network.http.referral_url Dipetakan langsung ke URL perujuk HTTP.
req_method network.http.method Dipetakan langsung ke metode HTTP.
req_status security_result.action, security_result.action_details, security_result.detection_fields Jika blocked, memetakan security_result.action ke BLOCK. Jika passed atau legal, dipetakan ke ALLOW. Jika berisi alerted, dipetakan ke QUARANTINE. Nilai mentah juga dipetakan ke action_details dan ditambahkan sebagai kolom deteksi dengan kunci req_status.
request target.url Memetakan langsung ke URL target.
requestMethod network.http.method Dipetakan langsung ke metode HTTP.
resp security_result.detection_fields Ditambahkan sebagai kolom deteksi dengan kunci resp.
resp_code network.http.response_code Dipetakan langsung ke kode respons HTTP.
response security_result.summary Dipetakan langsung ke ringkasan hasil keamanan.
response_code network.http.response_code Dipetakan langsung ke kode respons HTTP.
route_domain additional.fields Ditambahkan sebagai kolom tambahan dengan kunci route_domain.
rt metadata.event_timestamp Dipetakan langsung ke stempel waktu peristiwa setelah penguraian.
sev security_result.severity, security_result.severity_details Digunakan untuk menentukan tingkat keparahan hasil keamanan. ERROR dipetakan ke ERROR. Nilai mentah juga dipetakan ke severity_details.
severity security_result.severity, security_result.severity_details Digunakan untuk menentukan tingkat keparahan hasil keamanan. Informational dipetakan ke RENDAH, Error atau warning dipetakan ke TINGGI, critical dipetakan ke KRITIS, notice dipetakan ke SEDANG, information atau info dipetakan ke RENDAH. Nilai mentah juga dipetakan ke severity_details.
sig_ids security_result.rule_id Dipetakan langsung ke ID aturan hasil keamanan.
sig_names security_result.rule_name Dipetakan langsung ke nama aturan hasil keamanan.
snat_ip principal.nat_ip Dipetakan langsung ke IP NAT utama.
snat_port principal.nat_port Dipetakan langsung ke port NAT utama.
src principal.ip, principal.asset.ip Dipetakan langsung ke IP utama.
spt principal.port Dipetakan langsung ke port utama.
sub_violates security_result.about.resource.attribute.labels Ditambahkan sebagai label dengan kunci Sub Violations ke atribut resource hasil keamanan.
sub_violations security_result.about.resource.attribute.labels Ditambahkan sebagai label dengan kunci Sub Violations ke atribut resource hasil keamanan.
summary security_result.summary Dipetakan langsung ke ringkasan hasil keamanan.
support_id metadata.product_log_id Diawali dengan support_id - dan dipetakan ke ID log produk.
suid network.session_id Dipetakan langsung ke ID sesi jaringan.
suser principal.user.userid Dipetakan langsung ke ID pengguna utama.
timestamp metadata.event_timestamp Dipetakan langsung ke stempel waktu peristiwa setelah mengurai dan mengonversi ke format yang benar.
unit_host principal.hostname, principal.asset.hostname Dipetakan langsung ke nama host utama.
uri principal.url Dipetakan langsung ke URL utama.
user_id principal.user.userid Dipetakan langsung ke ID pengguna utama.
user_name principal.user.user_display_name Dipetakan langsung ke nama tampilan pengguna utama.
username principal.user.userid Dipetakan langsung ke ID pengguna utama.
useragent network.http.user_agent, network.http.parsed_user_agent Dipetakan langsung ke agen pengguna HTTP. Juga diuraikan dan dipetakan ke agen pengguna yang diuraikan.
virtualserver network.tls.client.server_name Dipetakan langsung ke nama server klien TLS.
violate_details security_result.detection_fields, network.http.response_code Berisi data XML. viol_name dalam request-violations diekstrak dan ditambahkan sebagai kolom deteksi dengan kunci Request Violation Name_index. viol_name dalam response_violations diekstrak dan ditambahkan sebagai kolom deteksi dengan kunci Response Violation Name_index. response_code dalam response_violations dipetakan ke network.http.response_code.
violate_rate security_result.detection_fields Ditambahkan sebagai kolom deteksi dengan kunci violate_rate.
violation_rating security_result.about.resource.attribute.labels Ditambahkan sebagai label dengan kunci Violations Rating ke atribut resource hasil keamanan.
violations security_result.description Dipetakan langsung ke deskripsi hasil keamanan. Untuk log format Splunk, kolom ini digunakan untuk menentukan ringkasan jika ada.
virus_name security_result.threat_name Dipetakan langsung ke nama ancaman hasil keamanan.
vs_name network.tls.client.server_name Dipetakan langsung ke nama server klien TLS.
websocket_direction network.direction Jika clientToServer, dipetakan ke INBOUND. Jika ServerToclient, dipetakan ke OUTBOUND.
websocket_message_type security_result.detection_fields Ditambahkan sebagai kolom deteksi dengan kunci WebsocketMessageType.
x_fwd_hdr_val principal.ip, principal.asset.ip Dipetakan langsung ke IP utama.

Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.