Raccogliere i log Juniper Junos

Supportato in:

Questo documento descrive come raccogliere i log di Juniper Junos utilizzando un forwarder di Google Security Operations.

Per ulteriori informazioni, consulta 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 JUNIPER_JUNOS.

Configurare il logging strutturato per un dispositivo Juniper Networks SRX

Il formato dei log strutturati estrae le informazioni dai messaggi di log. Il formato dei log è conforme al protocollo Syslog.

  1. Accedi alla CLI Juniper SRX utilizzando SSH per il relativo indirizzo IP di gestione.
  2. Digita CLI al prompt della shell e premi Invio.
  3. Digita configure e premi Invio per accedere alla modalità di configurazione del dispositivo.
  4. Inserisci i dati di contatto o il punto di riferimento del cliente.
  5. Per mappare i campi all'account utente, esegui i seguenti comandi:

       set system syslog host FORWARDER_IP_ADDRESS any info
    
       set system syslog host FORWARDER_IP_ADDRESS structured-data
    
    

    Sostituisci FORWARDER_IP_ADDRESS con l'indirizzo IP del forwarder di Google Security Operations.

  6. Per attivare la registrazione strutturata per i log di sicurezza, utilizza i seguenti comandi:

       set security log mode stream
    
       set security log source-address SRC_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME host FORWARDER_IP_ADDRESS
    
       set security log stream SYSLOG_STREAM_NAME format sd-syslog
    
    

    Sostituisci quanto segue:

    • SRC_IP_ADDRESS: l'indirizzo IP del dispositivo Juniper SRX.

    • SYSLOG_STREAM_NAME: il nome assegnato al server syslog.

    • FORWARDER_IP_ADDRESS: l'indirizzo IP del forwarder di Google Security Operations.

  7. Assicurati che il logging sia abilitato in tutti i criteri di sicurezza. Per abilitare il logging, esegui i seguenti comandi:

       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-close
    
       set security policies from-zone <zone-name1> to-zone <zone-name2> policy <policy-name> then log session-init
    
    
  8. Configura il nome host sul dispositivo utilizzando il seguente comando:

       set system host-name HOSTNAME
    
    

    Sostituisci HOSTNAME con il dispositivo Juniper Networks SRX assegnato.

  9. Inserisci commit per salvare i comandi eseguiti nella configurazione.

Configura il forwarder di Google Security Operations e syslog per importare i log di Juniper Junos

  1. Seleziona Impostazioni SIEM > Inoltratori.
  2. Fai clic su Aggiungi nuovo mittente.
  3. Inserisci un nome univoco nel campo Nome mittente.
  4. Fai clic su Invia e poi su Conferma. Il forwarder viene aggiunto e viene visualizzata la finestra Aggiungi configurazione del collettore.
  5. Nel campo Nome del raccoglitore, inserisci un nome univoco per il raccoglitore.
  6. Seleziona Juniper Junos come Tipo di log.
  7. Seleziona Syslog come Tipo di collettore.
  8. Configura i seguenti parametri di input:
    • Protocollo: specifica il protocollo come UDP.
    • 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 che ascolta i dati syslog.
  9. Fai clic su Invia.

Per ulteriori informazioni sui forwarder di Google Security Operations, consulta la documentazione sui forwarder di Google Security Operations. Per informazioni sui requisiti per ciascun tipo di inoltro, consulta Configurazione degli inoltratori per tipo. 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 messaggi syslog Juniper JUNOS, gestendo sia i formati chiave-valore che non chiave-valore. Utilizza pattern grok per abbinare varie strutture di messaggi, tra cui i log della firewall, l'attività SSH ed esecuzioni di comandi, quindi mappa i campi estratti all'UDM. Il parser gestisce anche i log in formato CEF utilizzando un file include ed esegue azioni specifiche in base ai contenuti del messaggio, ad esempio l'unione di indirizzi IP e nomi utente in campi UDM appropriati.

Tabella di mappatura UDM

Campo log Mappatura UDM Logic
DPT target.port La porta di destinazione della connessione di rete, convertita in un numero intero.
DST target.ip L'indirizzo IP di destinazione della connessione di rete.
FLAG additional.fields{}.key: "FLAG", additional.fields{}.value.string_value: valore di FLAG Il flag TCP associato alla connessione di rete.
ID additional.fields{}.key: "ID", additional.fields{}.value.string_value: valore di ID Il campo di identificazione IP.
IN additional.fields{}.key: "IN", additional.fields{}.value.string_value: valore di IN L'interfaccia di rete in entrata.
LEN additional.fields{}.key: "LEN", additional.fields{}.value.string_value: valore di LEN La lunghezza del pacchetto IP.
MAC principal.mac L'indirizzo MAC estratto dal campo MAC.
OUT additional.fields{}.key: "OUT", additional.fields{}.value.string_value: valore di OUT L'interfaccia di rete in uscita.
PREC additional.fields{}.key: "PREC", additional.fields{}.value.string_value: valore di PREC Il campo Precedence nell'intestazione IP.
PROTO network.ip_protocol Il protocollo IP utilizzato nella connessione di rete.
RES additional.fields{}.key: "RES", additional.fields{}.value.string_value: valore di RES Campo riservato nell'intestazione TCP.
SPT principal.port La porta di origine della connessione di rete, convertita in un numero intero.
SRC principal.ip L'indirizzo IP di origine della connessione di rete.
TOS additional.fields{}.key: "TdS", additional.fields{}.value.string_value: valore di TOS Il campo Tipo di servizio nell'intestazione IP.
TTL network.dns.additional.ttl Valore TTL (Time To Live), convertito in un numero intero non firmato.
URGP additional.fields{}.key: "URGP", additional.fields{}.value.string_value: valore di URGP Campo Urgent pointer nell'intestazione TCP.
WINDOW additional.fields{}.key: "WINDOW_SIZE", additional.fields{}.value.string_value: valore di WINDOW Le dimensioni della finestra TCP.
action security_result.action L'azione intrapresa dal firewall, estratta dal messaggio CEF.
agt observer.ip L'indirizzo IP dell'agente.
amac target.mac L'indirizzo MAC della destinazione, convertito in minuscolo e con i trattini sostituiti da due punti.
app target.application L'applicazione coinvolta nell'evento.
artz observer.zone Il fuso orario dell'osservatore.
atz target.location.country_or_region Il fuso orario di destinazione.
categoryBehavior additional.fields{}.key: "Comportamento della categoria", additional.fields{}.value.string_value: valore di categoryBehavior con le barre oblique rimosse Il comportamento della categoria.
categoryDeviceGroup additional.fields{}.key: "Gruppo di dispositivi della categoria", additional.fields{}.value.string_value: valore di categoryDeviceGroup con le barre oblique rimosse Il gruppo di dispositivi della categoria.
categoryObject additional.fields{}.key: "Oggetto categoria", additional.fields{}.value.string_value: valore di categoryObject con le barre oblique rimosse L'oggetto categoria.
categoryOutcome additional.fields{}.key: "Risultato categoria", additional.fields{}.value.string_value: valore di categoryOutcome con le barre oblique rimosse Il risultato della categoria.
categorySignificance additional.fields{}.key: "Significatività della categoria", additional.fields{}.value.string_value: valore di categorySignificance L'importanza della categoria.
command target.process.command_line Il comando è stato eseguito.
cs1Label additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: valore del campo CEF corrispondente Etichetta e valore del campo stringa personalizzata 1 del messaggio CEF.
cs2Label additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: valore del campo CEF corrispondente Etichetta e valore del campo stringa personalizzato 2 del messaggio CEF.
cs3Label additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: valore del campo CEF corrispondente Etichetta e valore del campo stringa personalizzato 3 del messaggio CEF.
cs4Label additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: valore del campo CEF corrispondente Etichetta e valore del campo stringa personalizzata 4 del messaggio CEF.
cs5Label additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: valore del campo CEF corrispondente Etichetta e valore del campo stringa personalizzato 5 del messaggio CEF.
cs6Label additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: valore del campo CEF corrispondente Etichetta e valore del campo stringa personalizzato 6 del messaggio CEF.
dhost target.hostname Nome host di destinazione.
deviceCustomString1 additional.fields{}.key: cs1Label, additional.fields{}.value.string_value: valore di deviceCustomString1 Stringa personalizzata del dispositivo 1.
deviceCustomString2 additional.fields{}.key: cs2Label, additional.fields{}.value.string_value: valore di deviceCustomString2 Stringa personalizzata del dispositivo 2.
deviceCustomString3 additional.fields{}.key: cs3Label, additional.fields{}.value.string_value: valore di deviceCustomString3 Stringa personalizzata del dispositivo 3.
deviceCustomString4 additional.fields{}.key: cs4Label, additional.fields{}.value.string_value: valore di deviceCustomString4 Stringa personalizzata del dispositivo 4.
deviceCustomString5 additional.fields{}.key: cs5Label, additional.fields{}.value.string_value: valore di deviceCustomString5 Stringa personalizzata del dispositivo 5.
deviceCustomString6 additional.fields{}.key: cs6Label, additional.fields{}.value.string_value: valore di deviceCustomString6 Stringa personalizzata del dispositivo 6.
deviceDirection network.direction La direzione del traffico di rete.
deviceEventClassId additional.fields{}.key: "eventId", additional.fields{}.value.string_value: valore di deviceEventClassId L'ID della classe di eventi del dispositivo.
deviceFacility observer.product.subproduct La struttura del dispositivo.
deviceProcessName about.process.command_line Il nome del processo del dispositivo.
deviceSeverity security_result.severity La gravità del dispositivo.
deviceTimeZone observer.zone Il fuso orario del dispositivo.
deviceVendor metadata.vendor_name Il fornitore del dispositivo.
deviceVersion metadata.product_version La versione del dispositivo.
dpt target.port La porta di destinazione.
dst target.ip L'indirizzo IP di destinazione.
duser target.user.user_display_name L'utente di destinazione.
eventId additional.fields{}.key: "eventId", additional.fields{}.value.string_value: valore di eventId ID evento.
event_time metadata.event_timestamp L'ora in cui si è verificato l'evento, analizzata dal messaggio.
firewall_action security_result.action_details L'azione intrapresa dal firewall.
host principal.hostname, intermediary.hostname Il nome host del dispositivo che genera il log. Utilizzato sia per il principale che per l'intermediario in casi diversi.
msg security_result.summary Il messaggio associato all'evento, utilizzato come riepilogo del risultato di sicurezza.
name metadata.product_event_type Il nome dell'evento.
process_name additional.fields{}.key: "process_name", additional.fields{}.value.string_value: valore di process_name Il nome del processo.
p_id target.process.pid L'ID processo, convertito in una stringa.
sha256 principal.process.file.sha256 L'hash SHA256 di un file, estratto dalle informazioni sulla chiave SSH2.
shost principal.hostname Nome host di origine.
source_address principal.ip L'indirizzo IP di origine.
source_port principal.port La porta di origine, convertita in un numero intero.
src principal.ip L'indirizzo IP di origine.
src_ip principal.ip L'indirizzo IP di origine.
src_port principal.port La porta di origine, convertita in un numero intero.
ssh2 security_result.detection_fields{}.key: "ssh2", security_result.detection_fields{}.value: valore di ssh2 Informazioni sulla chiave SSH2.
subtype metadata.product_event_type Il sottotipo di evento.
task_summary security_result.description Il riepilogo dell'attività, utilizzato come descrizione del risultato di sicurezza.
timestamp metadata.event_timestamp Il timestamp dell'evento.
user target.user.userid L'utente associato all'evento.
username principal.user.userid Il nome utente associato all'evento.
user_name principal.user.userid Il nome utente.
metadata.vendor_name Hardcoded su "Juniper Firewall". Hardcoded su "Juniper Firewall". Hardcoded su "JUNIPER_JUNOS". Determinato dalla logica dell'analizzatore in base ai contenuti del log. Il valore predefinito è "STATUS_UPDATE" se non si tratta di un messaggio CEF e non viene identificato nessun altro tipo di evento specifico. Impostato su "NETWORK_HTTP" per i messaggi CEF. Se non è presente alcun campo desc, questo campo viene compilato con il valore message_description estratto dal messaggio di log non elaborato.

Modifiche

2024-05-02

  • Enhancement-
  • Sono stati aggiunti pattern Grok per supportare i nuovi log nel formato SYSLOG + KV.

2023-10-25

  • Enhancement-
  • Sono stati aggiunti pattern Grok per analizzare i log non analizzati.
  • "source_port" è stato mappato a "principal.port".
  • "source_address" è stato mappato a "principal.ip".
  • "user_name" è stato mappato a "target.user.userid".
  • "application_name" è stato mappato a "target.application".
  • "p_id" è stato mappato a "target.process.pid".
  • È stato aggiunto il controllo "invalid_pattern" prima della mappatura KV.
  • È stato aggiunto un pattern Grok per mappare "security_result.description" quando "description_present" è falso.

2023-08-17

  • Enhancement-
  • È stato aggiunto il pattern Grok ai log non analizzati analizzati.
  • "msg" è stato mappato a "security_result.summary".
  • "src_ip" è stato mappato a "principal.ip".
  • "user" è stato mappato a "target.user.userid".
  • "username" è stato mappato a "principal.user.userid".
  • "command" è stato mappato a "target.process.command_line".
  • "src_port" è stato mappato a "principal.port".
  • "ssh2" è stato mappato a "security_result.detection_fields".
  • "sha256" è stato mappato a "principal.process.file.sha256".
  • "desc" è stato mappato a "sec_result.summary".
  • "mac-address" è stato mappato a "principal.mac".
  • "host" è stato mappato a "principal.hostname" se event_type è "STATUS_UPDATE".

2023-01-15

  • Enhancement-
  • Pattern Grok modificato per supportare i log non analizzati contenenti il tipo "UI_CMDLINE_READ_LINE", "UI_COMMIT_PROGRESS", "UI_CHILD_START",
  • "UI_CFG_AUDIT_OTHER", "UI_LOGIN_EVENT", "UI_CHILD_STATUS", "UI_LOGOUT_EVENT", "UI_LOAD_EVENT",
  • "JTASK_IO_CONNECT_FAILED", "UI_AUTH_EVENT", "UI_NETCONF_CMD", "UI_COMMIT_NO_MASTER_PASSWORD", "UI_CFG_AUDIT_SET", "UI_JUNOSCRIPT_CMD",
  • "SNMPD_AUTH_FAILURE", "UI_CFG_AUDIT_NEW", "UI_COMMIT" , "LIBJNX_LOGIN_ACCOUNT_LOCKED", "UI_COMMIT_COMPLETED",
  • "PAM_USER_LOCK_LOGIN_REQUESTS_DENIED", "RTPERF_CPU_USAGE_OK", "RTPERF_CPU_THRESHOLD_EXCEEDED", "LIBJNX_LOGIN_ACCOUNT_UNLOCKED",
  • "JSRPD_SET_OTHER_INTF_MON_FAIL", "JSRPD_SET_SCHED_MON_FAILURE", "UI_CHILD_WAITPID", "UI_DBASE_LOGIN_EVENT".

2022-05-02

  • Nuovo parser predefinito.