Imperva-WAF-Protokolle erfassen
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
- Melden Sie sich mit einem Konto mit Berechtigungen in der Imperva Console an.
- Gehen Sie zu Einstellungen > Nutzer und Rollen.
- Klicken Sie auf Add User (Nutzer hinzufügen).
- 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.
- Klicken Sie auf Speichern, um den Nutzer mit Lesezugriff zu erstellen.
Optional: Reader-Nutzer als „Nur API“ konfigurieren
- Suchen Sie in der Liste Nutzer nach dem neu erstellten Nutzer.
- Klicken Sie neben dem Namen des Nutzers auf die Schaltfläche Aktionen (drei Punkte).
- Wählen Sie Als reinen API-Nutzer festlegen aus.
API-ID und API-Schlüssel generieren
- Wählen Sie in der Liste Nutzer den neu erstellten Nutzer aus.
- Wählen Sie Einstellungen und dann API-Schlüssel aus.
- Klicken Sie auf API-Schlüssel hinzufügen.
- 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.
- 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
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B. Imperva WAF-Logs.
- Wählen Sie API eines Drittanbieters als Quelltyp aus.
- Wählen Sie Imperva als Logtyp aus.
- Klicken Sie auf Weiter.
- 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>
undapiKey:<YOUR_API_KEY>
. - Asset-Namespace: der Asset-Namespace.
- Labels für Datenaufnahme: Das Label, das auf die Ereignisse aus diesem Feed angewendet wird.
- HTTP-Authentifizierungsheader: Geben Sie die Imperva API-ID und den Imperva API-Schlüssel in zwei Zeilen ein:
- Klicken Sie auf Weiter.
- Ü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
- Erstellen Sie einen Amazon S3-Bucket. Folgen Sie dazu dieser Anleitung: Bucket erstellen.
- Speichern Sie den Namen und die Region des Buckets für später.
- Erstellen Sie einen Nutzer. Folgen Sie dazu der Anleitung unter IAM-Nutzer erstellen.
- Wählen Sie den erstellten Nutzer aus.
- Wählen Sie den Tab Sicherheitsanmeldedaten aus.
- Klicken Sie im Bereich Zugriffsschlüssel auf Zugriffsschlüssel erstellen.
- Wählen Sie als Anwendungsfall Drittanbieterdienst aus.
- Klicken Sie auf Weiter.
- Optional: Fügen Sie ein Beschreibungs-Tag hinzu.
- Klicken Sie auf Zugriffsschlüssel erstellen.
- Klicken Sie auf CSV-Datei herunterladen und speichern Sie den Zugriffsschlüssel und den Secret Access Key für später.
- Klicken Sie auf Fertig.
- Wählen Sie den Tab Berechtigungen aus.
- Klicken Sie im Bereich Berechtigungsrichtlinien auf Berechtigungen hinzufügen.
- Wählen Sie Berechtigungen hinzufügen aus.
- Wählen Sie Richtlinien direkt anhängen aus.
- Suchen Sie nach der Richtlinie AmazonS3FullAccess und wählen Sie sie aus.
- Klicken Sie auf Weiter.
- Klicken Sie auf Berechtigungen hinzufügen.
Imperva WAF-Amazon S3-Verbindung konfigurieren
- Melden Sie sich mit einem Konto mit Berechtigungen in der Imperva Console an.
- Gehen Sie zu Protokolle > Protokolleinrichtung.
- Wählen Sie Amazon S3 aus.
- 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
.
- Klicken Sie auf Verbindung testen, um einen vollständigen Testzyklus durchzuführen, bei dem eine Testdatei in den angegebenen Ordner übertragen wird.
- Wählen Sie als Format für die Protokolldateien CEF aus.
- 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
- Gehen Sie zu SIEM-Einstellungen > Feeds.
- Klicken Sie auf Neu hinzufügen.
- Geben Sie im Feld Feedname einen Namen für den Feed ein, z. B.
Imperva WAF Logs
. - Wählen Sie als Quelltyp Amazon S3 aus.
- Wählen Sie Imperva als Logtyp aus.
- Klicken Sie auf Weiter.
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.
Klicken Sie auf Weiter.
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 new detection_fieldsentry with key cs1Labeland value cs1. |
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 new detection_fieldsentry with key cs3Labeland value cs3. |
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
wurdetarget.resource.name
zugeordnet.
2024-11-14
Optimierung:
- Unterstützung für das neue Protokollformat hinzugefügt.
2024-10-10
Optimierung:
metadata.vendor_name
wurdeImperva Cloud WAF
zugeordnet.
2024-10-03
Optimierung:
cn1
wurdenetwork.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 vonmetadata.product_event_type
zutarget.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
wurdesecurity_result.detection_fields
zugeordnet.log.imperva.classified_client
wurdesecurity_result.detection_fields
zugeordnet.
2024-02-26
Optimierung:
log.imperva.request_session_id
wurdenetwork.session_id
zugeordnet.log.imperva.successful_logins_last_24h
,log.imperva.path
undlog.imperva.failed_logins_last_24h
wurdensecurity_result.detection_fields
zugeordnet.log.imperva.risk_reason
wurdesecurity_result.severity_details
undsecurity_result.severity
zugeordnet.additional_factor
,log.imperva.device_reputation
undlog.imperva.credentials_leaked
wurdenadditional.fields
zugeordnet.log.imperva.fingerprint
wurdesecurity_result.description
zugeordnet.log.imperva.referrer
wurdenetwork.http.referral_url
zugeordnet.log.imperva.classified_client
wurdeprincipal.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
unddetection_fields_domain_risk
wurden infor loop
für „json_array“ auf „null“ initialisiert.
2024-01-27
Optimierung:
description
wurdesecurity_result.threat_name
zugeordnet.severity
wurdesecurity_result.threat_id
zugeordnet.kv.src
,src
undlog.client.ip
wurdenprincipal.asset.ip
zugeordnet.kv.dst
unddst
wurdentarget.asset.ip
zugeordnet.kv.dvc
wurdeabout.asset.ip
zugeordnet.kv.cs9
undcs9
wurdensecurity_result.rule_name
zugeordnet.kv.fileType
undfileType
wurdensecurity_result.rule_type
zugeordnet.dst
wurdetarget.asset.ip
zugeordnet.xff
undforwardedIp
wurdenintermediary.asset.ip
zugeordnet.log.client.domain
wurdeprincipal.asset.hostname
zugeordnet.log.server.domain
wurdetarget.asset.hostname
zugeordnet.
2023-10-16
Fehlerkorrektur:
security_result
undsecurity_action
wurden infor loop
für json_array auf null initialisiert.- Vor dem Zusammenführen von
security_action
undsecurity_result.action
wurde eine Null-Prüfung hinzugefügt. - Wenn
log.imperva.abp.monitor_action
=block
ist, wirdsecurity_action
=BLOCK
zugeordnet.
2023-09-26
Optimierung:
significant_domain_name
,domain_risk
undviolated_directives
wurden in CSP-Logssecurity_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
zuintermediary.hostname
nach dem Hostnamen zu suchen.
2023-06-16
Fehlerkorrektur:
imperva.audit_trail.event_action
wurdesecurity_result.detection_fields
zugeordnet.imperva.audit_trail.event_action_description
wurdesecurity_result.detection_fields
zugeordnet.imperva.audit_trail.event_context
wurdesecurity_result.detection_fields
zugeordnet.imperva.audit_trail.event_context_description
wurdesecurity_result.detection_fields
zugeordnet.- Probleme beim Parsen von Zeitstempeln wurden behoben.
- Fehlerhafte Protokolle wurden verworfen.
2023-06-16
Fehlerkorrektur:
imperva.audit_trail.event_action
wurdesecurity_result.detection_fields
zugeordnet.imperva.audit_trail.event_action_description
wurdesecurity_result.detection_fields
zugeordnet.imperva.audit_trail.event_context
wurdesecurity_result.detection_fields
zugeordnet.imperva.audit_trail.event_context_description
wurdesecurity_result.detection_fields
zugeordnet.- Probleme beim Parsen von Zeitstempeln wurden behoben.
- Fehlerhafte Protokolle wurden verworfen.
2023-06-08
Optimierung:
imperva.abp.apollo_rule_versions
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.bot_violations
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.bot_behaviors
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.bot_deciding_condition_ids
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.bot_deciding_condition_names
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.bot_triggered_condition_ids
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.bot_triggered_condition_names
wurdesecurity_result.detection_fields
zugeordnet.
2023-04-26
Optimierung:
- Das Feld
kv.src
in den Statusdaten definiert. kvdata.ver
wurdenetwork.tls.version
und network.tls.cipher zugeordnet.kvdata.sip
wurdeprincipal.ip
zugeordnet.kvdata.spt
wurdeprincipal.port
zugeordnet.kvdata.act
wurde „security_result.action_details“ zugeordnet.kvdata.app
wurde „network.application_protocol“ zugeordnet.kvdata.requestMethod
wurdenetwork.http.method
zugeordnet.
2023-02-04
Optimierung:
- Für das Feld
deviceReceiptTime
wurde „rebase“ = „true“ inevent.timestamp
hinzugefügt.
2023-01-19
Optimierung:
- Unterstützung für Parserprotokolle hinzugefügt. Dazu wurden die folgenden Zuordnungen hinzugefügt.
event.provider
wurdeprincipal.user.userid
zugeordnet.client.ip
wurdeprincipal.ip
zugeordnet.client.domain
wurdeprincipal.hostname
zugeordnet.imperva.abp.request_type
wurdeprincipal.labels
zugeordnet.imperva.abp.pid
wurdeprincipal.process.pid
zugeordnet.client.geo.country_iso_code
wurdeprincipal.location.country_or_region
zugeordnet.server.domain
wurdetarget.hostname
zugeordnet.server.geo.name
wurdetarget.location.name
zugeordnet.url.path
wurdetarget.process.file.full_path
zugeordnet.imperva.abp.customer_request_id
wurdetarget.resource.id
zugeordnet.imperva.abp.token_id
wurdetarget.resource.product_object_id
zugeordnet.imperva.abp.random_id
wurdeadditional.fields
zugeordnet.http.request.method
wurdenetwork.http.method
zugeordnet.user_agent.original
wurdenetwork.http.parsed_user_agent
zugeordnet.imperva.abp.headers_referer
wurdenetwork.http.referral_url
zugeordnet.imperva.abp.zuid
wurdeadditional.fields
zugeordnet.imperva.ids.site_name
wurdeadditional.fields
zugeordnet.imperva.ids.site_id
wurdeadditional.fields
zugeordnet.imperva.ids.account_name
wurdemetadata.product_event_type
zugeordnet.imperva.ids.account_id
wurdemetadata.product_log_id
zugeordnet.imperva.abp.headers_accept_encoding
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.headers_accept_language
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.headers_connection
wurdesecurity_result.detection_fields
zugeordnetimperva.abp.policy_id
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.policy_name
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.selector_derived_id
wurdesecurity_result.detection_fields
zugeordnet.imperva.abp.monitor_action
wurdesecurity_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 demsrc
=Distributed
, vonGENERIC_EVENT
inUSER_UNCATEGORIZED
geändertmetadata.event_type
wurde inUSER_UNCATEGORIZED
und dann inUSER_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