Collecter les journaux de la solution DLP Zscaler
Ce document explique comment exporter les journaux de protection contre la perte de données Zscaler en configurant un flux Google Security Operations, et comment les champs de journal sont mappés sur les champs du modèle de données unifié (UDM) Google SecOps.
Pour en savoir plus, consultez la section Présentation de l'ingestion de données dans Google SecOps.
Un déploiement typique comprend la protection contre la perte de données (DLP) Zscaler et le 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:
Protection contre la perte de données Zscaler: plate-forme à partir de laquelle vous collectez les journaux.
Flux Google SecOps: flux Google SecOps qui extrait les journaux de la solution DLP Zscaler et les écrit dans Google SecOps.
Google Security Operations: conserve et analyse les journaux.
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é ZSCALER_DLP
.
Avant de commencer
Assurez-vous de remplir les conditions préalables suivantes:
- Accès à la console d'accès à Internet Zscaler. Pour en savoir plus, consultez l'aide ZIA sur la sécurisation de l'accès à Internet et aux services SaaS.
- Zscaler DLP 2024 ou version ultérieure
- Tous les systèmes de l'architecture de déploiement sont configurés avec le fuseau horaire UTC.
- Clé API requise pour configurer le flux dans Google Security Operations. Pour en savoir plus, consultez Configurer des clés API.
Configurer des flux
Il existe deux points d'entrée différents pour configurer des flux dans la plate-forme Google SecOps:
- Paramètres du SIEM > Flux
- Hub de contenu > Packs de contenu
Configurez les flux dans Paramètres du SIEM > Flux.
Pour configurer plusieurs flux pour différents types de journaux au sein de cette famille de produits, consultez Configurer des flux par produit.
Pour configurer un seul flux, procédez comme suit:
- Accédez à SIEM Settings > Feeds (Paramètres du SIEM > Flux).
- Cliquez sur Ajouter un flux.
- Sur la page suivante, cliquez sur Configurer un flux.
- Dans le champ Nom du flux, saisissez un nom pour le flux (par exemple, Journaux de protection contre la perte de données Zscaler).
- Sélectionnez Webhook comme type de source.
- Sélectionnez Protection contre la perte de données Zscaler comme Type de journal.
- Cliquez sur Suivant.
- Facultatif: Spécifiez les valeurs des paramètres d'entrée suivants :
- Délimiteur de fractionnement: délimiteur utilisé pour séparer les lignes de journal (laissez ce champ vide si aucun délimiteur n'est utilisé).
- Espace de noms de l'élément: espace de noms de l'élément.
- Libellés d'ingestion: libellé à appliquer aux événements de ce flux.
- Cliquez sur Suivant.
- Vérifiez la configuration de votre nouveau flux dans 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.
Configurer des flux depuis le Centre de contenu
Indiquez les valeurs des champs suivants:
- Délimiteur de fractionnement: délimiteur utilisé pour séparer les lignes de journal, par exemple
\n
.
Options avancées
- Nom du flux: valeur préremplie qui identifie le flux.
- Source Type (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 dans 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 dans l'écran Finaliser, puis cliquez sur Envoyer.
Configurer la protection contre la perte de données Zscaler
- Dans la console Zscaler Internet Access, accédez à Administration > Nanolog Streaming Service > Cloud NSS Feeds (Administration > Nanolog Streaming Service > Flux NSS cloud).
- Cliquez sur Ajouter un flux NSS Cloud.
- Attribuez un nom au flux dans le champ Nom du flux.
- Sélectionnez NSS pour le Web dans Type de NSS.
- Sélectionnez l'état dans la liste État pour activer ou désactiver le flux NSS.
- Laissez la valeur Illimité dans le menu Taux SIEM. Pour supprimer le flux de sortie en raison de licences ou d'autres contraintes, modifiez la valeur.
- Sélectionnez Autre dans la liste Type de SIEM.
- Sélectionnez Désactivée dans la liste Authentification OAuth 2.0.
- Dans Taille maximale du lot, saisissez une limite de taille pour la charge utile d'une requête HTTP individuelle conformément aux bonnes pratiques du SIEM (par exemple, 512 Ko).
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 où est hébergée votre instance Google SecOps (par exemple, États-Unis).GOOGLE_PROJECT_NUMBER
: numéro de projet BYOP (obtenez-le auprès de C4).LOCATION
: région Google SecOps (par exemple, États-Unis).CUSTOMER_ID
: ID client Google SecOps (obtenez-le auprès de C4).FEED_ID
: ID du flux affiché dans l'interface utilisateur du flux du 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
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 sur les identifiants API de BYOP. Google CloudHeader 2
: Key2:X-Webhook-Access-Key
et Value2:clé secrète de l'API générée dans "SECRET KEY" du webhook.
Sélectionnez DLP de point de terminaison dans la liste Types de journaux.
Sélectionnez JSON dans la liste Type de sortie du flux.
Définissez Feed Escape Character (Caractère d'échappement du flux) sur
, \ "
.Pour ajouter un champ au format de sortie du flux,sélectionnez Personnalisé dans la liste Type de sortie du flux.
Copiez-collez le format de sortie du flux et ajoutez de nouveaux champs. Assurez-vous que les noms des clés correspondent aux noms des champs.
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}"\}\}
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.
Vérifiez les paramètres configurés.
Cliquez sur Enregistrer pour tester la connectivité. Si la connexion aboutit, une coche verte s'affiche, accompagnée du message Test de connectivité réussi: OK (200).
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 la section 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 DLP Zscaler compatibles
L'analyseur de la solution de protection contre la perte de données de Zscaler accepte les journaux au format JSON.
Exemples de journaux compatibles avec Zscaler DLP
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" } }
Tableau de mappage UDM
Le tableau suivant répertorie les champs de journal 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 .
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.