Raccogliere i log del proxy web Netskope

Supportato in:

Questo analizzatore sintattico gestisce i log del proxy web Netskope sia in formato CEF che non CEF. Estrae i campi, esegue trasformazioni dei dati (ad esempio, la conversione dei timestamp o l'unione dei campi), li mappa all'UDM e aggiunge metadati specifici di Netskope. Il parser utilizza la logica condizionale per gestire diversi formati di log e la disponibilità dei campi, arricchendo l'UDM con dettagli pertinenti relativi a rete, sicurezza e applicazioni.

Prima di iniziare

  • Assicurati di avere un'istanza Google Security Operations.
  • Assicurati di disporre dell'accesso privilegiato a Netskope.
  • Assicurati di avere configurato un modulo Log Shipper.
  • Assicurati di disporre di una chiave dell'account di servizio Google SecOps (contatta il team di Google SecOps per ottenere un account di servizio con i seguenti ambiti: https://www.googleapis.com/auth/malachite-ingestion).

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Configura il tenant Netskope in CE

  1. Vai a Impostazioni > Generali.
  2. Imposta l'opzione Invia log su ON.
  3. In Impostazioni, vai a Netskope Tenants (Tenant Netskope).
  4. Se non sono configurati tenant, fai clic su Aggiungi tenant.
  5. Inserisci i seguenti valori:
    • Nome: fornisci un nome facile da ricordare per il tenant.
    • Nome tenant: inserisci il nome reale del tuo tenant Netskope.
    • Token API v2: inserisci il token API Netskope.
    • Filtri avvisi: aggiungi gli avvisi del proxy web che vuoi importare.
    • Intervallo iniziale: inserisci la quantità di dati storici che vuoi importare (in giorni).
    • Fai clic su Salva.

Configura il plug-in CLS di Netskope

  1. Vai a Impostazioni > Componenti aggiuntivi.
  2. Cerca e seleziona la casella Netskope (CLS) per aprire la pagina di creazione del plug-in.
  3. Inserisci i seguenti dettagli:
    • Nome configurazione: inserisci un nome facile da ricordare per questo plug-in.
    • Tenant: seleziona dall'elenco il tenant che hai creato nel passaggio precedente.
    • Fai clic su Avanti.
    • Aggiorna l'elenco Tipo di evento in base alle esigenze.
    • Intervallo iniziale: inserisci la quantità di dati storici che vuoi importare (in ore).
    • Fai clic su Salva.

Configurare un plug-in Google SecOps in Netskope

  1. Vai a Impostazioni > Componenti aggiuntivi.
  2. Cerca e seleziona la casella Chronicle (CLS) per aprire la pagina di creazione del plug-in.
  3. Inserisci i seguenti dettagli:
    • Nome configurazione: inserisci un nome per questo plug-in.
    • Mappatura: lascia la selezione predefinita.
    • Attiva/disattiva ON When enabled logs will be transformed using the selected mapping file.
    • Fai clic su Avanti.
    • Regione: seleziona la regione di Google SecOps.
    • URL regione personalizzata: impostazione facoltativa obbligatoria solo se nel passaggio precedente è stata selezionata Regione personalizzata.
    • Chiave account di servizio: inserisci la chiave JSON fornita da Google SecOps.
    • ID cliente: inserisci l'ID cliente del tuo tenant Google SecOps.
    • Fai clic su Salva.

Configurare una regola aziendale di Log Shipper per Google SecOps

  1. Vai a Log Shipper > Regole aziendali.
  2. Per impostazione predefinita, esiste una regola aziendale che filtra tutti gli avvisi e gli eventi.
  3. Se vuoi escludere un tipo specifico di avviso o evento, fai clic su Crea nuova regola e configura una nuova regola aziendale aggiungendo il nome e il filtro della regola.
  4. Fai clic su Salva.

Configurare le mappature SIEM di Log Shipper per Google SecOps

  1. Vai a Log Shipper > Mappature SIEM.
  2. Fai clic su Aggiungi mappatura SIEM.
  3. Inserisci i seguenti dettagli:
    • Configurazione dell'origine: seleziona il plug-in CLS di Netskope.
    • Configurazione della destinazione: seleziona il plug-in Google SecOps.
    • Regola aziendale: seleziona la regola creata in precedenza.
    • Fai clic su Salva.

Convalida il recupero e il flusso di lavoro di eventi e avvisi in Netskope

  1. Vai a Logging in Netskope Cloud Exchange.
  2. Cerca i log estratti.
  3. In Logging, cerca gli eventi e gli avvisi importati con il filtro message contains ingested.
  4. I log importati verranno filtrati.

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 ricavato in base al valore di ccl: "eccellente" o "alto" corrisponde a HIGH_CONFIDENCE, "medio" corrisponde a MEDIUM_CONFIDENCE, "basso" o "scarso" corrisponde a LOW_CONFIDENCE e "sconosciuto" o "not_defined" corrisponde a UNKNOWN_CONFIDENCE.
security_result.confidence_details è 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: user-agent analizzato
network.http.user_agent: cs-user-agent
network.http.parsed_user_agent viene ottenuto analizzando il campo cs-user-agent utilizzando il filtro "parseduseragent".
cs-username principal.user.userid: cs-username Mappato direttamente dal campo JSON corrispondente.
date metadata.event_timestamp.seconds: secondi dall'epoca dai campi date e time
metadata.event_timestamp.nanos: 0
La data e l'ora vengono combinate e convertite in secondi ed epoche nanosecondi. I nanosecondi sono impostati su 0.
device 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 all'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.
hostname target.asset.hostname[]: hostname
target.hostname: hostname
Mappato direttamente dal campo CEF corrispondente.
IncidentID security_result.detection_fields[].key: "IncidentID"
security_result.detection_fields[].value: IncidentID
Mappato direttamente dal campo CEF corrispondente.
intermediary intermediary: intermediary Mappato direttamente dal campo CEF corrispondente.
md5 target.file.md5: md5 Mappato direttamente dal campo CEF corrispondente.
message Vari campi UDM Il campo message 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. Per i dettagli, consulta la sezione "Logica di analisi".
mime_type1 Non mappato Questo campo non è mappato all'UDM.
mime_type2 Non mappato Questo campo non è mappato all'UDM.
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 è ricavata dal campo os: "Windows" corrisponde a WINDOWS, "MAC" a MAC e "LINUX" a LINUX.
page network.http.referral_url: page Mappato direttamente dal campo CEF corrispondente.
port Non mappato Questo campo non è mappato all'UDM.
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 ottenuto analizzando il campo requestClientApplication utilizzando il filtro "parseduseragent".
request_method network.http.method: request_method Mappato direttamente dal campo grokked corrispondente.
request_protocol Non mappato Questo campo non è mappato all'UDM.
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_latitude Non mappato Questo campo non è mappato all'UDM.
src_location principal.location.city: src_location Mappato direttamente dal campo grokked corrispondente.
src_longitude Non mappato Questo campo non è mappato all'UDM.
src_region principal.location.state: src_region Mappato direttamente dal campo grokked corrispondente.
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.
time metadata.event_timestamp.seconds: secondi dall'epoca dai campi date e time
metadata.event_timestamp.nanos: 0
La data e l'ora vengono combinate e convertite in secondi ed epoche nanosecondi. 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 a partire dal giorno ts
metadata.event_timestamp.nanos: 0
Il timestamp viene convertito in secondi ed epoch e nanosecondi. 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 ottenuto analizzando il campo user_agent utilizzando il filtro "parseduseragent".
user_ip Non mappato Questo campo non è mappato all'UDM.
user_key principal.user.email_addresses[]: user_key Mappato direttamente dal campo grokked corrispondente.
version Non mappato Questo campo non è mappato all'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: valore derivato La piattaforma è ricavata dal campo x-c-os: "Windows" corrisponde a WINDOWS, "MAC" a MAC e "LINUX" 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: valore derivato
security_result.action_details: x-policy-action
security_result.action è ottenuto convertendo x-policy-action in maiuscolo. Se il valore in maiuscolo è "ALLOW" o "BLOCK", viene utilizzato direttamente. In caso contrario, non è mappato.
security_result.action_details è 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 a partire 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 a partire da 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: "BYPASS SSL"
security_result.detection_fields[].value: x-ssl-bypass o x-ssl-bypass-reason
Se x-ssl-bypass è "Sì" e x-ssl-bypass-reason è presente, viene utilizzato il valore di x-ssl-bypass-reason. In caso contrario, viene utilizzato il valore 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.
N/D metadata.vendor_name: "Netskope" Valore hardcoded nel parser.
N/D metadata.product_name: "Netskope Webproxy" Imposta su "Netskope Webproxy" se non è già presente.
N/D metadata.log_type: "NETSKOPE_WEBPROXY" Valore hardcoded nel parser.

Modifiche

2024-06-04

  • È stato aggiunto Grok per gestire i log non analizzati.
  • "url" è stato mappato a "target.url".
  • "appSessionId" è stato mappato a "network.session_id".
  • "pagina" è stato mappato a "network.http.referral_url".
  • "appcategory" è stato mappato a "security_result.category_details".
  • "clientBytes" è stato mappato a "network.sent_bytes".
  • "serverBytes" è stato mappato a "network.received_bytes".
  • "ccl" è stato mappato a "security_result.confidence_details".
  • Ho mappato "IncidentID", "applicationType", "browser" e "cci" a "security_result.detection_fields".

2024-04-22

  • "x-cs-app-ccl","x-cs-app-instance-id","x-cs-app-tags" ,"x-cs-app-instance-name" ,"x-cs-app-instance-tag", "x-cs-app-to-user","x-cs-app-object-id" e "x-cs-app-from-user" sono stati mappati a "additional.fields".

2024-02-26

  • È stata modificata la mappatura di "cs-bytes" da "network.received_bytes" a "network.sent_bytes".
  • È stata modificata la mappatura di "sc-bytes" da "network.sent_bytes" a "network.received_bytes".
  • "x-cs-app-object-name" è stato mappato a "additional.fields".
  • "x-cs-app-from-user" è stato mappato a "principal.user.email_addresses".

2023-12-22

  • Se il valore "cs-dns" è "null", modifica la mappatura "cs-host" da "principal.hostname" a "target.hostname".
  • È stata modificata la mappatura "cs-dns" da "principal.hostname" a "target.hostname".
  • Se il valore "sc-status" è "null", mappa "rs-status" a "network.http.response_code".
  • "x-cs-app" è stato mappato a "principal.application".
  • "x-cs-src-ip-egress" è stato mappato a "principal.ip".

2023-12-08

  • È stato aggiunto il controllo on_error per analizzare i log con errori.
  • Imposta "metadata.vendor_name" su "Netskope" e "metadata.product_name" su "Netskope Webproxy".
  • È stato aggiunto un controllo condizionale per "src_region", "src_country", "src_location", "dst_region", "dst_country", "dst_location" prima della mappatura.

2023-10-09

  • "dvchost" è stato mappato a "target.hostname" se "target.hostname" non è presente.
  • È stato aggiunto un controllo null prima della mappatura "requestClientApplication".

2023-09-12

  • "x-cs-dst-ip" è stato mappato a "target.ip".
  • "x-cs-src-ip" è stato mappato a "principal.ip".
  • "x-cs-src-port" è stato mappato a "principal.port".
  • "x-cs-dst-port" è stato mappato a "target.port".
  • È stato aggiunto il controllo on_error per il filtro data.
  • Sono stati aggiunti controlli condizionali prima della mappatura di "metadata.event_type".

2023-08-28

  • "cs-uri" è stato mappato a "additional.fields".
  • "cs-uri-port" è stato mappato a "additional.fields".
  • "x-s-zipcode" è stato mappato a "additional.fields".
  • "x-c-zipcode" è stato mappato a "additional.fields".
  • "x-cs-site" è stato mappato a "additional.fields".
  • "x-category" è stato mappato a "additional.fields".
  • "x-sr-ssl-version" è stato mappato a "security_result.detection_fields".
  • "x-sr-ssl-cipher" è stato mappato a "security_result.detection_fields".
  • "x-cs-src-ip-egress" è stato mappato a "security_result.detection_fields".
  • "x-cs-userip" è stato mappato a "security_result.detection_fields".
  • "x-cs-url" è stato mappato a "target.url".
  • "x-cs-uri-path" è stato mappato a "additional.fields".
  • "x-cs-app-cci" è stato mappato a "additional.fields".
  • "x-cs-app-object-type" è stato mappato a "additional.fields".
  • "x-rs-file-type" è stato mappato a "additional.fields".
  • "x-rs-file-category" è stato mappato a "additional.fields".

2023-08-17

  • È stato aggiunto il supporto per il nuovo formato di log di tipo JSON.

2023-06-22

  • È stato aggiunto il supporto per il nuovo formato di log di tipo SYSLOG+JSON.

2023-05-30

  • "Duser" è stato mappato a "target.user.email_addresses".
  • "requestClientApplication" è stato mappato a "network.http.parsed_user_agent".

2023-02-03

  • "Dominio" è stato mappato a "principal.administrative_domain".

2023-01-09

  • Sono stati aggiunti controlli condizionali per la mappatura di diversi tipi di eventi in base ai parametri obbligatori presenti.
  • Sono stati analizzati diversi formati di "rt".

2022-04-06

  • Miglioramento: sono state aggiunte mappature per i nuovi campi
  • md5, mwDetectionEngine, mwProfile, mwType mappati a udm.