Collecter les journaux Pulse Secure

Compatible avec:

Ce document explique comment collecter les journaux Pulse Secure à l'aide d'un transfert Google Security Operations.

Pour en savoir plus, consultez la section Présentation de l'ingestion de données dans Google Security Operations.

Un libellé d'ingestion identifie l'analyseur qui normalise les données de journal brutes au format UDM structuré. Les informations de ce document s'appliquent à l'analyseur avec le libellé d'ingestion PULSE_SECURE_VPN.

Configurer le VPN Pulse Secure

Pour configurer le VPN Pulse Secure, procédez comme suit:

  • Configurer le VPN Pulse Secure version 8.3R3 et antérieure
  • Configurer le VPN Pulse Secure version 8.3R4 et ultérieure

Configurer le VPN Pulse Secure version 8.3R3 et antérieure

  1. Connectez-vous à la console Pulse Connect Secure.
  2. Dans la console Pulse Connect Secure, sélectionnez System (Système) > Log/monitoring (Journalisation/Surveillance) > Settings (Paramètres). Vous pouvez sélectionner Paramètres dans l'onglet Événements, Accès des utilisateurs ou Accès des administrateurs.
  3. Dans la section Sélectionner les événements à consigner, cochez toutes les cases correspondant aux événements.
  4. Dans la section Syslog servers (Serveurs Syslog), procédez comme suit :
    1. Dans le champ Server name/IP (Nom/Adresse IP du serveur), spécifiez l'adresse IP du forwarder Google Security Operations.
    2. Dans la liste Installation, sélectionnez LOCAL0. La liste Facility (Équipement) fournit huit équipements: LOCAL0 à LOCAL7. Vous pouvez utiliser l'un de ces paramètres pour mapper les installations sur votre serveur syslog.
    3. Dans la liste Type, sélectionnez UDP ou TCP.
  5. Cliquez sur Ajouter.
  6. Facultatif: Pour ajouter plusieurs serveurs syslog pour les journaux d'événements, d'accès administrateur ou d'accès utilisateur, répétez les étapes 2 à 4.
  7. Cliquez sur Enregistrer les modifications.
  8. Pour vous assurer que le format de journal standard est défini par défaut, procédez comme suit :
    1. Ouvrez la console Pulse Connect Secure.
    2. Dans les onglets Événements, Accès utilisateur et Accès administrateur, définissez Filtres sur Standard.
    3. Si le filtre standard n'est pas défini comme filtre par défaut, cliquez sur Définir comme valeur par défaut.
    4. Cliquez sur Enregistrer.

Configurer le VPN Pulse Secure version 8.3R4 et ultérieure

  1. Dans la console Pulse Connect sécurisé, cliquez sur l'onglet Événements, Accès utilisateur ou Accès administrateur, puis définissez Filtres sur Nouveau filtre.
  2. Dans le champ Nom du filtre, saisissez un nom pour le filtre.
  3. Dans la section Format d'exportation, sélectionnez Personnalisé, puis saisissez le format suivant dans le champ:

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. Cliquez sur Enregistrer.

  5. Selon la version de votre appareil, procédez comme suit pour activer la configuration syslog:

    • Activer la journalisation syslog sur le VPN Pulse Secure
    • Activer la journalisation syslog sur Ivanti Connect Secure

Activer la journalisation syslog sur le VPN Pulse Secure

  1. Dans la console Pulse Connect Secure, sélectionnez System (Système) > Log/monitoring (Journal/Surveillance) > Settings (Paramètres). Vous pouvez sélectionner Paramètres dans l'onglet Événements, Accès des utilisateurs ou Accès des administrateurs.
  2. Dans la section Sélectionner les événements à consigner, cochez toutes les cases à cocher, à l'exception de celles pour Accès HTML5, Messages de contrôle d'admission et Requêtes non authentifiées.
  3. Dans le champ Serveur Syslog, saisissez des informations sur les serveurs Syslog.
  4. Dans la section Syslog servers (Serveurs Syslog), procédez comme suit :
    1. Dans le champ Server name/IP (Nom/Adresse IP du serveur), saisissez le nom du serveur ou l'adresse IP du transpondeur Google Security Operations.
    2. Dans la liste Installation, sélectionnez LOCAL0.
    3. Dans la liste Filter (Filtre), sélectionnez le filtre que vous avez créé précédemment.
  5. Cliquez sur Ajouter.
  6. Facultatif: Pour ajouter plusieurs serveurs syslog pour les journaux d'événements, d'accès administrateur ou d'accès utilisateur, répétez les étapes 2 à 4.
  7. Cliquez sur Enregistrer les modifications.

Activer la journalisation syslog sur Ivanti Connect Secure

  1. Dans la console Pulse Connect sécurisé, cliquez sur l'onglet Événements, Accès utilisateur ou Accès administrateur, puis sélectionnez Filtres.
  2. Cliquez sur l'onglet Nouveau filtre.
  3. Dans la section Format d'exportation, sélectionnez Personnalisé, puis saisissez le format suivant dans le champ:

    [SecureConnect] %date% %time% - %node% - [%sourceip%] %user%(%realm%)[%role%] - %msg%

  4. Cliquez sur Enregistrer.

  5. Cliquez sur System (Système) > Log/monitoring (Journal/Surveillance), puis sélectionnez l'onglet Settings (Paramètres).

  6. Dans le champ Taille maximale des journaux, spécifiez la taille maximale des journaux et sélectionnez les événements à consigner.

  7. Spécifiez la configuration du serveur comme suit:

    1. Dans le champ Server name/IP (Nom/Adresse IP du serveur), spécifiez le nom de domaine complet ou l'adresse IP du forwarder Google Security Operations pour le serveur syslog.

      Si vous sélectionnez Transport Layer Security (TLS) dans la liste des types, le nom du serveur doit correspondre au CN dans le subjectDN du certificat obtenu auprès du serveur.

    2. Dans la liste Facility (Équipement), sélectionnez un niveau d'équipement de serveur syslog.

    3. Dans la liste Type, sélectionnez le type de connexion au serveur syslog comme UDP, TCP ou TLS. TLS utilise des protocoles cryptographiques pour assurer une communication sécurisée.

      Si vous sélectionnez TLS, sélectionnez le certificat client installé à utiliser pour authentifier le serveur syslog. Les certificats client sont définis dans la fenêtre Configuration > Certificats > Certificats d'authentification client. Les certificats client doivent être installés sur l'appareil avant de pouvoir être utilisés. Contactez votre autorité de certification pour obtenir le certificat.

    4. Dans la liste Filtre, sélectionnez Personnalisé.

  8. Cliquez sur Ajouter.

Configurer le transfert Google Security Operations pour ingérer les journaux Pulse Secure

  1. Sélectionnez Paramètres du SIEM > Transferts.
  2. Cliquez sur Ajouter un forwarder.
  3. Dans le champ Nom du forwarder, saisissez un nom unique pour le forwarder.
  4. Cliquez sur Envoyer, puis sur Confirmer. Le forwarder est ajouté, et la fenêtre Ajouter une configuration de collecteur s'affiche.
  5. Dans le champ Nom du collecteur, saisissez un nom unique pour le collecteur.
  6. Sélectionnez Pulse Secure comme Type de journal.
  7. Sélectionnez Syslog comme type de collecteur.
  8. Configurez les paramètres d'entrée obligatoires suivants :
    • Protocole: spécifiez le protocole de connexion utilisé par le collecteur pour écouter les données syslog.
    • Address (Adresse) : spécifiez l'adresse IP ou le nom d'hôte cible où le collecteur réside et écoute les données syslog.
    • Port: spécifiez le port cible sur lequel se trouve le collecteur et qui écoute les données syslog.
  9. Cliquez sur Envoyer.

Pour en savoir plus sur les transferts Google Security Operations, consultez Gérer les configurations de transfert via l'interface utilisateur de Google Security Operations.

Si vous rencontrez des problèmes lors de la création de transmetteurs, contactez l'assistance Google Security Operations.

Référence de mappage de champ

Cet analyseur extrait des champs des journaux VPN Pulse Secure, et gère à la fois les formats Windows Event Logs et syslog. Il normalise les différentes structures de journaux dans un format commun, en catégorisant les événements tels que les connexions, les déconnexions, les connexions et les modifications de règles, en les enrichissant de données contextuelles telles que les agents utilisateur, les adresses IP et les codes temporels.

Tableau de mappage UDM

Champ de journal Mappage UDM Logique
action security_result.action_details Mappé directement à partir du champ action.
application principal.application Mappé directement à partir du champ application.
bytes_read network.received_bytes Mappé directement à partir du champ bytes_read et converti en entier non signé.
bytes_written network.sent_bytes Mappé directement à partir du champ bytes_written et converti en entier non signé.
client_host principal.hostname, principal.asset.hostname Mappé directement à partir du champ client_host.
cmd principal.process.command_line Mappé directement à partir du champ cmd.
connection_status security_result.detection_fields.value.string_value Mappé directement à partir du champ connection_status.
data_time metadata.event_timestamp.seconds Extrait du champ data_time à l'aide de différents formats de code temporel (MM-dd-aaaa HH:mm:ss Z, RFC 3339, ISO8601, MMM d HH:mm:ss, MMM d HH:mm:ss).
devname principal.hostname, principal.asset.hostname Mappé directement à partir du champ devname.
dstip target.ip, target.asset.ip Mappé directement à partir du champ dstip.
dstport target.port Mappé directement à partir du champ dstport et converti en entier.
dstcountry target.location.country_or_region Mappé directement à partir du champ dstcountry s'il n'est pas défini sur "Réservé" ou vide.
duration network.session_duration.seconds Mappé directement à partir du champ duration et converti en entier.
dvc intermediary.hostname ou intermediary.ip Si le champ dvc peut être converti en adresse IP, il est mappé sur intermediary.ip. Sinon, il est mappé sur intermediary.hostname.
dvc_hostname intermediary.hostname, principal.hostname, principal.asset.hostname ou intermediary.ip, principal.ip, principal.asset.ip Si le champ dvc_hostname peut être converti en adresse IP, il est mappé sur les champs IP respectifs. Sinon, il est mappé sur les champs de nom d'hôte respectifs.
event_type metadata.product_event_type Mappé directement à partir du champ event_type.
failure_reason security_result.description Mappé directement à partir du champ failure_reason. Si le message contient "because host" (en raison de l'hôte), le texte "host" est ajouté au début du motif d'échec.
has_principal event.idm.read_only_udm.principal (présence) Définissez cette valeur sur "true" si des champs principaux sont renseignés, sinon sur "false". Dérivé par la logique de l'analyseur.
has_target event.idm.read_only_udm.target (présence) Définissez cette valeur sur "true" si des champs cibles sont renseignés, sinon sur "false". Dérivé par la logique de l'analyseur.
has_target_user event.idm.read_only_udm.target.user.userid (présence) Défini sur "true" si target.user.userid est renseigné, sinon sur "false". Dérivé de la logique de l'analyseur.
host_ip principal.ip, principal.asset.ip Mappé directement à partir du champ host_ip.
host_mac principal.mac Mappé directement à partir du champ host_mac, en remplaçant les traits d'union par des deux-points.
http_method network.http.method Mappé directement à partir du champ http_method.
http_response network.http.response_code Mappé directement à partir du champ http_response et converti en entier.
info_desc about.labels.value Mappé directement à partir du champ info_desc.
ip_new target.ip, target.asset.ip Mappé directement à partir du champ ip_new.
level security_result.severity, security_result.severity_details security_result.severity est dérivé du champ level ("error"/"warning" -> HIGH, "notice" -> MEDIUM, "information"/"info" -> LOW). La valeur brute de level est également mappée sur security_result.severity_details.
logid metadata.product_log_id Mappé directement à partir du champ logid.
locip principal.ip, principal.asset.ip Mappé directement à partir du champ locip.
message metadata.description Permet d'extraire différents champs à l'aide de filtres grok et kv. Si le message contient "EventID", il est traité comme un journal des événements Windows.
message_info metadata.description Mappé directement sur metadata.description s'il n'est pas utilisé dans des modèles grok plus spécifiques.
Message metadata.product_event_type, metadata.description Si le champ msg est présent, le type de produit est extrait et mappé sur metadata.product_event_type, et le message restant est mappé sur metadata.description.
msg_hostname principal.hostname, principal.asset.hostname Mappé directement à partir du champ msg_hostname.
msg_ip principal.ip, principal.asset.ip Mappé directement à partir du champ msg_ip.
msg_user_agent network.http.user_agent, network.http.parsed_user_agent, metadata.product_version La chaîne user-agent est mappée sur network.http.user_agent, l'user-agent analysé est mappé sur network.http.parsed_user_agent et la version du produit (le cas échéant) est mappée sur metadata.product_version.
network_duration network.session_duration.seconds Mappé directement à partir du champ network_duration et converti en entier.
policyid security_result.rule_id Mappé directement à partir du champ policyid.
policyname security_result.rule_name Mappé directement à partir du champ policyname.
policytype security_result.rule_type Mappé directement à partir du champ policytype.
priority_code about.labels.value Mappé directement à partir du champ priority_code et également utilisé pour dériver about.labels.value pour la clé "Sévérité" (voir Logique).
prod_name metadata.product_name Mappé directement à partir du champ prod_name.
product_type metadata.product_event_type Mappé directement à partir du champ product_type.
product_version metadata.product_version Mappé directement à partir du champ product_version.
proto network.ip_protocol Mappé sur network.ip_protocol après avoir été converti en nom de protocole IP à l'aide d'une recherche.
pwd principal.process.file.full_path Mappé directement à partir du champ pwd.
domaine principal.group.attribute.labels.value Mappé directement à partir du champ realm.
rcvdbyte network.received_bytes Mappé directement à partir du champ rcvdbyte et converti en entier non signé.
remip target.ip Mappé directement à partir du champ remip.
resource_name target.resource.name Mappé directement à partir du champ resource_name après suppression des espaces blancs de début et de fin, ainsi que des traits d'union.
resource_status security_result.description Mappé directement à partir du champ resource_status.
resource_user_group principal.user.group_identifiers Mappé directement à partir du champ resource_user_group.
resource_user_name principal.user.userid Mappé directement à partir du champ resource_user_name.
rôles principal.user.group_identifiers Mappé directement à partir du champ roles.
sentbyte network.sent_bytes Mappé directement à partir du champ sentbyte et converti en entier non signé.
session_id network.session_id Mappé directement à partir du champ session_id.
sessionid network.session_id Mappé directement à partir du champ sessionid.
srcip principal.ip, principal.asset.ip Mappé directement à partir du champ srcip.
srcport principal.port Mappé directement à partir du champ srcport et converti en entier.
srccountry principal.location.country_or_region Mappé directement à partir du champ srccountry s'il n'est pas défini sur "Réservé" ou vide.
subtype metadata.product_event_type À utiliser conjointement avec type pour former metadata.product_event_type.
target_file target.file.full_path Mappé directement à partir du champ target_file.
target_host target.hostname, target.asset.hostname Mappé directement à partir du champ target_host.
target_ip target.ip, target.asset.ip Mappé directement à partir du champ target_ip.
target_port target.port Mappé directement à partir du champ target_port et converti en entier.
target_url target.url Mappé directement à partir du champ target_url.
temps metadata.event_timestamp.seconds Extrait du champ time au format aaaa-MM-jj HH:mm:ss.
type metadata.product_event_type À utiliser conjointement avec subtype pour former metadata.product_event_type.
u_event_source_ip principal.ip, principal.asset.ip ou target.ip Si target_ip ou target_host sont présents, u_event_source_ip est mappé sur principal.ip et principal.asset.ip. Sinon, si target_ip, target_host et target_url sont tous vides, u_event_source_ip est mappé sur target.ip.
u_observer_ip observer.ip Mappé directement à partir du champ u_observer_ip.
u_prin_ip principal.ip, principal.asset.ip Mappé directement à partir du champ u_prin_ip.
utilisateur target.user.userid Mappé directement à partir du champ user.
user_agent network.http.user_agent, network.http.parsed_user_agent La chaîne user-agent est mappée sur network.http.user_agent, et l'user-agent analysé est mappé sur network.http.parsed_user_agent.
user_group_identifier target.user.group_identifiers ou principal.user.group_identifiers Mappé sur target.user.group_identifiers dans la plupart des cas. Mappé sur principal.user.group_identifiers dans les événements de modification d'adresse IP (USER_UNCATEGORIZED) et de restrictions de domaine.
user_ip principal.ip, principal.asset.ip Mappé directement à partir du champ user_ip. Si elle est vide et que u_event_source_ip ne l'est pas, elle prend la valeur de u_event_source_ip.
nom d'utilisateur principal.user.userid ou target.user.userid Mappé sur principal.user.userid dans la plupart des cas. Mappé sur target.user.userid dans certains scénarios spécifiques (par exemple, lorsque detect_user_logout_failed est défini sur "false" et detect_policy_change_failed sur "false").
username_removed target.user.userid Mappé directement à partir du champ username_removed.
vd principal.administrative_domain Mappé directement à partir du champ vd.

metadata.vendor_name, metadata.product_name, metadata.event_type, metadata.log_type, network.ip_protocol, security_result.action, security_result.severity et extensions.auth.type sont dérivés ou définis par la logique de l'analyseur en fonction des conditions décrites dans la colonne "Logique".

Modifications

2024-05-27

  • Mappage de "observer_hostname" sur "observer.hostname".
  • Lorsque "dvc_hostname" est une adresse IP valide, il est mappé sur "principal.ip", sinon sur "principal.hostname".
  • Mappage de "priority_code", "Syslog_version" et "info_desc" sur "about.labels".
  • "prod_name" a été mappé sur "metadata.product_event_type".

2024-04-16

  • Ajout d'un nouveau format GROK pour analyser un nouveau format de journaux SYSLOG.
  • Mappage de "connection_status" sur "security_result.detection_fields".

2024-02-26

  • Ajout d'un bloc "kv" pour analyser les données clé-valeur.
  • "username" a été mappé sur "target.user.userid".
  • Ajout d'une vérification conditionnelle pour "message_info".
  • Mappage de "u_prin_ip" sur "principal.ip".
  • Mappage de "u_observer_ip" sur "observer.ip".

2023-11-07

  • Correction de bug:
  • Modification de la mise en correspondance de "observer_host" de "observer.hostname" à "additional.fields".

2023-08-19

  • Ajout d'un modèle Grok pour analyser les journaux défaillants.

2023-05-26

  • Ajout d'un modèle Grok pour prendre en charge les nouveaux journaux syslog.

2023-01-06

  • Modification de grok pour analyser "product_type" et mappage sur "metadata.product_event_type".

2022-10-25

  • Ajout de nouveaux modèles Grok pour "message_info" afin d'extraire le session_id.
  • Mappage de "session_id" sur "network.session_id".
  • Modification de target.ip en principal.ip lorsque detect_policy_change_failed est défini sur "false".
  • Modification de target.mac en principal.mac lorsque detect_policy_change_failed est défini sur "false".

2022-10-12

  • Amélioration : ajout de mappages pour les champs suivants :
  • Extraction de la valeur de l'adresse IP du champ "msg" et mappage sur "principal.ip".
  • Extraction de la valeur du nom d'hôte du champ "msg" et mappage sur "principal.hostname".
  • "user" a été mappé sur "target.user.userid".
  • Mappage de "realm" sur "principal.group.attribute.labels".
  • Mappage de "roles" sur "principal.user.group_identifiers".
  • Valeur modifiée pour "metadata.event_type", de "GENERIC_EVENT" à "USER_UNCATEGORIZED".

2022-10-03

  • Amélioration : analyse des journaux contenant "sudo".
  • Prise en charge de nouveaux formats de journaux de type paire clé-valeur.

2022-07-01

  • Amélioration : nouvel événement généré pour l'ID d'événement : 4624
  • Modification de metadata.event_type de "GENERIC_EVENT" en "STATUS_UPDATE" ou "NETWORK_CONNECTION" lorsque "principal.ip", "target.ip" ou "principal.hostname" ne sont pas nuls.

2022-04-13

  • Amélioration : ajout de mises en correspondance pour les nouveaux champs dans le type d'événement GENERIC_EVENT :
  • user_ip à event.idm.read_only_udm.principal.ip.
  • user_group_identifier à event.idm.read_only_udm.target.user.group_identifiers.
  • Horodatage modifié dans tous les types d'événements pour inclure le fuseau horaire.
  • Modification des champs user_ip et target_ip pour les types d'événements GENERIC et NETWORK_CONNECTION.