Raccogliere i log del firewall Juniper NetScreen
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
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Agenti di raccolta.
- 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
- Accedi alla console Google SecOps.
- Vai a Impostazioni SIEM > Profilo.
- Copia e salva l'ID cliente dalla sezione Dettagli dell'organizzazione.
Installa l'agente Bindplane
Installazione di Windows
- Apri il prompt dei comandi o PowerShell come amministratore.
Esegui questo comando:
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installazione di Linux
- Apri un terminale con privilegi di root o sudo.
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
- Per altre opzioni di installazione, consulta questa guida all'installazione.
Configura l'agente Bindplane per importare Syslog e inviarlo a Google SecOps
Accedi al file di configurazione:
- Individua il file
config.yaml
. In genere si trova nella directory/etc/bindplane-agent/
su Linux o nella directory di installazione su Windows. - Apri il file utilizzando un editor di testo (ad esempio
nano
,vi
o Blocco note).
- Individua il file
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
Sostituisci la porta e l'indirizzo IP come richiesto nella tua infrastruttura.
Sostituisci
<customer_id>
con l'ID cliente effettivo.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
- Accedi all'interfaccia web di Juniper NetScreen.
- Seleziona Configurazione > Impostazioni report > Impostazioni log.
- Seleziona tutte le caselle di controllo Gravità evento.
- Fai clic su Applica.
- Seleziona Configurazione > Impostazioni report > Syslog.
- Seleziona la casella di controllo Attiva i messaggi syslog.
- Nell'elenco Interfaccia di origine, seleziona l'interfaccia NetScreen da cui devono essere inviati i pacchetti syslog.
- Nella sezione Server Syslog, seleziona la casella di controllo Attiva e fornisci quanto segue:
- IP/Nome host: inserisci l'indirizzo IP
Bindplane
. - Porta: inserisci il numero di porta
Bindplane
. - Centro MDR: seleziona il livello di struttura Local0.
- Struttura: seleziona il livello della struttura Local0.
- IP/Nome host: inserisci l'indirizzo IP
- 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
inadditional.fields
quandouser_value
inizia conRT_FLOW
.
2025-02-06
Miglioramento:
- Se
user_value
èUI_LOGIN_EVENT
, mappalo aadditional.fields
.
2025-01-15
Miglioramento:
- Se
user_name
haRT_FLOW_SESSION_DENY
, mappalo asecurity_result.action
comeBLOCK
, altrimenti modifica la mappatura diuser_name
datarget.user.userid
asecurity_result.summary
. sec_desc
è stato mappato asecurity_result.description
.
2024-10-31
Miglioramento:
- È stato aggiunto un nuovo pattern Grok per analizzare i log non analizzati.
processid
mappato atarget.process.id
TSr
eTSi
sono stati mappati aadditional.fields
.- È stata aggiunta la funzione
gsub
per mappareRemote-IP
atarget.ip
. - È stata aggiunta la funzione
gsub
per mappareTSi
eLocal_IKE_ID
aadditional.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 aintermediary.ip
.msg1
è stato mappato asecurity_result.summary
.desc
è stato mappato ametadata.description
.
2024-10-24
Miglioramento:
- È stato aggiunto un nuovo pattern Grok per analizzare i log nel nuovo formato SYSLOG+KV.
local_ip
è stato mappato aprincipal.ip
eprincipal.assest.ip
.remote_ip
è stato mappato atarget.ip
etarget.asset.ip
.
2024-10-11
Miglioramento:
hostn
è stato mappato aprincipal.hostname
.app
è stato mappato aprincipal.application
.pid
è stato mappato aprincipal.process.pid
.event_title
è stato mappato ametadata.product_event_type
.event_message
è stato mappato ametadata.description
.Local-ip
è stato mappato aprincipal.ip
eprincipal.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
eerror-message_data
aobserver.resource.attribute.labels
. target_ip
è stato mappato atarget.ip
etarget.asset.ip
.data
è stato mappato atarget.ip
etarget.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 campiuser_id
,principal_host
,file_path
,pid_2
eserver_ip
. principal_host
è stato mappato aprincipal.hostname
.user_id
è stato mappato atarget.user.userid
.file_path
è stato mappato atarget.file.full_path
.pid_2
è stato mappato atarget.process.pid
.server_ip
è stato mappato atarget.ip
.event_time
è stato mappato correttamente ametadata.event_timestamp
rimuovendorebase
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 asecurity_result.action_details
.SESSION_ID
è stato mappato anetwork.session_id
.APPLICATION
è stato mappato aprincipal.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
earp_unicast_mode
aadditional.fields
. time
è stato mappato ametadata.event_timestamp
.
2023-12-31
Correzione di bug:
- È stato aggiunto il supporto di un nuovo pattern di log JSON.
time
è stato mappato ametadata.event_timestamp
.host
è stato mappato aprincipal.hostname
.ident
è stato mappato atarget.application
.pid
è stato mappato atarget.process.pid
.- Sono stati aggiunti pattern Grok per analizzare il campo
message
.
2023-12-15
Miglioramento:
internal-protocol
è stato mappato anetwork.ip_protocol
.state
è stato mappato asecurity_result.detection_fields
.internal-ip
è stato mappato aprincipal.ip
.reflexive-ip
è stato mappato atarget.ip
.internal-port
è stato mappato aprinciple.port
.reflexive-port
è stato mappato atarget.port
.local-address
è stato mappato aprincipal.ip
.remote-address
è stato mappato atarget.ip
.- È stato aggiunto il filtro KV con origine
task_summary
. dns-server-address
è stato mappato aprincipal.ip
.domain-name
è stato mappato aprincipal.administrative_domain
.argument1
è stato mappato anetwork.direction
.state
è stato mappato asecurity_result.detection_fields
.test-owner
è stato mappato aadditional.fields
.local-initiator
è stato mappato aadditional.fields
.test-name
è stato mappato aadditional.fields
.SPI
è stato mappato aadditional.fields
.AUX-SPI
è stato mappato aadditional.fields
.Type
è stato mappato aadditional.fields
.error-message
è stato mappato asecurity_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
eRT_FLOW_SESSION_DENY_LS
. sent
è stato mappato anetwork.sent_bytes
.rcvd
è stato mappato anetwork.received_bytes
.
2023-05-05
Miglioramento:
rule-name
è stato mappato asecurity_result.rule_id
.rulebase-name
è stato mappato asecurity_result.detection_fields
.export-id
è stato mappato asecurity_result.detection_fields
.repeat-count
è stato mappato asecurity_result.detection_fields
.packet-log-id
è stato mappato asecurity_result.detection_fields
.alert
è stato mappato ais_alert
quando il valore èyes
.outbound-packets
è stato mappato anetwork.sent_packets
.inbound-packets
è stato mappato anetwork.received_packets
.outbound-bytes
è stato mappato anetwork.sent_bytes
.inbound-bytes
è stato mappato anetwork.received_bytes
.
2023-03-08
Miglioramento:
application
è stato mappato atarget.application
.reason
è stato mappato asecurity_result.description
.application-characteristics
è stato mappato asecurity_result.summary
.application-risk
è stato mappato asecurity_result.severity_details
.application-category
è stato mappato asecurity_result.detection_fields
.application-sub-category
è stato mappato asecurity_result.detection_fields
.dst-nat-rule-name
è stato mappato asecurity_result.detection_fields
.dst-nat-rule-type
è stato mappato asecurity_result.detection_fields
.src-nat-rule-name
è stato mappato asecurity_result.detection_fields
.src-nat-rule-type
è stato mappato asecurity_result.detection_fields
.encrypted
è stato mappato asecurity_result.detection_fields
.nested-application
è stato mappato asecurity_result.detection_fields
.packet-incoming-interface
è stato mappato asecurity_result.detection_fields
.session-id-32
è stato mappato anetwork.session_id
.packets-from-client
è stato mappato anetwork.sent_packets
.packets-from-server
è stato mappato anetwork.received_packets
.bytes-from-client
è stato mappato anetwork.sent_bytes
.bytes-from-server
è stato mappato anetwork.received_bytes
.elapsed-time
è stato mappato anetwork.session_duration.seconds
.nat-destination-address
è stato mappato atarget.nat_ip
.nat-destination-port
è stato mappato atarget.nat_port
.source-destination-address
è stato mappato aprincipal.nat_ip
.source-destination-port
è stato mappato aprincipal.nat_port
.
2023-01-18
Correzione di bug:
- La condizione non è sensibile alle maiuscole per mappare
BLOCK
asecurity_result.action
, quandoaction
èdrop/DROP
. msg_data
è stato mappato asecurity_result.description
quandono_app_name
è false.threat-severity
è stato mappato asecurity_result.severity
.- È stato mappato il campo
message
ametadata.description
. app_name
è stato mappato atarget.application
.pid
è stato mappato atarget.process.pid
.desc
è stato mappato ametadata.description
.username
è stato mappato aprincipal.user.userid
.command
è stato mappato atarget.process.command_line
.action
è stato mappato asecurity_result.action_details
.sec_description
è stato mappato asecurity_result.description
.application-name
è stato mappato anetwork.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 ametadata.product_event_type
.attack-name
è stato mappato asecurity_result.threat_name
.policy-name
è stato mappato asecurity_result.rule_name
.action
è stato mappato asecurity_result.action
, dove il valoredrop
è mappato a BLOCCA e gli altri a PERMETTI.source-interface-name
è stato mappato asecurity_result.detection_fields
.destination-interface-name
è stato mappato asecurity_result.detection_fields
.source-zone-name
è stato mappato asecurity_result.detection_fields
.destination-zone-name
è stato mappato asecurity_result.detection_fields
.service-name
è stato mappato asecurity_result.detection_fields
.application-name
è stato mappato asecurity_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 aprincipal.ip
.destination-address
è stato mappato atarget.ip
.source-port
è stato mappato aprincipal.port
.host
è stato mappato aprincipal.hostname
.bytes-from-server
è stato mappato anetwork.received_bytes
.policy-name
è stato mappato asecurity_result.rule_name
.protocol-id
è stato mappato anetwork.ip_protocol
.
Hai bisogno di ulteriore assistenza? Ricevi risposte dai membri della community e dai professionisti di Google SecOps.