收集 FortiWeb WAF 記錄

支援的國家/地區:

本文說明如何使用 Google Security Operations 轉送器,收集 FortiWeb 網頁應用程式防火牆 (WAF) 記錄。

詳情請參閱「將資料擷取至 Google Security Operations 總覽」。

擷取標籤會識別剖析器,該剖析器會將原始記錄資料正規化為具結構性的 UDM 格式。本文件中的資訊適用於具有 FORTINET_FORTIWEB 攝入標籤的剖析器。

設定 FortiWeb WAF 記錄

如要設定 FortiWeb WAF,將記錄傳送至 Google Security Operations 轉送器,請按照下列步驟操作:

建立系統記錄政策

  1. 登入 Fortinet FortiWeb 控制台。
  2. Fortinet FortiWeb 控制台中,依序選取「Log & report」(記錄和報告) >「Log policy」(記錄政策) >「Syslog policy」(系統記錄政策)
  3. 按一下 [Create new] (建立新意圖)。
  4. 在隨即顯示的「New syslog policy」(新增系統記錄政策) 視窗中,執行下列操作:

    • 在「政策名稱」欄位中,指定要在設定中使用的政策名稱。
    • 在「IP 位址」欄位中,指定遠端系統記錄伺服器的 IP 位址或主機名稱。
    • 在「Port」(通訊埠) 欄位中,指定系統記錄伺服器的通訊埠。
    • 如果已勾選「啟用 CSV 格式」核取方塊,請取消勾選。
  5. 按一下 [確定]

啟用系統記錄類型和記錄層級

  1. Fortinet FortiWeb 控制台中,依序選取「Log & report」(記錄和報告) >「Log config」(記錄設定) >「Global log settings」(全域記錄設定)
  2. 在隨即顯示的「Global log settings」(全域記錄設定) 視窗中,選取「Syslog」核取方塊,然後執行下列操作:

    • 在「Syslog policy」(系統記錄政策) 清單中,選取先前建立的系統記錄政策。
    • 在「記錄層級」清單中,選擇要收集的記錄最低嚴重性等級。
    • 在「Facility」(設施) 清單中,選取記錄設施。
  3. 按一下 [套用]

建立觸發條件

  1. Fortinet FortiWeb 主控台中,依序選取「Log & report」(記錄和報告) >「Log policy」(記錄政策) >「Trigger policy」(觸發政策)
  2. 按一下 [Create new] (建立新意圖)。
  3. 在隨即顯示的「New trigger policy」(新增觸發條件政策) 視窗中,執行下列操作:

    • 在「政策名稱」欄位中,指定要在設定中使用的政策名稱。
    • 在「Syslog policy」(系統記錄政策) 清單中,選取先前建立的系統記錄政策。
  4. 按一下 [確定]

    使用新建立的觸發條件更新系統記錄政策,確保所有必要事件都會記錄到 Google Security Operations 系統記錄轉送器。

設定 Google Security Operations 轉送器,以便擷取 FortiWeb WAF 記錄

  1. 依序前往「SIEM 設定」>「轉送器」
  2. 按一下「新增轉寄者」
  3. 在「轉送器名稱」欄位中,輸入轉送器的專屬名稱。
  4. 按一下「提交」。轉送器新增完成後,系統會顯示「新增收集器設定」視窗。
  5. 在「收集器名稱」欄位中輸入名稱。
  6. 選取「Fortinet Web Application Firewall」做為「記錄類型」
  7. 選取「Syslog」做為「收集器類型」
  8. 設定下列必要輸入參數:
    • 通訊協定:指定收集器用來監聽系統記錄資料的連線通訊協定。
    • 地址:指定收集器所在位置的目標 IP 位址或主機名稱,並監聽系統記錄資料。
    • 連接埠:指定收集器所在並監聽系統記錄檔資料的目標連接埠。
  9. 按一下「提交」

如要進一步瞭解 Google Security Operations 轉送器,請參閱「透過 Google Security Operations 使用者介面管理轉送器設定」。

如果在建立轉寄者時遇到問題,請與 Google Security Operations 支援團隊聯絡。

欄位對應參考資料

這個剖析器會處理 FORTINET FORTIWEB 的記錄 (採用鍵值 (KV) 格式),並將其轉換為 UDM。這項服務會處理 CEF 和非 CEF 格式的記錄,擷取欄位、正規化值,並根據記錄格式將這些值對應至適當的 UDM 欄位。

UDM 對應表

記錄欄位 UDM 對應 邏輯
action additional.fields[].value.string_value 值會直接對應。
action security_result.action_details 如果 action 是「允許」或「接受」,security_result.action_details 會設為「ALLOW」。如果 action 是「Denied」、「deny」、「block」或「Block」,security_result.action_details 會設為「BLOCK」。
app network.application_protocol 值會先轉換為大寫,再直接對應。值只能是 HTTPS、HTTP、DNS、DHCP 或 SMB。
app_name additional.fields[].key 金鑰設為「appName」。
app_name additional.fields[].value.string_value 值會直接對應。
backend_service additional.fields[].key 金鑰設為「backend_service」。
backend_service additional.fields[].value.string_value 值會直接對應。
cat security_result.category_details 值會直接對應。
client_level security_result.category 如果 client_level 為「惡意」,security_result.category 會設為「NETWORK_MALICIOUS」。
cn1 additional.fields[].value.string_value 對應至 threatWeight 欄位。
cn1Label additional.fields[].key 索引鍵會設為 cn1Label 值。
cn2 additional.fields[].value.string_value 對應至長度欄位。
cn2Label additional.fields[].key 索引鍵會設為 cn2Label 值。
cn3 additional.fields[].value.string_value 已對應至 signatureID 欄位。
cn3Label additional.fields[].key 索引鍵會設為 cn3Label 值。
cs1 additional.fields[].value.string_value 值會直接對應。
cs1Label additional.fields[].key 金鑰設為 cs1Label 值。
cs1 principal.user.product_object_id 如果 cs1Label 與「userID」相符 (不區分大小寫),系統會直接對應值。
cs2 additional.fields[].value.string_value 值會直接對應。
cs2Label additional.fields[].key 金鑰設為 cs2Label 值。
cs2 principal.user.userid 如果 cs2Label 與「userName」相符 (不區分大小寫),且 suid 為空,系統會直接對應值。
cs3 additional.fields[].value.string_value 值會直接對應。
cs3Label additional.fields[].key 金鑰設為 cs3Label 值。
cs3 metadata.severity 如果 cs3Label 為「level」且 cs3 不為空白,系統會直接對應值。
cs4 additional.fields[].value.string_value 對應至 subType 欄位。
cs4Label additional.fields[].key 金鑰設為 cs4Label 值。
cs5 additional.fields[].value.string_value 已對應至 threatLevel 欄位。
cs5Label additional.fields[].key 金鑰設為 cs5Label 值。
cs6 additional.fields[].value.string_value 已對應至 owaspTop10 欄位。
cs6Label additional.fields[].key 金鑰設為 cs6Label 值。
date metadata.event_timestamp.seconds time 結合並剖析,產生 Epoch 秒數。
dev_id principal.resource.id 值會直接對應。
devname principal.resource.name 值會直接對應。
device_event_class_id metadata.product_event_type 用於 CEF 剖析。
device_product metadata.product_name 用於 CEF 剖析。
device_vendor metadata.vendor_name 用於 CEF 剖析。
device_version metadata.product_version 用於 CEF 剖析。
dhost target.hostname 值會直接對應。
dpt target.port 值會直接對應並轉換為整數。
dst target.ip 值會直接對應。
dst_port target.port 值會直接對應並轉換為整數。
dstepid target.process.pid 值會直接對應。
dsteuid target.user.userid 值會直接對應。
event_name metadata.product_event_type 用於 CEF 剖析。
http_agent network.http.parsed_user_agent 值會剖析為使用者代理程式字串。
http_method network.http.method 值會直接對應。
http_refer network.http.referral_url 值會直接對應。
http_session_id network.session_id 值會直接對應。
http_url target.url 值會直接對應。
http_version metadata.product_version 值會直接對應。
length additional.fields[].key 索引鍵設為「length」。
length additional.fields[].value.string_value 值會直接對應。
log_type metadata.log_type 硬式編碼為「FORTINET_FORTIWEB」。
main_type additional.fields[].key 金鑰設為「mainType」。
main_type additional.fields[].value.string_value 值會直接對應。
message 各種欄位 使用 grok 和 kv 篩選器剖析,以擷取不同欄位。
ml_allow_method additional.fields[].key 金鑰設為「ml_allow_method」。
ml_allow_method additional.fields[].value.string_value 值會直接對應。
ml_arg_dbid additional.fields[].key 金鑰設為「ml_arg_dbid」。
ml_arg_dbid additional.fields[].value.string_value 值會直接對應。
ml_domain_index additional.fields[].key 金鑰設為「ml_domain_index」。
ml_domain_index additional.fields[].value.string_value 值會直接對應。
ml_log_arglen additional.fields[].key 金鑰設為「ml_log_arglen」。
ml_log_arglen additional.fields[].value.string_value 值會直接對應。
ml_log_hmm_probability additional.fields[].key 金鑰設為「ml_log_hmm_probability」。
ml_log_hmm_probability additional.fields[].value.string_value 值會直接對應。
ml_log_sample_arglen_mean additional.fields[].key 索引鍵設為「ml_log_sample_arglen_mean」。
ml_log_sample_arglen_mean additional.fields[].value.string_value 值會直接對應。
ml_log_sample_prob_mean additional.fields[].key 索引鍵設為「ml_log_sample_prob_mean」。
ml_log_sample_prob_mean additional.fields[].value.string_value 值會直接對應。
ml_svm_accuracy additional.fields[].key 索引鍵設為「ml_svm_accuracy」。
ml_svm_accuracy additional.fields[].value.string_value 值會直接對應。
ml_svm_log_main_types additional.fields[].key 金鑰設為「ml_svm_log_main_types」。
ml_svm_log_main_types additional.fields[].value.string_value 值會直接對應。
ml_svm_log_match_types additional.fields[].key 金鑰設為「ml_svm_log_match_types」。
ml_svm_log_match_types additional.fields[].value.string_value 值會直接對應。
ml_url_dbid additional.fields[].key 金鑰設為「ml_url_dbid」。
ml_url_dbid additional.fields[].value.string_value 值會直接對應。
monitor_status additional.fields[].key 金鑰設為「monitor_status」。
monitor_status additional.fields[].value.string_value 值會直接對應。
msg metadata.description 值會直接對應。
owasp_top10 additional.fields[].key 索引鍵設為「owaspTop10」。
owasp_top10 additional.fields[].value.string_value 值會直接對應。
principal_app principal.application 值會直接對應。
principal_host principal.hostname 值會直接對應。
proto network.ip_protocol 值會先轉換為大寫,再直接對應。
request target.url 值會直接對應。
requestMethod network.http.method 值會直接對應。
rt metadata.event_timestamp.seconds 系統會將這個值剖析為 Epoch 紀元時間起算的毫秒數,然後轉換為秒。
security_result.severity security_result.severity 衍生自 severity_level。根據原始記錄值對應至不同的 UDM 嚴重程度值。如果找不到相符項目,則預設值為 UNKNOWN_SEVERITY
server_pool_name additional.fields[].key 金鑰設為「server_pool_name」。
server_pool_name additional.fields[].value.string_value 值會直接對應。
service network.application_protocol 值會先轉換為大寫,再直接對應。
service target.application 如果值不是 HTTPS、HTTP、DNS、DHCP 或 SMB,系統會將值轉換為大寫,然後直接對應。
severity security_result.severity 如果 severity 為空值且 cs3Label 為「level」,系統會使用 cs3 的值。然後對應至 UDM 嚴重程度值 (LOW、HIGH 等)。
signature_id security_result.rule_id 值會直接對應。
signature_subclass security_result.detection_fields[].key 金鑰設為「signature_subclass」。
signature_subclass security_result.detection_fields[].value 值會直接對應。
src principal.ip 值會直接對應。
src_country principal.location.country_or_region 值會直接對應。
src_ip principal.ip 值會直接對應。
src_port principal.port 值會直接對應並轉換為整數。
srccountry principal.location.country_or_region 值會直接對應。
sub_type additional.fields[].key 索引鍵設為「subType」。
sub_type additional.fields[].value.string_value 值會直接對應。
subtype target.resource.resource_subtype 值會直接對應。
suid principal.user.userid 值會直接對應。
threat_level additional.fields[].key 金鑰設為「threatLevel」。
threat_level additional.fields[].value.string_value 值會直接對應。
threat_weight security_result.detection_fields[].key 索引鍵設為「threat_weight」。
threat_weight security_result.detection_fields[].value 值會直接對應。
time metadata.event_timestamp.seconds date 結合並剖析,產生 Epoch 秒數。
user_id principal.user.product_object_id 值會直接對應。
user_name additional.fields[].key 索引鍵設為「userName」。
user_name additional.fields[].value.string_value 值會直接對應。
user_name principal.user.userid 值會直接對應。
不適用 metadata.event_type 如果同時存在 principal.iptarget.ip,請設為「NETWORK_CONNECTION」。如果 principal.ipprincipal.user 都存在,請設為「USER_UNCATEGORIZED」。如果只有 principal.ip,請設為「STATUS_UPDATE」。否則請設為「GENERIC_EVENT」。
不適用 metadata.log_type 硬式編碼為「FORTINET_FORTIWEB」。
不適用 metadata.product_name 根據記錄格式硬式編碼為「FORTINET FORTIWEB」或「FortiWEB Cloud」。
不適用 metadata.vendor_name 根據記錄格式硬式編碼為「FORTINET」或「Fortinet」。
不適用 principal.resource.resource_type 如果存在 dev_id,則會硬式編碼為「DEVICE」。

還有其他問題嗎?向社群成員和 Google SecOps 專業人員尋求答案。