Collecter les journaux Zscaler Tunnel

Compatible avec :

Ce document explique comment exporter les journaux Zscaler Tunnel en configurant un flux Google Security Operations, et comment les champs de journaux sont mappés aux champs du modèle de données unifié (UDM) Google SecOps.

Pour en savoir plus, consultez Présentation de l'ingestion de données dans Google SecOps.

Un déploiement type se compose de Zscaler Tunnel et du flux de webhook Google SecOps configuré pour envoyer des journaux à Google SecOps. Chaque déploiement client peut être différent et plus complexe.

Le déploiement contient les composants suivants :

  • Tunnel Zscaler : plate-forme à partir de laquelle vous collectez les journaux.

  • Flux Google SecOps : flux Google SecOps qui récupère les journaux de Zscaler Tunnel et les écrit dans Google SecOps.

  • Google SecOps : conserve et analyse les journaux.

Une étiquette d'ingestion identifie l'analyseur qui normalise les données de journaux brutes au format UDM structuré. Les informations de ce document s'appliquent au parseur portant le libellé ZSCALER_TUNNEL.

Avant de commencer

Assurez-vous de remplir les conditions préalables suivantes :

Configurer des flux

Pour configurer ce type de journal, procédez comme suit :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Cliquez sur le pack de flux Zscaler.
  4. Recherchez le type de journal requis, puis cliquez sur Ajouter un flux.
  5. Saisissez les valeurs des paramètres d'entrée suivants :

    • Type de source : Webhook (recommandé)
    • Délimiteur de fractionnement : caractère utilisé pour séparer les lignes de journaux. Laissez ce champ vide si aucun délimiteur n'est utilisé.

    Options avancées

    • Nom du flux : valeur préremplie qui identifie le flux.
    • Espace de noms de l'élément : espace de noms associé au flux.
    • Libellés d'ingestion : libellés appliqués à tous les événements de ce flux.
  6. Cliquez sur Créer un flux.

Pour en savoir plus sur la configuration de plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Configurer Zscaler Tunnel

  1. Dans la console Zscaler Internet Access, accédez à Administration > Nanolog Streaming Service > Flux NSS Cloud.
  2. Cliquez sur Ajouter un flux NSS Cloud.
  3. Saisissez un nom pour le flux dans le champ Nom du flux.
  4. Sélectionnez NSS pour le tunnel dans Type de NSS.
  5. Sélectionnez l'état dans la liste État pour activer ou désactiver le flux NSS.
  6. Conservez la valeur Illimité dans le menu déroulant Taux SIEM. Modifiez la valeur pour supprimer le flux de sortie en raison de contraintes liées à la licence ou autres.
  7. Sélectionnez Autre dans la liste Type de SIEM.
  8. Sélectionnez Désactivée dans la liste Authentification OAuth 2.0.
  9. Saisissez une limite de taille pour la charge utile d'une requête HTTP individuelle, conformément aux bonnes pratiques du SIEM concernant la taille maximale du lot (par exemple, 512 Ko).
  10. Saisissez l'URL HTTPS du point de terminaison de l'API Chronicle dans l'URL de l'API au format suivant :

    https://<CHRONICLE_REGION>-chronicle.googleapis.com/v1alpha/projects/<GOOGLE_PROJECT_NUMBER>/locations/<LOCATION>/instances/<CUSTOMER_ID>/feeds/<FEED_ID>:importPushLogs
    
    • CHRONICLE_REGION : région dans laquelle votre instance Google SecOps est hébergée (par exemple, US).
    • GOOGLE_PROJECT_NUMBER : numéro de projet BYOP (obtenez-le auprès de C4).
    • LOCATION : région Google SecOps (par exemple, US).
    • CUSTOMER_ID : ID client Google SecOps (à obtenir auprès de C4).
    • FEED_ID : ID du flux affiché dans l'interface utilisateur du flux sur le nouveau webhook créé.

    Exemple d'URL d'API :

    https://us-chronicle.googleapis.com/v1alpha/projects/12345678910/locations/US/instances/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/feeds/yyyyyyyy-yyyy-yyyy-yyyy-yyyyyyyyyyyy:importPushLogs
    
  11. Cliquez sur Ajouter un en-tête HTTP, puis ajoutez des en-têtes HTTP au format suivant :

    • Header 1 : Key1 : X-goog-api-key et Value1 : clé API générée dans les identifiants API de BYOP. Google Cloud
    • Header 2 : Key2 : X-Webhook-Access-Key et Value2 : clé secrète de l'API générée dans la section "SECRET KEY" (Clé secrète) du webhook.
  12. Sélectionnez Tunnel dans la liste Types de journaux.

  13. Sélectionnez JSON dans la liste Type de sortie du flux.

  14. Définissez Caractère d'échappement du flux sur , \ ".

  15. Pour ajouter un champ au format de sortie du flux,sélectionnez Personnalisé dans la liste Type de sortie du flux.

  16. Copiez et collez le format de sortie du flux, puis ajoutez de nouveaux champs. Assurez-vous que les noms de clés correspondent aux noms de champs réels.

    Voici les formats de sortie de flux par défaut :

    • Pour la phase 1 d'IKE :

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"IPSEC IKEV %d{ikeversion}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","destinationport":"%d{dstport}","lifetime":"%d{lifetime}","ikeversion":"%d{ikeversion}","spi_in":"%lu{spi_in}","spi_out":"%lu{spi_out}","algo":"%s{algo}","authentication":"%s{authentication}","authtype":"%s{authtype}","recordid":"%d{recordid}"\}\}
      
    • Pour la phase 2 d'IKE :

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"IPSEC IKEV %d{ikeversion}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","sourceportstart":"%d{srcportstart}","destinationportstart":"%d{destportstart}","srcipstart":"%s{srcipstart}","srcipend":"%s{srcipend}","destinationipstart":"%s{destipstart}","destinationipend":"%s{destipend}","lifetime":"%d{lifetime}","ikeversion":"%d{ikeversion}","lifebytes":"%d{lifebytes}","spi":"%d{spi}","algo":"%s{algo}","authentication":"%s{authentication}","authtype":"%s{authtype}","protocol":"%s{protocol}","tunnelprotocol":"%s{tunnelprotocol}","policydirection":"%s{policydirection}","recordid":"%d{recordid}"\}\}
      
    • Pour un événement de tunnel :

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"%s{tunneltype}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","event":"%s{event}","eventreason":"%s{eventreason}","recordid":"%d{recordid}"\}\}
      
    • Pour un échantillon :

      \{ "sourcetype" : "zscalernss-tunnel", "event" : \{"datetime":"%s{datetime}","Recordtype":"%s{tunnelactionname}","tunneltype":"%s{tunneltype}","user":"%s{vpncredentialname}","location":"%s{elocationname}","sourceip":"%s{sourceip}","destinationip":"%s{destvip}","sourceport":"%d{srcport}","txbytes":"%lu{txbytes}","rxbytes":"%lu{rxbytes}","dpdrec":"%d{dpdrec}","recordid":"%d{recordid}"\}\}
      
  17. Dans la liste Fuseau horaire, sélectionnez le fuseau horaire du champ Heure dans le fichier de sortie. Par défaut, le fuseau horaire est défini sur celui de votre organisation.

  18. Vérifiez les paramètres configurés.

  19. Cliquez sur Enregistrer pour tester la connectivité. Si la connexion est établie, une coche verte accompagnée du message Test de connectivité réussi : OK (200) s'affiche.

Pour en savoir plus sur les flux Google SecOps, consultez la documentation sur les flux Google SecOps. Pour en savoir plus sur les exigences de chaque type de flux, consultez Configuration des flux par type.

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

Formats de journaux Zscaler Tunnel acceptés

L'analyseur Zscaler Tunnel est compatible avec les journaux au format JSON.

Exemples de journaux Zscaler Tunnel compatibles

  • JSON

    {
      "sourcetype": "zscalernss-tunnel",
      "event": {
        "datetime": "Sun Jan 21 06:17:00 2024",
        "Recordtype": "Tunnel Samples",
        "tunneltype": "IPSec IKEv2",
        "user": "dummy-user@dummydomain.net",
        "location": "PLWSE06",
        "sourceip": "198.51.100.0",
        "destinationip": "198.51.100.1",
        "sourceport": "0",
        "txbytes": "12560",
        "rxbytes": "0",
        "dpdrec": "0",
        "recordid": "7326416289073594372"
      }
    }
    

Table de mappage UDM

Référence du mappage de champ : ZSCALER_TUNNEL

Le tableau suivant liste les champs de journaux du type de journal ZSCALER_TUNNEL et les champs UDM correspondants.

Log field UDM mapping Logic
algo additional.fields[algo]
authtype additional.fields[authtype]
authentication additional.fields[authentication]
dd additional.fields[dd]
day additional.fields[day]
destinationportstart additional.fields[destinationportstart]
dpdrec additional.fields[dpdrec]
eventreason additional.fields[eventreason]
hh additional.fields[hh]
ikeversion additional.fields[ikeversion]
lifebytes additional.fields[lifebytes]
mm additional.fields[mm]
mon additional.fields[mon]
mth additional.fields[mth]
olocationname additional.fields[olocationname]
ovpncredentialname additional.fields[ovpncredentialname]
ss additional.fields[ss]
sourcetype additional.fields[sourcetype]
spi_in additional.fields[spi_in]
spi_out additional.fields[spi_out]
sourceportstart additional.fields[sourceportstart]
tz additional.fields[tz]
tunnelprotocol additional.fields[tunnelprotocol]
tunneltype additional.fields[tunneltype]
vendorname additional.fields[vendorname]
yyyy additional.fields[yyyy]
spi additional.fields[spi]
event metadata.description
datetime metadata.event_timestamp
metadata.event_type If (the srcipstart log field value is not empty or the srcipend log field value is not empty or the sourceip log field value is not empty) and (the destinationipstart log field value is not empty or the destinationip log field value is not empty or the destinationipend log field value is not empty), then the metadata.event_type UDM field is set to NETWORK_CONNECTION.

Else, if the srcipstart log field value is not empty or the srcipend log field value is not empty or the sourceip log field value is not empty, then the metadata.event_type UDM field is set to STATUS_UPDATE.

Else, the metadata.event_type UDM field is set to GENERIC_EVENT.
Recordtype metadata.product_event_type
recordid metadata.product_log_id
metadata.product_name The metadata.product_name UDM field is set to ZSCALER_TUNNEL.
metadata.vendor_name The metadata.vendor_name UDM field is set to ZSCALER.
network.direction If the policydirection log field value matches the regular expression pattern (?i)Inbound, then the network.direction UDM field is set to INBOUND.

Else, if the policydirection log field value matches the regular expression pattern (?i)Outbound, then the network.direction UDM field is set to OUTBOUND.
protocol network.ip_protocol If the protocol log field value contain one of the following values, then the protocol log field is mapped to the network.ip_protocol UDM field.
  • TCP
  • EIGRP
  • ESP
  • ETHERIP
  • GRE
  • ICMP
  • IGMP
  • IP6IN4
  • PIM
  • UDP
  • VRRP
rxbytes network.received_bytes
rxpackets network.received_packets
txbytes network.sent_bytes
txpackets network.sent_packets
lifetime network.session_duration.seconds
srcipstart principal.ip
sourceip principal.ip
srcipend principal.ip
location principal.location.name
sourceport principal.port
user principal.user.userid
destinationipstart target.ip
destinationip target.ip
destinationipend' target.ip
destinationport target.port

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