FortiWeb-WAF-Logs erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie die Protokolle der FortiWeb-Webanwendungsfirewall (WAF) mithilfe eines Google Security Operations-Forwarders erfassen können.

Weitere Informationen finden Sie unter Übersicht über die Datenaufnahme in Google Security Operations.

Mit einem Ingestion-Label wird der Parser identifiziert, der Rohdaten in das strukturierte UDM-Format normalisiert. Die Informationen in diesem Dokument beziehen sich auf den Parser mit dem Ingestion-Label FORTINET_FORTIWEB.

FortiWeb WAF-Logs konfigurieren

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

Syslog-Richtlinie erstellen

  1. Melden Sie sich in der Fortinet FortiWeb-Konsole an.
  2. Wählen Sie in der Fortinet FortiWeb-Konsole Log & report > Log policy > Syslog policy 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 an, die Sie in der Konfiguration verwenden möchten.
    • Geben Sie im Feld IP-Adresse die IP-Adresse oder den Hostnamen für den Remote-Syslog-Server 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 ‑Schweregrad aktivieren

  1. Wählen Sie in der Fortinet FortiWeb-Konsole Log & report > Log config > Global log settings aus.
  2. Wählen Sie im angezeigten Fenster Globale Protokolleinstellungen das Kästchen Syslog aus und gehen Sie so vor:

    • 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 Logs aus.
    • Wählen Sie in der Liste Einrichtung die Logeinrichtung aus.
  3. Klicken Sie auf Übernehmen.

Trigger erstellen

  1. Wählen Sie in der Fortinet FortiWeb-Konsole Log & report > Log policy > Trigger policy 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 an, 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-Forwarder von Google Security Operations protokolliert werden.

Google Security Operations-Forwarder zum Erfassen von FortiWeb WAF-Logs konfigurieren

  1. Rufen Sie die SIEM-Einstellungen > Weiterleitungen auf.
  2. Klicken Sie auf Neuen Weiterleitungsdienst hinzufügen.
  3. Geben Sie im Feld Name des Forwarders einen eindeutigen Namen für den Forwarder ein.
  4. Klicken Sie auf Senden. Der Forwarder wird hinzugefügt und das Fenster Collector-Konfiguration hinzufügen wird angezeigt.
  5. Geben Sie im Feld Name des Collectors einen Namen ein.
  6. Wählen Sie Fortinet Web Application Firewall als Logtyp aus.
  7. Wählen Sie Syslog als Collector-Typ aus.
  8. Konfigurieren Sie die folgenden obligatorischen Eingabeparameter:
    • Protokoll: Geben Sie das Verbindungsprotokoll an, das der Collector verwendet, um Syslog-Daten zu empfangen.
    • Adresse: Geben Sie die Ziel-IP-Adresse oder den Hostnamen an, auf dem sich der Collector befindet und auf Syslog-Daten wartet.
    • Port: Geben Sie den Zielport an, an dem sich der Collector befindet und an dem er auf Syslog-Daten wartet.
  9. Klicken Sie auf Senden.

Weitere Informationen zu den Google Security Operations-Forwardern finden Sie unter Forwarder-Konfigurationen ü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 zur Feldzuordnung

Dieser Parser verarbeitet Logs von FORTINET FORTIWEB im Schlüssel/Wert-Format und wandelt sie in UDM um. Es werden sowohl CEF- als auch Nicht-CEF-formatierte Logs verarbeitet. Dabei werden Felder extrahiert, Werte normalisiert und basierend auf dem Logformat 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 „Annehmen“ ist, wird security_result.action_details auf „ALLOW“ gesetzt. Wenn action „Denied“, „deny“, „block“ oder „Block“ 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 HTTPS, HTTP, DNS, DHCP oder SMB ist.
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 „Bösartig“ ist, wird security_result.category auf „NETWORK_MALICIOUS“ festgelegt.
cn1 additional.fields[].value.string_value Wird dem Feld „threatWeight“ zugeordnet.
cn1Label additional.fields[].key Der Schlüssel wird auf den Wert von cn1Label festgelegt.
cn2 additional.fields[].value.string_value Dem Längenfeld zugeordnet.
cn2Label additional.fields[].key Der Schlüssel wird auf den cn2Label-Wert festgelegt.
cn3 additional.fields[].value.string_value Dem Feld „signatureID“ zugeordnet.
cn3Label additional.fields[].key Der Schlüssel wird auf den cn3Label-Wert festgelegt.
cs1 additional.fields[].value.string_value Der Wert wird direkt zugeordnet.
cs1Label additional.fields[].key Der Schlüssel ist auf den Wert von „cs1Label“ festgelegt.
cs1 principal.user.product_object_id Der Wert wird direkt zugeordnet, wenn cs1Label mit „userID“ übereinstimmt (Groß-/Kleinschreibung wird 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 von „cs2Label“ festgelegt.
cs2 principal.user.userid Der Wert wird direkt zugeordnet, wenn cs2Label mit „userName“ (Groß-/Kleinschreibung wird nicht berücksichtigt) übereinstimmt 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 von „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 von „cs4Label“ festgelegt.
cs5 additional.fields[].value.string_value Wird dem Feld „threatLevel“ zugeordnet.
cs5Label additional.fields[].key Der Schlüssel wird auf den Wert von „cs5Label“ festgelegt.
cs6 additional.fields[].value.string_value Dem Feld „owaspTop10“ zugeordnet.
cs6Label additional.fields[].key Der Schlüssel ist auf den Wert von „cs6Label“ festgelegt.
date metadata.event_timestamp.seconds Wird mit time kombiniert und geparst, um Sekunden seit der UNIX-Epoche 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-Parsing verwendet.
device_product metadata.product_name Wird beim CEF-Parsing verwendet.
device_vendor metadata.vendor_name Wird beim CEF-Parsing verwendet.
device_version metadata.product_version Wird beim CEF-Parsing 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-Parsing 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 Fest codiert 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 geparst, um verschiedene Felder zu extrahieren.
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“ gesetzt.
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“ gesetzt.
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 umgerechnet.
security_result.severity security_result.severity Abgeleitet von severity_level. Entspricht je nach Rohlogwert unterschiedlichen UDM-Schweregradwerten. Der Standardwert ist UNKNOWN_SEVERITY, wenn keine Übereinstimmung gefunden wird.
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“ lautet, wird der Wert von cs3 verwendet. Anschließend wird der Wert 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 geparst, um Sekunden seit der UNIX-Epoche 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 Wird auf „NETWORK_CONNECTION“ gesetzt, wenn sowohl principal.ip als auch target.ip vorhanden sind. Wird auf „USER_UNCATEGORIZED“ gesetzt, wenn principal.ip und principal.user vorhanden sind. Auf „STATUS_UPDATE“ festgelegt, wenn nur principal.ip vorhanden ist. Andernfalls auf „GENERIC_EVENT“ setzen.
metadata.log_type Fest codiert auf „FORTINET_FORTIWEB“.
metadata.product_name Je nach Protokollformat fest codiert auf „FORTINET FORTIWEB“ oder „FortiWEB Cloud“.
metadata.vendor_name Je nach Protokollformat fest codiert als „FORTINET“ oder „Fortinet“.
principal.resource.resource_type Wenn dev_id vorhanden ist, ist der Wert fest auf „DEVICE“ codiert.

Benötigen Sie weitere Hilfe? Antworten von Community-Mitgliedern und Google SecOps-Experten erhalten