Mengumpulkan log F5 BIG-IP ASM

Didukung di:

Dokumen ini menjelaskan cara menyerap log F5 BIG-IP Application Security Manager (ASM) ke Google Security Operations menggunakan Bindplane. Parser menangani berbagai format log (syslog, CSV, CEF, dll.) dan menormalisasinya ke dalam 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 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 F5 BIG-IP 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

Mengonfigurasi agen BindPlane untuk menyerap Syslog dan mengirimkannya ke Google SecOps

  1. Akses file konfigurasi:

    1. Cari 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:
        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: '/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 Logging Jarak Jauh di F5 BIG-IP ASM

  1. Login ke UI Web Konsol ASM.
  2. Buka Keamanan > Log Peristiwa > Profil Pencatatan Log.
  3. Klik Buat.
  4. Berikan detail konfigurasi berikut:

    • Nama Profil: masukkan nama unik untuk profil.
    • Pilih Keamanan Aplikasi.
    • Di tab Keamanan Aplikasi, pilih Lanjutan (jika konfigurasi tambahan diperlukan).
    • Tujuan Penyimpanan: pilih Penyimpanan Jarak Jauh.
    • Format Logging: Pilih Common Event Format (CEF).
    • Hapus Penyimpanan lokal.
    • Protocol: pilih UDP atau TCP (bergantung pada konfigurasi agen Bindplane Anda).
    • Alamat Server: masukkan Alamat IP agen Bindplane.
    • Port: dipilih secara default 514. Perbarui setelan port sesuai dengan konfigurasi agen Bindplane Anda.
    • Klik Tambahkan.
    • Pilih Logging jaminan.
    • Pilih Laporkan anomali yang terdeteksi.
    • Fasilitas: pilih LOG_LOCAL6 (Anda dapat memilih kategori fasilitas dari traffic yang dicatat, nilai yang mungkin adalah LOG_LOCAL0 hingga LOG_LOCAL7).
  5. Klik Selesai.

Mengaitkan profil logging dengan kebijakan keamanan

  1. Klik Local Traffic > Virtual Servers.
  2. Klik nama server virtual yang digunakan oleh kebijakan keamanan.
  3. Dari menu Keamanan, pilih Kebijakan.
  4. Pastikan setelan Kebijakan Keamanan Aplikasi adalah Diaktifkan, dan Kebijakan disetel ke kebijakan keamanan yang Anda inginkan.
  5. Pastikan setelan Profil Log disetel ke Diaktifkan.
  6. Dari daftar Tersedia, pilih profil yang akan digunakan untuk kebijakan keamanan, lalu pindahkan ke daftar Dipilih.
  7. Klik Perbarui.

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.