Raccogliere i log avvisi di Netskope v1

Supportato in:

Panoramica

Questo parser estrae i log degli avvisi di Netskope dai messaggi in formato JSON, trasformandoli in UDM di Google Security Operations. Normalizza i campi, analizza i timestamp, gestisce avvisi e gravità, estrae informazioni di rete (IP, porte, protocolli), arricchisce i dati di utenti e file e mappa i campi nella struttura UDM. Il parser gestisce anche attività Netskope specifiche come accessi ed eventi DLP e aggiunge etichette personalizzate per un contesto migliore.

Prima di iniziare

Assicurati di soddisfare i seguenti prerequisiti:

  • Istanza Google SecOps.
  • Accesso con privilegi a Netskope.

Abilitare l'accesso all'API REST Netskope

  1. Accedi al tenant Netskope utilizzando le tue credenziali di amministratore.
  2. Vai a Impostazioni > Strumenti > API REST v1.
  3. Crea una nuova chiave API specifica per Google SecOps.
  4. Fornisci un nome descrittivo, ad esempio Chiave Google SecOps.
  5. Copia e salva la chiave e il segreto generati.

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:

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo feed.
  3. Nella pagina successiva, fai clic su Configura un singolo feed.
  4. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Netskope Alert Logs.
  5. Seleziona API di terze parti come Tipo di origine.
  6. Seleziona Netskope come Tipo di log.
  7. Fai clic su Avanti.
  8. Specifica i valori per i seguenti parametri di input:
    • Intestazione HTTP di autenticazione:coppia di chiavi generata in precedenza nel formato <key>:<secret>, utilizzata per l'autenticazione con l'API Netskope.
    • Nome host API:il nome di dominio completo (FQDN) dell'endpoint API REST di Netskope (ad esempio myinstance.goskope.com).
    • Endpoint API:inserisci alerts.
    • Content Type: inserisci all.
  9. Fai clic su Avanti.
  10. 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:coppia di chiavi generata in precedenza nel formato <key>:<secret>, utilizzata per l'autenticazione con l'API Netskope.
  • Nome host API:il nome di dominio completo (FQDN) dell'endpoint API REST di Netskope (ad esempio myinstance.goskope.com).
  • Endpoint API:inserisci alerts.
  • Content Type: inserisci all.

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.

(Facoltativo) Aggiungi una configurazione del feed per importare i log eventi di Netskope

  1. Vai a Impostazioni SIEM > Feed.
  2. Fai clic su Aggiungi nuovo.
  3. Nel campo Nome feed, inserisci un nome per il feed, ad esempio Netskope Event Logs.
  4. Seleziona API di terze parti come Tipo di origine.
  5. Seleziona Netskope come Tipo di log.
  6. Fai clic su Avanti.
  7. Specifica i valori per i seguenti parametri di input:
    • Intestazione HTTP di autenticazione:coppia di chiavi generata in precedenza nel formato <key>:<secret>, utilizzata per l'autenticazione con l'API Netskope.
    • Nome host API:il nome di dominio completo (FQDN) dell'endpoint API REST di Netskope (ad esempio myinstance.goskope.com).
    • Endpoint API:inserisci events.
    • Tipo di contenuti:inserisci page, application, audit, infrastructure o network a seconda degli eventi che vuoi analizzare.
    • Spazio dei nomi dell'asset: lo spazio dei nomi dell'asset.
    • Etichette di importazione: l'etichetta applicata agli eventi di questo feed.
  8. Fai clic su Avanti.
  9. Controlla la configurazione del feed nella schermata Finalizza e poi fai clic su Invia.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
access_method extensions.auth.auth_details Mappato direttamente dal campo access_method.
action security_result.action Mappato direttamente dal campo action o impostato su QUARANTINE se action è "avviso" o "bypass". ALLOW se action è consentito. BLOCK se action è bloccato.
action security_result.action_details Mappato dal campo action se è "alert" o "bypass".
activity security_result.description Mappato direttamente dal campo activity.
alert is_alert Imposta su true se alert è "yes", false altrimenti.
alert_name - Non mappato all'oggetto IDM.
alert_type security_result.category_details Mappato direttamente dal campo alert_type.
app target.application Mappato direttamente dal campo app.
app_activity additional.fields{key:"app_activity", value:{string_value: }} Mappato direttamente dal campo app_activity come coppia chiave-valore in additional.fields.
app_session_id target.resource.attribute.labels{key:"App Session Id", value: } Estratto dal campo message utilizzando grok e aggiunto come etichetta.
appcategory security_result.category_details Mappato direttamente dal campo appcategory se category è vuoto.
browser network.http.user_agent Mappato direttamente dal campo browser se non è "sconosciuto".
browser_version network.http.parsed_user_agent.browser_version Mappato direttamente dal campo browser_version.
browser_version network.http.parsed_user_agent.family Imposta su "USER_DEFINED" se è presente browser_version.
category security_result.category_details Mappato direttamente dal campo category.
cci security_result.detection_fields{key:"cci", value: } Mappato direttamente dal campo cci come coppia chiave-valore in detection_fields.
ccl security_result.confidence Impostato in base al valore di ccl: "scarso" o "basso" corrisponde a LOW_CONFIDENCE, "medio" a MEDIUM_CONFIDENCE, "alto" o "eccellente" a HIGH_CONFIDENCE.
ccl security_result.confidence_details Mappato direttamente dal campo ccl.
client_bytes network.sent_bytes Mappato direttamente dal campo client_bytes dopo la conversione in numero intero senza segno.
count additional.fields{key:"count", value:{string_value: }} Mappato direttamente dal campo count come coppia chiave-valore in additional.fields.
device principal.resource.resource_subtype Mappato direttamente dal campo device.
device principal.resource.type Imposta su "DEVICE" se è presente il campo device.
dlp_file target.file.full_path Mappato direttamente dal campo dlp_file, se presente, altrimenti da file_path.
dlp_profile security_result.rule_type Mappato direttamente dal campo dlp_profile.
dlp_rule security_result.rule_name Mappato direttamente dal campo dlp_rule.
dlp_rule_severity security_result.severity Mappato direttamente dal campo dlp_rule_severity se alert_type è DLP.
dlp_rule_severity _severity Mappato dal campo dlp_rule_severity se severity è vuoto.
domain target.asset.hostname Mappato direttamente dal campo domain.
domain target.hostname Mappato direttamente dal campo domain.
dsthost target.asset.hostname Mappato direttamente dal campo dsthost se non è un IP e dstip è vuoto, altrimenti mappato a target.hostname.
dsthost target.hostname Mappato direttamente dal campo dsthost se non è un IP e dstip non è vuoto.
dstip target.asset.ip Mappato direttamente dal campo dstip.
dstip target.ip Mappato direttamente dal campo dstip.
dstport target.port Mappato direttamente dal campo dstport dopo la conversione in numero intero.
dst_country target.location.country_or_region Mappato direttamente dal campo dst_country.
dst_location target.location.city Mappato direttamente dal campo dst_location.
dst_region target.location.name Mappato direttamente dal campo dst_region.
file_path target.file.full_path Mappato direttamente dal campo file_path se dlp_file è vuoto.
file_size target.file.size Mappato direttamente dal campo file_size dopo la conversione in numero intero senza segno.
file_type target.file.mime_type Mappato direttamente dal campo file_type se non è "Sconosciuto".
from_user network.email.from Mappato direttamente dal campo from_user se si tratta di un indirizzo email.
from_user_category principal.resource.attribute.labels{key:"From User Category", value: } Mappato direttamente dal campo from_user_category come coppia chiave-valore in principal.resource.attribute.labels.
hostname principal.asset.hostname Mappato direttamente dal campo hostname se non è vuoto, altrimenti da instance_id.
hostname principal.hostname Mappato direttamente dal campo hostname se non è vuoto, altrimenti da instance_id.
id.time metadata.event_timestamp Analizzato e mappato a event_timestamp nei metadati.
instance_id principal.asset.hostname Mappato direttamente dal campo instance_id se hostname è vuoto.
instance_id principal.hostname Mappato direttamente dal campo instance_id se hostname è vuoto.
intermediary intermediary Mappato direttamente dal campo intermediary.
ip_protocol network.ip_protocol Mappato dal campo ip_protocol dopo l'analisi del file parse_ip_protocol.include.
ja3 network.tls.client.ja3 Mappato direttamente dal campo ja3 se corrisponde a un pattern esadecimale.
ja3s network.tls.server.ja3s Mappato direttamente dal campo ja3s se corrisponde a un pattern esadecimale.
malware_id security_result.threat_id Mappato direttamente dal campo malware_id.
malware_name security_result.threat_name Mappato direttamente dal campo malware_name.
malware_severity security_result.severity Mappato direttamente dal campo malware_severity dopo la conversione in maiuscolo.
malware_type security_result.detection_fields{key:"Malware Type", value: } Mappato direttamente dal campo malware_type come coppia chiave-valore in detection_fields.
matched_username principal.user.email_addresses Mappato direttamente dal campo matched_username se si tratta di un indirizzo email.
md5 target.file.md5 Mappato direttamente dal campo md5 se non è vuoto o "Non disponibile".
metadata.event_type metadata.event_type Inizialmente impostato su "GENERIC_EVENT", poi potenzialmente sostituito in base ad altri campi. Imposta su NETWORK_HTTP se sono presenti srcip o hostname e dstip o dsthost o domain. Imposta su STATUS_UPDATE se sono presenti srcip o hostname, ma non dstip, dsthost o domain. Imposta su USER_UNCATEGORIZED se è presente user. Imposta su EMAIL_UNCATEGORIZED se activity è "Introspection Scan" e sono presenti shared_with o from_user. Imposta USER_LOGIN se activity è "Accesso non riuscito", "Accesso riuscito" o "Tentativo di accesso".
metadata.log_type metadata.log_type Imposta il valore su "NETSKOPE_ALERT".
metadata.product_log_id metadata.product_log_id Mappato direttamente dal campo _id.
metadata.product_name metadata.product_name Imposta "Avviso Netskope".
metadata.vendor_name metadata.vendor_name Imposta su "Netskope".
netskope_pop observer.hostname Mappato direttamente dal campo netskope_pop.
object additional.fields{key:"Object", value:{string_value: }} Mappato direttamente dal campo object come coppia chiave-valore in additional.fields.
object_id additional.fields{key:"Object id", value:{string_value: }} Mappato direttamente dal campo object_id come coppia chiave-valore in additional.fields.
object_type additional.fields{key:"Object type", value:{string_value: }} Mappato direttamente dal campo object_type come coppia chiave-valore in additional.fields.
organization_unit principal.administrative_domain Mappato direttamente dal campo organization_unit.
os principal.platform Mappato dal campo os: "Windows" viene mappato su WINDOWS, "MAC" su MAC e "LINUX" su LINUX.
os_version principal.platform_version Mappato direttamente dal campo os_version.
other_categories - Non mappato all'oggetto IDM.
page network.http.referral_url Mappato direttamente dal campo page se referer è vuoto.
policy security_result.summary Mappato direttamente dal campo policy.
principal.user.email_addresses principal.user.email_addresses Unito dal campo user se si tratta di un indirizzo email.
protocol network.application_protocol Mappato direttamente dal campo protocol dopo aver rimosso tutto ciò che segue il primo "/". Convertito in maiuscolo.
publisher_cn additional.fields{key:"publisher_cn", value:{string_value: }} Mappato direttamente dal campo publisher_cn come coppia chiave-valore in additional.fields.
publisher_name additional.fields{key:"publisher_name", value:{string_value: }} Mappato direttamente dal campo publisher_name come coppia chiave-valore in additional.fields.
referer network.http.referral_url Mappato direttamente dal campo referer.
security_result.alert_state security_result.alert_state Impostato su "ALERTING" se alert è "yes", "NOT_ALERTING" se alert è "no", "UNSPECIFIED" altrimenti.
security_result.category_details security_result.category_details Uniti dai campi category, appcategory o alert_type.
security_result.confidence security_result.confidence Derivato dal campo ccl.
security_result.confidence_details security_result.confidence_details Mappato direttamente dal campo ccl.
security_result.description security_result.description Mappato direttamente dal campo activity.
security_result.rule_name security_result.rule_name Mappato direttamente dal campo dlp_rule.
security_result.rule_type security_result.rule_type Mappato direttamente dal campo dlp_profile.
security_result.severity security_result.severity Derivato dai campi _severity, malware_severity o dlp_rule_severity.
security_result.summary security_result.summary Mappato direttamente dal campo policy.
security_result.threat_id security_result.threat_id Mappato direttamente dal campo malware_id.
security_result.threat_name security_result.threat_name Mappato direttamente dal campo malware_name.
server_bytes network.received_bytes Mappato direttamente dal campo server_bytes dopo la conversione in numero intero senza segno.
severity _severity Mappato direttamente dal campo severity.
sha256 target.file.sha256 Mappato direttamente dal campo sha256.
shared_with network.email.to Analizzato dal campo shared_with e aggiunto all'array network.email.to se si tratta di un indirizzo email.
site additional.fields{key:"site", value:{string_value: }} Mappato direttamente dal campo site come coppia chiave-valore in additional.fields.
src_country principal.location.country_or_region Mappato direttamente dal campo src_country.
src_latitude principal.location.region_latitude Mappato direttamente dal campo src_latitude.
src_location principal.location.city Mappato direttamente dal campo src_location.
src_longitude principal.location.region_longitude Mappato direttamente dal campo src_longitude.
src_region principal.location.name Mappato direttamente dal campo src_region.
srcip principal.asset.ip Estratto dal campo srcip utilizzando grok e unito agli array principal.asset.ip e principal.ip.
srcip principal.ip Estratto dal campo srcip utilizzando grok e unito agli array principal.asset.ip e principal.ip.
srcport principal.port Mappato direttamente dal campo srcport dopo la conversione in numero intero.
target.user.email_addresses target.user.email_addresses Unito dal campo to_user se si tratta di un indirizzo email.
threat_match_field security_result.detection_fields{key:"Threat Match Field", value: } Mappato direttamente dal campo threat_match_field come coppia chiave-valore in detection_fields.
timestamp metadata.event_timestamp Analizzato dai campi timestamp o id.time.
to_user target.user.email_addresses Analizzato dal campo to_user e aggiunto all'array target.user.email_addresses se si tratta di un indirizzo email.
to_user_category target.resource.attribute.labels{key:"To User Category", value: } Mappato direttamente dal campo to_user_category come coppia chiave-valore in target.resource.attribute.labels.
traffic_type security_result.detection_fields{key:"traffic_type", value: } Mappato direttamente dal campo traffic_type come coppia chiave-valore in detection_fields.
tunnel_id additional.fields{key:"tunnel_id", value:{string_value: }} Mappato direttamente dal campo tunnel_id come coppia chiave-valore in additional.fields.
tunnel_type additional.fields{key:"tunnel_type", value:{string_value: }} Mappato direttamente dal campo tunnel_type come coppia chiave-valore in additional.fields.
type security_result.detection_fields{key:"type", value: } Mappato direttamente dal campo type come coppia chiave-valore in detection_fields.
ur_normalized - Non mappato all'oggetto IDM.
url target.url Mappato direttamente dal campo url.
user event.idm.read_only_udm.principal.user.userid Mappato direttamente dal campo user.
user principal.user.email_addresses Mappato direttamente dal campo user se si tratta di un indirizzo email.
useragent network.http.user_agent Mappato direttamente dal campo useragent.
useragent network.http.parsed_user_agent Convertito in parseduseragent e mappato a network.http.parsed_user_agent.
user_agent network.http.user_agent Mappato direttamente dal campo user_agent.
user_agent network.http.parsed_user_agent Convertito in parseduseragent e mappato a network.http.parsed_user_agent.

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