Collecter les journaux de pare-feu Juniper NetScreen
Ce document explique comment configurer l'envoi des journaux du pare-feu Juniper NetScreen à Google Security Operations. L'analyseur extrait les champs à l'aide de modèles Grok, en gérant différents formats syslog et des charges utiles JSON. Il mappe ensuite ces champs extraits sur l'UDM, en classant les événements en connexions réseau, connexions utilisateur, mises à jour d'état ou événements génériques en fonction de la présence de champs spécifiques tels que les adresses IP, les noms d'utilisateur et les ports.
Avant de commencer
- Assurez-vous de disposer d'un accès administrateur à votre pare-feu Juniper NetScreen.
- Assurez-vous de disposer d'une instance Google Security Operations.
Obtenir le fichier d'authentification d'ingestion Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Agents de collecte.
- Téléchargez le fichier d'authentification d'ingestion. Enregistrez le fichier de manière sécurisée sur le système sur lequel Bindplane sera installé.
Obtenir le numéro client Google SecOps
- Connectez-vous à la console Google SecOps.
- Accédez à Paramètres du SIEM > Profil.
- Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.
Installer l'agent Bindplane
Installation de Windows
- Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
Exécutez la commande suivante :
msiexec /i "https://github.com/observIQ/bindplane-agent/releases/latest/download/observiq-otel-collector.msi" /quiet
Installation de Linux
- Ouvrez un terminal avec des droits root ou sudo.
Exécutez la commande suivante :
sudo sh -c "$(curl -fsSlL https://github.com/observiq/bindplane-agent/releases/latest/download/install_unix.sh)" install_unix.sh
Autres ressources d'installation
- Pour plus d'options d'installation, consultez ce guide d'installation.
Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à Google SecOps
Accédez au fichier de configuration:
- Recherchez le fichier
config.yaml
. En règle générale, il se trouve dans le répertoire/etc/bindplane-agent/
sous Linux ou dans le répertoire d'installation sous Windows. - Ouvrez le fichier à l'aide d'un éditeur de texte (
nano
,vi
ou Bloc-notes, par exemple).
- Recherchez le fichier
Modifiez le fichier
config.yaml
comme suit :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
Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.
Remplacez
<customer_id>
par le numéro client réel.Remplacez
/path/to/ingestion-authentication-file.json
par le chemin d'accès où le fichier d'authentification a été enregistré dans la section Obtenir le fichier d'authentification d'ingestion Google SecOps.
Redémarrez l'agent Bindplane pour appliquer les modifications
Pour redémarrer l'agent Bindplane sous Linux, exécutez la commande suivante:
sudo systemctl restart bindplane-agent
Pour redémarrer l'agent Bindplane sous Windows, vous pouvez utiliser la console Services ou saisir la commande suivante:
net stop BindPlaneAgent && net start BindPlaneAgent
Configurer le pare-feu Juniper Networks NetScreen
- Connectez-vous à l'interface Web Juniper NetScreen.
- Sélectionnez Configuration > Paramètres des rapports > Paramètres des journaux.
- Cochez toutes les cases Gravité de l'événement.
- Cliquez sur Appliquer.
- Sélectionnez Configuration > Paramètres du rapport > Syslog.
- Cochez la case Activer les messages syslog.
- Dans la liste Source interface (Interface source), sélectionnez l'interface NetScreen à partir de laquelle les paquets syslog doivent être envoyés.
- Dans la section Syslog servers (Serveurs Syslog), cochez la case Enable (Activer) et fournissez les informations suivantes :
- IP/Hostname (Adresse IP/Nom d'hôte) : saisissez l'adresse IP
Bindplane
. - Port: saisissez le numéro de port
Bindplane
. - Équipement MDR: sélectionnez le niveau d'équipement Local0.
- Installation: sélectionnez le niveau d'installation Local0.
- IP/Hostname (Adresse IP/Nom d'hôte) : saisissez l'adresse IP
- Cliquez sur Appliquer.
Tableau de mappage UDM
Champ de journal | Mappage UDM | Logique |
---|---|---|
ACTION |
security_result.action_details |
Mappé directement à partir du champ ACTION extrait via les filtres GROK et KV. |
APPLICATION |
principal.application |
Mappé directement à partir du champ APPLICATION extrait via les filtres GROK et KV. |
application |
target.application |
Mappé directement à partir du champ application extrait via GROK. |
attack-name |
security_result.threat_name |
Mappé directement à partir du champ attack-name extrait via GROK. |
bytes-from-client |
network.sent_bytes |
Mappé directement à partir du champ bytes-from-client extrait via GROK. |
bytes-from-server |
network.received_bytes |
Mappé directement à partir du champ bytes-from-server extrait via GROK. |
command |
target.process.command_line |
Mappé directement à partir du champ command extrait via GROK. |
destination-address |
target.ip |
Mappé directement à partir du champ destination-address extrait via GROK. |
destination-port |
target.port |
Mappé directement à partir du champ destination-port extrait via GROK. |
destination-zone |
additional.fields[].value.string_value |
Mappé directement à partir du champ destination-zone extrait via les filtres GROK et KV. La valeur de key est définie sur destination-zone . |
destination_zone-name |
security_result.detection_fields[].value |
Mappé directement à partir du champ destination_zone-name extrait via GROK. La valeur de key est définie sur dstzone . |
dst-nat-rule-name |
security_result.detection_fields[].value |
Mappé directement à partir du champ dst-nat-rule-name extrait via GROK. La valeur de key est définie sur dst-nat-rule-name . |
dst-nat-rule-type |
security_result.detection_fields[].value |
Mappé directement à partir du champ dst-nat-rule-type extrait via GROK. La valeur de key est définie sur dst-nat-rule-type . |
elapsed-time |
network.session_duration.seconds |
Mappé directement à partir du champ elapsed-time extrait via GROK. |
encrypted |
security_result.detection_fields[].value |
Mappé directement à partir du champ encrypted extrait via GROK. La valeur de key est définie sur encrypted . |
event_time |
metadata.event_timestamp |
Le code temporel est extrait du journal brut à l'aide de différents modèles GROK, en donnant la priorité à event_time , puis à TIMESTAMP_ISO8601 , et enfin à SYSLOGTIMESTAMP . Il est ensuite converti en objet horodatage. |
host |
principal.hostname , intermediary.hostname |
Si type est NetScreen , mappé sur intermediary.hostname . Sinon, mappé sur principal.hostname . |
host_ip |
intermediary.ip |
Mappé directement à partir du champ host_ip extrait via GROK. |
icmp-type |
network.icmp_type |
Mappé directement à partir du champ icmp-type extrait via GROK. |
ident |
target.application |
Mappé directement à partir du champ ident extrait via des filtres GROK et JSON. |
inbound-bytes |
network.received_bytes |
Mappé directement à partir du champ inbound-bytes extrait via GROK. |
inbound-packets |
network.received_packets |
Mappé directement à partir du champ inbound-packets extrait via GROK. |
ip |
principal.ip , intermediary.ip |
Si type est NetScreen , mappé sur intermediary.ip . Sinon, mappé sur principal.hostname . |
message |
security_result.description |
Si le message est au format JSON et que le champ log_message_data n'est pas présent, le champ message est utilisé comme description. |
msg_data |
security_result.summary |
Mappé directement à partir du champ msg_data extrait via GROK. |
nat-destination-address |
target.nat_ip |
Mappé directement à partir du champ nat-destination-address extrait via GROK. |
nat-destination-port |
target.nat_port |
Mappé directement à partir du champ nat-destination-port extrait via GROK. |
nat-source-address |
principal.nat_ip |
Mappé directement à partir du champ nat-source-address extrait via GROK. |
nat-source-port |
principal.nat_port |
Mappé directement à partir du champ nat-source-port extrait via GROK. |
outbound-bytes |
network.sent_bytes |
Mappé directement à partir du champ outbound-bytes extrait via GROK. |
outbound-packets |
network.sent_packets |
Mappé directement à partir du champ outbound-packets extrait via GROK. |
packets-from-client |
network.sent_packets |
Mappé directement à partir du champ packets-from-client extrait via GROK. |
packets-from-server |
network.received_packets |
Mappé directement à partir du champ packets-from-server extrait via GROK. |
packet-incoming-interface |
security_result.detection_fields[].value |
Mappé directement à partir du champ packet-incoming-interface extrait via GROK. La valeur de key est définie sur packet-incoming-interface . |
pid |
target.process.pid |
Mappé directement à partir du champ pid extrait via des filtres GROK et JSON. |
policy-name |
security_result.rule_name |
Mappé directement à partir du champ policy-name extrait via GROK. |
PROFILE |
additional.fields[].value.string_value |
Mappé directement à partir du champ PROFILE extrait via les filtres GROK et KV. La valeur de key est définie sur PROFILE . |
protocol-id , protocol-name |
network.ip_protocol |
Mappé à partir du champ protocol-id ou protocol-name extrait via GROK. La valeur est convertie en énumération de protocole IP correspondante. |
REASON |
additional.fields[].value.string_value |
Mappé directement à partir du champ REASON extrait via les filtres GROK et KV. La valeur de key est définie sur REASON . |
reason |
security_result.description |
Mappé directement à partir du champ reason extrait via GROK. |
rule-name |
security_result.rule_name |
Mappé directement à partir du champ rule-name extrait via GROK. |
SESSION_ID |
network.session_id |
Mappé directement à partir du champ SESSION_ID extrait via les filtres GROK et KV. |
service-name |
security_result.detection_fields[].value |
Mappé directement à partir du champ service-name extrait via GROK. La valeur de key est définie sur srvname . |
source-address |
principal.ip |
Mappé directement à partir du champ source-address extrait via GROK. |
source-port |
principal.port |
Mappé directement à partir du champ source-port extrait via GROK. |
source-zone |
additional.fields[].value.string_value |
Mappé directement à partir du champ source-zone extrait via les filtres GROK et KV. La valeur de key est définie sur source-zone . |
source_zone-name |
security_result.detection_fields[].value |
Mappé directement à partir du champ source_zone-name extrait via GROK. La valeur de key est définie sur srczone . |
src-nat-rule-name |
security_result.detection_fields[].value |
Mappé directement à partir du champ src-nat-rule-name extrait via GROK. La valeur de key est définie sur src-nat-rule-name . |
src-nat-rule-type |
security_result.detection_fields[].value |
Mappé directement à partir du champ src-nat-rule-type extrait via GROK. La valeur de key est définie sur src-nat-rule-type . |
subtype |
metadata.product_event_type |
Mappé directement à partir du champ subtype extrait via GROK. |
threat-severity |
security_result.severity_details |
Mappé directement à partir du champ threat-severity extrait via GROK. |
time |
metadata.event_timestamp |
Mappé directement à partir du champ time extrait via des filtres GROK et JSON. Converti en objet horodatage. |
username |
target.user.userid |
Mappé directement à partir du champ username extrait via GROK. |
metadata.log_type |
Codé en dur sur JUNIPER_FIREWALL . Code codé en dur sur JUNIPER_FIREWALL ou NetScreen en fonction du champ type . Codé en dur sur JUNIPER_FIREWALL . Définissez la valeur sur ALLOW ou BLOCK en fonction de la logique de l'analyseur. Définissez la valeur sur LOW, MEDIUM, HIGH, INFORMATIONAL ou CRITICAL en fonction des champs subtype et severity_details . |
Modifications
2025-02-20
Amélioration :
- Modification du mappage de
target.user.userid
versadditional.fields
lorsqueuser_value
commence parRT_FLOW
.
2025-02-06
Amélioration :
- Si
user_value
estUI_LOGIN_EVENT
, mappez-le suradditional.fields
.
2025-01-15
Amélioration :
- Si
user_name
contientRT_FLOW_SESSION_DENY
, mappez-le sursecurity_result.action
en tant queBLOCK
, sinon remplacez le mappage deuser_name
detarget.user.userid
parsecurity_result.summary
. - Mappage de
sec_desc
sursecurity_result.description
.
2024-10-31
Amélioration :
- Ajout d'un nouveau modèle Grok pour analyser les journaux non analysés.
processid
mappé surtarget.process.id
- Mappage de
TSr
etTSi
suradditional.fields
. - Ajout de la fonction
gsub
pour mapperRemote-IP
surtarget.ip
. - Ajout de la fonction
gsub
pour mapperTSi
etLocal_IKE_ID
suradditional.fields
. - Ajout d'un filtre KV à
kv_data1
pour analyser les champs non analysés.
2024-10-30
Amélioration :
- Ajout d'un nouveau format Grok pour analyser le nouveau format de journal.
- Mappage de
fw
surintermediary.ip
. - Mappage de
msg1
sursecurity_result.summary
. - Mappage de
desc
surmetadata.description
.
2024-10-24
Amélioration :
- Ajout d'un nouveau format Grok pour analyser les journaux au nouveau format SYSLOG+KV.
- Mappage de
local_ip
surprincipal.ip
etprincipal.assest.ip
. - Mappage de
remote_ip
surtarget.ip
ettarget.asset.ip
.
2024-10-11
Amélioration :
- Mappage de
hostn
surprincipal.hostname
. - Mappage de
app
surprincipal.application
. - Mappage de
pid
surprincipal.process.pid
. - Mappage de
event_title
surmetadata.product_event_type
. - Mappage de
event_message
surmetadata.description
. - Mappage de
Local-ip
surprincipal.ip
etprincipal.asset.ip
. - Mappage de
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
eterror-message_data
surobserver.resource.attribute.labels
. - Mappage de
target_ip
surtarget.ip
ettarget.asset.ip
. - Mappage de
data
surtarget.ip
ettarget.asset.ip
.
2024-06-28
Amélioration :
- Modification des modèles Grok pour analyser les journaux non analysés.
- Ajout de modèles Grok sur le champ
msg_data
pour extraire les champsuser_id
,principal_host
,file_path
,pid_2
etserver_ip
. - Mappage de
principal_host
surprincipal.hostname
. - Mappage de
user_id
surtarget.user.userid
. - Mappage de
file_path
surtarget.file.full_path
. - Mappage de
pid_2
surtarget.process.pid
. - Mappage de
server_ip
surtarget.ip
. event_time
a été mappé correctement surmetadata.event_timestamp
en supprimantrebase
si l'année est présente.
2024-01-22
Correction de bug:
- Ajout de nouveaux modèles Grok pour analyser le champ
message
avec des données clé-valeur. - Mappage de
ACTION
sursecurity_result.action_details
. - Mappage de
SESSION_ID
surnetwork.session_id
. - Mappage de
APPLICATION
surprincipal.application
. - Mappage de
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
etarp_unicast_mode
suradditional.fields
. - Mappage de
time
surmetadata.event_timestamp
.
2023-12-31
Correction de bug:
- Prise en charge d'un nouveau format de journaux JSON.
- Mappage de
time
surmetadata.event_timestamp
. - Mappage de
host
surprincipal.hostname
. - Mappage de
ident
surtarget.application
. - Mappage de
pid
surtarget.process.pid
. - Ajout de modèles Grok pour analyser le champ
message
.
2023-12-15
Amélioration :
- Mappage de
internal-protocol
surnetwork.ip_protocol
. - Mappage de
state
sursecurity_result.detection_fields
. - Mappage de
internal-ip
surprincipal.ip
. - Mappage de
reflexive-ip
surtarget.ip
. - Mappage de
internal-port
surprinciple.port
. - Mappage de
reflexive-port
surtarget.port
. - Mappage de
local-address
surprincipal.ip
. - Mappage de
remote-address
surtarget.ip
. - Ajout d'un filtre KV avec la source
task_summary
. - Mappage de
dns-server-address
surprincipal.ip
. - Mappage de
domain-name
surprincipal.administrative_domain
. - Mappage de
argument1
surnetwork.direction
. - Mappage de
state
sursecurity_result.detection_fields
. - Mappage de
test-owner
suradditional.fields
. - Mappage de
local-initiator
suradditional.fields
. - Mappage de
test-name
suradditional.fields
. - Mappage de
SPI
suradditional.fields
. - Mappage de
AUX-SPI
suradditional.fields
. - Mappage de
Type
suradditional.fields
. - Mappage de
error-message
sursecurity_result.summary
.
2023-11-02
Amélioration :
- Ajout d'un nouveau format Grok pour analyser les journaux du nouveau format
SYSLOG+KV
.
2023-08-24
Amélioration :
- Ajout de la fonction gsub pour supprimer les caractères spéciaux.
2023-08-02
Amélioration :
- Modèle Grok modifié pour prendre en charge les nouveaux formats de journaux pour le type NetScreen.
- Ajout de la prise en charge des types
RT_FLOW_SESSION_CREATE_LS
,RT_FLOW_SESSION_CLOSE_LS
etRT_FLOW_SESSION_DENY_LS
. - Mappage de
sent
surnetwork.sent_bytes
. - Mappage de
rcvd
surnetwork.received_bytes
.
2023-05-05
Amélioration :
- Mappage de
rule-name
sursecurity_result.rule_id
. - Mappage de
rulebase-name
sursecurity_result.detection_fields
. - Mappage de
export-id
sursecurity_result.detection_fields
. - Mappage de
repeat-count
sursecurity_result.detection_fields
. - Mappage de
packet-log-id
sursecurity_result.detection_fields
. - Mappage de
alert
suris_alert
lorsque la valeur estyes
. - Mappage de
outbound-packets
surnetwork.sent_packets
. - Mappage de
inbound-packets
surnetwork.received_packets
. - Mappage de
outbound-bytes
surnetwork.sent_bytes
. - Mappage de
inbound-bytes
surnetwork.received_bytes
.
2023-03-08
Amélioration :
- Mappage de
application
surtarget.application
. - Mappage de
reason
sursecurity_result.description
. - Mappage de
application-characteristics
sursecurity_result.summary
. - Mappage de
application-risk
sursecurity_result.severity_details
. - Mappage de
application-category
sursecurity_result.detection_fields
. - Mappage de
application-sub-category
sursecurity_result.detection_fields
. - Mappage de
dst-nat-rule-name
sursecurity_result.detection_fields
. - Mappage de
dst-nat-rule-type
sursecurity_result.detection_fields
. - Mappage de
src-nat-rule-name
sursecurity_result.detection_fields
. - Mappage de
src-nat-rule-type
sursecurity_result.detection_fields
. - Mappage de
encrypted
sursecurity_result.detection_fields
. - Mappage de
nested-application
sursecurity_result.detection_fields
. - Mappage de
packet-incoming-interface
sursecurity_result.detection_fields
. - Mappage de
session-id-32
surnetwork.session_id
. - Mappage de
packets-from-client
surnetwork.sent_packets
. - Mappage de
packets-from-server
surnetwork.received_packets
. - Mappage de
bytes-from-client
surnetwork.sent_bytes
. - Mappage de
bytes-from-server
surnetwork.received_bytes
. - Mappage de
elapsed-time
surnetwork.session_duration.seconds
. - Mappage de
nat-destination-address
surtarget.nat_ip
. - Mappage de
nat-destination-port
surtarget.nat_port
. - Mappage de
source-destination-address
surprincipal.nat_ip
. - Mappage de
source-destination-port
surprincipal.nat_port
.
2023-01-18
Correction de bug:
- La condition est désormais non sensible à la casse pour mapper
BLOCK
sursecurity_result.action
, lorsqueaction
estdrop/DROP
. - Mappage de
msg_data
sursecurity_result.description
lorsqueno_app_name
est défini sur "false". - Mappage de
threat-severity
sursecurity_result.severity
. - Mappage du champ
message
surmetadata.description
. - Mappage de
app_name
surtarget.application
. - Mappage de
pid
surtarget.process.pid
. - Mappage de
desc
surmetadata.description
. - Mappage de
username
surprincipal.user.userid
. - Mappage de
command
surtarget.process.command_line
. - Mappage de
action
sursecurity_result.action_details
. - Mappage de
sec_description
sursecurity_result.description
. - Mappage de
application-name
surnetwork.application_protocol
.
2023-01-15
Amélioration :
- Modèle Grok modifié pour prendre en charge les journaux non analysés contenant les types
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
etUI_DBASE_LOGIN_EVENT
.
2022-11-07
Amélioration :
- Mappage de
subtype
surmetadata.product_event_type
. - Mappage de
attack-name
sursecurity_result.threat_name
. - Mappage de
policy-name
sursecurity_result.rule_name
. action
a été mappé sursecurity_result.action
, où la valeurdrop
est mappée sur BLOQUER les autres sur AUTORISER.- Mappage de
source-interface-name
sursecurity_result.detection_fields
. - Mappage de
destination-interface-name
sursecurity_result.detection_fields
. - Mappage de
source-zone-name
sursecurity_result.detection_fields
. - Mappage de
destination-zone-name
sursecurity_result.detection_fields
. - Mappage de
service-name
sursecurity_result.detection_fields
. - Mappage de
application-name
sursecurity_result.detection_fields
. metadata.product_name
mappémetadata.vendor_name
mappé
2022-10-04
Amélioration :
- Mappage de "nom-attaque" sur "security_result.rule_name".
- Les mappages SDM ont été convertis dans les champs suivants de l'UDM :
- Mappage de
source-address
surprincipal.ip
. - Mappage de
destination-address
surtarget.ip
. - Mappage de
source-port
surprincipal.port
. - Mappage de
host
surprincipal.hostname
. - Mappage de
bytes-from-server
surnetwork.received_bytes
. - Mappage de
policy-name
sursecurity_result.rule_name
. - Mappage de
protocol-id
surnetwork.ip_protocol
.
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.