Collecter les journaux Zscaler DLP

Compatible avec :

Ce document explique comment exporter les journaux Zscaler DLP 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 typique se compose de Zscaler DLP 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 :

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

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

  • Google Security Operations : 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_DLP.

Avant de commencer

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

Configurer des flux

Il existe deux points d'entrée différents pour configurer les flux dans la plate-forme Google SecOps :

  • Paramètres SIEM> Flux
  • Plate-forme de contenu > Packs de contenu

Configurer des flux à partir de Paramètres SIEM > Flux

Pour configurer plusieurs flux pour différents types de journaux dans cette famille de produits, consultez Configurer des flux par produit.

Pour configurer un seul flux :

  1. Accédez à Paramètres SIEM> Flux.
  2. Cliquez sur Add New Feed (Ajouter un flux).
  3. Sur la page suivante, cliquez sur Configurer un seul flux.
  4. Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux Zscaler DLP).
  5. Sélectionnez Webhook comme type de source.
  6. Sélectionnez Zscaler DLP comme type de journal.
  7. Cliquez sur Suivant.
  8. Facultatif : Spécifiez les valeurs des paramètres d'entrée suivants :
    1. Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux (laissez ce champ vide si aucun délimiteur n'est utilisé).
    2. Espace de noms de l'élément : espace de noms de l'élément.
    3. Libellés d'ingestion : libellé à appliquer aux événements de ce flux.
  9. Cliquez sur Suivant.
  10. Vérifiez la configuration de votre nouveau flux sur l'écran Finaliser, puis cliquez sur Envoyer.
  11. Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.

Configurer des flux depuis le Hub de contenu

Indiquez les valeurs des champs suivants :

  • Délimiteur de fractionnement : délimiteur utilisé pour séparer les lignes de journaux, tel que \n.

Options avancées

  • Nom du flux : valeur préremplie qui identifie le flux.
  • Type de source : méthode utilisée pour collecter les journaux dans Google SecOps.
  • Espace de noms de l'élément : espace de noms de l'élément.
  • Libellés d'ingestion : libellé appliqué aux événements de ce flux.
  • Cliquez sur Suivant.
  • Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.
  • Cliquez sur Générer une clé secrète pour générer une clé secrète permettant d'authentifier ce flux.
  • Cliquez sur Suivant.
  • Vérifiez la configuration du flux sur l'écran Finaliser, puis cliquez sur Envoyer.

Configurer Zscaler DLP

  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 Web 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 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 Google Cloud BYOP.
    • 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 DLP pour les points de terminaison 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 le format de sortie du flux par défaut :

    \{ "sourcetype" : "zscalernss-edlp", "event" :\{"time":"%s{time}","recordid":"%d{recordid}","login":"%s{user}","dept":"%s{department}","filetypename":"%s{filetypename}","filemd5":"%s{filemd5}","dlpdictnames":"%s{dlpdictnames}","dlpdictcount":"%s{dlpcounts}","dlpenginenames":"%s{dlpengnames}","channel":"%s{channel}","actiontaken":"%s{actiontaken}","severity":"%s{severity}","rulename":"%s{triggeredrulelabel}","itemdstname":"%s{itemdstname}"\}\}
    
  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 DLP acceptés

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

Exemples de journaux Zscaler DLP compatibles

  • JSON :

    {
      "sourcetype": "zscalernss-edlp",
      "event": {
        "time": "Thu Jun 20 21:14:56 2024",
        "recordid": "7382697059455533057",
        "login": "dummy@domain.com",
        "dept": "General Group",
        "filetypename": "xlsx",
        "filemd5": "9a2d0d62c22994a98f65939ddcd3eb8f",
        "dlpdictnames": "Social Security Number (US): Detect leakage of United States Social Security Numbers|Credit Cards: Detect leakage of credit card information|Aadhaar Card Number (India): Detect Leakage of Indian Aadhaar Card Numbers",
        "dlpdictcount": "1428|141|81",
        "dlpenginenames": "Dummy Engine|cc|PCI|GLBA|HIPAA",
        "channel": "Removable Storage",
        "actiontaken": "Confirm Allow",
        "severity": "High Severity",
        "rulename": "Endpoint_DLP_",
        "itemdstname": "Removable Storage"
      }
    }
    

Table de mappage UDM

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

Log field UDM mapping Logic
mon additional.fields[mon]
day additional.fields[day]
scantime additional.fields[scantime]
numdlpengids additional.fields[numdlpengids]
numdlpdictids additional.fields[numdlpdictids]
recordid metadata.product_log_id
scanned_bytes additional.fields[scanned_bytes]
dlpidentifier security_result.detection_fields[dlpidentifier]
login principal.user.user_display_name
b64user principal.user.user_display_name
euser principal.user.user_display_name
ouser security_result.detection_fields[ouser]
dept principal.user.department
b64department principal.user.department
edepartment principal.user.department
odepartment security_result.detection_fields[odepartment]
odevicename security_result.detection_fields[odevicename]
devicetype principal.asset.attribute.labels[devicetype]
principal.asset.platform_software.platform If the deviceostype log field value matches the regular expression pattern (?i)Windows, then the principal.asset.platform_software.platform UDM field is set to WINDOWS.
principal.asset.asset_id If the devicename log field value is not empty, then the asset_id:devicename log field is mapped to the principal.asset.asset_id UDM field.

If the b64devicename log field value is not empty, then the asset_id:b64devicename log field is mapped to the principal.asset.asset_id UDM field.

If the edevicename log field value is not empty, then the asset_id:edevicename log field is mapped to the principal.asset.asset_id UDM field.
deviceplatform principal.asset.attribute.labels[deviceplatform]
deviceosversion principal.asset.platform_software.platform_version
devicemodel principal.asset.hardware.model
deviceappversion additional.fields[deviceappversion]
deviceowner principal.user.userid
b64deviceowner principal.user.userid
edeviceowner principal.user.userid
odeviceowner security_result.detection_fields[odeviceowner]
devicehostname principal.hostname
b64devicehostname principal.hostname
edevicehostname principal.hostname
odevicehostname security_result.detection_fields[odevicehostname]
datacenter target.location.name
datacentercity target.location.city
datacentercountry target.location.country_or_region
dsttype target.resource.resource_subtype
filedoctype additional.fields[filedoctype]
filedstpath target.file.full_path
b64filedstpath target.file.full_path
efiledstpath target.file.full_path
filemd5 target.file.md5 If the filemd5 log field value matches the regular expression pattern ^[0-9a-f]+$, then the filemd5 log field is mapped to the target.file.md5 UDM field.
filesha target.file.sha256 If the filesha log field value matches the regular expression pattern ^[0-9a-f]+$, then the filesha log field is mapped to the target.file.sha256 UDM field.
filesrcpath src.file.full_path
b64filesrcpath src.file.full_path
efilesrcpath src.file.full_path
filetypecategory additional.fields[filetypecategory]
filetypename target.file.mime_type
itemdstname target.resource.name
b64itemdstname target.resource.name
eitemdstname target.resource.name
itemname target.resource.attribute.labels[itemname]
b64itemname target.resource.attribute.labels[itemname]
eitemname target.resource.attribute.labels[itemname]
itemsrcname src.resource.name
b64itemsrcname src.resource.name
eitemsrcname src.resource.name
itemtype target.resource.attribute.labels[itemtype]
ofiledstpath security_result.detection_fields[ofiledstpath]
ofilesrcpath security_result.detection_fields[ofilesrcpath]
oitemdstname security_result.detection_fields[oitemdstname]
oitemname security_result.detection_fields[oitemname]
odlpengnames security_result.detection_fields[odlpengnames]
oitemsrcname security_result.detection_fields[oitemsrcname]
srctype src.resource.resource_subtype
actiontaken security_result.action_details
security_result.action If the actiontaken log field value matches the regular expression pattern (?i)allow, then the security_result.action UDM field is set to ALLOW.

Else, if the actiontaken log field value matches the regular expression pattern (?i)block, then the security_result.action UDM field is set to BLOCK.
activitytype metadata.product_event_type
addinfo additional.fields[addinfo]
channel security_result.detection_fields[channel]
confirmaction security_result.detection_fields[confirmaction]
confirmjust security_result.description
dlpdictcount security_result.detection_fields[dlpdictcount]
dlpdictnames security_result.detection_fields[dlpdictnames]
b64dlpdictnames security_result.detection_fields[dlpdictnames]
edlpdictnames security_result.detection_fields[dlpdictnames]
dlpenginenames security_result.detection_fields[dlpenginenames]
b64dlpengnames security_result.detection_fields[dlpenginenames]
edlpengnames security_result.detection_fields[dlpenginenames]
expectedaction security_result.detection_fields[expectedaction]
logtype security_result.category_details
odlpdictnames security_result.detection_fields[odlpdictnames]
ootherrulelabels security_result.detection_fields[ootherrulelabels]
otherrulelabels security_result.rule_labels[otherrulelabels]
b64otherrulelabels security_result.rule_labels[otherrulelabels]
eotherrulelabels security_result.rule_labels[otherrulelabels]
otriggeredrulelabel security_result.rule_labels[otriggeredrulelabel]
severity security_result.severity_details
security_result.severity If the severity log field value matches the regular expression pattern (?i)High, then the security_result.severity UDM field is set to HIGH.

Else, if the severity log field value matches the regular expression pattern (?i)Medium, then the security_result.severity UDM field is set to MEDIUM.

Else, if the severity log field value matches the regular expression pattern (?i)Low, then the security_result.severity UDM field is set to LOW.

Else, if the severity log field value matches the regular expression pattern (?i)Info, then the security_result.severity UDM field is set to INFORMATIONAL.
rulename security_result.rule_name
b64triggeredrulelabel security_result.rule_name
etriggeredrulelabel security_result.rule_name
zdpmode security_result.detection_fields[zdpmode]
tz additional.fields[tz]
ss additional.fields[ss]
mm additional.fields[mm]
hh additional.fields[hh]
dd additional.fields[dd]
mth additional.fields[mth]
yyyy additional.fields[yyyy]
sourcetype additional.fields[sourcetype]
eventtime metadata.event_timestamp
time metadata.collected_timestamp
rtime additional.fields[rtime]
metadata.vendor_name The metadata.vendor_name UDM field is set to Zscaler.
metadata.product_name The metadata.product_name UDM field is set to DLP.
metadata.event_type If the activitytype log field value contain one of the following values, then the metadata.event_type UDM field is set to FILE_UNCATEGORIZED.
  • Upload
  • Download
Else, if the activitytype log field value is equal to File Copy, then the metadata.event_type UDM field is set to FILE_COPY.

Else, if the activitytype log field value is equal to File Read, then the metadata.event_type UDM field is set to FILE_READ.

Else, if the activitytype log field value is equal to File Write, then the metadata.event_type UDM field is set to FILE_MODIFICATION.

Else, if the activitytype log field value is equal to Email Sent, then the metadata.event_type UDM field is set to EMAIL_UNCATEGORIZED.

Else, if the activitytype log field value is equal to Print, then the metadata.event_type UDM field is set to STATUS_UPDATE.

Else, the metadata.event_type UDM field is set to GENERIC_EVENT.

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