Mengumpulkan log WAF FortiWeb
Dokumen ini menjelaskan cara mengumpulkan log firewall aplikasi web (WAF) FortiWeb menggunakan penerus 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 penyerapan
FORTINET_FORTIWEB
.
Mengonfigurasi log WAF FortiWeb
Untuk mengonfigurasi FortiWeb WAF agar mengirim log ke penerus 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 Nama kebijakan, tentukan nama 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.
Aktifkan jenis syslog dan tingkat log
- Di konsol Fortinet FortiWeb, pilih Log & report > Log config > Global log settings.
Di jendela Global log settings yang muncul, centang kotak Syslog dan lakukan hal berikut:
- Dalam daftar Syslog policy, pilih kebijakan syslog yang Anda buat sebelumnya.
- Dalam daftar Tingkat 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 Nama kebijakan, tentukan nama kebijakan yang ingin Anda gunakan dalam konfigurasi.
- Dalam daftar Syslog policy, 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 penerus syslog Google Security Operations.
Mengonfigurasi penerusan Google Security Operations untuk menyerap log WAF FortiWeb
- Buka Setelan SIEM > Pengirim.
- Klik Tambahkan penerusan baru.
- Di kolom Forwarder Name, masukkan nama unik untuk penerusan.
- Klik Kirim. Forwarder ditambahkan dan jendela Add collector configuration akan muncul.
- Di kolom Nama pengumpul, ketik nama.
- Pilih Fortinet Web Application Firewall sebagai Log type.
- Pilih Syslog sebagai Collector type.
- Konfigurasikan parameter input wajib berikut:
- Protokol: tentukan protokol koneksi yang digunakan pengumpul untuk memproses data syslog.
- Alamat: tentukan alamat IP atau nama host target tempat pengumpul berada dan memproses data syslog.
- Port: tentukan port target tempat pengumpul berada dan memproses data syslog.
- Klik Kirim.
Untuk mengetahui informasi selengkapnya tentang penerus Google Security Operations, lihat Mengelola konfigurasi penerus 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 key-value (KV), lalu mengubahnya menjadi UDM. Proses ini memproses log berformat CEF dan non-CEF, mengekstrak kolom, menormalisasi nilai, dan memetakannya 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 disetel ke "IZINKAN". Jika action adalah "Denied", "deny", "block", atau "Block", security_result.action_details disetel ke "BLOCK". |
app |
network.application_protocol |
Nilai dipetakan secara 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 jika cs1Label cocok dengan "userID" (tidak peka huruf besar/kecil). |
cs2 |
additional.fields[].value.string_value |
Nilai dipetakan secara langsung. |
cs2Label |
additional.fields[].key |
Kunci disetel ke nilai cs2Label. |
cs2 |
principal.user.userid |
Nilai dipetakan secara langsung jika 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 disetel 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 disetel ke nilai cs4Label. |
cs5 |
additional.fields[].value.string_value |
Dipetakan ke kolom threatLevel. |
cs5Label |
additional.fields[].key |
Kunci disetel ke nilai cs5Label. |
cs6 |
additional.fields[].value.string_value |
Dipetakan ke kolom owaspTop10. |
cs6Label |
additional.fields[].key |
Kunci disetel 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 ke bilangan bulat. |
dst |
target.ip |
Nilai dipetakan secara langsung. |
dst_port |
target.port |
Nilai dipetakan dan dikonversi langsung ke 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 |
Dikodekan secara permanen 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 | Diparsing menggunakan filter grok dan kv untuk mengekstrak kolom yang berbeda. |
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 |
Kuncinya 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 secara 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 |
Diuraikan sebagai milidetik sejak epoch dan dikonversi ke detik. |
security_result.severity |
security_result.severity |
Diperoleh dari severity_level . Dipetakan ke nilai tingkat keparahan UDM yang berbeda berdasarkan nilai log mentah. Nilai defaultnya adalah 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 secara langsung setelah diubah menjadi huruf besar. |
service |
target.application |
Nilai dipetakan secara 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 tingkat 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 ke 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 disetel 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 |
Disetel ke "NETWORK_CONNECTION" jika principal.ip dan target.ip ada. Ditetapkan ke "USER_UNCATEGORIZED" jika principal.ip dan principal.user ada. Disetel ke "STATUS_UPDATE" jika hanya principal.ip yang ada. Jika tidak, tetapkan ke "GENERIC_EVENT". |
T/A | metadata.log_type |
Dikodekan secara permanen ke "FORTINET_FORTIWEB". |
T/A | metadata.product_name |
Dikodekan secara permanen ke "FORTINET FORTIWEB" atau "FortiWEB Cloud" berdasarkan format log. |
T/A | metadata.vendor_name |
Dikodekan secara permanen ke "FORTINET" atau "Fortinet" berdasarkan format log. |
T/A | principal.resource.resource_type |
Di-hardcode ke "DEVICE" jika dev_id ada. |
Perlu bantuan lain? Dapatkan jawaban dari anggota Komunitas dan profesional Google SecOps.