Collecter les journaux de pare-feu Juniper NetScreen

Compatible avec:

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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Agents de collecte.
  3. 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

  1. Connectez-vous à la console Google SecOps.
  2. Accédez à Paramètres du SIEM > Profil.
  3. Copiez et sauvegardez le numéro client dans la section Détails de l'organisation.

Installer l'agent Bindplane

Installation de Windows

  1. Ouvrez l'invite de commande ou PowerShell en tant qu'administrateur.
  2. Exécutez la commande suivante :

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

Installation de Linux

  1. Ouvrez un terminal avec des droits root ou sudo.
  2. 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

Configurer l'agent Bindplane pour qu'il ingère les journaux Syslog et les envoie à Google SecOps

  1. Accédez au fichier de configuration:

    1. 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.
    2. Ouvrez le fichier à l'aide d'un éditeur de texte (nano, vi ou Bloc-notes, par exemple).
  2. 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
    
    
  3. Remplacez le port et l'adresse IP dans votre infrastructure si nécessaire.

  4. Remplacez <customer_id> par le numéro client réel.

  5. 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

  1. Connectez-vous à l'interface Web Juniper NetScreen.
  2. Sélectionnez Configuration > Paramètres des rapports > Paramètres des journaux.
  3. Cochez toutes les cases Gravité de l'événement.
  4. Cliquez sur Appliquer.
  5. Sélectionnez Configuration > Paramètres du rapport > Syslog.
  6. Cochez la case Activer les messages syslog.
  7. Dans la liste Source interface (Interface source), sélectionnez l'interface NetScreen à partir de laquelle les paquets syslog doivent être envoyés.
  8. Dans la section Syslog servers (Serveurs Syslog), cochez la case Enable (Activer) et fournissez les informations suivantes :
    1. IP/Hostname (Adresse IP/Nom d'hôte) : saisissez l'adresse IP Bindplane.
    2. Port: saisissez le numéro de port Bindplane.
    3. Équipement MDR: sélectionnez le niveau d'équipement Local0.
    4. Installation: sélectionnez le niveau d'installation Local0.
  9. 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 vers additional.fields lorsque user_value commence par RT_FLOW.

2025-02-06

Amélioration :

  • Si user_value est UI_LOGIN_EVENT, mappez-le sur additional.fields.

2025-01-15

Amélioration :

  • Si user_name contient RT_FLOW_SESSION_DENY, mappez-le sur security_result.action en tant que BLOCK, sinon remplacez le mappage de user_name de target.user.userid par security_result.summary.
  • Mappage de sec_desc sur security_result.description.

2024-10-31

Amélioration :

  • Ajout d'un nouveau modèle Grok pour analyser les journaux non analysés.
  • processid mappé sur target.process.id
  • Mappage de TSr et TSi sur additional.fields.
  • Ajout de la fonction gsub pour mapper Remote-IP sur target.ip.
  • Ajout de la fonction gsub pour mapper TSi et Local_IKE_ID sur additional.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 sur intermediary.ip.
  • Mappage de msg1 sur security_result.summary.
  • Mappage de desc sur metadata.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 sur principal.ip et principal.assest.ip.
  • Mappage de remote_ip sur target.ip et target.asset.ip.

2024-10-11

Amélioration :

  • Mappage de hostn sur principal.hostname.
  • Mappage de app sur principal.application.
  • Mappage de pid sur principal.process.pid.
  • Mappage de event_title sur metadata.product_event_type.
  • Mappage de event_message sur metadata.description.
  • Mappage de Local-ip sur principal.ip et principal.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 et error-message_data sur observer.resource.attribute.labels.
  • Mappage de target_ip sur target.ip et target.asset.ip.
  • Mappage de data sur target.ip et target.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 champs user_id, principal_host, file_path, pid_2 et server_ip.
  • Mappage de principal_host sur principal.hostname.
  • Mappage de user_id sur target.user.userid.
  • Mappage de file_path sur target.file.full_path.
  • Mappage de pid_2 sur target.process.pid.
  • Mappage de server_ip sur target.ip.
  • event_time a été mappé correctement sur metadata.event_timestamp en supprimant rebase 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 sur security_result.action_details.
  • Mappage de SESSION_ID sur network.session_id.
  • Mappage de APPLICATION sur principal.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 et arp_unicast_mode sur additional.fields.
  • Mappage de time sur metadata.event_timestamp.

2023-12-31

Correction de bug:

  • Prise en charge d'un nouveau format de journaux JSON.
  • Mappage de time sur metadata.event_timestamp.
  • Mappage de host sur principal.hostname.
  • Mappage de ident sur target.application.
  • Mappage de pid sur target.process.pid.
  • Ajout de modèles Grok pour analyser le champ message.

2023-12-15

Amélioration :

  • Mappage de internal-protocol sur network.ip_protocol .
  • Mappage de state sur security_result.detection_fields.
  • Mappage de internal-ip sur principal.ip.
  • Mappage de reflexive-ip sur target.ip.
  • Mappage de internal-port sur principle.port.
  • Mappage de reflexive-port sur target.port.
  • Mappage de local-address sur principal.ip.
  • Mappage de remote-address sur target.ip.
  • Ajout d'un filtre KV avec la source task_summary.
  • Mappage de dns-server-address sur principal.ip.
  • Mappage de domain-name sur principal.administrative_domain.
  • Mappage de argument1 sur network.direction.
  • Mappage de state sur security_result.detection_fields.
  • Mappage de test-owner sur additional.fields.
  • Mappage de local-initiator sur additional.fields.
  • Mappage de test-name sur additional.fields.
  • Mappage de SPI sur additional.fields.
  • Mappage de AUX-SPI sur additional.fields.
  • Mappage de Type sur additional.fields.
  • Mappage de error-message sur security_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 et RT_FLOW_SESSION_DENY_LS.
  • Mappage de sent sur network.sent_bytes.
  • Mappage de rcvd sur network.received_bytes.

2023-05-05

Amélioration :

  • Mappage de rule-name sur security_result.rule_id.
  • Mappage de rulebase-name sur security_result.detection_fields.
  • Mappage de export-id sur security_result.detection_fields.
  • Mappage de repeat-count sur security_result.detection_fields.
  • Mappage de packet-log-id sur security_result.detection_fields.
  • Mappage de alert sur is_alert lorsque la valeur est yes.
  • Mappage de outbound-packets sur network.sent_packets.
  • Mappage de inbound-packets sur network.received_packets.
  • Mappage de outbound-bytes sur network.sent_bytes.
  • Mappage de inbound-bytes sur network.received_bytes.

2023-03-08

Amélioration :

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

2023-01-18

Correction de bug:

  • La condition est désormais non sensible à la casse pour mapper BLOCK sur security_result.action, lorsque action est drop/DROP.
  • Mappage de msg_data sur security_result.description lorsque no_app_name est défini sur "false".
  • Mappage de threat-severity sur security_result.severity.
  • Mappage du champ message sur metadata.description.
  • Mappage de app_name sur target.application.
  • Mappage de pid sur target.process.pid.
  • Mappage de desc sur metadata.description.
  • Mappage de username sur principal.user.userid.
  • Mappage de command sur target.process.command_line.
  • Mappage de action sur security_result.action_details.
  • Mappage de sec_description sur security_result.description.
  • Mappage de application-name sur network.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 et UI_DBASE_LOGIN_EVENT.

2022-11-07

Amélioration :

  • Mappage de subtype sur metadata.product_event_type.
  • Mappage de attack-name sur security_result.threat_name.
  • Mappage de policy-name sur security_result.rule_name.
  • action a été mappé sur security_result.action, où la valeur drop est mappée sur BLOQUER les autres sur AUTORISER.
  • Mappage de source-interface-name sur security_result.detection_fields.
  • Mappage de destination-interface-name sur security_result.detection_fields.
  • Mappage de source-zone-name sur security_result.detection_fields.
  • Mappage de destination-zone-name sur security_result.detection_fields.
  • Mappage de service-name sur security_result.detection_fields.
  • Mappage de application-name sur security_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 sur principal.ip.
  • Mappage de destination-address sur target.ip.
  • Mappage de source-port sur principal.port.
  • Mappage de host sur principal.hostname.
  • Mappage de bytes-from-server sur network.received_bytes.
  • Mappage de policy-name sur security_result.rule_name.
  • Mappage de protocol-id sur network.ip_protocol.

Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.