Raccogliere i log di Pulse Secure
Questo documento descrive come raccogliere i log di Pulse Secure utilizzando un forwarder di Google Security Operations.
Per ulteriori informazioni, consulta la Panoramica dell'importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica l'analizzatore sintattico che normalizza i dati dei log non elaborati in formato UDM strutturato. Le informazioni contenute in questo documento si applicano al parser con l'etichetta di importazione PULSE_SECURE_VPN
.
Configura la VPN Pulse Secure
Per configurare la VPN Pulse Secure, svolgi una delle seguenti operazioni:
- Configurare la VPN Pulse Secure versione 8.3R3 e precedenti
- Configura la VPN Pulse Secure versione 8.3R4 e successive
Configurare la VPN Pulse Secure versione 8.3R3 e precedenti
- Accedi alla console Pulse Connect Secure.
- Nella console Pulse Connect Secure, seleziona Sistema > Log/monitoraggio > Impostazioni. Puoi selezionare Impostazioni dalla scheda Eventi, dalla scheda Accesso utente o dalla scheda Accesso amministratore.
- Nella sezione Seleziona gli eventi da registrare, seleziona tutte le caselle di controllo corrispondenti agli eventi.
- Nella sezione Server Syslog, segui questi passaggi:
- Nel campo Nome/IP server, specifica l'indirizzo IP del forwarder di Google Security Operations.
- Nell'elenco Struttura, seleziona LOCAL0. L'elenco Struttura fornisce otto strutture: da
LOCAL0
aLOCAL7
. Puoi utilizzare una di queste impostazioni per mappare le strutture sul tuo server syslog. - Nell'elenco Tipo, seleziona UDP o TCP.
- Fai clic su Aggiungi.
- (Facoltativo) Per aggiungere più server syslog per eventi, accesso amministrativo o log di accesso utente, ripeti i passaggi da 2 a 4.
- Fai clic su Salva modifiche.
- Per assicurarti che il formato del log standard sia impostato come predefinito:
- Apri la console Pulse Connect Secure.
- Nelle schede Eventi, Accesso utente e Accesso amministratore, imposta Filtri su Standard.
- Se il filtro standard non è definito come filtro predefinito, fai clic su Imposta come predefinito.
- Fai clic su Salva.
Configura la VPN Pulse Secure versione 8.3R4 e successive
- Nella console Pulse Connect Secure, fai clic sulla scheda Eventi, Accesso utente o Accesso amministratore, quindi imposta Filtri su Nuovo filtro.
- Nel campo Nome filtro, inserisci un nome per il filtro.
Nella sezione Formato di esportazione, seleziona Personalizzato e inserisci il seguente formato nel campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Fai clic su Salva.
A seconda della versione del dispositivo, per attivare la configurazione di syslog, esegui una delle seguenti operazioni:
- Attivare il logging syslog su Pulse Secure VPN
- Attivare il logging syslog su Ivanti Connect Secure
Attiva il logging syslog sulla VPN Pulse Secure
- Nella console Pulse Connect Secure, seleziona Sistema > Log/monitoraggio > Impostazioni. Puoi selezionare Impostazioni dalla scheda Eventi, dalla scheda Accesso utente o dalla scheda Accesso amministratore.
- Nella sezione Seleziona gli eventi da registrare, seleziona tutte le caselle di controllo tranne quelle per Accesso HTML5, Messaggi di controllo dell'accesso e Richieste non autenticate.
- Nel campo Server syslog, inserisci le informazioni sui server syslog.
- Nella sezione Server Syslog, segui questi passaggi:
- Nel campo Nome del server/IP, inserisci il nome del server o l'indirizzo IP del forwarder di Google Security Operations.
- Nell'elenco Struttura, seleziona LOCAL0.
- Nell'elenco Filtro, seleziona il filtro creato in precedenza.
- Fai clic su Aggiungi.
- (Facoltativo) Per aggiungere più server syslog per eventi, accesso amministrativo o log di accesso utente, ripeti i passaggi da 2 a 4.
- Fai clic su Salva modifiche.
Attivare il logging syslog su Ivanti Connect Secure
- Nella console Pulse Connect Secure, fai clic sulla scheda Eventi, Accesso utente o Accesso amministratore e poi seleziona Filtri.
- Fai clic sulla scheda Nuovo filtro.
Nella sezione Formato di esportazione, seleziona Personalizzato e inserisci il seguente formato nel campo:
[SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%
Fai clic su Salva.
Fai clic su Sistema > Log/monitoraggio e poi seleziona la scheda Impostazioni.
Nel campo Dimensioni massime del log, specifica le dimensioni massime del log e seleziona gli eventi da registrare.
Specifica la configurazione del server come segue:
Nel campo Nome/IP server, specifica il nome di dominio completo o l'indirizzo IP del forwarder di Google Security Operations per il server syslog.
Se selezioni Transport Layer Security (TLS) dall'elenco dei tipi, il nome del server deve corrispondere al CN in subjectDN nel certificato ottenuto dal server.
Nell'elenco Struttura, seleziona un livello di struttura del server syslog.
Nell'elenco Tipo, seleziona il tipo di connessione al server syslog come UDP, TCP o TLS. TLS utilizza protocolli crittografici per fornire una comunicazione sicura.
Se selezioni TLS, seleziona il certificato client installato da utilizzare per autenticare il server syslog. I certificati client sono definiti nella finestra Configurazione > Certificati > Certificati di autenticazione client. I certificati client devono essere installati sul dispositivo prima di poter essere utilizzati. Contatta la tua autorità di certificazione per il certificato.
Nell'elenco Filtro, seleziona Personalizzato.
Fai clic su Aggiungi.
Configura il forwarder di Google Security Operations per importare i log di Pulse Secure
- Seleziona Impostazioni SIEM > Inoltratori.
- Fai clic su Aggiungi nuovo mittente.
- Nel campo Nome del forwarder, inserisci un nome univoco per il forwarder.
- Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del collettore.
- Nel campo Nome del raccoglitore, digita un nome univoco per il raccoglitore.
- Seleziona Pulse Secure come Tipo di log.
- Seleziona Syslog come Tipo di collettore.
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo di connessione utilizzato dal collector per ascoltare i dati syslog.
- Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il collector e ascolta i dati syslog.
- Porta: specifica la porta di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
- Fai clic su Invia.
Per ulteriori informazioni sui forwarder di Google Security Operations, consulta Gestire le configurazioni dei forwarder tramite l'interfaccia utente di Google Security Operations.
Se riscontri problemi durante la creazione dei reindirizzamenti, contatta l'assistenza di Google Security Operations.
Riferimento alla mappatura dei campi
Questo parser estrae i campi dai log VPN Pulse Secure, gestendo sia i log eventi di Windows sia i formati syslog. Normalizza diverse strutture di log in un formato comune, classificando eventi come accessi, logout, connessioni e modifiche ai criteri, arricchendoli con dati contestuali come user agent, indirizzi IP e timestamp.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
azione | security_result.action_details |
Mappato direttamente dal campo action . |
applicazione | principal.application |
Mappato direttamente dal campo application . |
bytes_read | network.received_bytes |
Mappato direttamente dal campo bytes_read e convertito in numero intero non firmato. |
bytes_written | network.sent_bytes |
Mappato direttamente dal campo bytes_written e convertito in numero intero non firmato. |
client_host | principal.hostname , principal.asset.hostname |
Mappato direttamente dal campo client_host . |
cmd | principal.process.command_line |
Mappato direttamente dal campo cmd . |
connection_status | security_result.detection_fields.value.string_value |
Mappato direttamente dal campo connection_status . |
data_time | metadata.event_timestamp.seconds |
Analizzati dal campo data_time utilizzando vari formati di timestamp (MM-dd-aaaa HH:mm:ss Z, RFC 3339, ISO8601, MMM d HH:mm:ss, MMM d HH:mm:ss). |
devname | principal.hostname , principal.asset.hostname |
Mappato direttamente dal campo devname . |
dstip | target.ip , target.asset.ip |
Mappato direttamente dal campo dstip . |
dstport | target.port |
Mappato direttamente dal campo dstport e convertito in numero intero. |
dstcountry | target.location.country_or_region |
Mappato direttamente dal campo dstcountry se non è "Riservato" o vuoto. |
duration | network.session_duration.seconds |
Mappato direttamente dal campo duration e convertito in numero intero. |
dvc | intermediary.hostname o intermediary.ip |
Se il campo dvc può essere convertito in un indirizzo IP, viene mappato a intermediary.ip . In caso contrario, viene mappato a intermediary.hostname . |
dvc_hostname | intermediary.hostname , principal.hostname , principal.asset.hostname o intermediary.ip , principal.ip , principal.asset.ip |
Se il campo dvc_hostname può essere convertito in un indirizzo IP, viene mappato ai rispettivi campi IP. In caso contrario, viene mappato ai rispettivi campi del nome host. |
event_type | metadata.product_event_type |
Mappato direttamente dal campo event_type . |
failure_reason | security_result.description |
Mappato direttamente dal campo failure_reason . Se il messaggio contiene "because host", il testo "host" viene anteposto al motivo dell'errore. |
has_principal | event.idm.read_only_udm.principal (presenza) |
Imposta su "true" se sono compilati eventuali campi principali, su "false" in caso contrario. Dedotto dalla logica del parser. |
has_target | event.idm.read_only_udm.target (presenza) |
Imposta su "true" se uno o più campi target sono compilati, su "false" in caso contrario. Dedotto dalla logica del parser. |
has_target_user | event.idm.read_only_udm.target.user.userid (presenza) |
Impostato su "true" se target.user.userid è compilato, su "false" in caso contrario. Dedotto dalla logica del parser. |
host_ip | principal.ip , principal.asset.ip |
Mappato direttamente dal campo host_ip . |
host_mac | principal.mac |
Mappato direttamente dal campo host_mac , sostituendo i trattini con i due punti. |
http_method | network.http.method |
Mappato direttamente dal campo http_method . |
http_response | network.http.response_code |
Mappato direttamente dal campo http_response e convertito in numero intero. |
info_desc | about.labels.value |
Mappato direttamente dal campo info_desc . |
ip_new | target.ip , target.asset.ip |
Mappato direttamente dal campo ip_new . |
livello | security_result.severity , security_result.severity_details |
Il valore security_result.severity è ricavato dal campo level ("error"/"warning" -> HIGH, "notice" -> MEDIUM, "information"/"info" -> LOW). Anche il valore non elaborato di level viene mappato a security_result.severity_details . |
logid | metadata.product_log_id |
Mappato direttamente dal campo logid . |
locip | principal.ip , principal.asset.ip |
Mappato direttamente dal campo locip . |
messaggio | metadata.description |
Utilizzato per estrarre vari campi utilizzando i filtri grok e kv. Se il messaggio contiene "EventID", viene elaborato come log eventi di Windows. |
message_info | metadata.description |
Mappato direttamente a metadata.description se non viene utilizzato in pattern grok più specifici. |
msg | metadata.product_event_type , metadata.description |
Se è presente il campo msg , il tipo di prodotto viene estratto e mappato a metadata.product_event_type e il messaggio rimanente viene mappato a metadata.description . |
msg_hostname | principal.hostname , principal.asset.hostname |
Mappato direttamente dal campo msg_hostname . |
msg_ip | principal.ip , principal.asset.ip |
Mappato direttamente dal campo msg_ip . |
msg_user_agent | network.http.user_agent , network.http.parsed_user_agent , metadata.product_version |
La stringa user agent è mappata a network.http.user_agent , lo user agent analizzato è mappato a network.http.parsed_user_agent e la versione del prodotto (se presente) è mappata a metadata.product_version . |
network_duration | network.session_duration.seconds |
Mappato direttamente dal campo network_duration e convertito in numero intero. |
policyid | security_result.rule_id |
Mappato direttamente dal campo policyid . |
policyname | security_result.rule_name |
Mappato direttamente dal campo policyname . |
policytype | security_result.rule_type |
Mappato direttamente dal campo policytype . |
priority_code | about.labels.value |
Mappato direttamente dal campo priority_code e utilizzato anche per dedurre about.labels.value per la chiave "Severità" (vedi Logica). |
prod_name | metadata.product_name |
Mappato direttamente dal campo prod_name . |
product_type | metadata.product_event_type |
Mappato direttamente dal campo product_type . |
product_version | metadata.product_version |
Mappato direttamente dal campo product_version . |
proto | network.ip_protocol |
Mappato a network.ip_protocol dopo essere stato convertito in un nome di protocollo IP utilizzando una ricerca. |
pwd | principal.process.file.full_path |
Mappato direttamente dal campo pwd . |
area di autenticazione | principal.group.attribute.labels.value |
Mappato direttamente dal campo realm . |
rcvdbyte | network.received_bytes |
Mappato direttamente dal campo rcvdbyte e convertito in numero intero non firmato. |
remip | target.ip |
Mappato direttamente dal campo remip . |
resource_name | target.resource.name |
Mappato direttamente dal campo resource_name dopo aver rimosso gli spazi iniziali/finali e i trattini. |
resource_status | security_result.description |
Mappato direttamente dal campo resource_status . |
resource_user_group | principal.user.group_identifiers |
Mappato direttamente dal campo resource_user_group . |
resource_user_name | principal.user.userid |
Mappato direttamente dal campo resource_user_name . |
ruoli | principal.user.group_identifiers |
Mappato direttamente dal campo roles . |
sentbyte | network.sent_bytes |
Mappato direttamente dal campo sentbyte e convertito in numero intero non firmato. |
session_id | network.session_id |
Mappato direttamente dal campo session_id . |
sessionid | network.session_id |
Mappato direttamente dal campo sessionid . |
srcip | principal.ip , principal.asset.ip |
Mappato direttamente dal campo srcip . |
srcport | principal.port |
Mappato direttamente dal campo srcport e convertito in numero intero. |
srccountry | principal.location.country_or_region |
Mappato direttamente dal campo srccountry se non è "Riservato" o vuoto. |
sottotipo | metadata.product_event_type |
Utilizzato in combinazione con type per formare metadata.product_event_type . |
target_file | target.file.full_path |
Mappato direttamente dal campo target_file . |
target_host | target.hostname , target.asset.hostname |
Mappato direttamente dal campo target_host . |
target_ip | target.ip , target.asset.ip |
Mappato direttamente dal campo target_ip . |
target_port | target.port |
Mappato direttamente dal campo target_port e convertito in numero intero. |
target_url | target.url |
Mappato direttamente dal campo target_url . |
tempo | metadata.event_timestamp.seconds |
Analizzata dal campo time utilizzando il formato "aaaa-MM-gg HH:mm:ss". |
tipo | metadata.product_event_type |
Utilizzato in combinazione con subtype per formare metadata.product_event_type . |
u_event_source_ip | principal.ip , principal.asset.ip o target.ip |
Se sono presenti target_ip o target_host , u_event_source_ip viene mappato a principal.ip e principal.asset.ip . In caso contrario, se target_ip , target_host e target_url sono tutti vuoti, u_event_source_ip viene mappato a target.ip . |
u_observer_ip | observer.ip |
Mappato direttamente dal campo u_observer_ip . |
u_prin_ip | principal.ip , principal.asset.ip |
Mappato direttamente dal campo u_prin_ip . |
utente | target.user.userid |
Mappato direttamente dal campo user . |
user_agent | network.http.user_agent , network.http.parsed_user_agent |
La stringa dello user agent è mappata a network.http.user_agent e lo user agent analizzato è mappato a network.http.parsed_user_agent . |
user_group_identifier | target.user.group_identifiers o principal.user.group_identifiers |
Nella maggior parte dei casi è mappato a target.user.group_identifiers . Mappato a principal.user.group_identifiers negli eventi di modifica dell'IP (USER_UNCATEGORIZED) e di limitazioni del realm. |
user_ip | principal.ip , principal.asset.ip |
Mappato direttamente dal campo user_ip . Se è vuoto e u_event_source_ip non è vuoto, assume il valore di u_event_source_ip . |
nome utente | principal.user.userid o target.user.userid |
Nella maggior parte dei casi è mappato a principal.user.userid . Mappato a target.user.userid in alcuni scenari specifici (ad es. quando detect_user_logout_failed è false e detect_policy_change_failed è false). |
username_removed | target.user.userid |
Mappato direttamente dal campo username_removed . |
vd | principal.administrative_domain |
Mappato direttamente dal campo vd . |
metadata.vendor_name
, metadata.product_name
, metadata.event_type
, metadata.log_type
, network.ip_protocol
, security_result.action
, security_result.severity
e extensions.auth.type
vengono ricavati o impostati dalla logica dell'analizzatore sintattico in base alle condizioni descritte nella colonna Logica.
Modifiche
2024-05-27
- "observer_hostname" è stato mappato a "observer.hostname".
- Se "dvc_hostname" è un indirizzo IP valido, mappalo a "principal.ip", altrimenti mappalo a "principal.hostname".
- "priority_code", "Syslog_version" ed "info_desc" sono stati mappati a "about.labels".
- "prod_name" è stato mappato a "metadata.product_event_type".
2024-04-16
- È stato aggiunto un nuovo pattern GROK per analizzare il nuovo pattern dei log SYSLOG.
- "connection_status" è stato mappato a "security_result.detection_fields".
2024-02-26
- È stato aggiunto un blocco "kv" per analizzare i dati chiave-valore.
- "username" è stato mappato a "target.user.userid".
- È stato aggiunto un controllo condizionale per "message_info".
- "u_prin_ip" è stato mappato a "principal.ip".
- "u_observer_ip" è stato mappato a "observer.ip".
2023-11-07
- Correzione di bug:
- Mappatura modificata per "observer_host" da "observer.hostname" a "additional.fields".
2023-08-19
- È stato aggiunto un pattern Grok per analizzare i log con errori.
2023-05-26
- È stato aggiunto un pattern Grok per supportare i nuovi log syslog.
2023-01-06
- È stato modificato il pattern Grok per analizzare "product_type" e mapparlo a "metadata.product_event_type".
2022-10-25
- Sono stati aggiunti nuovi pattern Grok per "message_info" per estrarre session_id.
- "session_id" è stato mappato a "network.session_id".
- È stato modificato target.ip in principal.ip quando detect_policy_change_failed è falso.
- È stato modificato target.mac in principal.mac quando detect_policy_change_failed è falso.
2022-10-12
- Miglioramento: sono state aggiunte mappature per i seguenti campi:
- È stato estratto il valore dell'IP dal campo "msg" e mappato a "principal.ip".
- È stato estratto il valore del nome host dal campo "msg" e mappato a "principal.hostname".
- "user" è stato mappato a "target.user.userid".
- "realm" è stato mappato a "principal.group.attribute.labels".
- "roles" è stato mappato a "principal.user.group_identifiers".
- Valore modificato per "metadata.event_type" da "GENERIC_EVENT" a "USER_UNCATEGORIZED".
2022-10-03
- Miglioramento: sono stati analizzati i log contenenti "sudo".
- È stato aggiunto il supporto per i nuovi formati di log di tipo coppia chiave-valore.
2022-07-01
- Miglioramento: è stato generato un nuovo evento per l'ID evento: 4624
- È stato modificato il valore metadata.event_type da "GENERIC_EVENT" a "STATUS_UPDATE" o "NETWORK_CONNECTION" se "principal.ip" o "target.ip" o "principal.hostname" non sono null.
2022-04-13
- Miglioramento: sono state aggiunte mappature per i nuovi campi in event_type di GENERIC_EVENT:
- user_ip a event.idm.read_only_udm.principal.ip.
- user_group_identifier a event.idm.read_only_udm.target.user.group_identifiers.
- Timestamp modificato in tutti gli event_type per includere il fuso orario.
- Campo modificato user_ip, target_ip per i tipi di evento GENERIC e NETWORK_CONNECTION.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.