Collecter les journaux Dope Security SWG
Ce document explique comment ingérer des journaux Dope Security SWG dans Google Security Operations à l'aide d'Amazon S3.
Dope Security dope.swg est une passerelle Web sécurisée basée sur les points de terminaison qui fournit un filtrage Web en temps réel, une protection contre les logiciels malveillants et un contrôle des applications cloud. Chaque dope.endpoint envoie des journaux de transactions Web à dope.cloud toutes les 15 minutes. Ils sont ensuite automatiquement exportés vers votre bucket AWS S3 au format JSONL GZIP compressé pour l'intégration SIEM.
Avant de commencer
Assurez-vous de remplir les conditions suivantes :
- Une instance Google SecOps
- Accès privilégié à Dope Security dope.console
- Accès privilégié à AWS (S3, IAM)
- Votre locataire Dope Security doit se trouver dans la même région AWS que votre bucket S3 (vérifiez la région sur la page Paramètres> SIEM).
Configurer l'intégration SIEM de Dope Security
Pour configurer l'intégration Dope Security SIEM :
- Connectez-vous à dope.console à l'adresse https://console.dope.security.
- Accédez à Paramètres> SIEM> Paramètres d'intégration du SIEM.
- Dans la liste Type de SIEM, sélectionnez AWS S3.
Notez la région AWS affichée à droite de la page (par exemple, US-EAST-2).
Laissez cette page ouverte, car vous y reviendrez pour terminer la configuration après avoir configuré AWS S3.
Configurer un bucket AWS S3 et IAM pour Google SecOps
- Créez un bucket Amazon S3. Pour en savoir plus, consultez Créer un bucket.
- Lorsque vous créez le bucket, assurez-vous que la région correspond à celle indiquée sur la page d'intégration Dope Security SIEM (par exemple, USA Est (Ohio) us-east-2).
Enregistrez le nom du bucket pour référence ultérieure (par exemple,
chronicle-dope-swg-logs).Créez un utilisateur. Pour en savoir plus, consultez Créer un utilisateur IAM.
Sélectionnez l'utilisateur que vous avez créé.
Sélectionnez l'onglet Informations d'identification de sécurité.
Cliquez sur Créer une clé d'accès dans la section Clés d'accès.
Sélectionnez Service tiers comme Cas d'utilisation.
Cliquez sur Suivant.
Facultatif : Ajoutez un tag de description.
Cliquez sur Créer une clé d'accès.
Cliquez sur Download .csv file (Télécharger le fichier .csv) pour enregistrer la clé d'accès et la clé d'accès secrète pour référence ultérieure.
Cliquez sur OK.
Sélectionnez l'onglet Autorisations.
Cliquez sur Ajouter des autorisations dans la section Règles d'autorisation.
Sélectionnez Ajouter des autorisations.
Sélectionnez Joindre directement des règles.
Recherchez la règle AmazonS3FullAccess.
Sélectionnez la règle.
Cliquez sur Suivant.
Cliquez sur Ajouter des autorisations.
Configurer la connexion Dope Security Amazon S3
- Revenez à la console dope sur la page Paramètres> SIEM> Paramètres d'intégration du SIEM.
- Dans le champ Nom du bucket S3, saisissez le nom de votre bucket S3 (par exemple,
chronicle-dope-swg-logs). - Dans le volet de droite, vous verrez une section Règle de bucket avec une règle JSON pré-générée.
- Cliquez sur Copier à côté du code JSON de la règle pour le copier dans le presse-papiers.
- Dans un nouvel onglet de navigateur, accédez à la console AWS S3.
- Sélectionnez votre bucket S3 (par exemple,
chronicle-dope-swg-logs). - Accédez à l'onglet Autorisations.
- Faites défiler la page jusqu'à la section Règles du bucket.
- Cliquez sur Modifier.
- Collez le code JSON de la stratégie que vous avez copié depuis la console Dope dans la zone de texte Stratégie.
- Cliquez sur Enregistrer les modifications.
- Revenez à l'onglet de navigateur dope.console.
- Cliquez sur Synchroniser en bas de la page "Paramètres d'intégration du SIEM".
- Attendez la fin de la synchronisation.
- Vérifiez qu'une coche verte apparaît à côté du champ Nom du bucket S3.
Vérifiez que le code temporel de la dernière synchronisation s'affiche en haut à droite de la page.
Configurer un flux dans Google SecOps pour ingérer les journaux Dope Security SWG
- Accédez à Paramètres SIEM> Flux.
- Cliquez sur Add New Feed (Ajouter un flux).
- Sur la page suivante, cliquez sur Configurer un seul flux.
- Saisissez un nom unique pour le nom du flux (par exemple,
Dope Security SWG Logs). - Sélectionnez Amazon S3 V2 comme type de source.
- Sélectionnez DOPE_SWG comme Type de journal.
- Cliquez sur Suivant, puis sur Envoyer.
Indiquez les valeurs des champs suivants :
- URI S3 :
s3://chronicle-dope-swg-logs/(remplacez par le nom de votre bucket) - Option de suppression de la source : sélectionnez l'option de suppression de votre choix.
- Âge maximal des fichiers : incluez les fichiers modifiés au cours des derniers jours (180 jours par défaut).
- ID de clé d'accès : clé d'accès utilisateur avec accès au bucket S3 (à partir de l'étape 12 de la configuration AWS)
- Clé d'accès secrète : clé secrète de l'utilisateur ayant accès au bucket S3 (étape 12 de la configuration AWS)
- 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
- URI S3 :
Cliquez sur Suivant, puis sur Envoyer.
Documentation de référence sur le format des données de journaux
Dope Security exporte les journaux au format JSONL (JSON Lines) avec compression GZIP. Chaque entrée de journal contient les champs clés suivants :
| Champ | Description |
|---|---|
| Temporel | Code temporel ISO 8601 indiquant quand la transaction Web a été demandée |
| Durée | Durée de la connexion en millisecondes |
| Destination correspondante | Domaine auquel la catégorie "Dope" a été associée |
| Adresse IP de destination | Adresse IP de destination de l'URL demandée |
| ID du locataire | ID de locataire unique dope.cloud du client |
| ID de l'agent | ID d'agent unique pour dope.endpoint |
| Utilisateur | Utilisateur connecté sur dope.endpoint |
| Utilisateur OIDC | Adresse e-mail de l'utilisateur authentifié (lorsque l'authentification OIDC est activée) |
| Catégories | Numéros de catégorie Dope correspondants (0 à 88) pour l'URL demandée |
| Verdict | Résultat de la règle : Autoriser (0), Bloquer (1), Avertissement (2) ou Contourner (3) |
| Données envoyées | Quantité de données envoyées dans la connexion (en octets) |
| Données reçues | Quantité de données reçues dans la connexion (en octets) |
| Type de règle | Type de règle appliquée : Web, Cloud Application Control (CAC), catégorie personnalisée, contournement ou logiciel malveillant |
| Détails du bloc | Pour les verdicts de blocage : catégorie Dope, catégorie personnalisée, application cloud ou type de logiciel malveillant |
| Nom de fichier | Nom de tout fichier téléchargé |
| Hachage du fichier | Hachage de fichier pour les fichiers téléchargés |
| Nom du processus | Nom du processus à l'origine de la requête d'URL |
| URL | URL demandée complète |
| Nom de la règle | Nom de la règle appliquée |
| Protocole | Protocole utilisé (HTTP/2 ou HTTP/1.1, par exemple) |
| Hostname (Nom d'hôte) | Nom d'hôte de l'appareil |
| Méthode de requête HTTP | Méthode de requête HTTP (par exemple, GET, POST, PUT) |
| Arborescence des appels de processus | Relations parent-enfant issues des opérations de création de processus avec des arguments de commande |
Pour obtenir le mappage complet des catégories et des verdicts, consultez la documentation Mappages des catégories et des verdicts Dope Security.
Table de mappage UDM
| Champ de journal | Mappage UDM | Logique |
|---|---|---|
| policy.categories, request.processTree | additional.fields | Fusionné en tant que liste à partir de policy.categories et request.processTree au format JSON |
| timestamp | metadata.event_timestamp | Analysé en tant que code temporel ISO8601 dans les formats JSON et CSV |
| metadata.event_type | Défini sur NETWORK_HTTP si has_principal, has_target et has_http sont présents dans le fichier JSON ; sur NETWORK_CONNECTION si has_principal et has_target sont présents ; sur USER_UNCATEGORIZED si has_user est présent ; sur STATUS_UPDATE si has_principal est présent ; sur GENERIC_EVENT dans le cas contraire ; défini sur NETWORK_HTTP dans le fichier CSV | |
| schemaVersion | metadata.product_version | Valeur copiée directement à partir de "schemaVersion" dans le fichier JSON |
| request.httpVersion | network.http.user_agent | Valeur copiée directement à partir de request.httpVersion dans JSON |
| bandwidth.dataReceivedInBytes, bytes_received | network.received_bytes | Converti en uinteger à partir de bandwidth.dataReceivedInBytes au format JSON ou bytes_received au format CSV si la valeur n'est pas vide et n'est pas égale à 0 |
| bandwidth.dataSentInBytes, bytes_sent | network.sent_bytes | Converti en uinteger à partir de bandwidth.dataSentInBytes au format JSON ou bytes_sent au format CSV si la valeur n'est pas vide et n'est pas égale à 0 |
| request.duration | network.session_duration.seconds | Converti en entier à partir de request.duration dans JSON |
| endpoint.agentID, endpoint_id | principal.asset.asset_id | Préfixé par DS : à partir de endpoint.agentID dans JSON ou endpoint_id dans CSV |
| endpoint.tenantID | principal.asset.attribute.cloud.project.id | Valeur copiée directement à partir de endpoint.tenantID dans JSON |
| endpoint.deviceName | principal.asset.hostname | Valeur copiée directement à partir de endpoint.deviceName dans le fichier JSON |
| endpoint.deviceName, endpoint_hostname | principal.hostname | Valeur de endpoint.deviceName au format JSON ou endpoint_hostname au format CSV |
| request.processName | principal.process.command_line | Valeur copiée directement à partir de request.processName dans le fichier JSON |
| process_name | principal.process.file.names | Valeur copiée directement à partir de process_name dans le fichier CSV |
| sso_user, user | principal.user.account_type | Définissez sur DOMAIN_ACCOUNT_TYPE si sso_user n'est pas vide, sinon LOCAL_ACCOUNT_TYPE dans le fichier CSV. |
| endpoint.oidcUser | principal.user.email_addresses | Fusionné si endpoint.oidcUser correspond à l'expression régulière d'adresse e-mail dans le fichier JSON |
| endpoint.oidcUser | principal.user.user_display_name | Valeur copiée directement si endpoint.oidcUser ne correspond pas à l'expression régulière de l'adresse e-mail dans le fichier JSON |
| endpoint.user, sso_user, user | principal.user.userid | Valeur de endpoint.user dans JSON ; de sso_user si elle n'est pas vide, sinon de user dans CSV |
| security_result | security_result | Fusionné à partir de security_result au format JSON |
| policy.verdict, verdict | security_result.action | Définissez sur BLOCK si la valeur de "policy.verdict" dans JSON ou "verdict" dans CSV est égale à 1, sur ALLOW si elle est égale à 0 et sur CHALLENGE si elle est égale à 2. |
| categories | security_result.action_details | Valeur copiée directement à partir des catégories du fichier CSV |
| policy.policyName | security_result.rule_name | Valeur copiée directement à partir de policy.policyName dans le fichier JSON |
| policy.policyType | security_result.rule_type | Valeur copiée directement à partir de policy.policyType dans JSON |
| file_name | target.file.names | Valeur copiée directement à partir de file_name au format CSV |
| file_hash | target.file.sha256 | Valeur copiée directement à partir de file_hash dans le fichier CSV |
| destination.matchedDestination, domain | target.hostname | Valeur de destination.matchedDestination si l'adresse IP n'est pas au format JSON ; du domaine au format CSV |
| destination.matchedDestination, destination.destinationIP, ip | target.ip | Valeur de destination.matchedDestination ou destination.destinationIP si l'adresse IP est au format JSON ; de l'adresse IP au format CSV |
| destination.url, url | target.url | Valeur de destination.url au format JSON ou de url au format CSV |
| metadata.product_name | Définissez sur "DOPE_SWG" dans JSON et sur "SWG" dans CSV. | |
| metadata.vendor_name | Définissez sur "DOPE_SWG" dans JSON et "Dope Security" dans CSV. |
Vous avez encore besoin d'aide ? Obtenez des réponses de membres de la communauté et de professionnels Google SecOps.