Mengumpulkan log F5 BIG-IP ASM
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
- Login ke konsol Google SecOps.
- Buka Setelan SIEM > Agen Pengumpulan.
- Download File Autentikasi Penyerapan. 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 mengirimkannya ke Google SecOps
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).
- Cari file
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
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 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
- Login ke UI Web Konsol ASM.
- Buka Keamanan > Log Peristiwa > Profil Pencatatan Log.
- Klik Buat.
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 adalahLOG_LOCAL0
hinggaLOG_LOCAL7
).
Klik Selesai.
Mengaitkan profil logging dengan kebijakan keamanan
- Klik Local Traffic > Virtual Servers.
- Klik nama server virtual yang digunakan oleh kebijakan keamanan.
- Dari menu Keamanan, pilih Kebijakan.
- Pastikan setelan Kebijakan Keamanan Aplikasi adalah Diaktifkan, dan Kebijakan disetel ke kebijakan keamanan yang Anda inginkan.
- Pastikan setelan Profil Log disetel ke Diaktifkan.
- Dari daftar Tersedia, pilih profil yang akan digunakan untuk kebijakan keamanan, lalu pindahkan ke daftar Dipilih.
- 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.