Raccogliere i log WAF di Imperva
Questo documento spiega come raccogliere i log dal firewall per applicazioni web (WAF) Imperva in Google Security Operations utilizzando un'API (pull) o Amazon S3 (push). Il parser trasforma i log dai formati SYSLOG+KV, JSON, CEF e LEEF in un modello UDM (Unified Data Model). Elabora varie strutture di log, estrae i campi pertinenti, li normalizza in attributi UDM e arricchisce i dati con informazioni contestuali per un'analisi della sicurezza avanzata.
Prima di iniziare
Assicurati di soddisfare i seguenti prerequisiti:
- Il tipo di importazione (API o Amazon S3) più adatto ai tuoi requisiti di configurazione.
- Istanza Google SecOps.
- Accesso con privilegi ad AWS.
- Accesso privilegiato a Imperva WAF.
Raccogli i log WAF di Imperva utilizzando l'API
Configura un utente di sola lettura per Imperva WAF
- Accedi alla console Imperva con un account con privilegi.
- Vai a Impostazioni > Utenti e ruoli.
- Fai clic su Aggiungi utente.
- Compila i campi obbligatori:
- Nome utente: inserisci un nome utente univoco.
- Password: imposta una password efficace.
- Email: fornisci l'indirizzo email dell'utente.
- Nella sezione Ruoli, seleziona il ruolo Lettore.
- Fai clic su Salva per creare l'utente con accesso di sola lettura.
(Facoltativo) Configurare l'utente Reader come solo API
- Nell'elenco Utenti, individua l'utente appena creato.
- Fai clic sul pulsante Azioni (tre puntini) accanto al nome dell'utente.
- Seleziona l'utente Imposta come solo API.
Genera l'ID API e la chiave API
- Nell'elenco Utenti, seleziona l'utente appena creato.
- Seleziona Impostazioni e fai clic su Chiavi API.
- Fai clic su Aggiungi chiave API.
- Compila i campi obbligatori:
- Nome: inserisci un nome descrittivo per la chiave API.
- (Facoltativo) Descrizione: fornisci una descrizione facoltativa.
- Nell'elenco La chiave API scadrà tra, seleziona Mai.
- Per attivare, seleziona Stato.
- Fai clic su Salva.
Il sistema mostra l'ID API e la chiave API. Copia e salva queste credenziali, perché non verranno più visualizzate.
Configurare i feed
Esistono due diversi punti di accesso per configurare i feed nella piattaforma Google SecOps:
- Impostazioni SIEM > Feed
- Hub dei contenuti > Pacchetti di contenuti
Configura i feed da Impostazioni SIEM > Feed
Per configurare un feed:
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo feed.
- Nella pagina successiva, fai clic su Configura un singolo feed.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio Imperva Incapsula WAF Logs.
- Seleziona API di terze parti come Tipo di origine.
- Seleziona Imperva come Tipo di log.
- Fai clic su Avanti.
- Specifica i valori per i seguenti parametri di input:
- Intestazione HTTP di autenticazione: inserisci l'ID e la chiave API di Imperva su due righe:
apiId:<YOUR_API_ID>
eapiKey:<YOUR_API_KEY>
.
- Intestazione HTTP di autenticazione: inserisci l'ID e la chiave API di Imperva su due righe:
- Fai clic su Avanti.
- Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Configurare i feed dall'hub dei contenuti
Specifica i valori per i seguenti campi:
- Intestazione HTTP di autenticazione: inserisci l'ID e la chiave API di Imperva su due righe:
apiId:<YOUR_API_ID>
eapiKey:<YOUR_API_KEY>
.
Opzioni avanzate
- Nome feed: un valore precompilato che identifica il feed.
- Tipo di origine: metodo utilizzato per raccogliere i log in Google SecOps.
- Spazio dei nomi dell'asset: lo spazio dei nomi associato al feed.
- Etichette di importazione: etichette applicate a tutti gli eventi di questo feed.
Raccogli i log WAF di Imperva utilizzando Amazon S3
Configura AWS IAM e S3
- Crea un bucket Amazon S3 seguendo questa guida utente: Creazione di un bucket
- Salva il Nome e la Regione del bucket per utilizzarli in un secondo momento.
- Crea un utente seguendo questa guida utente: Creazione di un utente IAM.
- Seleziona l'utente creato.
- Seleziona la scheda Credenziali di sicurezza.
- Fai clic su Crea chiave di accesso nella sezione Chiavi di accesso.
- Seleziona Servizio di terze parti come Caso d'uso.
- Fai clic su Avanti.
- (Facoltativo) Aggiungi un tag di descrizione.
- Fai clic su Crea chiave di accesso.
- Fai clic su Scarica file .csv e salva la chiave di accesso e la chiave di accesso segreta per un utilizzo futuro.
- Fai clic su Fine.
- Seleziona la scheda Autorizzazioni.
- Fai clic su Aggiungi autorizzazioni nella sezione Norme relative alle autorizzazioni.
- Seleziona Aggiungi autorizzazioni.
- Seleziona Allega direttamente le norme.
- Cerca e seleziona il criterio AmazonS3FullAccess.
- Fai clic su Avanti.
- Fai clic su Aggiungi autorizzazioni.
Configura la connessione Amazon S3 di Imperva WAF
- Accedi alla console Imperva con un account con privilegi.
- Vai a Log > Configurazione log.
- Seleziona Amazon S3.
- Compila i campi obbligatori:
- Chiave di accesso
- Chiave segreta
- Percorso: inserisci il percorso nel seguente formato:
<Amazon S3 bucket name>/<log folder>
; ad esempio:MyBucket/MyIncapsulaLogFolder
.
- Fai clic su Prova connessione per eseguire un ciclo di test completo in cui un file di test viene trasferito alla cartella designata.
- Seleziona CEF come formato per i file di log.
- Per impostazione predefinita, i file di log sono compressi. Imposta l'opzione per non comprimere i file.
Configura un feed in Google SecOps per importare i log WAF di Imperva da Amazon S3
- Vai a Impostazioni SIEM > Feed.
- Fai clic su Aggiungi nuovo.
- Nel campo Nome feed, inserisci un nome per il feed, ad esempio
Imperva WAF Logs
. - Seleziona Amazon S3 come Tipo di origine.
- Seleziona Imperva come Tipo di log.
- Fai clic su Avanti.
Specifica i valori per i seguenti parametri di input:
- Region (Regione): la regione in cui si trova il bucket Amazon S3.
- URI S3: l'URI del bucket.
s3://your-log-bucket-name/
- Sostituisci
your-log-bucket-name
con il nome effettivo del bucket.
- L'URI è una: seleziona Directory o Directory che include sottodirectory.
- Opzioni di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze.
- ID chiave di accesso: la chiave di accesso utente con accesso al bucket S3.
- Chiave di accesso segreta: la chiave segreta dell'utente con accesso al bucket S3.
- Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
- Etichette di importazione: l'etichetta da applicare agli eventi di questo feed.
Fai clic su Avanti.
Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
account_id | target.user.userid | L'ID account dall'oggetto JSON |
atto | security_result.action | Se act è allowed , alert , inizia con REQ_PASSED o inizia con REQ_CACHED , imposta su ALLOW . Se act è deny , blocked , inizia con REQ_BLOCKED o inizia con REQ_CHALLENGE , imposta su BLOCK . Se act corrisponde all'espressione regolare (?i)REQ_BAD , imposta FAIL . In caso contrario, imposta il valore su UNKNOWN_ACTION . |
app | network.application_protocol | Rinominato da kv.app . Convertito in maiuscolo. |
calCountryOrRegion | principal.location.country_or_region | Rinominato da calCountryOrRegion . |
gatto | security_result.action_details | Se cat inizia con REQ_PASSED o REQ_CACHED , imposta action su ALLOW e action_details su una descrizione basata sul valore di cat . Se cat inizia con REQ_BAD , imposta action su FAIL e action_details su una descrizione basata sul valore di cat . Se cat inizia con REQ_BLOCKED o REQ_CHALLENGE , imposta action su BLOCK e action_details su una descrizione basata sul valore di cat . |
cicode | principal.location.city | Rinominato da cicode . |
classified_client | security_result.detection_fields | Se classified_client non è vuoto, crea una nuova voce detection_fields con la chiave classified_client e il valore classified_client . |
client.domain | principal.hostname, principal.asset.hostname | Rinominato da client.domain . |
client.geo.country_iso_code | principal.location.country_or_region | Rinominato da client.geo.country_iso_code . |
client.ip | principal.ip, principal.asset.ip | Uniti a principal.ip e principal.asset.ip . |
cn1 | network.http.response_code | Rinominato da cn1 . Convertito in numero intero. |
context_key | target.resource.name | Rinominato da context_key . |
country | principal.location.country_or_region | Rinominato da country . |
credentials_leaked | security_result.detection_fields | Convertito in stringa. Se non è vuoto, crea una nuova voce detection_fields con la chiave credentials_leaked e il valore credentials_leaked . |
cs1 | security_result.detection_fields | Se cs1 non è vuoto, NA o `, create a new detection_fieldsentry with key cs1Labeland value cs1`. |
cs1Label | security_result.detection_fields | Utilizzato come chiave per la voce detection_fields creata da cs1 . |
cs2 | security_result.detection_fields | Se cs2 non è vuoto, crea una nuova voce detection_fields con la chiave cs2Label e il valore cs2 . |
cs2Label | security_result.detection_fields | Utilizzato come chiave per la voce detection_fields creata da cs2 . |
cs3 | security_result.detection_fields | Se cs3 non è vuoto, - o `, create a new detection_fieldsentry with key cs3Labeland value cs3`. |
cs3Label | security_result.detection_fields | Utilizzato come chiave per la voce detection_fields creata da cs3 . |
cs4 | security_result.detection_fields | Se cs4 non è vuoto, crea una nuova voce detection_fields con la chiave cs4Label e il valore cs4 . |
cs4Label | security_result.detection_fields | Utilizzato come chiave per la voce detection_fields creata da cs4 . |
cs5 | security_result.detection_fields | Se cs5 non è vuoto, crea una nuova voce detection_fields con la chiave cs5Label e il valore cs5 . |
cs5Label | security_result.detection_fields | Utilizzato come chiave per la voce detection_fields creata da cs5 . |
cs6 | principal.application | Rinominato da cs6 . |
cs7 | principal.location.region_latitude | Se cs7Label è latitude , rinominato in principal.location.region_latitude . Convertita in numero in virgola mobile. |
cs7Label | Se cs7Label è latitude , viene utilizzato per determinare la mappatura di cs7 . |
|
cs8 | principal.location.region_longitude | Se cs8Label è longitude , rinominato in principal.location.region_longitude . Convertita in numero in virgola mobile. |
cs8Label | Se cs8Label è longitude , viene utilizzato per determinare la mappatura di cs8 . |
|
cs9 | security_result.rule_name, extensions.vulns.vulnerabilities.name | Se cs9 non è vuoto, impostalo su security_result.rule_name e crea una nuova voce vulnerabilities con il nome cs9 . |
Cliente | target.user.user_display_name | Rinominato da Customer . |
declared_client | security_result.detection_fields | Se declared_client non è vuoto, crea una nuova voce detection_fields con la chiave declared_client e il valore declared_client . |
description | security_result.threat_name | Rinominato da description . |
deviceExternalId | network.community_id | Rinominato da deviceExternalId . |
deviceReceiptTime | metadata.event_timestamp | Analizzato come data e impostato su metadata.event_timestamp . Se il campo è vuoto, vengono utilizzati log_timestamp o kv.start . |
dhost | target.hostname | Rinominato da kv.dhost . |
dproc | security_result.category_details | Rinominato da dproc . |
dpt | target.port | Rinominato da kv.dpt . Convertito in numero intero. |
dst | target.ip, target.asset.ip | Se dst non è vuoto, viene unito a target.ip e target.asset.ip . |
dstPort | target.port | Rinominato da dstPort . Convertito in numero intero. |
duser | target.user.userid | Se duser non corrisponde all'espressione regolare .*?Alert.* e non è vuoto, viene rinominato in target.user.userid . |
end | security_result.detection_fields | Se end non è vuoto, crea una nuova voce detection_fields con la chiave event_end_time e il valore end . |
event.id | L'ID evento dell'oggetto JSON | |
event.provider | principal.user.user_display_name | Rinominato da event.provider . |
failed_logins_last_24h | security_result.detection_fields | Convertito in stringa. Se non è vuoto, crea una nuova voce detection_fields con la chiave failed_logins_last_24h e il valore failed_logins_last_24h . |
fileId | network.session_id | Rinominato da fileId . |
filePermission | security_result.detection_fields | Se filePermission non è vuoto, crea una nuova voce detection_fields con la chiave filePermission e il valore filePermission . |
fileType | security_result.detection_fields | Se fileType non è vuoto, crea una nuova voce detection_fields con la chiave fileType e il valore fileType . |
impronta | security_result.detection_fields | Se fingerprint non è vuoto, crea una nuova voce detection_fields con la chiave log_imperva_fingerprint e il valore fingerprint . |
flexString1 | network.http.response_code | Rinominato da kv.flexString1 . Convertito in numero intero. |
http.request.body.bytes | network.sent_bytes | Convertito in numero intero senza segno. Rinominato da http.request.body.bytes . |
http.request.method | network.http.method | Rinominato da http.request.method . |
imperva.abp.apollo_rule_versions | security_result.detection_fields | Per ogni voce in imperva.abp.apollo_rule_versions , crea una nuova voce detection_fields con la chiave apollo_rule_versions_{index} e il valore uguale alla voce. |
imperva.abp.bot_behaviors | security_result.detection_fields | Per ogni voce in imperva.abp.bot_behaviors , crea una nuova voce detection_fields con la chiave bot_behaviors_{index} e il valore uguale alla voce. |
imperva.abp.bot_deciding_condition_ids | security_result.detection_fields | Per ogni voce in imperva.abp.bot_deciding_condition_ids , crea una nuova voce detection_fields con la chiave bot_deciding_condition_ids_{index} e il valore uguale alla voce. |
imperva.abp.bot_deciding_condition_names | security_result.detection_fields | Per ogni voce in imperva.abp.bot_deciding_condition_names , crea una nuova voce detection_fields con la chiave bot_deciding_condition_names_{index} e il valore uguale alla voce. |
imperva.abp.bot_triggered_condition_ids | security_result.detection_fields | Per ogni voce in imperva.abp.bot_triggered_condition_ids , crea una nuova voce detection_fields con la chiave bot_triggered_condition_ids_{index} e il valore uguale alla voce. |
imperva.abp.bot_triggered_condition_names | security_result.detection_fields | Per ogni voce in imperva.abp.bot_triggered_condition_names , crea una nuova voce detection_fields con la chiave bot_triggered_condition_names_{index} e il valore uguale alla voce. |
imperva.abp.bot_violations | security_result.detection_fields | Per ogni voce in imperva.abp.bot_violations , crea una nuova voce detection_fields con la chiave bot_violations_{index} e il valore uguale alla voce. |
imperva.abp.customer_request_id | network.session_id | Rinominato da imperva.abp.customer_request_id . |
imperva.abp.headers_accept_encoding | security_result.detection_fields | Se imperva.abp.headers_accept_encoding non è vuoto, crea una nuova voce detection_fields con la chiave Accept Encoding e il valore imperva.abp.headers_accept_encoding . |
imperva.abp.headers_accept_language | security_result.detection_fields | Se imperva.abp.headers_accept_language non è vuoto, crea una nuova voce detection_fields con la chiave Accept Language e il valore imperva.abp.headers_accept_language . |
imperva.abp.headers_connection | security_result.detection_fields | Se imperva.abp.headers_connection non è vuoto, crea una nuova voce detection_fields con la chiave headers_connection e il valore imperva.abp.headers_connection . |
imperva.abp.headers_referer | network.http.referral_url | Rinominato da imperva.abp.headers_referer . |
imperva.abp.hsig | security_result.detection_fields | Se imperva.abp.hsig non è vuoto, crea una nuova voce detection_fields con la chiave hsig e il valore imperva.abp.hsig . |
imperva.abp.monitor_action | security_result.action, security_result.severity | Se imperva.abp.monitor_action corrisponde alla regex (?i)allow , imposta security_action su ALLOW e severity su INFORMATIONAL . Se imperva.abp.monitor_action corrisponde all'espressione regolare (?i)captcha o (?i)block , imposta security_action su BLOCK . |
imperva.abp.pid | principal.process.pid | Rinominato da imperva.abp.pid . |
imperva.abp.policy_id | security_result.detection_fields | Se imperva.abp.policy_id non è vuoto, crea una nuova voce detection_fields con la chiave Policy Id e il valore imperva.abp.policy_id . |
imperva.abp.policy_name | security_result.detection_fields | Se imperva.abp.policy_name non è vuoto, crea una nuova voce detection_fields con la chiave Policy Name e il valore imperva.abp.policy_name . |
imperva.abp.random_id | additional.fields | Se imperva.abp.random_id non è vuoto, crea una nuova voce additional.fields con la chiave Random Id e il valore imperva.abp.random_id . |
imperva.abp.request_type | principal.labels | Se imperva.abp.request_type non è vuoto, crea una nuova voce principal.labels con la chiave request_type e il valore imperva.abp.request_type . |
imperva.abp.selector | security_result.detection_fields | Se imperva.abp.selector non è vuoto, crea una nuova voce detection_fields con la chiave selector e il valore imperva.abp.selector . |
imperva.abp.selector_derived_id | security_result.detection_fields | Se imperva.abp.selector_derived_id non è vuoto, crea una nuova voce detection_fields con la chiave selector_derived_id e il valore imperva.abp.selector_derived_id . |
imperva.abp.tls_fingerprint | security_result.description | Rinominato da imperva.abp.tls_fingerprint . |
imperva.abp.token_id | target.resource.product_object_id | Rinominato da imperva.abp.token_id . |
imperva.abp.zuid | additional.fields | Se imperva.abp.zuid non è vuoto, crea una nuova voce additional.fields con la chiave zuid e il valore imperva.abp.zuid . |
imperva.additional_factors | additional.fields | Per ogni voce in imperva.additional_factors , crea una nuova voce additional.fields con la chiave additional_factors_{index} e il valore uguale alla voce. |
imperva.audit_trail.event_action | security_result.detection_fields | Se imperva.audit_trail.event_action non è vuoto, crea una nuova voce detection_fields con la chiave imperva.audit_trail.event_action e il valore imperva.audit_trail.event_action_description . |
imperva.audit_trail.event_action_description | security_result.detection_fields | Utilizzato come valore per la voce detection_fields creata da imperva.audit_trail.event_action . |
imperva.audit_trail.event_context | security_result.detection_fields | Se imperva.audit_trail.event_context non è vuoto, crea una nuova voce detection_fields con la chiave imperva.audit_trail.event_context e il valore imperva.audit_trail.event_context_description . |
imperva.audit_trail.event_context_description | security_result.detection_fields | Utilizzato come valore per la voce detection_fields creata da imperva.audit_trail.event_context . |
imperva.country | principal.location.country_or_region | Rinominato da imperva.country . |
imperva.declared_client | security_result.detection_fields | Se imperva.declared_client non è vuoto, crea una nuova voce detection_fields con la chiave declared_client e il valore imperva.declared_client . |
imperva.device_reputation | additional.fields | Per ogni voce in imperva.device_reputation , crea una nuova voce additional.fields con la chiave device_reputation e un valore di elenco contenente la voce. |
imperva.domain_risk | security_result.detection_fields | Se imperva.domain_risk non è vuoto, crea una nuova voce detection_fields con la chiave domain_risk e il valore imperva.domain_risk . |
imperva.failed_logins_last_24h | security_result.detection_fields | Convertito in stringa. Se non è vuoto, crea una nuova voce detection_fields con la chiave failed_logins_last_24h e il valore failed_logins_last_24h . |
imperva.fingerprint | security_result.detection_fields | Se imperva.fingerprint non è vuoto, crea una nuova voce detection_fields con la chiave log_imperva_fingerprint e il valore imperva.fingerprint . |
imperva.ids.account_id | metadata.product_log_id | Rinominato da imperva.ids.account_id . |
imperva.ids.account_name | metadata.product_event_type | Rinominato da imperva.ids.account_name . |
imperva.ids.site_id | additional.fields | Se imperva.ids.site_id non è vuoto, crea una nuova voce additional.fields con la chiave site_id e il valore imperva.ids.site_id . |
imperva.ids.site_name | additional.fields | Se imperva.ids.site_name non è vuoto, crea una nuova voce additional.fields con la chiave site_name e il valore imperva.ids.site_name . |
imperva.referrer | network.http.referral_url | Rinominato da imperva.referrer . |
imperva.request_session_id | network.session_id | Rinominato da imperva.request_session_id . |
imperva.request_user | security_result.detection_fields | Se imperva.request_user non è vuoto, crea una nuova voce detection_fields con la chiave request_user e il valore imperva.request_user . |
imperva.risk_level | security_result.severity_details | Rinominato da imperva.risk_level . |
imperva.risk_reason | security_result.description | Rinominato da imperva.risk_reason . |
imperva.significant_domain_name | security_result.detection_fields | Se imperva.significant_domain_name non è vuoto, crea una nuova voce detection_fields con la chiave significant_domain_name e il valore imperva.significant_domain_name . |
imperva.violated_directives | security_result.detection_fields | Per ogni voce in imperva.violated_directives , crea una nuova voce detection_fields con la chiave violated_directives e il valore uguale alla voce. |
in | network.received_bytes | Rinominato da in . Convertito in numero intero senza segno. |
log_timestamp | metadata.event_timestamp | Se deviceReceiptTime è vuoto e kv.start è vuoto, imposta il valore su metadata.event_timestamp . |
messaggio | metadata.description | Se message non è vuoto e event.provider , imperva.ids.account_name e client.ip sono tutti vuoti, imposta metadata.description . |
postbody | security_result.detection_fields | Se postbody non è vuoto, crea una nuova voce detection_fields con la chiave post_body_info e il valore postbody . |
proto | network.application_protocol | Rinominato da proto . |
protoVer | network.tls.version, network.tls.cipher | Se protoVer non è vuoto, viene analizzato per estrarre tls_version e tls_cipher , che vengono poi rinominati rispettivamente in network.tls.version e network.tls.cipher . |
richiesta | target.url | Rinominato da kv.request . |
requestClientApplication | network.http.user_agent | Rinominato da requestClientApplication . |
requestMethod | network.http.method | Rinominato da requestMethod . Convertito in maiuscolo. |
resource_id | target.resource.id | Rinominato da resource_id . |
resource_type_key | target.resource.type | Rinominato da resource_type_key . |
rt | metadata.event_timestamp | Analizzato per estrarre deviceReceiptTime , che viene poi analizzato come data e impostato su metadata.event_timestamp . |
security_result.action | security_result.action | Unito al valore del campo _action . |
security_result.severity | security_result.severity | Se sevs è error o warning , imposta HIGH . Se sevs è critical , impostalo su CRITICAL . Se sevs è medium o notice , imposta MEDIUM . Se sevs è information o info , imposta LOW . |
server.domain | target.hostname, target.asset.hostname | Rinominato da server.domain . |
server.geo.name | target.location.name | Rinominato da server.geo.name . |
gravità | security_result.threat_id | Rinominato da severity . |
siteid | security_result.detection_fields | Se siteid non è vuoto, crea una nuova voce detection_fields con la chiave siteid e il valore siteid . |
sourceServiceName | target.hostname | Rinominato da kv.sourceServiceName . |
spt | principal.port | Rinominato da kv.spt . Convertito in numero intero. |
src | principal.ip, principal.asset.ip | Se src non è vuoto, viene unito a principal.ip e principal.asset.ip . |
srcPort | principal.port | Rinominato da srcPort . Convertito in numero intero. |
start | security_result.detection_fields, metadata.event_timestamp | Se start non è vuoto, crea una nuova voce detection_fields con la chiave event_start_time e il valore start . Analizzato anche come data e impostato su metadata.event_timestamp se deviceReceiptTime è vuoto. |
successful_logins_last_24h | security_result.detection_fields | Convertito in stringa. Se non è vuoto, crea una nuova voce detection_fields con la chiave successful_logins_last_24h e il valore successful_logins_last_24h . |
suid | target.user.userid | Rinominato da suid . |
tempo | metadata.event_timestamp | Convertito in stringa. Analizzato come data e impostato su metadata.event_timestamp . |
type_key | metadata.product_event_type | Rinominato da type_key . |
url | target.process.file.full_path | Se url.path non è vuoto o / , imposta target.process.file.full_path . |
url | target.url | Rinominato da url . Se qstr non è vuoto, viene aggiunto a url con un separatore ? . |
user.email | principal.user.email_addresses | Se user.email non è vuoto e corrisponde all'espressione regolare ^.+@.+$ , viene unito a principal.user.email_addresses . |
user_agent | network.http.user_agent | Rinominato da user_agent . |
user_agent.original | network.http.parsed_user_agent | Se user_agent.original non è vuoto o * , convertito in parseduseragent e rinominato in network.http.parsed_user_agent . |
user_details | principal.user.email_addresses | Se user_details non è vuoto e corrisponde all'espressione regolare ^.+@.+$ , viene unito a principal.user.email_addresses . |
user_id | principal.user.userid | Rinominato da user_id . |
ver | network.tls.version, network.tls.cipher | Se ver non è vuoto, viene analizzato per estrarre tls_version e tls_cipher , che vengono poi rinominati rispettivamente in network.tls.version e network.tls.cipher . |
xff | intermediary.ip, intermediary.asset.ip, intermediary.hostname, intermediary.asset.hostname | Se xff non è vuoto, viene elaborato per estrarre indirizzi IP e nomi host. Gli indirizzi IP vengono uniti in intermediary.ip e intermediary.asset.ip . I nomi host sono impostati su intermediary.hostname e intermediary.asset.hostname . |
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.