Raccogli i log del proxy web Netskope

Supportato in:

Questo documento spiega come importare i log del proxy web Netskope in Google Security Operations utilizzando Cloud Storage V2.

Netskope fornisce un gateway web sicuro cloud-native che ispeziona e controlla il traffico web in tempo reale. I log delle transazioni web (WebTx) acquisiscono record dettagliati di ogni sessione HTTP e HTTPS elaborata dal proxy Netskope, tra cui l'identità dell'utente, l'applicazione, la categoria dell'URL, i verdetti relativi alle minacce e alla DLP e i metadati di rete.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Un'istanza Google SecOps
  • Un progetto Google Cloud con l'API Storage di Cloud abilitata
  • Autorizzazioni per creare e gestire bucket Cloud Storage
  • Autorizzazioni per gestire i criteri IAM (Identity and Access Management) nei bucket Cloud Storage
  • Accesso privilegiato al tenant Netskope con credenziali di amministratore

Opzione 1: streaming dei log di Netskope su Cloud Storage

Utilizza questa opzione se hai attivato un abbonamento a Netskope Log Streaming sul tuo tenant. Netskope Log Streaming invia i file di log WebTx direttamente al tuo bucket Cloud Storage come file .gzip compressi a un intervallo fisso di 240 secondi.

Crea un bucket Cloud Storage

  1. Vai alla consoleGoogle Cloud .
  2. Seleziona il tuo progetto o creane uno nuovo.
  3. Nel menu di navigazione, vai a Cloud Storage > Bucket.
  4. Fai clic su Crea bucket.
  5. Fornisci i seguenti dettagli di configurazione:

    Impostazione Valore
    Assegna un nome al bucket Inserisci un nome globalmente univoco (ad esempio netskope-webtx-logs)
    Tipo di località Scegli in base alle tue esigenze (regione singola, a due regioni, multiregionale)
    Località Seleziona la località più vicina alla tua organizzazione (ad esempio, us-central1)
    Classe di archiviazione Standard (consigliato per i log a cui si accede di frequente)
    Controllo dell'accesso Uniforme (consigliato)
    Strumenti di protezione (Facoltativo) Abilita il controllo delle versioni degli oggetti o la policy di conservazione
  6. Fai clic su Crea.

Crea un service account Google Cloud

Netskope Log Streaming richiede un service account Google Cloud con autorizzazioni in scrittura per il tuo bucket Cloud Storage. Il file della chiave JSON di questo account di servizio viene utilizzato da Netskope per l'autenticazione durante il push dei file di log.

  1. Nella Google Cloud console, vai a IAM e amministrazione > Service Accounts.
  2. Fai clic su Crea account di servizio.
  3. Fornisci i seguenti dettagli di configurazione:
    • Nome del service account: inserisci netskope-log-streaming
    • Descrizione service account: inserisci Service account for Netskope Log Streaming to push WebTx logs to GCS
  4. Fai clic su Crea e continua.
  5. Nella sezione Concedi a questo account di servizio l'accesso al progetto:
    1. Fai clic su Seleziona un ruolo.
    2. Cerca e seleziona Storage Object Creator.
  6. Fai clic su Continua.
  7. Fai clic su Fine.

Genera la chiave JSON

  1. Nella console Google Cloud , vai a IAM e amministrazione > Service account, fai clic sul account di servizio netskope-log-streaming.
  2. Seleziona la scheda Chiavi.
  3. Fai clic su Aggiungi chiave > Crea nuova chiave.
  4. Seleziona JSON come tipo di chiave.
  5. Fai clic su Crea.
  6. Un file della chiave JSON viene scaricato automaticamente. Salva questo file in modo sicuro. Nella sezione successiva, incollerai i contenuti completi di questo file in Netskope.

Concedi le autorizzazioni in scrittura su un bucket Cloud Storage

  1. Nella console Google Cloud , vai a Cloud Storage > Bucket.
  2. Fai clic sul nome del bucket (ad esempio netskope-webtx-logs).
  3. Vai alla scheda Autorizzazioni.
  4. Fai clic su Concedi l'accesso.
  5. Fornisci i seguenti dettagli di configurazione:
    • Aggiungi entità: inserisci l'email del account di servizio (ad esempio, netskope-log-streaming@YOUR_PROJECT_ID.iam.gserviceaccount.com).
    • Assegna i ruoli: seleziona Storage Object Creator.
  6. Fai clic su Salva.

Crea il flusso di log

  1. Accedi al tenant Netskope con le credenziali di amministratore.
  2. Vai a Impostazioni > Strumenti > Streaming log.
  3. Fai clic su Crea stream.
  4. Nel campo Nome, inserisci un nome leggibile per lo stream. Ad esempio, Google SecOps WebTx GCS.
  5. Seleziona GCP Cloud Storage come tipo di destinazione.
  6. Fornisci i seguenti dettagli di configurazione:

    • Bucket: inserisci il nome del bucket Cloud Storage (ad esempio, netskope-webtx-logs).

      • (Facoltativo) Percorso: inserisci un percorso della cartella all'interno del bucket in cui verranno archiviati i log (ad esempio, `netskope/webtx/{%Y}`).
    • Chiave privata: incolla l'intero contenuto del file di chiave JSON generato nella sezione precedente come singolo oggetto JSON che inizia con { e termina con }. Include i campi type, project_id, private_key_id, private_key, client_email e client_id.

  7. Rivedi le Opzioni di pubblicazione: la frequenza di push è di 240 secondi.

  8. Fai clic su Salva (o Crea) per attivare lo stream. Netskope convalida le credenziali scrivendo un oggetto di test denominato netskope-test-file.txt nel bucket.

Configura un feed in Google SecOps per importare i log Netskope WebTx da Cloud Storage

Per creare il feed Google SecOps e concedere le autorizzazioni IAM:

Recuperare il account di servizio Google SecOps

Google SecOps utilizza un account di servizio univoco per leggere i dati dal tuo bucket Cloud Storage. Devi concedere a questo account di servizio l'accesso al tuo bucket.

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed di notizie.
  3. Fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed (ad esempio Netskope WebTx Logs).
  5. Seleziona Google Cloud Storage V2 come Tipo di origine.
  6. Seleziona Proxy web Netskope come Tipo di log.
  7. Fai clic su Ottieni service account.
  8. Verrà visualizzato un indirizzo email univoco del account di servizio, ad esempio:

    chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com
    
  9. Copia questo indirizzo email per utilizzarlo nel passaggio successivo.

  10. Fai clic su Avanti.

  11. Specifica i valori per i seguenti parametri di input:

    • URL bucket di archiviazione: inserisci l'URI del bucket Cloud Storage con il percorso del prefisso:

      gs://netskope-webtx-logs/netskope/webtx/
      
      • Sostituisci:
        • netskope-webtx-logs: il nome del tuo bucket Cloud Storage.
        • netskope/webtx/: il prefisso del percorso configurato in Netskope Log Streaming (lascia vuoto per la radice).
    • Opzione di eliminazione dell'origine: seleziona l'opzione di eliminazione in base alle tue preferenze:

      • Non eliminare mai i file: non eliminare mai i file dall'origine (opzione consigliata per i test).
      • Elimina file trasferiti e directory vuote: elimina i file e le directory vuote dall'origine dopo il completamento di un recupero riuscito.
    • Età massima del file: includi i file modificati nell'ultimo numero di giorni (il valore predefinito è 180 giorni)

    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset

    • Etichette di importazione: l'etichetta da applicare agli eventi di questo feed

  12. Fai clic su Avanti.

  13. Controlla la nuova configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Concedi le autorizzazioni IAM al account di servizio Google SecOps

Il account di servizio Google SecOps ha bisogno di due ruoli nel tuo bucket Cloud Storage: Storage Object Viewer per leggere gli oggetti log e un ruolo a livello di bucket per leggere i metadati del bucket.

  1. Vai a Cloud Storage > Bucket.
  2. fai clic sul nome del bucket (ad esempio netskope-webtx-logs).
  3. Vai alla scheda Autorizzazioni.
  4. Fai clic su Concedi l'accesso.
  5. Fornisci i seguenti dettagli di configurazione:
    • Aggiungi entità: incolla l'indirizzo email del account di servizio Google SecOps (ad esempio, chronicle-12345678@chronicle-gcp-prod.iam.gserviceaccount.com)
    • Assegna ruoli: seleziona entrambi i seguenti ruoli:
      • Visualizzatore oggetti Storage: legge gli oggetti log.
      • Storage Legacy Bucket Reader: legge i metadati del bucket. Se hai selezionato l'opzione di eliminazione Elimina file trasferiti e directory vuote, seleziona Storage Legacy Bucket Writer, che concede anche l'autorizzazione di eliminazione.
  6. Fai clic su Salva.

Opzione 2: utilizza Netskope Cloud Exchange Log Shipper per Cloud Storage

Utilizza questa opzione se hai implementato la piattaforma Netskope Cloud Exchange con il modulo Log Shipper configurato. Log Shipper estrae i log WebTx dal tuo tenant Netskope e li invia come file .gzip compressi a un bucket Cloud Storage, che Google SecOps legge tramite un feed Cloud Storage V2.

Prima di iniziare (Cloud Exchange)

Assicurati di soddisfare i seguenti prerequisiti aggiuntivi per questa opzione:

Configura il plug-in di destinazione Cloud Storage

  1. In Cloud Exchange, vai a Impostazioni > Plugin Store.
  2. Cerca e seleziona il plug-in Google Cloud SCC (Google GCS).
  3. Fai clic su Configura nuovo plug-in (o aggiungi una nuova configurazione del plug-in).
  4. Fornisci i seguenti dettagli di configurazione:
    • Nome configurazione: inserisci un nome descrittivo (ad esempio, GCS WebTx Destination).
    • Mappatura: seleziona un file di mappatura. Per i log WebTx pushati come file .gzip originali, non viene applicata alcuna trasformazione di mapping.
    • Bucket: inserisci il nome del bucket Cloud Storage (ad esempio, netskope-webtx-logs).
    • (Facoltativo) Percorso: inserisci un percorso della cartella (ad esempio netskope/webtx/).
    • File della chiave: incolla l'intero contenuto del file JSON della chiave dell'account di servizio, non solo il valore private_key.
  5. Fai clic su Salva.
  6. La nuova configurazione del plug-in verrà visualizzata nella pagina Plug-in > Log Shipper.

Configura una regola aziendale (facoltativo)

Per impostazione predefinita, la regola aziendale Tutti filtra tutti gli avvisi e gli eventi. Se vuoi filtrare i log WebTx in modo specifico, crea una nuova regola aziendale:

  1. In Log Shipper, vai a Regole aziendali.
  2. Fai clic su Crea nuova regola.
  3. Inserisci un Nome regola (ad esempio, WebTx Only).
  4. Configura i filtri in modo da includere solo i dati WebTx.
  5. Fai clic su Salva.

Configura la distribuzione dei log

  1. In Log Shipper, vai a Invio di log.
  2. Fai clic su Aggiungi configurazione di pubblicazione dei log.
  3. Fornisci i seguenti dettagli di configurazione:
    • Configurazione origine: seleziona il plug-in di origine Netskope CLS (ad esempio WebTxCLS o Netskope CLS).
    • Configurazione destinazione: seleziona il plug-in di destinazione Cloud Storage che hai configurato (ad esempio, GCS WebTx Destination).
    • Regola aziendale: seleziona una regola aziendale (ad esempio All o WebTx Only).
  4. Fai clic su Salva.

  5. Per ottenere altri dati storici, fai clic sull'icona Estrai dati storici dalle azioni di Pubblicazione dei log.

  6. Seleziona un intervallo di date Storico Da e A e fai clic su Estrai.

Configura un feed in Google SecOps per importare i log WebTx di Netskope da Cloud Storage

Segui gli stessi passaggi dell'opzione di streaming dei log di Netskope per creare un feed Google SecOps e concedere le autorizzazioni IAM:

  1. Recupera il service account Google SecOps: crea un feed con Google Cloud Storage V2 come tipo di origine e proxy web Netskope come tipo di log.
  2. Concedi le autorizzazioni IAM al service account Google SecOps: concedi i ruoli Storage Object Viewer e Storage Legacy Bucket Reader (utilizza Storage Legacy Bucket Writer se utilizzi l'opzione di eliminazione) sul bucket Cloud Storage al account di servizio Google SecOps.

Verifica la pubblicazione dei log

Per verificare che i log WebTx vengano inviati al bucket Cloud Storage:

  1. In Cloud Exchange, vai a Log Shipper > Log Delivery.
  2. Controlla le colonne Log totali/WebTx inviati al destinatario esterno e WebTx totali inviati al bucket di archiviazione per verificare che i dati vengano inviati alla destinazione.
  3. Nel bucket GCS, verifica che i file .gzip vengano scritti da Log Shipper.

(Facoltativo) Configura le impostazioni globali di Log Shipper

Solo gli amministratori possono modificare le impostazioni globali di Log Shipper. Vai a Impostazioni > Log Shipper. Sono presenti due schede: Generale e Mapping.

Nella scheda Generali, puoi configurare la strategia di ripetizione per l'invio dei log:

  • Predefinito (3 tentativi): in caso di mancata consegna dei log, Log Shipper avvierà 3 tentativi di push dei log alla destinazione. Se tutti e tre i tentativi di ripetizione non vanno a buon fine, il relativo gruppo di log verrà ignorato.
  • Riprova fino alla consegna riuscita: tentativi illimitati fino alla consegna riuscita dei log.

Puoi anche attivare la codifica UTF-8 per avvisi, eventi e WebTx per garantire una gestione ottimale dei dati codificati in UTF-8. Per impostazione predefinita, questa funzionalità è disattivata.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
applicationType security_result.detection_fields[].key: "applicationType", security_result.detection_fields[].value: applicationType Mappato direttamente dal campo CEF corrispondente
appcategory security_result.category_details[]: appcategory Mappato direttamente dal campo CEF corrispondente
browser security_result.detection_fields[].key: "browser", security_result.detection_fields[].value: browser Mappato direttamente dal campo CEF corrispondente
c-ip principal.asset.ip[]: c-ip, principal.ip[]: c-ip Mappato direttamente dal campo JSON corrispondente
cci security_result.detection_fields[].key: "cci", security_result.detection_fields[].value: cci Mappato direttamente dal campo CEF corrispondente
ccl security_result.confidence: valore derivato, security_result.confidence_details: ccl security_result.confidence viene derivato in base al valore di ccl: "excellent" o "high" corrisponde a HIGH_CONFIDENCE, "medium" corrisponde a MEDIUM_CONFIDENCE, "low" o "poor" corrisponde a LOW_CONFIDENCE e "unknown" o "not_defined" corrisponde a UNKNOWN_CONFIDENCE. security_result.confidence_details viene mappato direttamente da ccl.
clientBytes network.sent_bytes: clientBytes Mappato direttamente dal campo CEF corrispondente
cs-access-method additional.fields[].key: "accessMethod", additional.fields[].value.string_value: cs-access-method Mappato direttamente dal campo JSON corrispondente
cs-app additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: cs-app, principal.application: cs-app Mappato direttamente dal campo JSON corrispondente
cs-app-activity additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: cs-app-activity Mappato direttamente dal campo JSON corrispondente
cs-app-category additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: cs-app-category Mappato direttamente dal campo JSON corrispondente
cs-app-cci additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: cs-app-cci Mappato direttamente dal campo JSON corrispondente
cs-app-ccl additional.fields[].key: "x-cs-app-ccl", additional.fields[].value.string_value: cs-app-ccl Mappato direttamente dal campo JSON corrispondente
cs-app-from-user additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: cs-app-from-user, principal.user.email_addresses[]: cs-app-from-user Mappato direttamente dal campo JSON corrispondente
cs-app-instance-id additional.fields[].key: "x-cs-app-instance-id", additional.fields[].value.string_value: cs-app-instance-id Mappato direttamente dal campo JSON corrispondente
cs-app-object-name additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: cs-app-object-name Mappato direttamente dal campo JSON corrispondente
cs-app-object-type additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: cs-app-object-type Mappato direttamente dal campo JSON corrispondente
cs-app-suite additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: cs-app-suite Mappato direttamente dal campo JSON corrispondente
cs-app-tags additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: cs-app-tags Mappato direttamente dal campo JSON corrispondente
cs-bytes network.sent_bytes: cs-bytes Mappato direttamente dal campo JSON corrispondente
cs-content-type additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: cs-content-type Mappato direttamente dal campo JSON corrispondente
cs-dns target.asset.hostname[]: cs-dns, target.hostname: cs-dns Mappato direttamente dal campo JSON corrispondente
cs-host target.asset.hostname[]: cs-host, target.hostname: cs-host Mappato direttamente dal campo JSON corrispondente
cs-method network.http.method: cs-method Mappato direttamente dal campo JSON corrispondente
cs-referer network.http.referral_url: cs-referer Mappato direttamente dal campo JSON corrispondente
cs-uri additional.fields[].key: "cs-uri", additional.fields[].value.string_value: cs-uri Mappato direttamente dal campo JSON corrispondente
cs-uri-path additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: cs-uri-path Mappato direttamente dal campo JSON corrispondente
cs-uri-port additional.fields[].key: "cs-uri-port", additional.fields[].value.string_value: cs-uri-port Mappato direttamente dal campo JSON corrispondente
cs-uri-scheme network.application_protocol: cs-uri-scheme Mappato direttamente dal campo JSON corrispondente dopo la conversione in maiuscolo
cs-user-agent network.http.parsed_user_agent: Parsed user agent, network.http.user_agent: cs-user-agent network.http.parsed_user_agent viene derivato dall'analisi del campo cs-user-agent utilizzando il filtro "parseduseragent"
cs-username principal.user.userid: cs-username Mappato direttamente dal campo JSON corrispondente
data metadata.event_timestamp.seconds: secondi dall'epoca dai campi di data e ora, metadata.event_timestamp.nanos: 0 La data e l'ora vengono combinate e convertite in secondi e nanosecondi di epoca. I nanosecondi sono impostati su 0.
dispositivo intermediary.hostname: device Mappato direttamente dal campo CEF corrispondente
dst target.ip[]: dst Mappato direttamente dal campo CEF corrispondente
dst_country target.location.country_or_region: dst_country Mappato direttamente dal campo grokked corrispondente
dst_ip target.asset.ip[]: dst_ip, target.ip[]: dst_ip Mappato direttamente dal campo grokked corrispondente
dst_location target.location.city: dst_location Mappato direttamente dal campo grokked corrispondente
dst_region target.location.state: dst_region Mappato direttamente dal campo grokked corrispondente
dst_zip Non mappato Questo campo non è mappato a UDM
duser target.user.email_addresses[]: duser, target.user.user_display_name: duser Mappato direttamente dal campo CEF corrispondente
dvchost about.hostname: dvchost, target.asset.hostname[]: dvchost, target.hostname: dvchost Mappato direttamente dal campo CEF corrispondente
event_timestamp metadata.event_timestamp.seconds: event_timestamp Mappato direttamente dal campo grokked corrispondente
nome host target.asset.hostname[]: hostname, target.hostname: hostname Mappato direttamente dal campo CEF corrispondente
ID incidente security_result.detection_fields[].key: "IncidentID", security_result.detection_fields[].value: IncidentID Mappato direttamente dal campo CEF corrispondente
intermediario intermediary: intermediary Mappato direttamente dal campo CEF corrispondente
md5 target.file.md5: md5 Mappato direttamente dal campo CEF corrispondente
messaggio Vari campi UDM Il campo del messaggio viene analizzato in base al fatto che contenga o meno "CEF". In questo caso, viene trattato come un log CEF. In caso contrario, viene analizzato come stringa delimitata da spazi o JSON.
mwDetectionEngine additional.fields[].key: "mwDetectionEngine", additional.fields[].value.string_value: mwDetectionEngine Mappato direttamente dal campo CEF corrispondente
mwType metadata.description: mwType Mappato direttamente dal campo CEF corrispondente
os principal.platform: valore derivato La piattaforma è derivata dal campo os: "Windows" viene mappato a WINDOWS, "MAC" a MAC e "LINUX" a LINUX
pagina network.http.referral_url: page Mappato direttamente dal campo CEF corrispondente
referer network.http.referral_url: referer Mappato direttamente dal campo CEF corrispondente
requestClientApplication network.http.parsed_user_agent: user agent analizzato, network.http.user_agent: requestClientApplication network.http.parsed_user_agent viene derivato dall'analisi del campo requestClientApplication utilizzando il filtro "parseduseragent"
request_method network.http.method: request_method Mappato direttamente dal campo grokked corrispondente
rs-status additional.fields[].key: "rs-status", additional.fields[].value.string_value: rs-status, network.http.response_code: rs-status Mappato direttamente dal campo JSON corrispondente
s-ip target.asset.ip[]: s-ip, target.ip[]: s-ip Mappato direttamente dal campo JSON corrispondente
sc-bytes network.received_bytes: sc-bytes Mappato direttamente dal campo JSON corrispondente
sc-content-type additional.fields[].key: "sc-content-type", additional.fields[].value.string_value: sc-content-type Mappato direttamente dal campo JSON corrispondente
sc-status network.http.response_code: sc-status Mappato direttamente dal campo JSON corrispondente
serverBytes network.received_bytes: serverBytes Mappato direttamente dal campo CEF corrispondente
sha256 target.file.sha256: sha256 Mappato direttamente dal campo CEF corrispondente
src principal.ip[]: src Mappato direttamente dal campo CEF corrispondente
src_country principal.location.country_or_region: src_country Mappato direttamente dal campo grokked corrispondente
src_ip principal.asset.ip[]: src_ip, principal.ip[]: src_ip Mappato direttamente dal campo grokked corrispondente
src_location principal.location.city: src_location Mappato direttamente dal campo grokked corrispondente
src_region principal.location.state: src_region Mappato direttamente dal campo grokked corrispondente
src_latitude Non mappato Questo campo non è mappato a UDM
src_longitude Non mappato Questo campo non è mappato a UDM
src_zip Non mappato Questo campo non è mappato all'UDM
suser principal.user.user_display_name: suser Mappato direttamente dal campo CEF corrispondente
target_host target.asset.hostname[]: target_host, target.hostname: target_host Mappato direttamente dal campo grokked corrispondente
tempo metadata.event_timestamp.seconds: secondi dall'epoca dai campi data e ora, metadata.event_timestamp.nanos: 0 La data e l'ora vengono combinate e convertite in secondi e nanosecondi di epoca. I nanosecondi sono impostati su 0.
timestamp metadata.event_timestamp.seconds: timestamp Mappato direttamente dal campo CEF corrispondente
ts metadata.event_timestamp.seconds: secondi dall'epoca da ts, metadata.event_timestamp.nanos: 0 Il timestamp viene convertito in secondi e nanosecondi epoch. I nanosecondi sono impostati su 0.
url target.url: url Mappato direttamente dal campo CEF corrispondente
user_agent network.http.parsed_user_agent: user agent analizzato, network.http.user_agent: user_agent network.http.parsed_user_agent viene ricavato analizzando il campo user_agent utilizzando il filtro "parseduseragent"
user_key principal.user.email_addresses[]: user_key Mappato direttamente dal campo grokked corrispondente
versione Non mappato Questo campo non è mappato a UDM
x-c-browser additional.fields[].key: "x-c-browser", additional.fields[].value.string_value: x-c-browser Mappato direttamente dal campo JSON corrispondente
x-c-browser-version additional.fields[].key: "x-c-browser-version", additional.fields[].value.string_value: x-c-browser-version Mappato direttamente dal campo JSON corrispondente
x-c-country principal.location.country_or_region: x-c-country Mappato direttamente dal campo JSON corrispondente
x-c-device additional.fields[].key: "x-c-device", additional.fields[].value.string_value: x-c-device Mappato direttamente dal campo JSON corrispondente
x-c-latitude principal.location.region_coordinates.latitude: x-c-latitude Mappato direttamente dal campo JSON corrispondente
x-c-local-time security_result.detection_fields[].key: "x-c-local-time", security_result.detection_fields[].value: x-c-local-time Mappato direttamente dal campo JSON corrispondente
x-c-location principal.location.name: x-c-location Mappato direttamente dal campo JSON corrispondente
x-c-longitude principal.location.region_coordinates.longitude: x-c-longitude Mappato direttamente dal campo JSON corrispondente
x-c-os principal.platform: Derived value La piattaforma deriva dal campo x-c-os: "Windows" corrisponde a WINDOWS, "MAC" corrisponde a MAC e "LINUX" corrisponde a LINUX
x-c-region principal.location.state: x-c-region Mappato direttamente dal campo JSON corrispondente
x-c-zipcode additional.fields[].key: "x-c-zipcode", additional.fields[].value.string_value: x-c-zipcode Mappato direttamente dal campo JSON corrispondente
x-category additional.fields[].key: "x-category", additional.fields[].value.string_value: x-category Mappato direttamente dal campo JSON corrispondente
x-category-id additional.fields[].key: "x-category-id", additional.fields[].value.string_value: x-category-id Mappato direttamente dal campo JSON corrispondente
x-cs-access-method additional.fields[].key: "accessMethod", additional.fields[].value.string_value: x-cs-access-method Mappato direttamente dal campo JSON corrispondente
x-cs-app principal.application: x-cs-app, additional.fields[].key: "x-cs-app", additional.fields[].value.string_value: x-cs-app Mappato direttamente dal campo JSON corrispondente
x-cs-app-activity additional.fields[].key: "x-cs-app-activity", additional.fields[].value.string_value: x-cs-app-activity Mappato direttamente dal campo JSON corrispondente
x-cs-app-category additional.fields[].key: "x-cs-app-category", additional.fields[].value.string_value: x-cs-app-category Mappato direttamente dal campo JSON corrispondente
x-cs-app-cci additional.fields[].key: "x-cs-app-cci", additional.fields[].value.string_value: x-cs-app-cci Mappato direttamente dal campo JSON corrispondente
x-cs-app-from-user additional.fields[].key: "x-cs-app-from-user", additional.fields[].value.string_value: x-cs-app-from-user Mappato direttamente dal campo JSON corrispondente
x-cs-app-object-id additional.fields[].key: "x-cs-app-object-id", additional.fields[].value.string_value: x-cs-app-object-id Mappato direttamente dal campo JSON corrispondente
x-cs-app-object-name additional.fields[].key: "x-cs-app-object-name", additional.fields[].value.string_value: x-cs-app-object-name Mappato direttamente dal campo JSON corrispondente
x-cs-app-object-type additional.fields[].key: "x-cs-app-object-type", additional.fields[].value.string_value: x-cs-app-object-type Mappato direttamente dal campo JSON corrispondente
x-cs-app-suite additional.fields[].key: "x-cs-app-suite", additional.fields[].value.string_value: x-cs-app-suite Mappato direttamente dal campo JSON corrispondente
x-cs-app-tags additional.fields[].key: "x-cs-app-tags", additional.fields[].value.string_value: x-cs-app-tags Mappato direttamente dal campo JSON corrispondente
x-cs-app-to-user additional.fields[].key: "x-cs-app-to-user", additional.fields[].value.string_value: x-cs-app-to-user Mappato direttamente dal campo JSON corrispondente
x-cs-dst-ip security_result.detection_fields[].key: "x-cs-dst-ip", security_result.detection_fields[].value: x-cs-dst-ip, target.asset.ip[]: x-cs-dst-ip, target.ip[]: x-cs-dst-ip Mappato direttamente dal campo JSON corrispondente
x-cs-dst-port security_result.detection_fields[].key: "x-cs-dst-port", security_result.detection_fields[].value: x-cs-dst-port, target.port: x-cs-dst-port Mappato direttamente dal campo JSON corrispondente
x-cs-http-version security_result.detection_fields[].key: "x-cs-http-version", security_result.detection_fields[].value: x-cs-http-version Mappato direttamente dal campo JSON corrispondente
x-cs-page-id additional.fields[].key: "x-cs-page-id", additional.fields[].value.string_value: x-cs-page-id Mappato direttamente dal campo JSON corrispondente
x-cs-session-id network.session_id: x-cs-session-id Mappato direttamente dal campo JSON corrispondente
x-cs-site additional.fields[].key: "x-cs-site", additional.fields[].value.string_value: x-cs-site Mappato direttamente dal campo JSON corrispondente
x-cs-sni network.tls.client.server_name: x-cs-sni Mappato direttamente dal campo JSON corrispondente
x-cs-src-ip principal.asset.ip[]: x-cs-src-ip, principal.ip[]: x-cs-src-ip, security_result.detection_fields[].key: "x-cs-src-ip", security_result.detection_fields[].value: x-cs-src-ip Mappato direttamente dal campo JSON corrispondente
x-cs-src-ip-egress principal.asset.ip[]: x-cs-src-ip-egress, principal.ip[]: x-cs-src-ip-egress, security_result.detection_fields[].key: "x-cs-src-ip-egress", security_result.detection_fields[].value: x-cs-src-ip-egress Mappato direttamente dal campo JSON corrispondente
x-cs-src-port principal.port: x-cs-src-port, security_result.detection_fields[].key: "x-cs-src-port", security_result.detection_fields[].value: x-cs-src-port Mappato direttamente dal campo JSON corrispondente
x-cs-ssl-cipher network.tls.cipher: x-cs-ssl-cipher Mappato direttamente dal campo JSON corrispondente
x-cs-ssl-fronting-error security_result.detection_fields[].key: "x-cs-ssl-fronting-error", security_result.detection_fields[].value: x-cs-ssl-fronting-error Mappato direttamente dal campo JSON corrispondente
x-cs-ssl-handshake-error security_result.detection_fields[].key: "x-cs-ssl-handshake-error", security_result.detection_fields[].value: x-cs-ssl-handshake-error Mappato direttamente dal campo JSON corrispondente
x-cs-ssl-ja3 network.tls.client.ja3: x-cs-ssl-ja3 Mappato direttamente dal campo JSON corrispondente
x-cs-ssl-version network.tls.version: x-cs-ssl-version Mappato direttamente dal campo JSON corrispondente
x-cs-timestamp metadata.event_timestamp.seconds: x-cs-timestamp Mappato direttamente dal campo JSON corrispondente
x-cs-traffic-type additional.fields[].key: "trafficType", additional.fields[].value.string_value: x-cs-traffic-type Mappato direttamente dal campo JSON corrispondente
x-cs-tunnel-src-ip security_result.detection_fields[].key: "x-cs-tunnel-src-ip", security_result.detection_fields[].value: x-cs-tunnel-src-ip Mappato direttamente dal campo JSON corrispondente
x-cs-uri-path additional.fields[].key: "x-cs-uri-path", additional.fields[].value.string_value: x-cs-uri-path Mappato direttamente dal campo JSON corrispondente
x-cs-url target.url: x-cs-url Mappato direttamente dal campo JSON corrispondente
x-cs-userip security_result.detection_fields[].key: "x-cs-userip", security_result.detection_fields[].value: x-cs-userip Mappato direttamente dal campo JSON corrispondente
x-other-category security_result.category_details[]: x-other-category Mappato direttamente dal campo JSON corrispondente
x-other-category-id security_result.detection_fields[].key: "x-other-category-id", security_result.detection_fields[].value: x-other-category-id Mappato direttamente dal campo JSON corrispondente
x-policy-action security_result.action: Derived value, security_result.action_details: x-policy-action security_result.action viene derivato convertendo x-policy-action in maiuscolo. Se il valore in maiuscolo è "ALLOW" o "BLOCK", viene utilizzato direttamente. In caso contrario, non viene mappato. security_result.action_details viene mappato direttamente da x-policy-action.
x-policy-dst-host security_result.detection_fields[].key: "x-policy-dst-host", security_result.detection_fields[].value: x-policy-dst-host Mappato direttamente dal campo JSON corrispondente
x-policy-dst-host-source security_result.detection_fields[].key: "x-policy-dst-host-source", security_result.detection_fields[].value: x-policy-dst-host-source Mappato direttamente dal campo JSON corrispondente
x-policy-dst-ip security_result.detection_fields[].key: "x-policy-dst-ip", security_result.detection_fields[].value: x-policy-dst-ip Mappato direttamente dal campo JSON corrispondente
x-policy-name security_result.rule_name: x-policy-name Mappato direttamente dal campo JSON corrispondente
x-policy-src-ip security_result.detection_fields[].key: "x-policy-src-ip", security_result.detection_fields[].value: x-policy-src-ip Mappato direttamente dal campo JSON corrispondente
x-r-cert-enddate network.tls.server.certificate.not_after.seconds: secondi dall'epoca da x-r-cert-enddate La data viene convertita in secondi epoch
x-r-cert-expired additional.fields[].key: "x-r-cert-expired", additional.fields[].value.string_value: x-r-cert-expired Mappato direttamente dal campo JSON corrispondente
x-r-cert-incomplete-chain additional.fields[].key: "x-r-cert-incomplete-chain", additional.fields[].value.string_value: x-r-cert-incomplete-chain Mappato direttamente dal campo JSON corrispondente
x-r-cert-issuer-cn network.tls.server.certificate.issuer: x-r-cert-issuer-cn Mappato direttamente dal campo JSON corrispondente
x-r-cert-mismatch additional.fields[].key: "x-r-cert-mismatch", additional.fields[].value.string_value: x-r-cert-mismatch Mappato direttamente dal campo JSON corrispondente
x-r-cert-revoked additional.fields[].key: "x-r-cert-revoked", additional.fields[].value.string_value: x-r-cert-revoked Mappato direttamente dal campo JSON corrispondente
x-r-cert-self-signed additional.fields[].key: "x-r-cert-self-signed", additional.fields[].value.string_value: x-r-cert-self-signed Mappato direttamente dal campo JSON corrispondente
x-r-cert-startdate network.tls.server.certificate.not_before.seconds: secondi dall'epoca dalla data di inizio del certificato x-r-cert-startdate La data viene convertita in secondi epoch
x-r-cert-subject-cn network.tls.server.certificate.subject: x-r-cert-subject-cn Mappato direttamente dal campo JSON corrispondente
x-r-cert-untrusted-root additional.fields[].key: "x-r-cert-untrusted-root", additional.fields[].value.string_value: x-r-cert-untrusted-root Mappato direttamente dal campo JSON corrispondente
x-r-cert-valid additional.fields[].key: "x-r-cert-valid", additional.fields[].value.string_value: x-r-cert-valid Mappato direttamente dal campo JSON corrispondente
x-request-id additional.fields[].key: "requestId", additional.fields[].value.string_value: x-request-id Mappato direttamente dal campo JSON corrispondente
x-rs-file-category additional.fields[].key: "x-rs-file-category", additional.fields[].value.string_value: x-rs-file-category Mappato direttamente dal campo JSON corrispondente
x-rs-file-type additional.fields[].key: "x-rs-file-type", additional.fields[].value.string_value: x-rs-file-type Mappato direttamente dal campo JSON corrispondente
x-s-country target.location.country_or_region: x-s-country Mappato direttamente dal campo JSON corrispondente
x-s-dp-name additional.fields[].key: "x-s-dp-name", additional.fields[].value.string_value: x-s-dp-name Mappato direttamente dal campo JSON corrispondente
x-s-latitude target.location.region_coordinates.latitude: x-s-latitude Mappato direttamente dal campo JSON corrispondente
x-s-location target.location.name: x-s-location Mappato direttamente dal campo JSON corrispondente
x-s-longitude target.location.region_coordinates.longitude: x-s-longitude Mappato direttamente dal campo JSON corrispondente
x-s-region target.location.state: x-s-region Mappato direttamente dal campo JSON corrispondente
x-s-zipcode additional.fields[].key: "x-s-zipcode", additional.fields[].value.string_value: x-s-zipcode Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-cipher security_result.detection_fields[].key: "x-sr-ssl-cipher", security_result.detection_fields[].value: x-sr-ssl-cipher Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-client-certificate-error security_result.detection_fields[].key: "x-sr-ssl-client-certificate-error", security_result.detection_fields[].value: x-sr-ssl-client-certificate-error Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-engine-action security_result.detection_fields[].key: "x-sr-ssl-engine-action", security_result.detection_fields[].value: x-sr-ssl-engine-action Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-engine-action-reason security_result.detection_fields[].key: "x-sr-ssl-engine-action-reason", security_result.detection_fields[].value: x-sr-ssl-engine-action-reason Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-handshake-error security_result.detection_fields[].key: "x-sr-ssl-handshake-error", security_result.detection_fields[].value: x-sr-ssl-handshake-error Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-ja3s network.tls.server.ja3s: x-sr-ssl-ja3s Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-malformed-ssl security_result.detection_fields[].key: "x-sr-ssl-malformed-ssl", security_result.detection_fields[].value: x-sr-ssl-malformed-ssl Mappato direttamente dal campo JSON corrispondente
x-sr-ssl-version security_result.detection_fields[].key: "x-sr-ssl-version", security_result.detection_fields[].value: x-sr-ssl-version Mappato direttamente dal campo JSON corrispondente
x-s-custom-signing-ca-error security_result.detection_fields[].key: "x-s-custom-signing-ca-error", security_result.detection_fields[].value: x-s-custom-signing-ca-error Mappato direttamente dal campo JSON corrispondente
x-ssl-bypass security_result.detection_fields[].key: "SSL BYPASS", security_result.detection_fields[].value: x-ssl-bypass o x-ssl-bypass-reason Se x-ssl-bypass è "Yes" e x-ssl-bypass-reason è presente, viene utilizzato il valore di x-ssl-bypass-reason. In caso contrario, viene utilizzato il valore di x-ssl-bypass.
x-ssl-policy-action security_result.detection_fields[].key: "x-ssl-policy-action", security_result.detection_fields[].value: x-ssl-policy-action Mappato direttamente dal campo JSON corrispondente
x-ssl-policy-categories security_result.category_details[]: x-ssl-policy-categories Mappato direttamente dal campo JSON corrispondente
x-ssl-policy-dst-host security_result.detection_fields[].key: "x-ssl-policy-dst-host", security_result.detection_fields[].value: x-ssl-policy-dst-host Mappato direttamente dal campo JSON corrispondente
x-ssl-policy-dst-host-source security_result.detection_fields[].key: "x-ssl-policy-dst-host-source", security_result.detection_fields[].value: x-ssl-policy-dst-host-source Mappato direttamente dal campo JSON corrispondente
x-ssl-policy-dst-ip security_result.detection_fields[].key: "x-ssl-policy-dst-ip", security_result.detection_fields[].value: x-ssl-policy-dst-ip Mappato direttamente dal campo JSON corrispondente
x-ssl-policy-name security_result.rule_name: x-ssl-policy-name Mappato direttamente dal campo JSON corrispondente
x-ssl-policy-src-ip security_result.detection_fields[].key: "x-ssl-policy-src-ip", security_result.detection_fields[].value: x-ssl-policy-src-ip Mappato direttamente dal campo JSON corrispondente
x-sr-dst-ip security_result.detection_fields[].key: "x-sr-dst-ip", security_result.detection_fields[].value: x-sr-dst-ip Mappato direttamente dal campo JSON corrispondente
x-sr-dst-port security_result.detection_fields[].key: "x-sr-dst-port", security_result.detection_fields[].value: x-sr-dst-port Mappato direttamente dal campo JSON corrispondente
x-type additional.fields[].key: "xType", additional.fields[].value.string_value: x-type Mappato direttamente dal campo JSON corrispondente
x-transaction-id additional.fields[].key: "transactionId", additional.fields[].value.string_value: x-transaction-id Mappato direttamente dal campo JSON corrispondente
metadata.vendor_name Impostalo su "Netskope".
metadata.product_name Imposta su "Netskope Webproxy" se non è già presente
metadata.log_type Imposta su "NETSKOPE_WEBPROXY"

Log delle modifiche

Visualizza il log delle modifiche per questo parser

Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.