Raccogli i log di NetScaler
Questo documento descrive come raccogliere i log di NetScaler 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 CITRIX_NETSCALER
.
Configura NetScaler VPX
Per configurare NetScaler VPX in modo che invii i log al forwarder di Google Security Operations, segui questi passaggi:
- Verifica la configurazione del nome host.
- Crea il server di controllo.
- Associa il criterio di controllo creato al server.
Verifica la configurazione del nome host
- Accedi all'interfaccia web di NetScaler utilizzando le credenziali di amministratore.
- Seleziona Configurazione > Impostazioni.
- Fai clic su Nome host, indirizzo IP DNS e fuso orario.
- Se il campo Nome host è vuoto, inserisci il nome host. Non includere spazi. Se questo campo è già configurato, non è richiesta alcuna azione.
- Nel campo Indirizzo IP DNS, verifica se è specificato l'indirizzo IP DNS locale.
- Nel campo Fuso orario, inserisci il tuo fuso orario.
Crea il server di controllo
- Nell'interfaccia web di NetScaler, seleziona Configurazione > Sistema > Controllo qualità > Syslog > Server.
- Specifica i dettagli di syslog nei seguenti campi:
- Nome
- Tipo di server
- Indirizzo IP
- Port (Porta)
- Seleziona Livelli di log come Personalizzato.
- Seleziona tutte le caselle di controllo tranne il livello DEBUG nella configurazione.
- Nell'elenco Strumento di log, seleziona LOCAL0.
- Nell'elenco Formato della data, seleziona MMDDAAAA.
- Seleziona Fuso orario come GMT.
- Deseleziona le seguenti caselle di controllo:
- Logging TCP
- Logging ACL
- Messaggi di log configurabili dall'utente
- Log di AppFlow
- Logging NAT su larga scala
- Registrazione dei messaggi ALG
- Log degli iscritti
- DNS
- Intercettazione SSL
- Filtro degli URL
- Log di ispezione dei contenuti
- Fai clic su Ok per creare il server di controllo.
Collega il criterio di controllo creato al server
- Nell'interfaccia web di NetScaler, seleziona Configurazione > Sistema > Controllo qualità > Syslog.
- Fai clic sulla scheda Norme.
- Nel campo Nome, inserisci un nome per il criterio.
- Nell'elenco Server, seleziona il criterio dalla sezione precedente.
- Fai clic su Crea.
- Fai clic con il tasto destro del mouse sul criterio di controllo creato e seleziona Azione > Associazioni globali.
- Fai clic su Aggiungi associazione.
- Nella finestra Associazione criteri, procedi nel seguente modo:
- Nel campo Seleziona criterio, inserisci il criterio di controllo creato.
- Nel riquadro Dettagli vincolo, inserisci 120 nel campo Priorità, poiché si tratta della priorità predefinita.
- Fai clic su Associa.
Configura NetScaler SDX
Per configurare NetScaler SDX in modo che invii i log al forwarder di Google Security Operations:
- Verifica la configurazione del nome host per NetScaler SDX.
- Configura il server syslog.
- Configura i parametri syslog.
Verifica la configurazione del nome host per NetScaler SDX
- Accedi all'interfaccia web di NetScaler utilizzando le credenziali di amministratore.
- Nell'interfaccia web di NetScaler, seleziona Sistema > Impostazioni di sistema.
- Se il campo Nome host è vuoto, inserisci il nome host. Non includere spazi. Se questo campo è già configurato, non è richiesta alcuna azione.
- Nel campo Fuso orario, seleziona UTC o GMT.
Configura il server syslog
- Nell'interfaccia web di NetScaler, seleziona Sistema > Notifiche > Server Syslog.
- Nel riquadro Dettagli, fai clic su Aggiungi.
- Nella finestra Crea server syslog, specifica i valori per i seguenti parametri del server syslog:
- Nel campo Nome, inserisci un nome.
- Nel campo Indirizzo IP, inserisci l'indirizzo IP del forwarder di Google Security Operations.
- Nel campo Porta, inserisci il numero della porta.
- Seleziona Livelli di log come Personalizzato.
- Seleziona tutti i livelli di log tranne Debug.
- Fai clic su Crea.
Configura i parametri syslog
- Nell'interfaccia web di NetScaler, seleziona Sistema > Notifiche > Server Syslog.
- Nel riquadro Dettagli, fai clic su Parametri syslog.
- Nella pagina Configura i parametri syslog, seleziona Formato data come MMDDAAAA e Fuso orario come GMT.
- Fai clic su Ok.
Configura il forwarder di Google Security Operations per importare i log di NetScaler
- 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 Citrix NetScaler come Tipo di log.
- Nel campo Tipo di raccoglitore, seleziona Syslog.
- 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 raccoglitore 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 elabora i log SYSLOG di Citrix Netscaler in formato chiave-valore, estraendo i dati in formato JSON dal campo message
e arricchendo l'UDM con le informazioni di altri campi come host.hostname
e user_agent.original
dopo averli sottoposti a sanificazione. Gestisce i casi in cui il messaggio principale è vuoto ricorrendo al messaggio di log originale.
Tabella di mappatura UDM
Campo log | Mappatura UDM | Logica |
---|---|---|
AAA trans id | security_result.detection_fields[].value |
Valore estratto dal campo "AAA trans id". |
Accesso | security_result.action_details |
Se "Accesso" è "Consentito", imposta security_result.action su ALLOW. Se "Accesso" è "Rifiutato", imposta security_result.action su BLOCCA. |
applicationName | principal.application |
Valore estratto dal campo "applicationName". |
Browser_type | network.http.user_agent |
Valore estratto dal campo "Browser_type". |
ClientIP | principal.ip , principal.asset.ip |
Valore estratto dal campo "ClientIP". |
ClientPort | principal.port |
Valore estratto dal campo "ClientPort". |
client_cookie | additional.fields[].value.string_value |
Valore estratto dal campo "client_cookie". |
Comando | target.process.command_line |
Valore estratto dal campo "Comando". |
connectionId | security_result.detection_fields[].value |
Valore estratto dal campo "connectionId". |
Destinazione | target.ip , target.asset.ip |
Valore estratto dal campo "Destinazione". |
Destinazione | target.ip , target.asset.ip |
Valore estratto dal campo "Destinazione". |
device_serial_number | target.asset_id |
target.asset_id è impostato su "device_serial_number: |
Durata | network.session_duration.seconds |
La durata viene convertita in secondi e mappata. |
Ora di fine | security_result.detection_fields[].value |
Valore estratto dal campo "Ora di fine". |
Failure_reason | metadata.description |
Valore estratto dal campo "Failure_reason". |
flags | additional.fields[].value.string_value |
Valore estratto dal campo "flags". |
Gruppi | target.group.group_display_name |
Valore estratto dal campo "Gruppi". |
Motivo | metadata.description |
Valore estratto dal campo "Motivo". |
Remote_ip | target.ip , target.asset.ip |
Valore estratto dal campo "Remote_ip". |
ServerIP | target.ip , target.asset.ip |
Valore estratto dal campo "ServerIP". |
ServerPort | target.port |
Valore estratto dal campo "ServerPort". |
session_guid | metadata.product_log_id |
Valore estratto dal campo "session_guid". |
SessionId | network.session_id |
Valore estratto dal campo "SessionId". |
Origine | principal.ip , principal.asset.ip |
Valore estratto dal campo "Origine". |
Ora di inizio | security_result.detection_fields[].value |
Valore estratto dal campo "Ora di inizio". |
startTime | security_result.detection_fields[].value |
Valore estratto dal campo "startTime". |
Stato | security_result.description |
Valore estratto dal campo "Stato". |
Total_bytes_recv | network.received_bytes |
Valore estratto dal campo "Total_bytes_recv". |
Total_bytes_send | network.sent_bytes |
Valore estratto dal campo "Total_bytes_send". |
Total_bytes_wire_recv | security_result.detection_fields[].value |
Valore estratto dal campo "Total_bytes_wire_recv". |
Total_bytes_wire_send | security_result.detection_fields[].value |
Valore estratto dal campo "Total_bytes_wire_send". |
Utente | principal.user.userid |
Valore estratto dal campo "Utente". |
VserverServiceIP | target.ip , target.asset.ip |
Valore estratto dal campo "VserverServiceIP". |
VserverServicePort | target.port |
Valore estratto dal campo "VserverServicePort". Hardcoded su "CITRIX". Hardcoded su "NETSCALER". Hardcoded su "CITRIX_NETSCALER". Determinato dall'analizzatore in base a product_event_type. Esempi: NETWORK_CONNECTION, USER_LOGIN, USER_LOGOUT, USER_STATS, STATUS_UPDATE, USER_UNCATEGORIZED, GENERIC_EVENT. Valore estratto dal prefisso del log (ad es. CONN_DELINK, CONN_TERMINATE, OTHERCONN_DELINK e così via). Una breve descrizione dell'evento, a volte derivata da altri campi come "Motivo" o "Motivo_errore". Calcolata dai campi della data e dell'ora nella voce di log. Il parser gestisce vari formati e fusi orari. Estratto dal campo "nomeutente:nomedominio", prendendo la parte dopo i due punti. Hardcoded su TCP per gli eventi con "TCP" in metadata.product_event_type . Imposta su ALLOW per gli accessi e i comandi riusciti, su BLOCK per gli accessi non riusciti e l'accesso alle risorse bloccato. Derivato da campi come "Status", "Failure_reason" e "Access". Impostato su USERNAME_PASSWORD quando il nome utente e la password vengono utilizzati per l'autenticazione (dedotto da determinati messaggi di log). Impostato su VPN per gli eventi di accesso/uscita relativi alla VPN. Analizzata dal campo network.http.user_agent utilizzando una libreria di analisi dello user-agent. |
Modifiche
2024-05-21
- È stato modificato un pattern Grok per analizzare i log eliminati.
2024-05-20
- È stato aggiunto un nuovo pattern Grok per analizzare i log non analizzati.
2024-05-08
- Mappatura aggiornata delle informazioni sulla durata da "security_results" a "network.session_duration" .
2024-04-29
- È stato aggiunto il controllo condizionale per "Browser_type" e mappato a "network.http.parsed_user_agent".
- È stato aggiunto il controllo condizionale per "userId" e "user_email".
- "Browser" è stato mappato a "network.http.parsed_user_agent".
2024-02-23
- Pattern Grok aggiornato per analizzare il nome host come previsto nel campo UDM.
2024-01-25
- Sono stati aggiunti pattern Grok per analizzare i log in cui "message_type" è "Message", "NONHTTP_RESOURCEACCESS_DENIED", "UDPFLOWSTAT" ed "EXTRACTED_GROUPS".
- È stato aggiunto il supporto per l'analisi dei log in cui "feature" è "GUI" ed "EVENT".
- "principal_port" è stato mappato a "principal.port".
- "ClientIP" è stato mappato a "principal.asset.ip".
- "principal_ip" è stato mappato a "principal.ip" e "principal.asset.ip".
- "target_ip" è stato mappato a "target.ip" e "target.asset.ip".
- "target_port" è stato mappato a "target.port".
- "description" è stato mappato a "metadata.description".
- Sono stati mappati "type", "aaa_trans_id", "pcb_trans_id", "pcb_state", "pcb_label", "trans_id", "authPolicyLen", "login_attempts", "PromptLen", "partitionLen", "cmdPolicyLen" e "ssh_pubkey_len" a "security_result.detection_fields".
- "principal_hostname" è stato mappato a "principal.hostname" e "principal.asset.hostname".
- "hostname" è stato mappato a "intermediary.asset.hostname".
- "hostname" è stato mappato a "observer.asset.hostname".
- "cip", "ServerIP", "VIP", "VserverServiceIP" e "Remote_ip" sono stati mappati a "target.asset.ip".
- Quando "message_type" è "Message", mappa "Utente" a "principal.user.userid".
- Quando sono presenti "principal_ip" e "target_ip", imposta "metadata.event_type" su "NETWORK_CONNECTION".
- Quando sono presenti "Client_ip" e "target_ip", imposta "metadata.event_type" su "NETWORK_CONNECTION".
- Quando "message_type" è "NONHTTP_RESOURCEACCESS_DENIED" e "UDPFLOWSTAT", imposta "metadata.event_type" su "USER_STATS".
- Quando "message_type" è "Message" e "User" è presente, imposta "metadata.event_type" su "USER_UNCATEGORIZED".
- Quando "principal_ip" è presente, imposta "metadata.event_type" su "STATUS_UPDATE".
2023-11-26
- Enhancement-
- Sono stati aggiunti pattern Grok per analizzare i log in cui "message_type" è "Message".
2023-07-21
- Miglioramento: è stato aggiornato il parser per analizzare correttamente i log contenenti la funzionalità "CLI".
2022-09-26
- Miglioramento: è stata eseguita la migrazione degli analizzatori sintattici personalizzati all'analizzatore sintattico predefinito.
2022-06-09
- Miglioramento: sono state aggiunte le mappature richieste:
- Sono stati mappati "startTime", "endTime" e "Duration" a "security_result.detection_fields".
- È stato aggiornato il parser per analizzare i log contenenti message_type - "CHANNEL_UPDATE", "NETWORK_UPDATE", "AAATM Message".
2022-05-09
- Correzione di bug: il parser è stato aggiornato per analizzare correttamente i log contenenti message_type - "TCPCONNSTAT".
- È stato aggiornato il pattern grok per includere il nome di dominio completo in "principal.administrative_domain".
- Analisi dei log non riuscita durante il test dell'API di convalida.
2022-04-27
- Miglioramento: sono state aggiunte le mappature richieste
- Campo intermediario.hostname mappato
- Log relativi agli errori dell'API analizzata