Mengumpulkan log WAF FortiWeb
Dokumen ini menjelaskan cara mengumpulkan log firewall aplikasi web (WAF) FortiWeb menggunakan forwarder Google Security Operations.
Untuk mengetahui informasi selengkapnya, lihat Ringkasan penyerapan data ke Google Security Operations.
Label penyerapan mengidentifikasi parser yang menormalisasi data log mentah ke format UDM terstruktur. Informasi dalam dokumen ini berlaku untuk parser dengan
label transfer FORTINET_FORTIWEB
.
Mengonfigurasi log WAF FortiWeb
Untuk mengonfigurasi WAF FortiWeb agar mengirim log ke forwarder Google Security Operations, lakukan hal berikut:
Membuat kebijakan syslog
- Login ke konsol Fortinet FortiWeb.
- Di konsol Fortinet FortiWeb, pilih Log & report > Log policy > Syslog policy.
- Klik Buat baru.
Di jendela New syslog policy yang muncul, lakukan hal berikut:
- Di kolom Policy name, tentukan nama untuk kebijakan yang ingin Anda gunakan dalam konfigurasi.
- Di kolom Alamat IP, tentukan alamat IP atau nama host untuk server syslog jarak jauh.
- Di kolom Port, tentukan port untuk server syslog.
- Hapus centang pada kotak Aktifkan format CSV, jika dicentang.
Klik Oke.
Mengaktifkan jenis syslog dan level log
- Di konsol Fortinet FortiWeb, pilih Log & report > Log config > Global log settings.
Di jendela Global log settings yang muncul, centang kotak Syslog, lalu lakukan hal berikut:
- Dalam daftar Kebijakan syslog, pilih kebijakan syslog yang Anda buat sebelumnya.
- Dalam daftar Level log, pilih tingkat keparahan minimum untuk log yang akan dikumpulkan.
- Dalam daftar Fasilitas, pilih fasilitas log.
Klik Terapkan.
Buat pemicu
- Di konsol Fortinet FortiWeb, pilih Log & report > Log policy > Trigger policy.
- Klik Buat baru.
Di jendela New trigger policy yang muncul, lakukan tindakan berikut:
- Di kolom Policy name, tentukan nama untuk kebijakan yang ingin Anda gunakan dalam konfigurasi.
- Dalam daftar Kebijakan syslog, pilih kebijakan syslog yang Anda buat sebelumnya.
Klik Oke.
Perbarui kebijakan syslog Anda dengan pemicu yang baru dibuat untuk memastikan semua peristiwa yang diperlukan dicatat ke forwarder syslog Google Security Operations.
Mengonfigurasi penerusan Google Security Operations untuk menyerap log WAF FortiWeb
- Buka Setelan SIEM > Penerima.
- Klik Tambahkan penerusan baru.
- Di kolom Forwarder Name, masukkan nama unik untuk pengirim.
- Klik Kirim. Pengirim ditambahkan dan jendela Tambahkan konfigurasi kolektor akan muncul.
- Di kolom Nama kolektor, ketik nama.
- Pilih Fortinet Web Application Firewall sebagai Log type.
- Pilih Syslog sebagai Jenis kolektor.
- Konfigurasikan parameter input wajib berikut:
- Protokol: tentukan protokol koneksi yang digunakan kolektor untuk memproses data syslog.
- Address: tentukan alamat IP atau nama host target tempat kolektor berada dan memproses data syslog.
- Port: menentukan port target tempat kolektor berada dan memproses data syslog.
- Klik Kirim.
Untuk informasi selengkapnya tentang forwarder Google Security Operations, lihat Mengelola konfigurasi forwarder melalui UI Google Security Operations.
Jika Anda mengalami masalah saat membuat penerusan, hubungi dukungan Google Security Operations.
Referensi pemetaan kolom
Parser ini menangani log dari FORTINET FORTIWEB dalam format nilai kunci (KV), yang mengubahnya menjadi UDM. Proses ini memproses log berformat CEF dan non-CEF, mengekstrak kolom, menormalisasi nilai, dan memetakan kolom tersebut ke kolom UDM yang sesuai berdasarkan format log.
Tabel Pemetaan UDM
Kolom Log | Pemetaan UDM | Logika |
---|---|---|
action |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
action |
security_result.action_details |
Jika action adalah "Izinkan" atau "terima", security_result.action_details akan disetel ke "Izinkan". Jika action adalah "Ditolak", "tolak", "blokir", atau "Blokir", security_result.action_details akan disetel ke "BLOCK". |
app |
network.application_protocol |
Nilai dipetakan langsung setelah diubah menjadi huruf besar. Hanya jika nilainya adalah salah satu dari HTTPS, HTTP, DNS, DHCP, SMB. |
app_name |
additional.fields[].key |
Kunci ditetapkan ke "appName". |
app_name |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
backend_service |
additional.fields[].key |
Kunci ditetapkan ke "backend_service". |
backend_service |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
cat |
security_result.category_details |
Nilai dipetakan secara langsung. |
client_level |
security_result.category |
Jika client_level adalah "Malicious", security_result.category ditetapkan ke "NETWORK_MALICIOUS". |
cn1 |
additional.fields[].value.string_value |
Dipetakan ke kolom threatWeight. |
cn1Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cn1Label. |
cn2 |
additional.fields[].value.string_value |
Dipetakan ke kolom panjang. |
cn2Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cn2Label. |
cn3 |
additional.fields[].value.string_value |
Dipetakan ke kolom signatureID. |
cn3Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cn3Label. |
cs1 |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
cs1Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cs1Label. |
cs1 |
principal.user.product_object_id |
Nilai dipetakan secara langsung saat cs1Label cocok dengan "userID" (tidak peka huruf besar/kecil). |
cs2 |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
cs2Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cs2Label. |
cs2 |
principal.user.userid |
Nilai dipetakan secara langsung saat cs2Label cocok dengan "userName" (tidak peka huruf besar/kecil) dan suid kosong. |
cs3 |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
cs3Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cs3Label. |
cs3 |
metadata.severity |
Nilai dipetakan secara langsung jika cs3Label adalah "level" dan cs3 tidak kosong. |
cs4 |
additional.fields[].value.string_value |
Dipetakan ke kolom subType. |
cs4Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cs4Label. |
cs5 |
additional.fields[].value.string_value |
Dipetakan ke kolom threatLevel. |
cs5Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cs5Label. |
cs6 |
additional.fields[].value.string_value |
Dipetakan ke kolom owaspTop10. |
cs6Label |
additional.fields[].key |
Kunci ditetapkan ke nilai cs6Label. |
date |
metadata.event_timestamp.seconds |
Digabungkan dengan time dan diuraikan untuk menghasilkan detik epoch. |
dev_id |
principal.resource.id |
Nilai dipetakan secara langsung. |
devname |
principal.resource.name |
Nilai dipetakan secara langsung. |
device_event_class_id |
metadata.product_event_type |
Digunakan dalam penguraian CEF. |
device_product |
metadata.product_name |
Digunakan dalam penguraian CEF. |
device_vendor |
metadata.vendor_name |
Digunakan dalam penguraian CEF. |
device_version |
metadata.product_version |
Digunakan dalam penguraian CEF. |
dhost |
target.hostname |
Nilai dipetakan secara langsung. |
dpt |
target.port |
Nilai dipetakan dan dikonversi langsung menjadi bilangan bulat. |
dst |
target.ip |
Nilai dipetakan secara langsung. |
dst_port |
target.port |
Nilai dipetakan dan dikonversi langsung menjadi bilangan bulat. |
dstepid |
target.process.pid |
Nilai dipetakan secara langsung. |
dsteuid |
target.user.userid |
Nilai dipetakan secara langsung. |
event_name |
metadata.product_event_type |
Digunakan dalam penguraian CEF. |
http_agent |
network.http.parsed_user_agent |
Nilai diuraikan sebagai string agen pengguna. |
http_method |
network.http.method |
Nilai dipetakan secara langsung. |
http_refer |
network.http.referral_url |
Nilai dipetakan secara langsung. |
http_session_id |
network.session_id |
Nilai dipetakan secara langsung. |
http_url |
target.url |
Nilai dipetakan secara langsung. |
http_version |
metadata.product_version |
Nilai dipetakan secara langsung. |
length |
additional.fields[].key |
Kunci ditetapkan ke "length". |
length |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
log_type |
metadata.log_type |
Di-hardcode ke "FORTINET_FORTIWEB". |
main_type |
additional.fields[].key |
Kunci ditetapkan ke "mainType". |
main_type |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
message |
Berbagai kolom | Diurai menggunakan filter grok dan kv untuk mengekstrak berbagai kolom. |
ml_allow_method |
additional.fields[].key |
Kunci ditetapkan ke "ml_allow_method". |
ml_allow_method |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_arg_dbid |
additional.fields[].key |
Kunci ditetapkan ke "ml_arg_dbid". |
ml_arg_dbid |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_domain_index |
additional.fields[].key |
Kunci ditetapkan ke "ml_domain_index". |
ml_domain_index |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_log_arglen |
additional.fields[].key |
Kunci ditetapkan ke "ml_log_arglen". |
ml_log_arglen |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_log_hmm_probability |
additional.fields[].key |
Kunci ditetapkan ke "ml_log_hmm_probability". |
ml_log_hmm_probability |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_log_sample_arglen_mean |
additional.fields[].key |
Kunci ditetapkan ke "ml_log_sample_arglen_mean". |
ml_log_sample_arglen_mean |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_log_sample_prob_mean |
additional.fields[].key |
Kunci ditetapkan ke "ml_log_sample_prob_mean". |
ml_log_sample_prob_mean |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_svm_accuracy |
additional.fields[].key |
Kunci ditetapkan ke "ml_svm_accuracy". |
ml_svm_accuracy |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_svm_log_main_types |
additional.fields[].key |
Kunci ditetapkan ke "ml_svm_log_main_types". |
ml_svm_log_main_types |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_svm_log_match_types |
additional.fields[].key |
Kunci ditetapkan ke "ml_svm_log_match_types". |
ml_svm_log_match_types |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
ml_url_dbid |
additional.fields[].key |
Kunci ditetapkan ke "ml_url_dbid". |
ml_url_dbid |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
monitor_status |
additional.fields[].key |
Kunci ditetapkan ke "monitor_status". |
monitor_status |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
msg |
metadata.description |
Nilai dipetakan secara langsung. |
owasp_top10 |
additional.fields[].key |
Kunci ditetapkan ke "owaspTop10". |
owasp_top10 |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
principal_app |
principal.application |
Nilai dipetakan secara langsung. |
principal_host |
principal.hostname |
Nilai dipetakan secara langsung. |
proto |
network.ip_protocol |
Nilai dipetakan langsung setelah diubah menjadi huruf besar. |
request |
target.url |
Nilai dipetakan secara langsung. |
requestMethod |
network.http.method |
Nilai dipetakan secara langsung. |
rt |
metadata.event_timestamp.seconds |
Diurai sebagai milidetik sejak epoch dan dikonversi ke detik. |
security_result.severity |
security_result.severity |
Berasal dari severity_level . Dipetakan ke nilai keparahan UDM yang berbeda berdasarkan nilai log mentah. Secara default ke UNKNOWN_SEVERITY jika tidak ditemukan kecocokan. |
server_pool_name |
additional.fields[].key |
Kunci ditetapkan ke "server_pool_name". |
server_pool_name |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
service |
network.application_protocol |
Nilai dipetakan langsung setelah diubah menjadi huruf besar. |
service |
target.application |
Nilai dipetakan langsung setelah diubah menjadi huruf besar jika bukan salah satu dari HTTPS, HTTP, DNS, DHCP, atau SMB. |
severity |
security_result.severity |
Jika severity kosong dan cs3Label adalah "level", nilai cs3 akan digunakan. Kemudian dipetakan ke nilai keparahan UDM (RENDAH, TINGGI, dll.). |
signature_id |
security_result.rule_id |
Nilai dipetakan secara langsung. |
signature_subclass |
security_result.detection_fields[].key |
Kunci ditetapkan ke "signature_subclass". |
signature_subclass |
security_result.detection_fields[].value |
Nilai dipetakan secara langsung. |
src |
principal.ip |
Nilai dipetakan secara langsung. |
src_country |
principal.location.country_or_region |
Nilai dipetakan secara langsung. |
src_ip |
principal.ip |
Nilai dipetakan secara langsung. |
src_port |
principal.port |
Nilai dipetakan dan dikonversi langsung menjadi bilangan bulat. |
srccountry |
principal.location.country_or_region |
Nilai dipetakan secara langsung. |
sub_type |
additional.fields[].key |
Kunci ditetapkan ke "subType". |
sub_type |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
subtype |
target.resource.resource_subtype |
Nilai dipetakan secara langsung. |
suid |
principal.user.userid |
Nilai dipetakan secara langsung. |
threat_level |
additional.fields[].key |
Kunci ditetapkan ke "threatLevel". |
threat_level |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
threat_weight |
security_result.detection_fields[].key |
Kunci ditetapkan ke "threat_weight". |
threat_weight |
security_result.detection_fields[].value |
Nilai dipetakan secara langsung. |
time |
metadata.event_timestamp.seconds |
Digabungkan dengan date dan diuraikan untuk menghasilkan detik epoch. |
user_id |
principal.user.product_object_id |
Nilai dipetakan secara langsung. |
user_name |
additional.fields[].key |
Kunci ditetapkan ke "userName". |
user_name |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
user_name |
principal.user.userid |
Nilai dipetakan secara langsung. |
T/A | metadata.event_type |
Tetapkan ke "NETWORK_CONNECTION" jika principal.ip dan target.ip ada. Tetapkan ke "USER_UNCATEGORIZED" jika principal.ip dan principal.user ada. Tetapkan ke "STATUS_UPDATE" jika hanya principal.ip yang ada. Jika tidak, tetapkan ke "GENERIC_EVENT". |
T/A | metadata.log_type |
Di-hardcode ke "FORTINET_FORTIWEB". |
T/A | metadata.product_name |
Di-hardcode ke "FORTINET FORTIWEB" atau "FortiWEB Cloud" berdasarkan format log. |
T/A | metadata.vendor_name |
Di-hardcode ke "FORTINET" atau "Fortinet" berdasarkan format log. |
T/A | principal.resource.resource_type |
Di-hardcode ke "DEVICE" jika dev_id ada. |
Perubahan
2024-01-09
- Menambahkan dukungan untuk log format CEF.
- Menambahkan pola Grok agar cocok dengan format baru log CEF.
- Memetakan "principal_hostnamne" ke "principal.hostname".
- Memetakan "principal.app" ke "principal.application".
2023-05-18
- Parser yang baru dibuat.