FortiWeb-WAF-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie die FortiWeb-WAF-Logs (Web Application Firewall) mit einem Google Security Operations-Weiterleiter erfassen.

Weitere Informationen finden Sie unter Datenaufnahme in Google Security Operations.

Mit einem Datenaufnahmelabel wird der Parser angegeben, der Roh-Logdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Datenaufnahmelabel FORTINET_FORTIWEB.

FortiWeb-WAF-Logs konfigurieren

So konfigurieren Sie die FortiWeb-WAF, damit Protokolle an einen Google Security Operations-Weiterleiter gesendet werden:

Syslog-Richtlinie erstellen

  1. Melden Sie sich in der Fortinet FortiWeb-Konsole an.
  2. Wählen Sie in der Fortinet FortiWeb-Konsole Loggen und melden > Protokollrichtlinie > Syslog-Richtlinie aus.
  3. Klicken Sie auf Neu erstellen.
  4. Führen Sie im angezeigten Fenster Neue syslog-Richtlinie die folgenden Schritte aus:

    • Geben Sie im Feld Richtlinienname einen Namen für die Richtlinie ein, die Sie in der Konfiguration verwenden möchten.
    • Geben Sie im Feld IP-Adresse die IP-Adresse oder den Hostnamen des Remote-Syslog-Servers an.
    • Geben Sie im Feld Port den Port für den syslog-Server an.
    • Entfernen Sie das Häkchen aus dem Kästchen CSV-Format aktivieren, falls es ausgewählt ist.
  5. Klicken Sie auf OK.

Syslog-Typen und ‑Ebene aktivieren

  1. Wählen Sie in der Fortinet FortiWeb-Konsole Loggen und melden > Protokollkonfiguration > Globale Protokolleinstellungen aus.
  2. Klicken Sie im Fenster Globale Protokolleinstellungen das Kästchen Syslog an und führen Sie dann die folgenden Schritte aus:

    • Wählen Sie in der Liste Syslog-Richtlinie die zuvor erstellte syslog-Richtlinie aus.
    • Wählen Sie in der Liste Logebene die Mindestwichtigkeitsstufe für die zu erfassenden Protokolle aus.
    • Wählen Sie in der Liste Facility die Protokolleinrichtung aus.
  3. Klicken Sie auf Anwenden.

Trigger erstellen

  1. Wählen Sie in der Fortinet FortiWeb-Konsole Loggen und melden > Protokollierungsrichtlinie > Triggerrichtlinie aus.
  2. Klicken Sie auf Neu erstellen.
  3. Führen Sie im angezeigten Fenster Neue Triggerrichtlinie die folgenden Schritte aus:

    • Geben Sie im Feld Richtlinienname einen Namen für die Richtlinie ein, die Sie in der Konfiguration verwenden möchten.
    • Wählen Sie in der Liste Syslog-Richtlinie die zuvor erstellte syslog-Richtlinie aus.
  4. Klicken Sie auf OK.

    Aktualisieren Sie Ihre Syslog-Richtlinie mit dem neu erstellten Trigger, damit alle erforderlichen Ereignisse im Syslog-Weiterleiter von Google Security Operations protokolliert werden.

Google Security Operations-Weiterleiter für die Aufnahme von FortiWeb-WAF-Logs konfigurieren

  1. Gehen Sie zu SIEM-Einstellungen > Weiterleitungen.
  2. Klicken Sie auf Neuen Weiterleiter hinzufügen.
  3. Geben Sie im Feld Name des Absenders einen eindeutigen Namen für den Absender ein.
  4. Klicken Sie auf Senden. Der Weiterleiter wird hinzugefügt und das Fenster Aufnehmerkonfiguration hinzufügen wird angezeigt.
  5. Geben Sie im Feld Name des Datensammlers einen Namen ein.
  6. Wählen Sie als Logtyp Fortinet Web Application Firewall aus.
  7. Wählen Sie Syslog als Typ des Collectors aus.
  8. Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
    • Protokoll: Geben Sie das Verbindungsprotokoll an, das der Collector zum Abhören von syslog-Daten verwendet.
    • Address (Adresse): Geben Sie die Ziel-IP-Adresse oder den Ziel-Hostnamen an, an dem sich der Collector befindet und auf syslog-Daten wartet.
    • Port: Geben Sie den Zielport an, an dem sich der Collector befindet und auf Syslog-Daten wartet.
  9. Klicken Sie auf Senden.

Weitere Informationen zu den Google Security Operations-Weiterleitungen finden Sie unter Weiterleitungskonfigurationen über die Google Security Operations-Benutzeroberfläche verwalten.

Wenn beim Erstellen von Weiterleitungen Probleme auftreten, wenden Sie sich an den Google Security Operations-Support.

Referenz für die Feldzuordnung

Dieser Parser verarbeitet FORTINET FORTIWEB-Protokolle im Schlüssel/Wert-Format (KV) und wandelt sie in UDM um. Es werden sowohl CEF- als auch nicht CEF-formatierte Protokolle verarbeitet, Felder extrahiert, Werte normalisiert und basierend auf dem Protokollformat den entsprechenden UDM-Feldern zugeordnet.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
action additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
action security_result.action_details Wenn action „Zulassen“ oder „Akzeptieren“ ist, ist security_result.action_details auf „ALLOW“ (ZULASSEN) festgelegt. Wenn action „Abgelehnt“, „deny“, „block“ oder „Blockieren“ ist, wird security_result.action_details auf „BLOCK“ gesetzt.
app network.application_protocol Der Wert wird direkt zugeordnet, nachdem er in Großbuchstaben umgewandelt wurde. Nur wenn der Wert einer der folgenden Werte ist: HTTPS, HTTP, DNS, DHCP, SMB.
app_name additional.fields[].key Der Schlüssel ist auf „appName“ festgelegt.
app_name additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
backend_service additional.fields[].key Der Schlüssel ist auf „backend_service“ festgelegt.
backend_service additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
cat security_result.category_details Der Wert wird direkt zugeordnet.
client_level security_result.category Wenn client_level „Malware“ ist, wird security_result.category auf „NETWORK_MALICIOUS“ gesetzt.
cn1 additional.fields[].value.string_value Wird dem Feld „threatWeight“ zugeordnet.
cn1Label additional.fields[].key Der Schlüssel ist auf den Wert „cn1Label“ festgelegt.
cn2 additional.fields[].value.string_value Wird dem Längenfeld zugeordnet.
cn2Label additional.fields[].key Der Schlüssel ist auf den Wert „cn2Label“ festgelegt.
cn3 additional.fields[].value.string_value Wird dem Feld „signatureID“ zugeordnet.
cn3Label additional.fields[].key Der Schlüssel ist auf den Wert „cn3Label“ festgelegt.
cs1 additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
cs1Label additional.fields[].key Der Schlüssel ist auf den Wert „cs1Label“ festgelegt.
cs1 principal.user.product_object_id Der Wert wird direkt zugeordnet, wenn cs1Label mit „userID“ übereinstimmt (Groß- und Kleinschreibung wird dabei nicht berücksichtigt).
cs2 additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
cs2Label additional.fields[].key Der Schlüssel ist auf den Wert „cs2Label“ gesetzt.
cs2 principal.user.userid Der Wert wird direkt zugeordnet, wenn cs2Label mit „userName“ übereinstimmt (ohne Berücksichtigung der Groß- und Kleinschreibung) und suid leer ist.
cs3 additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
cs3Label additional.fields[].key Der Schlüssel ist auf den Wert „cs3Label“ festgelegt.
cs3 metadata.severity Der Wert wird direkt zugeordnet, wenn cs3Label „level“ ist und cs3 nicht leer ist.
cs4 additional.fields[].value.string_value Wird dem Feld „subType“ zugeordnet.
cs4Label additional.fields[].key Der Schlüssel ist auf den Wert „cs4Label“ festgelegt.
cs5 additional.fields[].value.string_value Dem Feld „threatLevel“ zugeordnet.
cs5Label additional.fields[].key Der Schlüssel ist auf den Wert „cs5Label“ festgelegt.
cs6 additional.fields[].value.string_value Dem Feld „owaspTop10“ zugeordnet.
cs6Label additional.fields[].key Der Schlüssel ist auf den Wert „cs6Label“ festgelegt.
date metadata.event_timestamp.seconds Wird mit time kombiniert und analysiert, um Epochensekunden zu generieren.
dev_id principal.resource.id Der Wert wird direkt zugeordnet.
devname principal.resource.name Der Wert wird direkt zugeordnet.
device_event_class_id metadata.product_event_type Wird beim CEF-Parsen verwendet.
device_product metadata.product_name Wird beim CEF-Parsen verwendet.
device_vendor metadata.vendor_name Wird beim CEF-Parsen verwendet.
device_version metadata.product_version Wird beim CEF-Parsen verwendet.
dhost target.hostname Der Wert wird direkt zugeordnet.
dpt target.port Der Wert wird direkt zugeordnet und in eine Ganzzahl konvertiert.
dst target.ip Der Wert wird direkt zugeordnet.
dst_port target.port Der Wert wird direkt zugeordnet und in eine Ganzzahl konvertiert.
dstepid target.process.pid Der Wert wird direkt zugeordnet.
dsteuid target.user.userid Der Wert wird direkt zugeordnet.
event_name metadata.product_event_type Wird beim CEF-Parsen verwendet.
http_agent network.http.parsed_user_agent Der Wert wird als User-Agent-String geparst.
http_method network.http.method Der Wert wird direkt zugeordnet.
http_refer network.http.referral_url Der Wert wird direkt zugeordnet.
http_session_id network.session_id Der Wert wird direkt zugeordnet.
http_url target.url Der Wert wird direkt zugeordnet.
http_version metadata.product_version Der Wert wird direkt zugeordnet.
length additional.fields[].key Der Schlüssel ist auf „length“ festgelegt.
length additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
log_type metadata.log_type Hartcodiert auf „FORTINET_FORTIWEB“.
main_type additional.fields[].key Der Schlüssel ist auf „mainType“ festgelegt.
main_type additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
message Verschiedene Felder Mit Grok- und KV-Filtern werden verschiedene Felder extrahiert.
ml_allow_method additional.fields[].key Der Schlüssel ist auf „ml_allow_method“ gesetzt.
ml_allow_method additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_arg_dbid additional.fields[].key Der Schlüssel ist auf „ml_arg_dbid“ festgelegt.
ml_arg_dbid additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_domain_index additional.fields[].key Der Schlüssel ist auf „ml_domain_index“ festgelegt.
ml_domain_index additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_log_arglen additional.fields[].key Der Schlüssel ist auf „ml_log_arglen“ gesetzt.
ml_log_arglen additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_log_hmm_probability additional.fields[].key Der Schlüssel ist auf „ml_log_hmm_probability“ festgelegt.
ml_log_hmm_probability additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_log_sample_arglen_mean additional.fields[].key Der Schlüssel ist auf „ml_log_sample_arglen_mean“ festgelegt.
ml_log_sample_arglen_mean additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_log_sample_prob_mean additional.fields[].key Der Schlüssel ist auf „ml_log_sample_prob_mean“ festgelegt.
ml_log_sample_prob_mean additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_svm_accuracy additional.fields[].key Der Schlüssel ist auf „ml_svm_accuracy“ festgelegt.
ml_svm_accuracy additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_svm_log_main_types additional.fields[].key Der Schlüssel ist auf „ml_svm_log_main_types“ festgelegt.
ml_svm_log_main_types additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_svm_log_match_types additional.fields[].key Der Schlüssel ist auf „ml_svm_log_match_types“ festgelegt.
ml_svm_log_match_types additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
ml_url_dbid additional.fields[].key Der Schlüssel ist auf „ml_url_dbid“ festgelegt.
ml_url_dbid additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
monitor_status additional.fields[].key Der Schlüssel ist auf „monitor_status“ festgelegt.
monitor_status additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
msg metadata.description Der Wert wird direkt zugeordnet.
owasp_top10 additional.fields[].key Der Schlüssel ist auf „owaspTop10“ festgelegt.
owasp_top10 additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
principal_app principal.application Der Wert wird direkt zugeordnet.
principal_host principal.hostname Der Wert wird direkt zugeordnet.
proto network.ip_protocol Der Wert wird direkt zugeordnet, nachdem er in Großbuchstaben umgewandelt wurde.
request target.url Der Wert wird direkt zugeordnet.
requestMethod network.http.method Der Wert wird direkt zugeordnet.
rt metadata.event_timestamp.seconds Wird als Millisekunden seit der Epoche geparst und in Sekunden umgewandelt.
security_result.severity security_result.severity Abgeleitet von severity_level. Wird basierend auf dem Rohprotokollwert verschiedenen UDM-Schweregraden zugeordnet. Wenn keine Übereinstimmung gefunden wird, wird standardmäßig UNKNOWN_SEVERITY zurückgegeben.
server_pool_name additional.fields[].key Der Schlüssel ist auf „server_pool_name“ festgelegt.
server_pool_name additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
service network.application_protocol Der Wert wird direkt zugeordnet, nachdem er in Großbuchstaben umgewandelt wurde.
service target.application Der Wert wird direkt zugeordnet, nachdem er in Großbuchstaben umgewandelt wurde, sofern er nicht HTTPS, HTTP, DNS, DHCP oder SMB ist.
severity security_result.severity Wenn severity leer ist und cs3Label „level“ ist, wird der Wert von cs3 verwendet. Dieser wird dann einem UDM-Schweregradwert (LOW, HIGH usw.) zugeordnet.
signature_id security_result.rule_id Der Wert wird direkt zugeordnet.
signature_subclass security_result.detection_fields[].key Der Schlüssel ist auf „signature_subclass“ festgelegt.
signature_subclass security_result.detection_fields[].value Der Wert wird direkt zugeordnet.
src principal.ip Der Wert wird direkt zugeordnet.
src_country principal.location.country_or_region Der Wert wird direkt zugeordnet.
src_ip principal.ip Der Wert wird direkt zugeordnet.
src_port principal.port Der Wert wird direkt zugeordnet und in eine Ganzzahl konvertiert.
srccountry principal.location.country_or_region Der Wert wird direkt zugeordnet.
sub_type additional.fields[].key Der Schlüssel ist auf „subType“ festgelegt.
sub_type additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
subtype target.resource.resource_subtype Der Wert wird direkt zugeordnet.
suid principal.user.userid Der Wert wird direkt zugeordnet.
threat_level additional.fields[].key Der Schlüssel ist auf „threatLevel“ festgelegt.
threat_level additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
threat_weight security_result.detection_fields[].key Der Schlüssel ist auf „threat_weight“ festgelegt.
threat_weight security_result.detection_fields[].value Der Wert wird direkt zugeordnet.
time metadata.event_timestamp.seconds Wird mit date kombiniert und analysiert, um Epochensekunden zu generieren.
user_id principal.user.product_object_id Der Wert wird direkt zugeordnet.
user_name additional.fields[].key Der Schlüssel ist auf „userName“ festgelegt.
user_name additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
user_name principal.user.userid Der Wert wird direkt zugeordnet.
metadata.event_type Legen Sie „NETWORK_CONNECTION“ fest, wenn sowohl principal.ip als auch target.ip vorhanden sind. Wird auf „USER_UNCATEGORIZED“ gesetzt, wenn principal.ip und principal.user vorhanden sind. Legen Sie „STATUS_UPDATE“ fest, wenn nur principal.ip vorhanden ist. Andernfalls setzen Sie „GENERIC_EVENT“ fest.
metadata.log_type Hartcodiert auf „FORTINET_FORTIWEB“.
metadata.product_name Je nach Protokollformat hartcodiert auf „FORTINET FORTIWEB“ oder „FortiWEB Cloud“.
metadata.vendor_name Je nach Protokollformat hartcodiert auf „FORTINET“ oder „Fortinet“.
principal.resource.resource_type Ist dev_id vorhanden, ist „DEVICE“ hartcodiert.

Änderungen

2024-01-09

  • Unterstützung für CEF-Format-Protokolle hinzugefügt
  • Es wurde ein Grok-Muster hinzugefügt, das dem neuen Format von CEF-Protokollen entspricht.
  • „principal_hostnamne“ wurde in „principal.hostname“ geändert.
  • „principal.app“ wurde in „principal.application“ geändert.

2023-05-18

  • Neu erstellter Parser.