Raccogliere i log di Pulse Secure
Questo documento descrive come raccogliere i log di Pulse Secure utilizzando un forwarder Google Security Operations.
Per saperne di più, consulta la Panoramica sull'importazione dei dati in Google Security Operations.
Un'etichetta di importazione identifica il parser 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
.
Configurare la VPN Pulse Secure
Per configurare la VPN Pulse Secure, esegui una delle seguenti operazioni:
- Configura Pulse Secure VPN versione 8.3R3 e precedenti
- Configura Pulse Secure VPN versione 8.3R4 e successive
Configura Pulse Secure VPN versione 8.3R3 e precedenti
- Accedi alla console Pulse Connect Secure.
- Nella console Pulse Connect Secure, seleziona System > Log/monitoring > Settings. 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 server/IP, 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 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 di 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 Pulse Secure VPN 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 abilitare la configurazione di syslog, esegui una delle seguenti operazioni:
- Attiva la registrazione syslog su Pulse Secure VPN
- Abilita il logging syslog su Ivanti Connect Secure
Abilita il logging syslog sulla VPN Pulse Secure
- Nella console Pulse connect secure, seleziona System > Log/monitoring > Settings. 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 Accesso HTML5, Messaggi di controllo dell'ammissione e Richieste non autenticate.
- Nel campo Server Syslog, inserisci le informazioni sui server Syslog.
- Nella sezione Server Syslog, segui questi passaggi:
- Nel campo Nome 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 amministratore o log di accesso utente, ripeti i passaggi da 2 a 4.
- Fai clic su Salva modifiche.
Attiva la registrazione syslog su Ivanti Connect Secure
- Nella console Pulse connect secure, fai clic sulla scheda Eventi, sulla scheda Accesso utente o sulla scheda Accesso amministratore, quindi 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, quindi seleziona la scheda Impostazioni.
Nel campo Dimensioni massime log, specifica le dimensioni massime del log e seleziona gli eventi da registrare.
Specifica la configurazione del server nel seguente modo:
Nel campo Nome server/IP, 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 l'autorità di certificazione per il certificato.
Nell'elenco Filtro, seleziona Personalizzato.
Fai clic su Aggiungi.
Configura il programma di inoltro di Google Security Operations per l'importazione dei log di Pulse Secure
- Seleziona Impostazioni SIEM > Forwarder.
- Fai clic su Aggiungi nuovo inoltro.
- 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 raccoglitore.
- Nel campo Nome del raccoglitore, digita un nome univoco per il raccoglitore.
- Seleziona Pulse Secure come Tipo di log.
- Seleziona Syslog come Tipo di raccoglitore.
- Configura i seguenti parametri di input obbligatori:
- Protocollo: specifica il protocollo di connessione utilizzato dal raccoglitore per ascoltare i dati syslog.
- Indirizzo: specifica l'indirizzo IP o il nome host di destinazione in cui risiede il raccoglitore e ascolta i dati syslog.
- Porta: specifica la porta di destinazione in cui risiede e ascolta il raccoglitore i dati syslog.
- Fai clic su Invia.
Per ulteriori informazioni sui forwarder di Google Security Operations, consulta Gestire le configurazioni dei forwarder tramite la UI di Google Security Operations.
Se riscontri problemi durante la creazione degli inoltri, contatta l'assistenza 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, disconnessioni, connessioni e modifiche alle norme, arricchendoli con dati contestuali come user agent, indirizzi IP e timestamp.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logic |
---|---|---|
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 senza segno. |
bytes_written | network.sent_bytes |
Mappato direttamente dal campo bytes_written e convertito in numero intero senza segno. |
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 |
Analizzato dal campo data_time utilizzando vari formati di timestamp (MM-gg-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) |
Impostato su "true" se uno dei campi principale è compilato, su "false" in caso contrario. Derivato dalla logica del parser. |
has_target | event.idm.read_only_udm.target (presenza) |
Impostato su "true" se uno dei campi di destinazione è compilato, "false" in caso contrario. Derivato dalla logica del parser. |
has_target_user | event.idm.read_only_udm.target.user.userid (presenza) |
Impostato su "true" se target.user.userid è compilato, "false" in caso contrario. Derivato 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 deriva 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 utilizzato in altri 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 derivare about.labels.value per la chiave "Gravità" (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 la conversione in un nome di protocollo IP tramite 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 senza segno. |
remip | target.ip |
Mappato direttamente dal campo remip . |
resource_name | target.resource.name |
Mappato direttamente dal campo resource_name dopo aver rimosso gli spazi vuoti iniziali e 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 senza segno. |
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 |
Analizzato 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 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 |
Mappato su target.user.group_identifiers nella maggior parte dei casi. Mappato a principal.user.group_identifiers negli eventi Modifica IP (USER_UNCATEGORIZED) e Restrizioni 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 |
Mappato su principal.user.userid nella maggior parte dei casi. 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
sono derivati o impostati dalla logica dell'analizzatore sintattico in base alle condizioni descritte nella colonna Logica.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.