Raccogliere i log del firewall Juniper NetScreen

Supportato in:

Questo documento spiega come configurare l'invio dei log del firewall Juniper NetScreen a Google Security Operations. Il parser estrae i campi utilizzando pattern grok, gestendo vari formati syslog e payload JSON. Poi mappa questi campi estratti nell'UDM, classificando gli eventi come connessioni di rete, accessi utente, aggiornamenti dello stato o eventi generici in base alla presenza di campi specifici come indirizzi IP, nomi utente e porte.

Prima di iniziare

  • Assicurati di disporre dell'accesso amministrativo al firewall Juniper NetScreen.
  • Assicurati di avere un'istanza Google Security Operations.

Ottenere il file di autenticazione di importazione di Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Agenti di raccolta.
  3. Scarica il file di autenticazione dell'importazione. Salva il file in modo sicuro sul sistema in cui verrà installato Bindplane.

Ottenere l'ID cliente Google SecOps

  1. Accedi alla console Google SecOps.
  2. Vai a Impostazioni SIEM > Profilo.
  3. Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.

Installa l'agente Bindplane

Installazione di Windows

  1. Apri il prompt dei comandi o PowerShell come amministratore.
  2. Esegui questo comando:

    msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
    

Installazione di Linux

  1. Apri un terminale con privilegi di root o sudo.
  2. Esegui questo comando:

    sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
    

Risorse di installazione aggiuntive

Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps

  1. Accedi al file di configurazione:

    1. Individua il file config.yaml. In genere si trova nella directory /etc/bindplane-agent/ su Linux o nella directory di installazione su Windows.
    2. Apri il file utilizzando un editor di testo (ad esempio nano, vi o Blocco note).
  2. Modifica il file config.yaml come segue:

    receivers:
        tcplog:
            # Replace the port and IP address as required
            listen_address: "0.0.0.0:54525"
    
    exporters:
        chronicle/chronicle_w_labels:
            compression: gzip
            # Adjust the path to the credentials file you downloaded in Step 1
            creds: '/path/to/ingestion-authentication-file.json'
            # Replace with your actual customer ID from Step 2
            customer_id: <customer_id>
            endpoint: malachiteingestion-pa.googleapis.com
            # Add optional ingestion labels for better organization
            ingestion_labels:
                log_type: SYSLOG
                namespace: juniper_firewall
                raw_log_field: body
    
    service:
        pipelines:
            logs/source0__chronicle_w_labels-0:
                receivers:
                    - tcplog
                exporters:
                    - chronicle/chronicle_w_labels
    
    
  3. Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.

  4. Sostituisci <customer_id> con l'ID cliente effettivo.

  5. Aggiorna /path/to/ingestion-authentication-file.json con il percorso in cui è stato salvato il file di autenticazione nella sezione Ottenere il file di autenticazione per l'importazione di Google SecOps.

Riavvia l'agente Bindplane per applicare le modifiche

  • Per riavviare l'agente Bindplane in Linux, esegui il seguente comando:

    sudo systemctl restart bindplane-agent
    
  • Per riavviare l'agente Bindplane in Windows, puoi utilizzare la console Servizi o inserire il seguente comando:

    net stop BindPlaneAgent && net start BindPlaneAgent
    

Configura il firewall Juniper Networks NetScreen

  1. Accedi all'interfaccia web di Juniper NetScreen.
  2. Seleziona Configurazione > Impostazioni report > Impostazioni log.
  3. Seleziona tutte le caselle di controllo Gravità evento.
  4. Fai clic su Applica.
  5. Seleziona Configurazione > Impostazioni report > Syslog.
  6. Seleziona la casella di controllo Attiva i messaggi syslog.
  7. Nell'elenco Interfaccia di origine, seleziona l'interfaccia NetScreen da cui devono essere inviati i pacchetti syslog.
  8. Nella sezione Server Syslog, seleziona la casella di controllo Attiva e fornisci quanto segue:
    1. IP/Nome host: inserisci l'indirizzo IP Bindplane.
    2. Porta: inserisci il numero di porta Bindplane.
    3. Centro MDR: seleziona il livello di struttura Local0.
    4. Struttura: seleziona il livello della struttura Local0.
  9. Fai clic su Applica.

Tabella di mappatura UDM

Campo log Mappatura UDM Logica
ACTION security_result.action_details Mappato direttamente dal campo ACTION estratto tramite i filtri GROK e KV.
APPLICATION principal.application Mappato direttamente dal campo APPLICATION estratto tramite i filtri GROK e KV.
application target.application Mappato direttamente dal campo application estratto tramite GROK.
attack-name security_result.threat_name Mappato direttamente dal campo attack-name estratto tramite GROK.
bytes-from-client network.sent_bytes Mappato direttamente dal campo bytes-from-client estratto tramite GROK.
bytes-from-server network.received_bytes Mappato direttamente dal campo bytes-from-server estratto tramite GROK.
command target.process.command_line Mappato direttamente dal campo command estratto tramite GROK.
destination-address target.ip Mappato direttamente dal campo destination-address estratto tramite GROK.
destination-port target.port Mappato direttamente dal campo destination-port estratto tramite GROK.
destination-zone additional.fields[].value.string_value Mappato direttamente dal campo destination-zone estratto tramite i filtri GROK e KV. key è impostato su destination-zone.
destination_zone-name security_result.detection_fields[].value Mappato direttamente dal campo destination_zone-name estratto tramite GROK. key è impostato su dstzone.
dst-nat-rule-name security_result.detection_fields[].value Mappato direttamente dal campo dst-nat-rule-name estratto tramite GROK. key è impostato su dst-nat-rule-name.
dst-nat-rule-type security_result.detection_fields[].value Mappato direttamente dal campo dst-nat-rule-type estratto tramite GROK. key è impostato su dst-nat-rule-type.
elapsed-time network.session_duration.seconds Mappato direttamente dal campo elapsed-time estratto tramite GROK.
encrypted security_result.detection_fields[].value Mappato direttamente dal campo encrypted estratto tramite GROK. key è impostato su encrypted.
event_time metadata.event_timestamp Il timestamp viene estratto dal log non elaborato utilizzando vari pattern GROK, dando la priorità a event_time, poi a TIMESTAMP_ISO8601 e infine a SYSLOGTIMESTAMP. Viene poi convertito in un oggetto timestamp.
host principal.hostname, intermediary.hostname Se type è NetScreen, mappato a intermediary.hostname. In caso contrario, viene mappato a principal.hostname.
host_ip intermediary.ip Mappato direttamente dal campo host_ip estratto tramite GROK.
icmp-type network.icmp_type Mappato direttamente dal campo icmp-type estratto tramite GROK.
ident target.application Mappato direttamente dal campo ident estratto tramite i filtri GROK e JSON.
inbound-bytes network.received_bytes Mappato direttamente dal campo inbound-bytes estratto tramite GROK.
inbound-packets network.received_packets Mappato direttamente dal campo inbound-packets estratto tramite GROK.
ip principal.ip, intermediary.ip Se type è NetScreen, mappato a intermediary.ip. In caso contrario, viene mappato a principal.hostname.
message security_result.description Se il messaggio è in formato JSON e il campo log_message_data non è presente, viene utilizzato il campo message come descrizione.
msg_data security_result.summary Mappato direttamente dal campo msg_data estratto tramite GROK.
nat-destination-address target.nat_ip Mappato direttamente dal campo nat-destination-address estratto tramite GROK.
nat-destination-port target.nat_port Mappato direttamente dal campo nat-destination-port estratto tramite GROK.
nat-source-address principal.nat_ip Mappato direttamente dal campo nat-source-address estratto tramite GROK.
nat-source-port principal.nat_port Mappato direttamente dal campo nat-source-port estratto tramite GROK.
outbound-bytes network.sent_bytes Mappato direttamente dal campo outbound-bytes estratto tramite GROK.
outbound-packets network.sent_packets Mappato direttamente dal campo outbound-packets estratto tramite GROK.
packets-from-client network.sent_packets Mappato direttamente dal campo packets-from-client estratto tramite GROK.
packets-from-server network.received_packets Mappato direttamente dal campo packets-from-server estratto tramite GROK.
packet-incoming-interface security_result.detection_fields[].value Mappato direttamente dal campo packet-incoming-interface estratto tramite GROK. key è impostato su packet-incoming-interface.
pid target.process.pid Mappato direttamente dal campo pid estratto tramite i filtri GROK e JSON.
policy-name security_result.rule_name Mappato direttamente dal campo policy-name estratto tramite GROK.
PROFILE additional.fields[].value.string_value Mappato direttamente dal campo PROFILE estratto tramite i filtri GROK e KV. key è impostato su PROFILE.
protocol-id, protocol-name network.ip_protocol Mappato dal campo protocol-id o protocol-name estratto tramite GROK. Il valore viene convertito nell'enum del protocollo IP corrispondente.
REASON additional.fields[].value.string_value Mappato direttamente dal campo REASON estratto tramite i filtri GROK e KV. key è impostato su REASON.
reason security_result.description Mappato direttamente dal campo reason estratto tramite GROK.
rule-name security_result.rule_name Mappato direttamente dal campo rule-name estratto tramite GROK.
SESSION_ID network.session_id Mappato direttamente dal campo SESSION_ID estratto tramite i filtri GROK e KV.
service-name security_result.detection_fields[].value Mappato direttamente dal campo service-name estratto tramite GROK. key è impostato su srvname.
source-address principal.ip Mappato direttamente dal campo source-address estratto tramite GROK.
source-port principal.port Mappato direttamente dal campo source-port estratto tramite GROK.
source-zone additional.fields[].value.string_value Mappato direttamente dal campo source-zone estratto tramite i filtri GROK e KV. key è impostato su source-zone.
source_zone-name security_result.detection_fields[].value Mappato direttamente dal campo source_zone-name estratto tramite GROK. key è impostato su srczone.
src-nat-rule-name security_result.detection_fields[].value Mappato direttamente dal campo src-nat-rule-name estratto tramite GROK. key è impostato su src-nat-rule-name.
src-nat-rule-type security_result.detection_fields[].value Mappato direttamente dal campo src-nat-rule-type estratto tramite GROK. key è impostato su src-nat-rule-type.
subtype metadata.product_event_type Mappato direttamente dal campo subtype estratto tramite GROK.
threat-severity security_result.severity_details Mappato direttamente dal campo threat-severity estratto tramite GROK.
time metadata.event_timestamp Mappato direttamente dal campo time estratto tramite i filtri GROK e JSON. Convertito in oggetto timestamp.
username target.user.userid Mappato direttamente dal campo username estratto tramite GROK.
metadata.log_type Hardcoded a JUNIPER_FIREWALL. Hardcoded su JUNIPER_FIREWALL o NetScreen in base al campo type. Hardcoded a JUNIPER_FIREWALL. Impostato su ALLOW o BLOCK in base alla logica nel parser. Impostato su LOW, MEDIUM, HIGH, INFORMATIONAL o CRITICAL in base ai campi subtype e severity_details.

Modifiche

2025-02-20

Miglioramento:

  • È stata modificata la mappatura di target.user.userid in additional.fields quando user_value inizia con RT_FLOW.

2025-02-06

Miglioramento:

  • Se user_value è UI_LOGIN_EVENT, mappalo a additional.fields.

2025-01-15

Miglioramento:

  • Se user_name ha RT_FLOW_SESSION_DENY, mappalo a security_result.action come BLOCK, altrimenti modifica la mappatura di user_name da target.user.userid a security_result.summary.
  • sec_desc è stato mappato a security_result.description.

2024-10-31

Miglioramento:

  • È stato aggiunto un nuovo pattern Grok per analizzare i log non analizzati.
  • processid mappato a target.process.id
  • TSr e TSi sono stati mappati a additional.fields.
  • È stata aggiunta la funzione gsub per mappare Remote-IP a target.ip.
  • È stata aggiunta la funzione gsub per mappare TSi e Local_IKE_ID a additional.fields.
  • È stato aggiunto il filtro KV a kv_data1 per analizzare i campi non analizzati.

2024-10-30

Miglioramento:

  • È stato aggiunto un nuovo pattern Grok per analizzare il nuovo pattern di log.
  • fw è stato mappato a intermediary.ip.
  • msg1 è stato mappato a security_result.summary.
  • desc è stato mappato a metadata.description.

2024-10-24

Miglioramento:

  • È stato aggiunto un nuovo pattern Grok per analizzare i log nel nuovo formato SYSLOG+KV.
  • local_ip è stato mappato a principal.ip e principal.assest.ip.
  • remote_ip è stato mappato a target.ip e target.asset.ip.

2024-10-11

Miglioramento:

  • hostn è stato mappato a principal.hostname.
  • app è stato mappato a principal.application.
  • pid è stato mappato a principal.process.pid.
  • event_title è stato mappato a metadata.product_event_type.
  • event_message è stato mappato a metadata.description.
  • Local-ip è stato mappato a principal.ip e principal.asset.ip.
  • Sono stati mappati Gateway_Name, vpn, tunnel_id, tunnel_if, Local_IKE_ID, Remote_IKE_ID, AAA_username, VR_id, Traffic_selector, Traffic_selector_Remote_ID, Traffic_selector_local_ID, SA_Type, Reason, threshold, time-period e error-message_data a observer.resource.attribute.labels.
  • target_ip è stato mappato a target.ip e target.asset.ip.
  • data è stato mappato a target.ip e target.asset.ip.

2024-06-28

Miglioramento:

  • Sono stati modificati i pattern Grok per analizzare i log non analizzati.
  • Sono stati aggiunti pattern Grok al campo msg_data per estrarre i campi user_id, principal_host, file_path, pid_2 e server_ip.
  • principal_host è stato mappato a principal.hostname.
  • user_id è stato mappato a target.user.userid.
  • file_path è stato mappato a target.file.full_path.
  • pid_2 è stato mappato a target.process.pid.
  • server_ip è stato mappato a target.ip.
  • event_time è stato mappato correttamente a metadata.event_timestamp rimuovendo rebase se è presente l'anno.

2024-01-22

Correzione di bug:

  • Sono stati aggiunti nuovi pattern Grok per analizzare il campo message con dati chiave-valore.
  • ACTION è stato mappato a security_result.action_details.
  • SESSION_ID è stato mappato a network.session_id.
  • APPLICATION è stato mappato a principal.application.
  • Sono stati mappati pingCtlOwnerIndex, pingCtlTestName, usp_lsys_max_num_rpd, usp_lsys_max_num, urlcategory_risk, application_sub_category, source-zone, destination-zone, NESTED-APPLICATION, CATEGORY, REASON, PROFILE, source_rule, retrans_timer e arp_unicast_mode a additional.fields.
  • time è stato mappato a metadata.event_timestamp.

2023-12-31

Correzione di bug:

  • È stato aggiunto il supporto di un nuovo pattern di log JSON.
  • time è stato mappato a metadata.event_timestamp.
  • host è stato mappato a principal.hostname.
  • ident è stato mappato a target.application.
  • pid è stato mappato a target.process.pid.
  • Sono stati aggiunti pattern Grok per analizzare il campo message.

2023-12-15

Miglioramento:

  • internal-protocol è stato mappato a network.ip_protocol .
  • state è stato mappato a security_result.detection_fields.
  • internal-ip è stato mappato a principal.ip.
  • reflexive-ip è stato mappato a target.ip.
  • internal-port è stato mappato a principle.port.
  • reflexive-port è stato mappato a target.port.
  • local-address è stato mappato a principal.ip.
  • remote-address è stato mappato a target.ip.
  • È stato aggiunto il filtro KV con origine task_summary.
  • dns-server-address è stato mappato a principal.ip.
  • domain-name è stato mappato a principal.administrative_domain.
  • argument1 è stato mappato a network.direction.
  • state è stato mappato a security_result.detection_fields.
  • test-owner è stato mappato a additional.fields.
  • local-initiator è stato mappato a additional.fields.
  • test-name è stato mappato a additional.fields.
  • SPI è stato mappato a additional.fields.
  • AUX-SPI è stato mappato a additional.fields.
  • Type è stato mappato a additional.fields.
  • error-message è stato mappato a security_result.summary.

2023-11-02

Miglioramento:

  • È stato aggiunto un nuovo pattern Grok per analizzare i log del nuovo formato SYSLOG+KV.

2023-08-24

Miglioramento:

  • È stata aggiunta la funzione gsub per rimuovere i caratteri speciali.

2023-08-02

Miglioramento:

  • Pattern Grok modificato per supportare i nuovi formati di log per il tipo NetScreen.
  • È stato aggiunto il supporto per i tipi RT_FLOW_SESSION_CREATE_LS, RT_FLOW_SESSION_CLOSE_LS e RT_FLOW_SESSION_DENY_LS.
  • sent è stato mappato a network.sent_bytes.
  • rcvd è stato mappato a network.received_bytes.

2023-05-05

Miglioramento:

  • rule-name è stato mappato a security_result.rule_id.
  • rulebase-name è stato mappato a security_result.detection_fields.
  • export-id è stato mappato a security_result.detection_fields.
  • repeat-count è stato mappato a security_result.detection_fields.
  • packet-log-id è stato mappato a security_result.detection_fields.
  • alert è stato mappato a is_alert quando il valore è yes.
  • outbound-packets è stato mappato a network.sent_packets.
  • inbound-packets è stato mappato a network.received_packets.
  • outbound-bytes è stato mappato a network.sent_bytes.
  • inbound-bytes è stato mappato a network.received_bytes.

2023-03-08

Miglioramento:

  • application è stato mappato a target.application.
  • reason è stato mappato a security_result.description.
  • application-characteristics è stato mappato a security_result.summary.
  • application-risk è stato mappato a security_result.severity_details.
  • application-category è stato mappato a security_result.detection_fields.
  • application-sub-category è stato mappato a security_result.detection_fields.
  • dst-nat-rule-name è stato mappato a security_result.detection_fields.
  • dst-nat-rule-type è stato mappato a security_result.detection_fields.
  • src-nat-rule-name è stato mappato a security_result.detection_fields.
  • src-nat-rule-type è stato mappato a security_result.detection_fields.
  • encrypted è stato mappato a security_result.detection_fields.
  • nested-application è stato mappato a security_result.detection_fields.
  • packet-incoming-interface è stato mappato a security_result.detection_fields.
  • session-id-32 è stato mappato a network.session_id.
  • packets-from-client è stato mappato a network.sent_packets.
  • packets-from-server è stato mappato a network.received_packets.
  • bytes-from-client è stato mappato a network.sent_bytes.
  • bytes-from-server è stato mappato a network.received_bytes.
  • elapsed-time è stato mappato a network.session_duration.seconds.
  • nat-destination-address è stato mappato a target.nat_ip.
  • nat-destination-port è stato mappato a target.nat_port.
  • source-destination-address è stato mappato a principal.nat_ip.
  • source-destination-port è stato mappato a principal.nat_port.

2023-01-18

Correzione di bug:

  • La condizione non è sensibile alle maiuscole per mappare BLOCK a security_result.action, quando action è drop/DROP.
  • msg_data è stato mappato a security_result.description quando no_app_name è false.
  • threat-severity è stato mappato a security_result.severity.
  • È stato mappato il campo message a metadata.description.
  • app_name è stato mappato a target.application.
  • pid è stato mappato a target.process.pid.
  • desc è stato mappato a metadata.description.
  • username è stato mappato a principal.user.userid.
  • command è stato mappato a target.process.command_line.
  • action è stato mappato a security_result.action_details.
  • sec_description è stato mappato a security_result.description.
  • application-name è stato mappato a network.application_protocol.

2023-01-15

Miglioramento:

  • 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-11-07

Miglioramento:

  • subtype è stato mappato a metadata.product_event_type.
  • attack-name è stato mappato a security_result.threat_name.
  • policy-name è stato mappato a security_result.rule_name.
  • action è stato mappato a security_result.action, dove il valore drop è mappato a BLOCCA e gli altri a PERMETTI.
  • source-interface-name è stato mappato a security_result.detection_fields.
  • destination-interface-name è stato mappato a security_result.detection_fields.
  • source-zone-name è stato mappato a security_result.detection_fields.
  • destination-zone-name è stato mappato a security_result.detection_fields.
  • service-name è stato mappato a security_result.detection_fields.
  • application-name è stato mappato a security_result.detection_fields.
  • Mappato metadata.product_name
  • Mappato metadata.vendor_name

2022-10-04

Miglioramento:

  • Il nome dell'attacco è stato mappato a security_result.rule_name.
  • Le mappature SDM sono state convertite nei seguenti campi dell'UDM:
  • source-address è stato mappato a principal.ip.
  • destination-address è stato mappato a target.ip.
  • source-port è stato mappato a principal.port.
  • host è stato mappato a principal.hostname.
  • bytes-from-server è stato mappato a network.received_bytes.
  • policy-name è stato mappato a security_result.rule_name.
  • protocol-id è stato mappato a network.ip_protocol.

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