Imperva-WAF-Protokolle erfassen

Unterstützt in:

In diesem Dokument wird beschrieben, wie Sie Protokolle entweder über eine API (Pull) oder Amazon S3 (Push) von der Imperva Web Application Firewall (WAF) in Google Security Operations erfassen. Der Parser wandelt Protokolle aus den Formaten SYSLOG+KV, JSON, CEF und LEEF in ein einheitliches Datenmodell (UDM) um. Es verarbeitet verschiedene Protokollstrukturen, extrahiert relevante Felder, normalisiert sie in UDM-Attribute und ergänzt die Daten um Kontextinformationen für eine erweiterte Sicherheitsanalyse.

Hinweise

  • Wählen Sie den Datenaufnahmetyp (API oder Amazon S3) aus, der Ihren Konfigurationsanforderungen am besten entspricht.
  • Sie benötigen eine Google SecOps-Instanz.
  • Sie benötigen erhöhte Zugriffsrechte für AWS.
  • Sie benötigen erhöhte Zugriffsrechte für die Imperva-WAF.

Imperva WAF-Logs mithilfe der API erfassen

Schreibgeschützten Nutzer für Imperva WAF konfigurieren

  1. Melden Sie sich mit einem Konto mit Berechtigungen in der Imperva Console an.
  2. Gehen Sie zu Einstellungen > Nutzer und Rollen.
  3. Klicken Sie auf Add User (Nutzer hinzufügen).
  4. Füllen Sie die Pflichtfelder aus:
    • Nutzername: Geben Sie einen eindeutigen Nutzernamen ein.
    • Passwort: Legen Sie ein starkes Passwort fest.
    • E-Mail: Geben Sie die E-Mail-Adresse des Nutzers an.
    • Wählen Sie im Abschnitt Rollen die Rolle Leser aus.
  5. Klicken Sie auf Speichern, um den Nutzer mit Lesezugriff zu erstellen.

Optional: Reader-Nutzer als „Nur API“ konfigurieren

  1. Suchen Sie in der Liste Nutzer nach dem neu erstellten Nutzer.
  2. Klicken Sie neben dem Namen des Nutzers auf die Schaltfläche Aktionen (drei Punkte).
  3. Wählen Sie Als reinen API-Nutzer festlegen aus.

API-ID und API-Schlüssel generieren

  1. Wählen Sie in der Liste Nutzer den neu erstellten Nutzer aus.
  2. Wählen Sie Einstellungen und dann API-Schlüssel aus.
  3. Klicken Sie auf API-Schlüssel hinzufügen.
  4. Füllen Sie die Pflichtfelder aus:
    • Name: Geben Sie einen aussagekräftigen Namen für den API-Schlüssel ein.
    • Optional: Beschreibung: Geben Sie eine optionale Beschreibung ein.
    • Wählen Sie in der Liste API-Schlüssel läuft in die Option Nie aus.
    • Wählen Sie Status aus, um die Funktion zu aktivieren.
  5. Klicken Sie auf Speichern.

Das System zeigt die API-ID und den API-Schlüssel an. Kopieren und speichern Sie diese Anmeldedaten, da sie nicht noch einmal angezeigt werden.

Feed in Google SecOps konfigurieren, um Imperva-WAF-Logs über die Drittanbieter-API zu importieren

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Imperva WAF-Logs.
  4. Wählen Sie API eines Drittanbieters als Quelltyp aus.
  5. Wählen Sie Imperva als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:
    • HTTP-Authentifizierungsheader: Geben Sie die Imperva API-ID und den Imperva API-Schlüssel in zwei Zeilen ein: apiId:<YOUR_API_ID> und apiKey:<YOUR_API_KEY>.
    • Asset-Namespace: der Asset-Namespace.
    • Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
  8. Klicken Sie auf Weiter.
  9. Überprüfen Sie die Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

Imperva-WAF-Protokolle mit Amazon S3 erfassen

AWS IAM und S3 konfigurieren

  1. Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
  2. Speichern Sie den Namen und die Region des Buckets für später.
  3. Erstellen Sie einen Nutzer. Folgen Sie dazu der Anleitung unter IAM-Nutzer erstellen.
  4. Wählen Sie den erstellten Nutzer aus.
  5. Wählen Sie den Tab Sicherheitsanmeldedaten aus.
  6. Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
  7. Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
  8. Klicken Sie auf Weiter.
  9. Optional: Fügen Sie ein Beschreibungs-Tag hinzu.
  10. Klicken Sie auf Zugriffsschlüssel erstellen.
  11. Klicken Sie auf CSV-Datei herunterladen und speichern Sie den Zugriffsschlüssel und den Secret Access Key für später.
  12. Klicken Sie auf Fertig.
  13. Wählen Sie den Tab Berechtigungen aus.
  14. Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
  15. Wählen Sie Berechtigungen hinzufügen aus.
  16. Wählen Sie Richtlinien direkt anhängen aus.
  17. Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
  18. Klicken Sie auf Weiter.
  19. Klicken Sie auf Berechtigungen hinzufügen.

Imperva WAF-Amazon S3-Verbindung konfigurieren

  1. Melden Sie sich mit einem Konto mit Berechtigungen in der Imperva Console an.
  2. Gehen Sie zu Protokolle > Protokolleinrichtung.
  3. Wählen Sie Amazon S3 aus.
  4. Füllen Sie die Pflichtfelder aus:
    • Zugriffsschlüssel
    • Geheimer Schlüssel
    • Pfad: Geben Sie den Pfad im folgenden Format ein: <Amazon S3 bucket name>/<log folder>, z. B. MyBucket/MyIncapsulaLogFolder.
  5. Klicken Sie auf Verbindung testen, um einen vollständigen Testzyklus durchzuführen, bei dem eine Testdatei in den angegebenen Ordner übertragen wird.
  6. Wählen Sie als Format für die Protokolldateien CEF aus.
  7. Standardmäßig werden Logdateien komprimiert. Legen Sie die Option fest, dass Dateien nicht komprimiert werden sollen.

Feed in Google SecOps für die Aufnahme von Imperva-WAF-Logs aus Amazon S3 konfigurieren

  1. Gehen Sie zu SIEM-Einstellungen > Feeds.
  2. Klicken Sie auf Neu hinzufügen.
  3. Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Imperva WAF Logs.
  4. Wählen Sie als Quelltyp Amazon S3 aus.
  5. Wählen Sie Imperva als Logtyp aus.
  6. Klicken Sie auf Weiter.
  7. Geben Sie Werte für die folgenden Eingabeparameter an:

    • Region: die Region, in der sich der Amazon S3-Bucket befindet.
    • S3-URI: der Bucket-URI.
      • s3://your-log-bucket-name/
      • Ersetzen Sie your-log-bucket-name durch den tatsächlichen Namen des Buckets.
    • URI ist ein: Wählen Sie Verzeichnis oder Verzeichnis mit Unterverzeichnissen aus.
    • Optionen zum Löschen der Quelle: Wählen Sie die gewünschte Löschoption aus.
    • Zugriffsschlüssel-ID: Der Nutzerzugriffsschlüssel mit Zugriff auf den S3-Bucket.
    • Geheimer Zugriffsschlüssel: Der geheime Schlüssel des Nutzers mit Zugriff auf den S3-Bucket.
    • Asset-Namespace: der Asset-Namespace.
    • Aufnahmelabels: Das Label, das auf die Ereignisse aus diesem Feed angewendet werden soll.
  8. Klicken Sie auf Weiter.

  9. Prüfen Sie die neue Feedkonfiguration auf dem Bildschirm Abschließen und klicken Sie dann auf Senden.

UDM-Zuordnungstabelle

Logfeld UDM-Zuordnung Logik
Die Konto-ID von Tinfoil Security target.user.userid Die Konto-ID aus dem JSON-Objekt
handeln security_result.action Wenn act allowed, alert, mit REQ_PASSED oder mit REQ_CACHED beginnt, legen Sie ALLOW fest. Wenn act deny, blocked, mit REQ_BLOCKED oder mit REQ_CHALLENGE beginnt, legen Sie BLOCK fest. Wenn act mit dem regulären Ausdruck (?i)REQ_BAD übereinstimmt, legen Sie FAIL fest. Andernfalls setzen Sie UNKNOWN_ACTION.
App network.application_protocol Wurde umbenannt von kv.app. In Großbuchstaben umgewandelt.
calCountryOrRegion principal.location.country_or_region Wurde umbenannt von calCountryOrRegion.
Katze security_result.action_details Wenn cat mit REQ_PASSED oder REQ_CACHED beginnt, legen Sie action auf ALLOW und action_details auf eine Beschreibung basierend auf dem Wert von cat fest. Wenn cat mit REQ_BAD beginnt, legen Sie action auf FAIL und action_details auf eine Beschreibung basierend auf dem Wert von cat fest. Wenn cat mit REQ_BLOCKED oder REQ_CHALLENGE beginnt, legen Sie action auf BLOCK und action_details auf eine Beschreibung basierend auf dem Wert von cat fest.
cicode principal.location.city Wurde umbenannt von cicode.
classified_client security_result.detection_fields Wenn classified_client nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel classified_client und dem Wert classified_client.
client.domain principal.hostname, principal.asset.hostname Wurde umbenannt von client.domain.
client.geo.country_iso_code principal.location.country_or_region Wurde umbenannt von client.geo.country_iso_code.
client.ip principal.ip, principal.asset.ip Zusammengeführt zu principal.ip und principal.asset.ip.
cn1 network.http.response_code Wurde umbenannt von cn1. In eine Ganzzahl umgewandelt.
context_key target.resource.name Wurde umbenannt von context_key.
Land principal.location.country_or_region Wurde umbenannt von country.
credentials_leaked security_result.detection_fields In String umgewandelt. Wenn der Eintrag nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel credentials_leaked und dem Wert credentials_leaked.
cs1 security_result.detection_fields Wenn cs1 nicht leer ist, NA oder , create a newdetection_fieldsentry with keycs1Labeland valuecs1.
cs1Label security_result.detection_fields Wird als Schlüssel für den detection_fields-Eintrag verwendet, der aus cs1 erstellt wurde.
cs2 security_result.detection_fields Wenn cs2 nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel cs2Label und dem Wert cs2.
cs2Label security_result.detection_fields Wird als Schlüssel für den detection_fields-Eintrag verwendet, der aus cs2 erstellt wurde.
cs3 security_result.detection_fields Wenn cs3 nicht leer ist, - oder , create a newdetection_fieldsentry with keycs3Labeland valuecs3.
cs3Label security_result.detection_fields Wird als Schlüssel für den detection_fields-Eintrag verwendet, der aus cs3 erstellt wurde.
cs4 security_result.detection_fields Wenn cs4 nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel cs4Label und dem Wert cs4.
cs4Label security_result.detection_fields Wird als Schlüssel für den detection_fields-Eintrag verwendet, der aus cs4 erstellt wurde.
cs5 security_result.detection_fields Wenn cs5 nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel cs5Label und dem Wert cs5.
cs5Label security_result.detection_fields Wird als Schlüssel für den detection_fields-Eintrag verwendet, der aus cs5 erstellt wurde.
cs6 principal.application Wurde umbenannt von cs6.
cs7 principal.location.region_latitude Wenn cs7Label = latitude ist, wird es in principal.location.region_latitude umbenannt. In Gleitkommazahl umgewandelt.
cs7Label Wenn cs7Label = latitude ist, wird damit die Zuordnung von cs7 bestimmt.
cs8 principal.location.region_longitude Wenn cs8Label = longitude ist, wird es in principal.location.region_longitude umbenannt. In Gleitkommazahl umgewandelt.
cs8Label Wenn cs8Label = longitude ist, wird damit die Zuordnung von cs8 bestimmt.
cs9 security_result.rule_name, extensions.vulns.vulnerabilities.name Wenn cs9 nicht leer ist, setzen Sie es auf security_result.rule_name und erstellen Sie einen neuen vulnerabilities-Eintrag mit dem Namen cs9.
Kunde target.user.user_display_name Wurde umbenannt von Customer.
declared_client security_result.detection_fields Wenn declared_client nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel declared_client und dem Wert declared_client.
description security_result.threat_name Wurde umbenannt von description.
deviceExternalId network.community_id Wurde umbenannt von deviceExternalId.
deviceReceiptTime metadata.event_timestamp Als Datum geparst und auf metadata.event_timestamp festgelegt. Wenn das Feld leer ist, wird stattdessen log_timestamp oder kv.start verwendet.
dhost target.hostname Wurde umbenannt von kv.dhost.
dproc security_result.category_details Wurde umbenannt von dproc.
dpt target.port Wurde umbenannt von kv.dpt. In eine Ganzzahl umgewandelt.
dst target.ip, target.asset.ip Wenn dst nicht leer ist, werden die Werte mit target.ip und target.asset.ip zusammengeführt.
dstPort target.port Wurde umbenannt von dstPort. In eine Ganzzahl umgewandelt.
duser target.user.userid Wenn duser nicht mit dem regulären Ausdruck .*?Alert.* übereinstimmt und nicht leer ist, wird es in target.user.userid umbenannt.
Ende security_result.detection_fields Wenn end nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel event_end_time und dem Wert end.
event.id Die Ereignis-ID aus dem JSON-Objekt
event.provider principal.user.user_display_name Wurde umbenannt von event.provider.
failed_logins_last_24h security_result.detection_fields In String umgewandelt. Wenn der Eintrag nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel failed_logins_last_24h und dem Wert failed_logins_last_24h.
fileId network.session_id Wurde umbenannt von fileId.
filePermission security_result.detection_fields Wenn filePermission nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel filePermission und dem Wert filePermission.
fileType security_result.detection_fields Wenn fileType nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel fileType und dem Wert fileType.
Fingerprint security_result.detection_fields Wenn fingerprint nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel log_imperva_fingerprint und dem Wert fingerprint.
flexString1 network.http.response_code Wurde umbenannt von kv.flexString1. In eine Ganzzahl umgewandelt.
http.request.body.bytes network.sent_bytes In eine vorzeichenlose Ganzzahl konvertiert. Wurde umbenannt von http.request.body.bytes.
http.request.method network.http.method Wurde umbenannt von http.request.method.
imperva.abp.apollo_rule_versions security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.apollo_rule_versions einen neuen detection_fields-Eintrag mit dem Schlüssel apollo_rule_versions_{index} und dem Wert des Eintrags.
imperva.abp.bot_behaviors security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.bot_behaviors einen neuen detection_fields-Eintrag mit dem Schlüssel bot_behaviors_{index} und dem Wert des Eintrags.
imperva.abp.bot_deciding_condition_ids security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.bot_deciding_condition_ids einen neuen detection_fields-Eintrag mit dem Schlüssel bot_deciding_condition_ids_{index} und dem Wert des Eintrags.
imperva.abp.bot_deciding_condition_names security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.bot_deciding_condition_names einen neuen detection_fields-Eintrag mit dem Schlüssel bot_deciding_condition_names_{index} und dem Wert des Eintrags.
imperva.abp.bot_triggered_condition_ids security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.bot_triggered_condition_ids einen neuen detection_fields-Eintrag mit dem Schlüssel bot_triggered_condition_ids_{index} und dem Wert des Eintrags.
imperva.abp.bot_triggered_condition_names security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.bot_triggered_condition_names einen neuen detection_fields-Eintrag mit dem Schlüssel bot_triggered_condition_names_{index} und dem Wert des Eintrags.
imperva.abp.bot_violations security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.abp.bot_violations einen neuen detection_fields-Eintrag mit dem Schlüssel bot_violations_{index} und dem Wert des Eintrags.
imperva.abp.customer_request_id network.session_id Wurde umbenannt von imperva.abp.customer_request_id.
imperva.abp.headers_accept_encoding security_result.detection_fields Wenn imperva.abp.headers_accept_encoding nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel Accept Encoding und dem Wert imperva.abp.headers_accept_encoding.
imperva.abp.headers_accept_language security_result.detection_fields Wenn imperva.abp.headers_accept_language nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel Accept Language und dem Wert imperva.abp.headers_accept_language.
imperva.abp.headers_connection security_result.detection_fields Wenn imperva.abp.headers_connection nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel headers_connection und dem Wert imperva.abp.headers_connection.
imperva.abp.headers_referer network.http.referral_url Wurde umbenannt von imperva.abp.headers_referer.
imperva.abp.hsig security_result.detection_fields Wenn imperva.abp.hsig nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel hsig und dem Wert imperva.abp.hsig.
imperva.abp.monitor_action security_result.action, security_result.severity Wenn imperva.abp.monitor_action mit dem regulären Ausdruck (?i)allow übereinstimmt, setzen Sie security_action auf ALLOW und severity auf INFORMATIONAL. Wenn imperva.abp.monitor_action mit dem regulären Ausdruck (?i)captcha oder (?i)block übereinstimmt, legen Sie security_action auf BLOCK fest.
imperva.abp.pid principal.process.pid Wurde umbenannt von imperva.abp.pid.
imperva.abp.policy_id security_result.detection_fields Wenn imperva.abp.policy_id nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel Policy Id und dem Wert imperva.abp.policy_id.
imperva.abp.policy_name security_result.detection_fields Wenn imperva.abp.policy_name nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel Policy Name und dem Wert imperva.abp.policy_name.
imperva.abp.random_id additional.fields Wenn imperva.abp.random_id nicht leer ist, erstellen Sie einen neuen additional.fields-Eintrag mit dem Schlüssel Random Id und dem Wert imperva.abp.random_id.
imperva.abp.request_type principal.labels Wenn imperva.abp.request_type nicht leer ist, erstellen Sie einen neuen principal.labels-Eintrag mit dem Schlüssel request_type und dem Wert imperva.abp.request_type.
imperva.abp.selector security_result.detection_fields Wenn imperva.abp.selector nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel selector und dem Wert imperva.abp.selector.
imperva.abp.selector_derived_id security_result.detection_fields Wenn imperva.abp.selector_derived_id nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel selector_derived_id und dem Wert imperva.abp.selector_derived_id.
imperva.abp.tls_fingerprint security_result.description Wurde umbenannt von imperva.abp.tls_fingerprint.
imperva.abp.token_id target.resource.product_object_id Wurde umbenannt von imperva.abp.token_id.
imperva.abp.zuid additional.fields Wenn imperva.abp.zuid nicht leer ist, erstellen Sie einen neuen additional.fields-Eintrag mit dem Schlüssel zuid und dem Wert imperva.abp.zuid.
imperva.additional_factors additional.fields Erstellen Sie für jeden Eintrag in imperva.additional_factors einen neuen additional.fields-Eintrag mit dem Schlüssel additional_factors_{index} und dem Wert des Eintrags.
imperva.audit_trail.event_action security_result.detection_fields Wenn imperva.audit_trail.event_action nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel imperva.audit_trail.event_action und dem Wert imperva.audit_trail.event_action_description.
imperva.audit_trail.event_action_description security_result.detection_fields Wird als Wert für den detection_fields-Eintrag verwendet, der aus imperva.audit_trail.event_action erstellt wurde.
imperva.audit_trail.event_context security_result.detection_fields Wenn imperva.audit_trail.event_context nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel imperva.audit_trail.event_context und dem Wert imperva.audit_trail.event_context_description.
imperva.audit_trail.event_context_description security_result.detection_fields Wird als Wert für den detection_fields-Eintrag verwendet, der aus imperva.audit_trail.event_context erstellt wurde.
imperva.country principal.location.country_or_region Wurde umbenannt von imperva.country.
imperva.declared_client security_result.detection_fields Wenn imperva.declared_client nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel declared_client und dem Wert imperva.declared_client.
imperva.device_reputation additional.fields Erstellen Sie für jeden Eintrag in imperva.device_reputation einen neuen additional.fields-Eintrag mit dem Schlüssel device_reputation und einem Listenwert, der den Eintrag enthält.
imperva.domain_risk security_result.detection_fields Wenn imperva.domain_risk nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel domain_risk und dem Wert imperva.domain_risk.
imperva.failed_logins_last_24h security_result.detection_fields In String umgewandelt. Wenn der Eintrag nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel failed_logins_last_24h und dem Wert failed_logins_last_24h.
imperva.fingerprint security_result.detection_fields Wenn imperva.fingerprint nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel log_imperva_fingerprint und dem Wert imperva.fingerprint.
imperva.ids.account_id metadata.product_log_id Wurde umbenannt von imperva.ids.account_id.
imperva.ids.account_name metadata.product_event_type Wurde umbenannt von imperva.ids.account_name.
imperva.ids.site_id additional.fields Wenn imperva.ids.site_id nicht leer ist, erstellen Sie einen neuen additional.fields-Eintrag mit dem Schlüssel site_id und dem Wert imperva.ids.site_id.
imperva.ids.site_name additional.fields Wenn imperva.ids.site_name nicht leer ist, erstellen Sie einen neuen additional.fields-Eintrag mit dem Schlüssel site_name und dem Wert imperva.ids.site_name.
imperva.referrer network.http.referral_url Wurde umbenannt von imperva.referrer.
imperva.request_session_id network.session_id Wurde umbenannt von imperva.request_session_id.
imperva.request_user security_result.detection_fields Wenn imperva.request_user nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel request_user und dem Wert imperva.request_user.
imperva.risk_level security_result.severity_details Wurde umbenannt von imperva.risk_level.
imperva.risk_reason security_result.description Wurde umbenannt von imperva.risk_reason.
imperva.significant_domain_name security_result.detection_fields Wenn imperva.significant_domain_name nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel significant_domain_name und dem Wert imperva.significant_domain_name.
imperva.violated_directives security_result.detection_fields Erstellen Sie für jeden Eintrag in imperva.violated_directives einen neuen detection_fields-Eintrag mit dem Schlüssel violated_directives und dem Wert des Eintrags.
in network.received_bytes Wurde umbenannt von in. In eine vorzeichenlose Ganzzahl konvertiert.
log_timestamp metadata.event_timestamp Wenn deviceReceiptTime und kv.start leer sind, setzen Sie metadata.event_timestamp.
Nachricht metadata.description Wenn message nicht leer ist und event.provider, imperva.ids.account_name und client.ip leer sind, setzen Sie metadata.description.
postbody security_result.detection_fields Wenn postbody nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel post_body_info und dem Wert postbody.
Proto network.application_protocol Wurde umbenannt von proto.
protoVer network.tls.version, network.tls.cipher Wenn protoVer nicht leer ist, wird es analysiert, um tls_version und tls_cipher zu extrahieren. Diese werden dann in network.tls.version und network.tls.cipher umbenannt.
Anfrage target.url Wurde umbenannt von kv.request.
requestClientApplication network.http.user_agent Wurde umbenannt von requestClientApplication.
requestMethod network.http.method Wurde umbenannt von requestMethod. In Großbuchstaben umgewandelt.
resource_id target.resource.id Wurde umbenannt von resource_id.
resource_type_key target.resource.type Wurde umbenannt von resource_type_key.
rt metadata.event_timestamp Es wird analysiert, um deviceReceiptTime zu extrahieren, das dann als Datum analysiert und auf metadata.event_timestamp festgelegt wird.
security_result.action security_result.action Mit dem Wert des Felds _action zusammengeführt.
security_result.severity security_result.severity Wenn sevs error oder warning ist, setzen Sie HIGH. Wenn sevs critical ist, setzen Sie CRITICAL. Wenn sevs medium oder notice ist, setzen Sie MEDIUM. Wenn sevs information oder info ist, setzen Sie LOW.
server.domain target.hostname, target.asset.hostname Wurde umbenannt von server.domain.
server.geo.name target.location.name Wurde umbenannt von server.geo.name.
die Ausprägung security_result.threat_id Wurde umbenannt von severity.
siteid security_result.detection_fields Wenn siteid nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel siteid und dem Wert siteid.
sourceServiceName target.hostname Wurde umbenannt von kv.sourceServiceName.
spt principal.port Wurde umbenannt von kv.spt. In eine Ganzzahl umgewandelt.
src principal.ip, principal.asset.ip Wenn src nicht leer ist, werden die Werte mit principal.ip und principal.asset.ip zusammengeführt.
srcPort principal.port Wurde umbenannt von srcPort. In eine Ganzzahl umgewandelt.
start security_result.detection_fields, metadata.event_timestamp Wenn start nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel event_start_time und dem Wert start. Wird auch als Datum geparst und auf metadata.event_timestamp gesetzt, wenn deviceReceiptTime leer ist.
successful_logins_last_24h security_result.detection_fields In String umgewandelt. Wenn der Eintrag nicht leer ist, erstellen Sie einen neuen detection_fields-Eintrag mit dem Schlüssel successful_logins_last_24h und dem Wert successful_logins_last_24h.
suid target.user.userid Wurde umbenannt von suid.
Zeit metadata.event_timestamp In String umgewandelt. Als Datum geparst und auf metadata.event_timestamp festgelegt.
type_key metadata.product_event_type Wurde umbenannt von type_key.
URL target.process.file.full_path Wenn url.path nicht leer oder / ist, setzen Sie es auf target.process.file.full_path.
URL target.url Wurde umbenannt von url. Wenn qstr nicht leer ist, wird es mit einem ?-Trennzeichen an url angehängt.
user.email principal.user.email_addresses Wenn user.email nicht leer ist und mit dem regulären Ausdruck ^.+@.+$ übereinstimmt, wird es mit principal.user.email_addresses zusammengeführt.
user_agent network.http.user_agent Wurde umbenannt von user_agent.
user_agent.original network.http.parsed_user_agent Wenn user_agent.original nicht leer oder * ist, wird es in parseduseragent konvertiert und in network.http.parsed_user_agent umbenannt.
user_details principal.user.email_addresses Wenn user_details nicht leer ist und mit dem regulären Ausdruck ^.+@.+$ übereinstimmt, wird es mit principal.user.email_addresses zusammengeführt.
user_id principal.user.userid Wurde umbenannt von user_id.
ver network.tls.version, network.tls.cipher Wenn ver nicht leer ist, wird es analysiert, um tls_version und tls_cipher zu extrahieren. Diese werden dann in network.tls.version und network.tls.cipher umbenannt.
xff intermediary.ip, intermediary.asset.ip, intermediary.hostname, intermediary.asset.hostname Wenn xff nicht leer ist, werden IP-Adressen und Hostnamen extrahiert. IP-Adressen werden in intermediary.ip und intermediary.asset.ip zusammengeführt. Die Hostnamen sind auf intermediary.hostname und intermediary.asset.hostname gesetzt.

Änderungen

2025-01-16

Optimierung:

  • log.imperva.audit_trail.resource_name wurde target.resource.name zugeordnet.

2024-11-14

Optimierung:

  • Unterstützung für das neue Protokollformat hinzugefügt.

2024-10-10

Optimierung:

  • metadata.vendor_name wurde Imperva Cloud WAF zugeordnet.

2024-10-03

Optimierung:

  • cn1 wurde network.http.response_code zugeordnet.

2024-09-05

Optimierung:

  • Unterstützung für das neue Protokollformat hinzugefügt.

2024-08-27

Optimierung:

  • Die Zuordnung von log.imperva.ids.account_name wurde von metadata.product_event_type zu target.user.user_display_name geändert.

2024-06-25

Optimierung:

  • Unterstützung für die Verarbeitung von JSON-Logs hinzugefügt.

2024-04-02

Optimierung:

  • log.imperva.request_user wurde security_result.detection_fields zugeordnet.
  • log.imperva.classified_client wurde security_result.detection_fields zugeordnet.

2024-02-26

Optimierung:

  • log.imperva.request_session_id wurde network.session_id zugeordnet.
  • log.imperva.successful_logins_last_24h,log.imperva.path und log.imperva.failed_logins_last_24h wurden security_result.detection_fields zugeordnet.
  • log.imperva.risk_reason wurde security_result.severity_details und security_result.severity zugeordnet.
  • additional_factor,log.imperva.device_reputation und log.imperva.credentials_leaked wurden additional.fields zugeordnet.
  • log.imperva.fingerprint wurde security_result.description zugeordnet.
  • log.imperva.referrer wurde network.http.referral_url zugeordnet.
  • log.imperva.classified_client wurde principal.process.file.full_path zugeordnet

2024-02-06

Optimierung:

  • accept_encoding_label, site_name_label, random_id_label, request_type_label, accept_language_label, headers_connection_label, zuid_labels, site_id_label, policy_id, policy_name, selector_derived_id, hsig, selector, detection_fields_event_action, detection_fields_event_context, detection_fields_significant_domain_name und detection_fields_domain_risk wurden in for loop für „json_array“ auf „null“ initialisiert.

2024-01-27

Optimierung:

  • description wurde security_result.threat_name zugeordnet.
  • severity wurde security_result.threat_id zugeordnet.
  • kv.src, src und log.client.ip wurden principal.asset.ip zugeordnet.
  • kv.dst und dst wurden target.asset.ip zugeordnet.
  • kv.dvc wurde about.asset.ip zugeordnet.
  • kv.cs9 und cs9 wurden security_result.rule_name zugeordnet.
  • kv.fileType und fileType wurden security_result.rule_type zugeordnet.
  • dst wurde target.asset.ip zugeordnet.
  • xff und forwardedIp wurden intermediary.asset.ip zugeordnet.
  • log.client.domain wurde principal.asset.hostname zugeordnet.
  • log.server.domain wurde target.asset.hostname zugeordnet.

2023-10-16

Fehlerkorrektur:

  • security_result und security_action wurden in for loop für json_array auf null initialisiert.
  • Vor dem Zusammenführen von security_action und security_result.action wurde eine Null-Prüfung hinzugefügt.
  • Wenn log.imperva.abp.monitor_action = block ist, wird security_action = BLOCK zugeordnet.

2023-09-26

Optimierung:

  • significant_domain_name, domain_risk und violated_directives wurden in CSP-Logs security_result.detection_fields zugeordnet.

2023-08-07

Fehlerkorrektur:

  • Unterstützung für das Parsen von JSON-Log-Arrays hinzugefügt.
  • Es wurde ein Grok-Muster hinzugefügt, um vor der Zuordnung von xff zu intermediary.hostname nach dem Hostnamen zu suchen.

2023-06-16

Fehlerkorrektur:

  • imperva.audit_trail.event_action wurde security_result.detection_fields zugeordnet.
  • imperva.audit_trail.event_action_description wurde security_result.detection_fields zugeordnet.
  • imperva.audit_trail.event_context wurde security_result.detection_fields zugeordnet.
  • imperva.audit_trail.event_context_description wurde security_result.detection_fields zugeordnet.
  • Probleme beim Parsen von Zeitstempeln wurden behoben.
  • Fehlerhafte Protokolle wurden verworfen.

2023-06-16

Fehlerkorrektur:

  • imperva.audit_trail.event_action wurde security_result.detection_fields zugeordnet.
  • imperva.audit_trail.event_action_description wurde security_result.detection_fields zugeordnet.
  • imperva.audit_trail.event_context wurde security_result.detection_fields zugeordnet.
  • imperva.audit_trail.event_context_description wurde security_result.detection_fields zugeordnet.
  • Probleme beim Parsen von Zeitstempeln wurden behoben.
  • Fehlerhafte Protokolle wurden verworfen.

2023-06-08

Optimierung:

  • imperva.abp.apollo_rule_versions wurde security_result.detection_fields zugeordnet.
  • imperva.abp.bot_violations wurde security_result.detection_fields zugeordnet.
  • imperva.abp.bot_behaviors wurde security_result.detection_fields zugeordnet.
  • imperva.abp.bot_deciding_condition_ids wurde security_result.detection_fields zugeordnet.
  • imperva.abp.bot_deciding_condition_names wurde security_result.detection_fields zugeordnet.
  • imperva.abp.bot_triggered_condition_ids wurde security_result.detection_fields zugeordnet.
  • imperva.abp.bot_triggered_condition_names wurde security_result.detection_fields zugeordnet.

2023-04-26

Optimierung:

  • Das Feld kv.src in den Statusdaten definiert.
  • kvdata.ver wurde network.tls.version und network.tls.cipher zugeordnet.
  • kvdata.sip wurde principal.ip zugeordnet.
  • kvdata.spt wurde principal.port zugeordnet.
  • kvdata.act wurde „security_result.action_details“ zugeordnet.
  • kvdata.app wurde „network.application_protocol“ zugeordnet.
  • kvdata.requestMethod wurde network.http.method zugeordnet.

2023-02-04

Optimierung:

  • Für das Feld deviceReceiptTime wurde „rebase“ = „true“ in event.timestamp hinzugefügt.

2023-01-19

Optimierung:

  • Unterstützung für Parserprotokolle hinzugefügt. Dazu wurden die folgenden Zuordnungen hinzugefügt.
  • event.provider wurde principal.user.userid zugeordnet.
  • client.ip wurde principal.ip zugeordnet.
  • client.domain wurde principal.hostname zugeordnet.
  • imperva.abp.request_type wurde principal.labels zugeordnet.
  • imperva.abp.pid wurde principal.process.pid zugeordnet.
  • client.geo.country_iso_code wurde principal.location.country_or_region zugeordnet.
  • server.domain wurde target.hostname zugeordnet.
  • server.geo.name wurde target.location.name zugeordnet.
  • url.path wurde target.process.file.full_path zugeordnet.
  • imperva.abp.customer_request_id wurde target.resource.id zugeordnet.
  • imperva.abp.token_id wurde target.resource.product_object_id zugeordnet.
  • imperva.abp.random_id wurde additional.fields zugeordnet.
  • http.request.method wurde network.http.method zugeordnet.
  • user_agent.original wurde network.http.parsed_user_agent zugeordnet.
  • imperva.abp.headers_referer wurde network.http.referral_url zugeordnet.
  • imperva.abp.zuid wurde additional.fields zugeordnet.
  • imperva.ids.site_name wurde additional.fields zugeordnet.
  • imperva.ids.site_id wurde additional.fields zugeordnet.
  • imperva.ids.account_name wurde metadata.product_event_type zugeordnet.
  • imperva.ids.account_id wurde metadata.product_log_id zugeordnet.
  • imperva.abp.headers_accept_encoding wurde security_result.detection_fields zugeordnet.
  • imperva.abp.headers_accept_language wurde security_result.detection_fields zugeordnet.
  • imperva.abp.headers_connection wurde security_result.detection_fields zugeordnet
  • imperva.abp.policy_id wurde security_result.detection_fields zugeordnet.
  • imperva.abp.policy_name wurde security_result.detection_fields zugeordnet.
  • imperva.abp.selector_derived_id wurde security_result.detection_fields zugeordnet.
  • imperva.abp.monitor_action wurde security_result.action zugeordnet.

2022-06-28

Optimierung:

  • Für alle Protokolle wurden „vendor.name“ = Imperva und „product.name“ = Web Application Firewall zugeordnet.
  • metadata.event_type, bei dem src = Distributed, von GENERIC_EVENT in USER_UNCATEGORIZED geändert
  • metadata.event_type wurde in USER_UNCATEGORIZED und dann in USER_STATS geändert

2022-06-20

  • Modifiziertes Grok-Muster für das Feld rt.
  • Fehlerkorrektur: Verbesserungen bei „security_result.action“.
  • REQ_PASSED: Die Anfrage wurde an den Webserver der Website weitergeleitet (security_result.action = 'ALLOW').
  • REQ_CACHED_X: Gibt an, ob eine Antwort aus dem Cache des Rechenzentrums zurückgegeben wurde (security_result.action = 'ALLOW').
  • REQ_BAD_X: Wenn ein Protokoll- oder Netzwerkfehler aufgetreten ist (security_result.action = 'FAIL').
  • REQ_CHALLENGE_X: Gibt an, ob eine Bestätigung an den Client zurückgegeben wurde (security_result.action = 'BLOCK').
  • REQ_BLOCKED_X: Gibt an, ob die Anfrage blockiert wurde (security_result.action = 'BLOCK').

2022-06-14

Fehlerkorrektur:

  • „gsub“ wurde hinzugefügt und der kv-Filter wurde geändert, um eine falsche Zuordnung der Felder „cs1Label“, „cs2Label“ und „cs3Label“ zum UDM-Feld „security_result.detection_fields“ zu vermeiden.

2022-05-26

Fehlerkorrektur:

  • Schlüsselname und Doppelpunktzeichen wurden aus dem Wert der Erkennungsfelder entfernt.

2022-05-10

Optimierung:

  • Die folgenden Felder wurden zugeordnet:
  • „cs1“, „cs2“, „cs3“, „cs4“, „cs5“, „fileType“ und „filePermission“ in „security_result.detection_fields“.
  • „cs7“ zu „principal.location.region_latitude“.
  • „cs8“ zu „principal.location.region_longitude“
  • „cn1“, „cn2“ zu „security_result.detection_fields“ für CEF-Format-Protokolle.
  • „act“ in CEF-Format-Protokollen in „security_result.action“ und „security_result.action_details“ ändern
  • „app“ in „network.application_protocol“ für CEF-Format-Protokolle.
  • „requestClientApplication“ zu „network.http.user_agent“ für CEF-Formatprotokolle
  • „dvc“ in „about.ip“ für CEF-Formatprotokolle.

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